Skip to main content
Glama
SiddheshDongare

FastMCP GitHub Automation Server

GIT-Pilot

Python Version License GitHub

GIT-Pilot is a powerful GitHub automation and management tool that provides a comprehensive API wrapper for GitHub operations. It simplifies GitHub interactions through a FastMCP-based server, making it easy to manage repositories, pull requests, issues, and more.

🌟 Features

πŸ” Authentication & Security

  • Secure token management with encryption using Fernet

  • Token expiration and automatic cleanup

  • Rate limit handling and automatic retries

  • Configurable authentication timeouts

πŸ“¦ Repository Management

  • Create and manage repositories

  • Handle branches and commits

  • File operations (create, update, delete)

  • Repository search and filtering

  • Commit comparison and history

πŸ”„ Pull Request Operations

  • Create and manage pull requests

  • Merge strategies (merge, squash, rebase)

  • Status check validation

  • Conflict detection and handling

  • Draft PR support

πŸ“ Issue Management

  • Create and update issues

  • Label management

  • Assignee handling

  • Comment management

  • Issue search and filtering

πŸ›  Technical Features

  • Thread-safe operations

  • Resource management

  • Comprehensive error handling

  • Detailed logging

  • Type safety

  • Configuration management

  • FastMCP server integration

Related MCP server: GitHub MCP Server Plus

πŸš€ Getting Started

Prerequisites

  • Python 3.12 or higher

  • GitHub account

  • GitHub Personal Access Token

  • FastMCP CLI (optional)

Installation

  1. Clone the repository:

git clone https://github.com/yourusername/GIT-Pilot.git
cd GIT-Pilot
  1. Install uv (if not already installed):

curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Create and activate a virtual environment:

uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. Install the package using uv:

uv pip install -e .
  1. Set up environment variables: Create a .env file in the project root:

GITHUB_TOKEN=your_github_token_here

Basic Usage

Setting Up Claude Desktop Integration

  1. Start the GIT-Pilot server:

uv run main.py
  1. Download and install Claude Desktop

  2. Configure Claude Desktop:

    • Open Claude Desktop

    • Go to File > Settings > Developer > Edit Config

    • Add the following configuration:

{
    "mcpServers": {
        "GIT-Pilot": {
            "command": "uv",
            "args": [
                "--directory",
                "path\\to\\repo",
                "run",
                "main.py"
            ]
        }
    }
}
  1. Restart Claude Desktop

  2. Look for the hammer icon in the chat window - this indicates the MCP server is ready to use

API Examples

# Create a repository
await call_tool("create_repository",
    name="my-repo",
    description="My awesome repository",
    private=True,
    has_issues=True,
    has_wiki=True,
    has_projects=True,
    auto_init=True
)

# Create a pull request
await call_tool("create_pull_request",
    repo_path="owner/repo",
    title="New feature",
    head="feature-branch",
    base="main",
    body="Description of changes",
    draft=False
)

# List commits with filtering
await call_tool("list_commits",
    repo_path="owner/repo",
    branch="main",
    author="username",
    since="2024-01-01",
    until="2024-04-21",
    max_results=30
)

πŸ”§ Configuration

The service can be configured through the Config class:

@dataclass
class Config:
    TOKEN_TTL_HOURS: int = 24
    MAX_STORED_TOKENS: int = 1000
    CLEANUP_INTERVAL_SECONDS: int = 3600
    MAX_RETRIES: int = 3
    RETRY_DELAY_SECONDS: int = 5
    MAX_RESULTS_PER_PAGE: int = 100
    ENCRYPTION_KEY: bytes = Fernet.generate_key()

πŸ›‘ Security

  • Tokens are encrypted at rest using Fernet

  • Automatic token expiration and cleanup

  • Rate limit protection with retries

  • Input validation

  • Comprehensive error handling

  • Secure token cleanup

πŸ”„ Rate Limiting

The service includes built-in rate limit handling:

  • Automatic retry on rate limit

  • Configurable retry attempts

  • Delay between retries

  • Rate limit status logging

  • Exponential backoff

πŸ§ͺ Error Handling

Comprehensive error handling for:

  • Authentication failures

  • API errors

  • Rate limits

  • Invalid inputs

  • Resource conflicts

  • Network issues

  • Token validation

  • File operations

πŸ“ˆ Logging

Detailed logging with:

  • Timestamp

  • Log level

  • Function name

  • Line number

  • Error details

  • Stack traces

  • Rate limit information

  • Token operations

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository

  2. Create a feature branch

  3. Commit your changes

  4. Push to the branch

  5. Create a Pull Request

πŸ“ License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

πŸ™ Acknowledgments


Made with ❀️ by the GIT-Pilot team

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SiddheshDongare/GIT-Pilot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server