Skip to main content
Glama

FastMCP GitHub Automation Server

GIT-Pilot

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

🚀 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

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Provides a comprehensive API wrapper for GitHub operations through a FastMCP-based server, simplifying repository management, pull requests, issues, and other GitHub interactions with secure authentication.

  1. 🌟 Features
    1. 🔐 Authentication & Security
    2. 📦 Repository Management
    3. 🔄 Pull Request Operations
    4. 📝 Issue Management
    5. 🛠 Technical Features
  2. 🚀 Getting Started
    1. Prerequisites
    2. Installation
    3. Basic Usage
    4. API Examples
  3. 🔧 Configuration
    1. 🛡 Security
      1. 🔄 Rate Limiting
        1. 🧪 Error Handling
          1. 📈 Logging
            1. 🤝 Contributing
              1. 📝 License
                1. 🙏 Acknowledgments

                  Related MCP Servers

                  • A
                    security
                    F
                    license
                    A
                    quality
                    Provides tools for mapping and analyzing GitHub repositories. It allows users to set a GitHub Personal Access Token and retrieve detailed information about a specified repository, including its structure and summary statistics.
                    Last updated -
                    2
                    17
                    TypeScript
                  • -
                    security
                    F
                    license
                    -
                    quality
                    Enables interaction with GitHub through the GitHub API, supporting file operations, repository management, advanced search, and issue tracking with comprehensive error handling and automatic branch creation.
                    Last updated -
                    9
                    1
                    TypeScript
                  • -
                    security
                    F
                    license
                    -
                    quality
                    Facilitates authentication with GitHub using OAuth protocol, allowing secure access and interaction with GitHub repositories and services.
                    Last updated -
                    2
                    Python
                    • Apple
                    • Linux
                  • -
                    security
                    F
                    license
                    -
                    quality
                    Enables interaction with GitHub issues via the Model Context Protocol, allowing users to list and create issues with secure authentication.
                    Last updated -
                    Python

                  View all related MCP servers

                  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