# =============================================================================
# README.md - Project Documentation
# =============================================================================
# Local Git Changes Analyzer
A FastMCP server for analyzing outstanding local git changes that haven't made their way to GitHub yet.
## Features
- **Working Directory Analysis**: Detect uncommitted changes
- **Staging Area Analysis**: Analyze staged changes ready for commit
- **Unpushed Commits**: Find commits that haven't been pushed to remote
- **Stash Analysis**: Examine stashed changes
- **Risk Assessment**: Identify high-risk changes and potential conflicts
- **Push Readiness**: Assess if repository is ready for remote push
## Installation
### Prerequisites
- Python 3.9+
- Poetry (for dependency management)
- Git
### Setup
```bash
# Clone the repository
git clone <repository-url>
cd local-git-analyzer
# Install Poetry if you haven't already
curl -sSL https://install.python-poetry.org | python3 -
# Install dependencies
poetry install
# For development dependencies
poetry install --with dev
```
## Configuration
Copy `.env.example` to `.env` and configure your settings:
```bash
cp .env.example .env
```
## Usage
Run the FastMCP server:
```bash
# Using Poetry
poetry run python main.py
# Or activate the virtual environment
poetry shell
python main.py
```
Or use the CLI:
```bash
poetry run local-git-analyzer
```
## Development
### Setup Development Environment
```bash
# Install all dependencies including dev
poetry install --with dev,test
# Install pre-commit hooks
poetry run pre-commit install
# Run tests
poetry run pytest
# Run tests with coverage
poetry run pytest --cov=local_git_analyzer --cov-report=html
# Run type checking
poetry run mypy local_git_analyzer
# Format code
poetry run black local_git_analyzer
poetry run isort local_git_analyzer
# Or use ruff for linting and formatting
poetry run ruff check local_git_analyzer
poetry run ruff format local_git_analyzer
```
### Poetry Commands
```bash
# Add a new dependency
poetry add <package>
# Add a development dependency
poetry add --group dev <package>
# Update dependencies
poetry update
# Show dependency tree
poetry show --tree
# Build the package
poetry build
# Publish to PyPI
poetry publish
```
### Project Structure
```
local_git_analyzer/
├── main.py # FastMCP server entry point
├── config.py # Configuration and settings
├── models/ # Pydantic data models
├── services/ # Business logic services
├── tools/ # FastMCP tools
├── tests/ # Test files
├── pyproject.toml # Poetry configuration
└── README.md # This file
```
## Testing
```bash
# Run all tests
poetry run pytest
# Run with coverage
poetry run pytest --cov=local_git_analyzer
# Run specific test file
poetry run pytest tests/test_git_client.py
# Run tests with specific markers
poetry run pytest -m unit
poetry run pytest -m integration
```
## License
MIT License
Raw data
{
"_id": null,
"home_page": "https://github.com/manavgup/mcp_local_repo_analyzer",
"name": "mcp-local-repo-analyzer",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "mcp, model-context-protocol, git, repository-analysis, mcp-server",
"author": "Manav Gupta",
"author_email": "manavg@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/3a/b8/4d7f77b196d4823912aff124171f16894c694f18178e6e9ac4cf32f7bd28/mcp_local_repo_analyzer-0.1.0.tar.gz",
"platform": null,
"description": "# =============================================================================\n# README.md - Project Documentation\n# =============================================================================\n# Local Git Changes Analyzer\n\nA FastMCP server for analyzing outstanding local git changes that haven't made their way to GitHub yet.\n\n## Features\n\n- **Working Directory Analysis**: Detect uncommitted changes\n- **Staging Area Analysis**: Analyze staged changes ready for commit\n- **Unpushed Commits**: Find commits that haven't been pushed to remote\n- **Stash Analysis**: Examine stashed changes\n- **Risk Assessment**: Identify high-risk changes and potential conflicts\n- **Push Readiness**: Assess if repository is ready for remote push\n\n## Installation\n\n### Prerequisites\n\n- Python 3.9+\n- Poetry (for dependency management)\n- Git\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone <repository-url>\ncd local-git-analyzer\n\n# Install Poetry if you haven't already\ncurl -sSL https://install.python-poetry.org | python3 -\n\n# Install dependencies\npoetry install\n\n# For development dependencies\npoetry install --with dev\n```\n\n## Configuration\n\nCopy `.env.example` to `.env` and configure your settings:\n\n```bash\ncp .env.example .env\n```\n\n## Usage\n\nRun the FastMCP server:\n\n```bash\n# Using Poetry\npoetry run python main.py\n\n# Or activate the virtual environment\npoetry shell\npython main.py\n```\n\nOr use the CLI:\n\n```bash\npoetry run local-git-analyzer\n```\n\n## Development\n\n### Setup Development Environment\n\n```bash\n# Install all dependencies including dev\npoetry install --with dev,test\n\n# Install pre-commit hooks\npoetry run pre-commit install\n\n# Run tests\npoetry run pytest\n\n# Run tests with coverage\npoetry run pytest --cov=local_git_analyzer --cov-report=html\n\n# Run type checking\npoetry run mypy local_git_analyzer\n\n# Format code\npoetry run black local_git_analyzer\npoetry run isort local_git_analyzer\n\n# Or use ruff for linting and formatting\npoetry run ruff check local_git_analyzer\npoetry run ruff format local_git_analyzer\n```\n\n### Poetry Commands\n\n```bash\n# Add a new dependency\npoetry add <package>\n\n# Add a development dependency\npoetry add --group dev <package>\n\n# Update dependencies\npoetry update\n\n# Show dependency tree\npoetry show --tree\n\n# Build the package\npoetry build\n\n# Publish to PyPI\npoetry publish\n```\n\n### Project Structure\n\n```\nlocal_git_analyzer/\n\u251c\u2500\u2500 main.py # FastMCP server entry point\n\u251c\u2500\u2500 config.py # Configuration and settings\n\u251c\u2500\u2500 models/ # Pydantic data models\n\u251c\u2500\u2500 services/ # Business logic services\n\u251c\u2500\u2500 tools/ # FastMCP tools\n\u251c\u2500\u2500 tests/ # Test files\n\u251c\u2500\u2500 pyproject.toml # Poetry configuration\n\u2514\u2500\u2500 README.md # This file\n```\n\n## Testing\n\n```bash\n# Run all tests\npoetry run pytest\n\n# Run with coverage\npoetry run pytest --cov=local_git_analyzer\n\n# Run specific test file\npoetry run pytest tests/test_git_client.py\n\n# Run tests with specific markers\npoetry run pytest -m unit\npoetry run pytest -m integration\n```\n\n## License\n\nMIT License\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "MCP server for analyzing outstanding git changes in repositories",
"version": "0.1.0",
"project_urls": {
"Documentation": "https://github.com/manavgup/mcp_local_repo_analyzer#readme",
"Homepage": "https://github.com/manavgup/mcp_local_repo_analyzer",
"Repository": "https://github.com/manavgup/mcp_local_repo_analyzer"
},
"split_keywords": [
"mcp",
" model-context-protocol",
" git",
" repository-analysis",
" mcp-server"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d9f2afe64554497f135ab311d10429f0d0ff65806d479fe6e9a76e06840554e8",
"md5": "da216c89d39bda08f44574b4c67850c8",
"sha256": "19e2ee41f851ca0e522cc5e625080e7ba804bacbb0f746ad8893cbc7f7726ab9"
},
"downloads": -1,
"filename": "mcp_local_repo_analyzer-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "da216c89d39bda08f44574b4c67850c8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 105771,
"upload_time": "2025-08-07T14:29:30",
"upload_time_iso_8601": "2025-08-07T14:29:30.669303Z",
"url": "https://files.pythonhosted.org/packages/d9/f2/afe64554497f135ab311d10429f0d0ff65806d479fe6e9a76e06840554e8/mcp_local_repo_analyzer-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3ab84d7f77b196d4823912aff124171f16894c694f18178e6e9ac4cf32f7bd28",
"md5": "a3ea3263ea6aedc70ddd2c4d3432f75e",
"sha256": "c11cc58a97989340179b34bd4a050509518f338b2adb500196ee9d140d110b88"
},
"downloads": -1,
"filename": "mcp_local_repo_analyzer-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "a3ea3263ea6aedc70ddd2c4d3432f75e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 78698,
"upload_time": "2025-08-07T14:29:32",
"upload_time_iso_8601": "2025-08-07T14:29:32.059957Z",
"url": "https://files.pythonhosted.org/packages/3a/b8/4d7f77b196d4823912aff124171f16894c694f18178e6e9ac4cf32f7bd28/mcp_local_repo_analyzer-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-07 14:29:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "manavgup",
"github_project": "mcp_local_repo_analyzer",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "mcp-local-repo-analyzer"
}