🚀 GitHub MCP Server - FastAPI Implementation について
AI アシスタントから GitHub を操作する FastAPI ベースの MCP サーバーです。リポジトリや Issue を管理でき、任意で Issue の要約も行えます。
主な機能
- 01ユーザー情報とリポジトリの取得
- 02リポジトリ Issue の作成と一覧表示
- 03リポジトリへのスター付与
- 04任意の AI による Issue 要約
- 05非同期 FastAPI API
活用シーン
- 01GitHub アカウントのリポジトリ確認
- 02Issue の作成と既存 Issue の確認
- 03アシスタント経由でリポジトリにスターを付与
- 04リポジトリ Issue の要約
MCP 対応
FastAPI サーバーを通じて、GitHub アカウント、リポジトリ、Issue の操作を MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🚀 GitHub MCP Server - FastAPI 実装
🌟 概要
このプロジェクトでは、FastAPI を使用して Model Context Protocol(MCP)サーバーを実装し、Claude のような AI アシスタントが GitHub と連携できるようにします。このサーバーは、ユーザー情報の取得、リポジトリの管理、イシューの作成、GitHub ワークフローの自動化を行う API エンドポイントを提供します。
✨ 機能
- ✅ GitHub ユーザー情報とリポジトリの取得
- ✅ リポジトリのイシューの作成と管理
- ✅ リポジトリ内のすべてのイシューの一覧表示
- ✅ リポジトリにスターを付ける
- ✅ AI を活用したGitHub イシューの要約(任意)
- ✅ GitHub OAuth Tokenによる安全な API
- ✅ 非同期の FastAPI 実装
🛠️ セットアップとインストール
1️⃣ リポジトリをクローンする
git clone https://github.com/snehaapratap/mcp-server.git
cd mcp-server
2️⃣ 仮想環境を作成して有効化する
python3 -m venv venv
source venv/bin/activate
3️⃣ 依存関係をインストールする
pip install -r requirements.txt
4️⃣ 環境変数を設定する
ルートディレクトリに .env ファイルを作成し、**GitHub Personal Access Token(PAT)**を追加します。
GITHUB_TOKEN=your_personal_access_token
5️⃣ FastAPI サーバーを起動する
uvicorn server:app --reload
サーバーは http://127.0.0.1:8000 で起動します。
🔥 API エンドポイント
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | / | MCP サーバーのヘルスチェック |
| GET | /github/user | GitHub ユーザー情報を取得 |
| GET | /github/repos | 認証済みユーザーのすべてのリポジトリを取得 |
| POST | /github/create-issue | リポジトリにイシューを作成 |
| GET | /github/list-issues | リポジトリ内のすべてのイシューを一覧表示 |
| PUT | /github/star-repo | リポジトリにスターを付ける |
| POST | /github/summarize-issues | AI を活用したイシューの要約(任意) |
⚡ 使用例(cURL)
🔹 ユーザー情報を取得する
curl -X GET "http://127.0.0.1:8000/github/user"
🔹 リポジトリを取得する
curl -X GET "http://127.0.0.1:8000/github/repos"
🔹 イシューを作成する
curl -X POST "http://127.0.0.1:8000/github/create-issue?owner=your-username&repo=your-repo&title=New%20Issue&body=This%20is%20a%20test%20issue"
🔹 リポジトリにスターを付ける
curl -X PUT "http://127.0.0.1:8000/github/star-repo?owner=your-username&repo=your-repo"
🎥 スライド
📌 スライドを見る
🛡️ エラー処理
API はエラーを適切に処理し、わかりやすいメッセージを返します。
{
"error": "Invalid GitHub Token",
"hint": "Ensure your token has the 'repo' scope."
}
🎯 今後の機能強化
- 🔹 プルリクエスト管理への対応
- 🔹 リアルタイムの GitHub 通知に対応する WebSockets の実装
- 🔹 CI/CD パイプラインを利用した AWS/GCP へのデプロイ
💡 コントリビューション
このプロジェクトを改善しませんか?お気軽に プルリクエストを作成するか、イシューを登録してください。
👨💻 作者
🔹 Sneha P Pratap
🔹 GitHub: @snehaapratap
🔹 LinkedIn: Sneha Prem Pratap
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。