mcpField
G
GitHub MCP Server Integration

GitHub MCP Server Integration

ローカル
github.com/faheema15バージョン管理085 週間前に更新

GitHub MCP Server Integration について

GitHub MCP Server Integrationは、GitHub APIを利用するAIアシスタント向けのFastAPIサーバーです。ユーザー情報の取得、リポジトリ一覧、Issue作成に対応します。

主な機能

  1. 01認証済みGitHubユーザー情報の取得
  2. 02ユーザー名によるリポジトリ一覧
  3. 03リポジトリへのIssue作成
  4. 04GitHubトークンによる認証

活用シーン

  1. 01アシスタントによるGitHubプロフィールの取得
  2. 02ユーザーのリポジトリの確認
  3. 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)

  1. Railway にログインします
  2. 新しいプロジェクトを作成 → GitHub からデプロイ → MCP リポジトリを選択します
  3. Railway の環境変数として GITHUB_TOKEN を追加します
  4. 起動コマンドを確認します。
    uvicorn main:app --host 0.0.0.0 --port 8000
    
  5. デプロイして、本番環境の 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/userGET認証済みユーザー情報を取得する
/github/repos/{username}GETユーザーのリポジトリ一覧を取得する
/github/repos/{owner}/{repo}/issuesPOSTリポジトリにイシューを作成する

📝 リクエスト例

ユーザー情報を取得
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."}'

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。