FastMCP GitHub Automation Server
GITパイロット
GIT-Pilotは、GitHub操作のための包括的なAPIラッパーを提供する、強力なGitHub自動化・管理ツールです。FastMCPベースのサーバーを通じてGitHubとのやり取りを簡素化し、リポジトリ、プルリクエスト、問題管理などを容易にします。
🌟 特徴
🔐 認証とセキュリティ
Fernetを使用した暗号化による安全なトークン管理
トークンの有効期限と自動クリーンアップ
レート制限の処理と自動再試行
設定可能な認証タイムアウト
📦 リポジトリ管理
リポジトリの作成と管理
ブランチとコミットを処理する
ファイル操作(作成、更新、削除)
リポジトリの検索とフィルタリング
コミットの比較と履歴
🔄 プルリクエスト操作
プルリクエストの作成と管理
マージ戦略(マージ、スカッシュ、リベース)
ステータスチェックの検証
競合の検出と処理
ドラフトPRサポート
📝 問題管理
問題の作成と更新
ラベル管理
譲受人の取り扱い
コメント管理
問題の検索とフィルタリング
🛠 技術的特徴
スレッドセーフな操作
リソース管理
包括的なエラー処理
詳細なログ記録
型安全性
構成管理
FastMCPサーバー統合
Related MCP server: GitHub MCP Server
🚀 はじめに
前提条件
Python 3.12以上
GitHubアカウント
GitHub 個人アクセストークン
FastMCP CLI(オプション)
インストール
リポジトリをクローンします。
git clone https://github.com/yourusername/GIT-Pilot.git
cd GIT-Pilotuv をインストールします (まだインストールされていない場合)。
curl -LsSf https://astral.sh/uv/install.sh | sh仮想環境を作成してアクティブ化します。
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activateuv を使用してパッケージをインストールします。
uv pip install -e .環境変数を設定します。プロジェクト ルートに
.envファイルを作成します。
GITHUB_TOKEN=your_github_token_here基本的な使い方
Claude デスクトップ統合の設定
GIT-Pilot サーバーを起動します。
uv run main.pyClaude Desktopをダウンロードしてインストールする
Claude デスクトップを設定します。
クロードデスクトップを開く
File > Settings > Developer > Edit Configに移動します次の構成を追加します。
{
"mcpServers": {
"GIT-Pilot": {
"command": "uv",
"args": [
"--directory",
"path\\to\\repo",
"run",
"main.py"
]
}
}
}Claudeデスクトップを再起動します
チャットウィンドウのハンマーアイコンを探してください - これはMCPサーバーが使用可能であることを示します
APIの例
# 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
)🔧 構成
サービスはConfigクラスを通じて構成できます。
@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()🛡 セキュリティ
トークンはFernetを使用して保存時に暗号化されます
自動トークンの有効期限とクリーンアップ
再試行によるレート制限保護
入力検証
包括的なエラー処理
安全なトークンのクリーンアップ
🔄 レート制限
このサービスには、レート制限処理機能が組み込まれています。
レート制限時の自動再試行
設定可能な再試行回数
再試行間の遅延
レート制限ステータスのログ記録
指数バックオフ
🧪 エラー処理
以下の包括的なエラー処理:
認証失敗
APIエラー
レート制限
無効な入力
資源の競合
ネットワークの問題
トークンの検証
ファイル操作
📈 ログ記録
次の詳細なログ記録:
タイムスタンプ
ログレベル
関数名
行番号
エラーの詳細
スタックトレース
レート制限情報
トークン操作
🤝 貢献する
ご協力をお待ちしております!以下の手順に従ってください。
リポジトリをフォークする
機能ブランチを作成する
変更をコミットする
ブランチにプッシュする
プルリクエストを作成する
📝 ライセンス
このプロジェクトは、GNU General Public License v3.0 に基づいてライセンスされています。詳細については、 LICENSEファイルを参照してください。
🙏 謝辞
GIT-Pilotチームが❤️を込めて作成しました
This server cannot be deployed
Maintenance
Related MCP Connectors
GitHub MCP — wraps the GitHub public REST API (no auth required for public endpoints)
Access the GitHub API, enabling file operations, repository management, search functionality, and…
Manage repositories, users, releases, and automate GitHub workflows
Create, deploy, and operate MCP servers directly from your GitHub repositories.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides tools for interacting with GitHub's API through the MCP protocol, allowing users to create repositories, push content, and retrieve user information.378 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables interaction with GitHub repositories through the GitHub API using fastMCP. Supports repository information retrieval and management with secure token-based authentication.-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that wraps the GitHub CLI to provide comprehensive access to repository management, pull requests, issues, and workflows. It enables users to perform complex GitHub operations and interact with the GitHub API through a standardized interface.2 npm1ISC
- FlicenseNot gradedqualityDmaintenanceProvides access to GitHub v3 REST API functionality through STDIO mode with FastMCP, enabling users to interact with GitHub resources.-