GitHub MCP Server について
GitHub MCP Serverは、LLMアプリケーションにGitHub APIへの標準インターフェースを提供するGo製サーバーです。リポジトリやファイルの操作に加え、Pull Requestの作成とレビューに対応し、stdioまたはSSEで動作します。
主な機能
- 01リポジトリの検索と作成
- 02ファイルの読み取り・作成・更新
- 03複数ファイルのプッシュ
- 04リポジトリのフォーク
- 05Pull Requestの作成と詳細取得
- 06Pull Requestレビューの追加
活用シーン
- 01条件に合うリポジトリの検索
- 02GitHubリポジトリ内のファイル更新
- 03複数ファイルの変更をまとめて送信
- 04Pull Requestの作成とレビュー
MCP 対応
GitHubのリポジトリ、ファイル、Pull Requestの操作をMCPツールとして提供します。stdioとSSEのトランスポートに対応し、GitHubトークンで認証します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
プロジェクトの README よりGitHub MCP Server
Model Context Protocol (MCP) を使用したGitHub統合サーバーです。このサーバーはLLM(大規模言語モデル)アプリケーションがGitHub APIと通信するための標準化されたインターフェースを提供します。
機能
このサーバーは以下の機能を提供します:
- リポジトリの検索
- リポジトリの作成
- ファイルの内容の取得
- ファイルの作成・更新
- 複数ファイルの一括プッシュ
- リポジトリのフォーク
- Pull Requestの作成
- Pull Requestの詳細取得
- Pull Requestへのレビュー追加
インストール
go get github.com/yamagai/github-mcp-server-sse
使用方法
標準入出力モード (Stdio)
# 環境変数でGitHubトークンを設定
export GITHUB_TOKEN=your_github_token
# サーバーを起動(デフォルトは標準入出力モード)
github-mcp
# または明示的に標準入出力モードを指定
github-mcp -t stdio
SSEモード
# 環境変数でGitHubトークンを設定(または各リクエストのAuthorizationヘッダーで指定)
export GITHUB_TOKEN=your_github_token
# デフォルトポート(8080)でSSEサーバーを起動
github-mcp -t sse
# カスタムポートでSSEサーバーを起動
github-mcp -t sse -p 3000
SSEモードでは、HTTPリクエストのAuthorizationヘッダーにGitHubトークンを含めることもできます:
curl -H "Authorization: Bearer YOUR_GITHUB_TOKEN" http://localhost:8080/events
Dockerコンテナでの使用
SSEモードでサーバーを実行するDockerコンテナが提供されています。
ビルド方法
# Dockerイメージをビルド
docker build -t github-mcp-server-sse .
実行方法
# 環境変数でGitHubトークンを指定して実行
docker run -p 8080:8080 -e GITHUB_TOKEN=your_github_token github-mcp-server-sse
# カスタムポートで実行(環境変数でポートを指定)
docker run -p 3000:3000 -e GITHUB_TOKEN=your_github_token -e PORT=3000 github-mcp-server-sse
ツール一覧
| ツール名 | 説明 |
|---|---|
| search_repositories | GitHubリポジトリを検索します |
| create_repository | 新しいGitHubリポジトリを作成します |
| get_file_contents | GitHubリポジトリからファイルの内容を取得します |
| create_or_update_file | GitHubリポジトリにファイルを作成または更新します |
| push_files | 複数のファイルを一度にGitHubリポジトリにプッシュします |
| fork_repository | GitHubリポジトリをフォークします |
| create_pull_request | GitHubリポジトリに新しいPull Requestを作成します |
| get_pull_request | GitHubリポジトリからPull Requestの詳細を取得します |
| create_pull_request_review | Pull Requestにレビューを作成します |
開発
# 依存関係の解決
go mod tidy
# ビルド
go build
# テスト
go test ./...
コマンドラインオプション
| オプション | 短縮形 | 説明 | デフォルト値 |
|---|---|---|---|
| --transport | -t | 使用するトランスポートタイプ (stdio または sse) | stdio |
| --port | -p | SSEサーバーのポート番号 | 8080 |
参考
このプロジェクトはMCP-Goライブラリを使用しています。詳細なドキュメントについては、そちらを参照してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。