# =============================================================================
# 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/62/45/85a675bf1f2e3f9a31bfdb8a470228956ee2c116d755bd9192b913b47832/mcp_local_repo_analyzer-0.1.1.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.1",
"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": "936405cf2b79ea6268f654720459335074a9a5b9c168025cbd43623e6d5989d6",
"md5": "63385cedfa2b16aabc1f46843bcf762c",
"sha256": "221875690138d7481931da292716e01f61fa0d8ce7728ed803baa7d9fafc6e30"
},
"downloads": -1,
"filename": "mcp_local_repo_analyzer-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "63385cedfa2b16aabc1f46843bcf762c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 42490,
"upload_time": "2025-08-16T14:25:00",
"upload_time_iso_8601": "2025-08-16T14:25:00.833984Z",
"url": "https://files.pythonhosted.org/packages/93/64/05cf2b79ea6268f654720459335074a9a5b9c168025cbd43623e6d5989d6/mcp_local_repo_analyzer-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "624585a675bf1f2e3f9a31bfdb8a470228956ee2c116d755bd9192b913b47832",
"md5": "678a99ee8055bac34781f50de7a1e9a2",
"sha256": "305d012626bd2fad1e8e7a0cc81c936806dbbc5152c80828b62194da71abe59d"
},
"downloads": -1,
"filename": "mcp_local_repo_analyzer-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "678a99ee8055bac34781f50de7a1e9a2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 36151,
"upload_time": "2025-08-16T14:25:02",
"upload_time_iso_8601": "2025-08-16T14:25:02.307428Z",
"url": "https://files.pythonhosted.org/packages/62/45/85a675bf1f2e3f9a31bfdb8a470228956ee2c116d755bd9192b913b47832/mcp_local_repo_analyzer-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-16 14:25:02",
"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"
}