GitHub MCP Server Integration について
GitHub MCP Server Integrationは、GitHub APIを利用するAIアシスタント向けのFastAPIサーバーです。ユーザー情報の取得、リポジトリ一覧、Issue作成に対応します。
主な機能
- 01認証済みGitHubユーザー情報の取得
- 02ユーザー名によるリポジトリ一覧
- 03リポジトリへのIssue作成
- 04GitHubトークンによる認証
活用シーン
- 01アシスタントによるGitHubプロフィールの取得
- 02ユーザーのリポジトリの確認
- 03AIアシスタントからのIssue作成
MCP 対応
MCPサーバーとして、GitHubユーザー情報の取得、リポジトリ一覧、Issue作成をAIアシスタントに公開します。OpenAPIとai-plugin.jsonでエンドポイントとメタデータを記述します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GitHub MCP サーバー連携
このプロジェクトでは、GitHub API と連携する Model Context Protocol(MCP)サーバーを紹介します。Claude や OpenAI GPT などの AI アシスタントが、MCP を使って GitHub とやり取りできるようにします。
🌐 ライブデモ
👉 デプロイ済みサーバーのリンク
👉 .well-known/ai-plugin.json エンドポイント:
https://github-mcp-server-production.up.railway.app/.well-known/ai-plugin.json
📖 プロジェクトの概要
この MCP サーバーは、AI アシスタントが次の操作を行える REST API を公開します。
- GitHub ユーザーのプロフィール情報を取得する
- ユーザーのリポジトリ一覧を取得する
- リポジトリにイシューを作成する
このサーバーは、AI システムとの相互運用性を確保するため、Model Context Protocol(MCP) の規格に準拠しています。
🔧 技術スタック
- FastAPI(API 構築用の Python フレームワーク)
- OpenAPI(REST API を記述するための規格)
- ai-plugin.json(MCP メタデータの設定)
- GitHub REST API v3
- Railway にデプロイ
✨ 機能
- OpenAPI ドキュメントを備えた MCP 準拠サーバー
- 個人アクセストークンを使用した GitHub との安全な連携
- AI アシスタントで次の操作が可能です。
- GitHub ユーザーの詳細を取得する
- ユーザー名からリポジトリ一覧を取得する
- リポジトリにイシューを作成する
📂 プロジェクト構成
├── ai-plugin.json # MCP Plugin metadata for AI Assistants
├── openapi.yaml # OpenAPI spec describing the available endpoints
├── main.py # FastAPI MCP server code
├── requirements.txt # Python dependencies
└── README.md # Project documentation (this file)
🚀 仕組み
1. FastAPI サーバー
- 次のような REST API エンドポイントを公開します。
/github/user/github/repos/{username}/github/repos/{owner}/{repo}/issues
2. ai-plugin.json
- AI アシスタントが MCP サーバーを理解するためのメタデータです。
- プラグイン名、説明
- 認証方法
- OpenAPI URL 参照
3. openapi.yaml
- AI アシスタントがやり取りするための、すべてのルートとパラメーターを定義します。
🔐 認証
- GitHub 個人アクセストークン(PAT)
- 環境変数として設定します:
GITHUB_TOKEN .envファイル、または Railway の環境設定で直接使用します。
- 環境変数として設定します:
⚙️ セットアップ手順(ローカル開発)
前提条件:
- Python 3.9+
repo権限を持つ GitHub 個人アクセストークン(PAT)
リポジトリをクローン:
git clone https://github.com/yourusername/github-mcp-server.git
cd github-mcp-server
依存関係をインストール:
pip install -r requirements.txt
.env ファイルを作成:
GITHUB_TOKEN=your_personal_access_token
FastAPI サーバーを実行:
uvicorn main:app --reload
Swagger UI を表示するには、http://localhost:8000/docs にアクセスしてください。
🌍 デプロイ(Railway)
- Railway にログインします
- 新しいプロジェクトを作成 → GitHub からデプロイ → MCP リポジトリを選択します
- Railway の環境変数として
GITHUB_TOKENを追加します - 起動コマンドを確認します。
uvicorn main:app --host 0.0.0.0 --port 8000 - デプロイして、本番環境の URL(例:
https://github-mcp-server-production.up.railway.app)を取得します
🤖 AI アシスタントでのデモ
Claude AI / OpenAI GPT プラグイン(アクセス状況に応じて任意)
- AI アシスタントの設定に
.well-known/ai-plugin.jsonの URL を登録します。 - 自然言語のプロンプトを使ってやり取りします。
"List my GitHub repositories." "Create an issue in my repo named 'sample-repo'."
📜 OpenAPI エンドポイント
| エンドポイント | メソッド | 説明 |
|---|---|---|
/github/user | GET | 認証済みユーザー情報を取得する |
/github/repos/{username} | GET | ユーザーのリポジトリ一覧を取得する |
/github/repos/{owner}/{repo}/issues | POST | リポジトリにイシューを作成する |
📝 リクエスト例
ユーザー情報を取得
curl -X GET https://github-mcp-server-production.up.railway.app/github/user
リポジトリ一覧を取得
curl -X GET https://github-mcp-server-production.up.railway.app/github/repos/<username>
イシューを作成
curl -X POST https://github-mcp-server-production.up.railway.app/github/repos/<owner>/<repo>/issues \
-H "Content-Type: application/json" \
-d '{"title": "Bug found!", "body": "Please fix this bug."}'
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。