GitHub MCP Server について
GitHub MCP Serverは、MCPサーバーの実装とテストを行うプロジェクトです。GitHub APIの操作をLLMエージェントに提供したい開発者向けで、リポジトリ操作、コード検索、IssueやPRの管理に対応します。
主な機能
- 01リポジトリの作成と管理
- 02ファイルの追加と編集
- 03ブランチ管理
- 04GitHub上のコード検索
- 05IssueとPRの作成・更新
- 06GitHub APIトークン認証
活用シーン
- 01エージェントによるGitHubリポジトリ情報の取得
- 02エージェント経由でIssueを作成・更新
- 03GitHub上のコード検索
- 04リポジトリ内のファイル編集やブランチ管理
MCP 対応
MCPサーバーを実装し、`/mcp/describe`で機能を記述し、`/mcp/execute`でコマンドを実行、`/mcp/state`で状態を取得・更新します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
プロジェクトの README よりGitHub MCP Server
このリポジトリは Model Context Protocol (MCP) サーバーの実装と使用方法のテストを行うためのものです。
概要
Model Context Protocol (MCP) は、大規模言語モデル (LLM) とクライアントアプリケーション間の通信を標準化するためのプロトコルです。このプロトコルを使用することで、エージェントは外部ツールやクライアントアプリケーションと効果的に連携することができます。
GitHub MCPサーバーは、GitHub APIと連携し、リポジトリ操作、コード検索、イシュー管理などの機能をLLMエージェントに提供します。
特徴
- リポジトリ操作: リポジトリの作成、ファイルの追加・編集、ブランチ管理
- コード検索: GitHub上のコードを検索
- イシュー/PR管理: イシューやプルリクエストの作成、更新、コメント
- 認証管理: GitHub APIとの安全な認証
必要条件
- Node.js (v16.0.0以上)
- npm または yarn
- GitHub アカウントと個人アクセストークン (PAT)
インストール方法
# リポジトリをクローン
git clone https://github.com/tomo-cps/mcp-test.git
cd mcp-test
# 依存パッケージのインストール
npm install
# または
yarn install
設定
.envファイルを作成し、以下の環境変数を設定:
GITHUB_TOKEN=your_github_personal_access_token
PORT=3000
- GitHub 個人アクセストークンを取得する方法:
- GitHub にログイン
- 右上のプロフィールアイコン > Settings > Developer settings > Personal access tokens
- "Generate new token" をクリック
- 必要な権限を選択 (repo, user, read:org 推奨)
- トークンを生成し、
.envファイルに保存
サーバーの起動
# 開発モード
npm run dev
# または
yarn dev
# 本番モード
npm start
# または
yarn start
デフォルトでは、サーバーは http://localhost:3000 で実行されます。
API エンドポイント
このMCPサーバーは以下の主要なエンドポイントを提供します:
/mcp/describe: 利用可能な機能とパラメータを記述/mcp/execute: 指定されたコマンドを実行/mcp/state: 現在の状態を取得または更新
使用例
1. リポジトリ情報の取得
// クライアント側のコード例
const response = await fetch('http://localhost:3000/mcp/execute', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
command: 'get_repository',
params: {
owner: 'octocat',
repo: 'hello-world'
}
})
});
const data = await response.json();
console.log(data);
2. イシューの作成
// クライアント側のコード例
const response = await fetch('http://localhost:3000/mcp/execute', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
command: 'create_issue',
params: {
owner: 'your-username',
repo: 'your-repo',
title: 'バグ: ログイン画面で問題が発生',
body: '詳細な説明をここに記述します...',
labels: ['bug', 'priority:high']
}
})
});
const data = await response.json();
console.log(data);
トラブルシューティング
一般的な問題と解決方法:
- 認証エラー: GitHub トークンが正しく設定されていることを確認してください。
- レート制限: GitHub API にはレート制限があります。制限に達した場合、しばらく待ってから再試行してください。
- CORS エラー: クロスオリジン呼び出し時には、サーバーが適切な CORS ヘッダーを設定していることを確認してください。
コントリビューション
- このリポジトリをフォーク
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add some amazing feature') - ブランチにプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
ライセンス
MIT License - 詳細は LICENSE ファイルを参照してください。
参考資料
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。