mcp-local-repo-analyzer


Namemcp-local-repo-analyzer JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/manavgup/mcp_local_repo_analyzer
SummaryMCP server for analyzing outstanding git changes in repositories
upload_time2025-08-07 14:29:32
maintainerNone
docs_urlNone
authorManav Gupta
requires_python<4.0,>=3.10
licenseMIT
keywords mcp model-context-protocol git repository-analysis mcp-server
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # =============================================================================
# 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"
}
        
Elapsed time: 2.22731s