mcp_local_repo_analyzer

manavgup/mcp_local_repo_analyzer

3.2

If you are the rightful owner of mcp_local_repo_analyzer and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Local Git Changes Analyzer is a FastMCP server designed to analyze local git changes that have not yet been pushed to GitHub.

=============================================================================

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

# 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:

cp .env.example .env

Usage

Run the FastMCP server:

# Using Poetry
poetry run python main.py

# Or activate the virtual environment
poetry shell
python main.py

Or use the CLI:

poetry run local-git-analyzer

Development

Setup Development Environment

# 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

# 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

# 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