GitHub MCP Server について
GitHub MCP Serverは、GitHubのアカウント、リポジトリ、イシュー、コミットステータスの操作をMCPクライアントに公開します。呼び出し可能なツールとURIベースのリソースを備え、GitHubトークンでアクセスします。
主な機能
- 01ユーザーと所有者の情報取得
- 02リポジトリとフォロワーの一覧表示
- 03リポジトリのイシューの取得と作成
- 04コミットステータスの確認
- 05リソース経由でのGitHubデータ参照
活用シーン
- 01ユーザーの公開プロフィールとリポジトリの確認
- 02リポジトリのイシュー一覧の取得
- 03MCPクライアントからのイシュー作成
- 04コミットステータスの確認
MCP 対応
ツールとURIベースのリソースを通じて、GitHubの操作をMCPクライアントに提供します。`.env`ファイルでGitHubトークンを設定します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
インストール方法は未掲載です
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GitHub MCP サーバー
さまざまなツールやリソースを通じて GitHub との連携機能を提供する、シンプルなカスタム構築の MCP サーバーです。
デモ
https://github.com/user-attachments/assets/63b92a95-56f3-4290-9c73-acc4ad407246
機能
- ユーザー情報とプロフィールの詳細を取得
- ユーザーのリポジトリとフォロワーを一覧表示
- リポジトリの Issue を取得
- 新しい Issue を作成
- コミットのステータスを取得
- オーナー情報を取得
- リソースベースで GitHub データにアクセス
セットアップ
- 依存関係をインストールします。
pip install -r requirements.txt
- プロジェクトのルートに
.envファイルを作成し、GitHub トークンを追加します。
GITHUB_TOKEN=your_github_token_here
次の権限を持つ GitHub トークンは、https://github.com/settings/personal-access-tokens で作成できます。
repo(プライベートリポジトリの完全な制御)read:user(ユーザープロフィールデータの読み取り)user:follow(ユーザーのフォローとフォロー解除)
利用可能なツール
owner_info(): 認証済み GitHub ユーザーの情報を取得get_user_info(username): GitHub ユーザーの情報を取得list_followers(username, limit=10): GitHub ユーザーのフォロワーを一覧表示list_repositories(username, limit=5): GitHub ユーザーのリポジトリを一覧表示get_repo_issues(owner, repo, state="open"): リポジトリの Issue を取得create_issue(owner, repo, title, body, labels=None): 新しい Issue を作成get_commit_statuses(owner, repo, sha): 特定のコミット SHA のステータスを取得
利用可能なリソース
github://user/{username}: ユーザーの GitHub プロフィールを取得github://followers/{username}: ユーザーのフォロワーを一覧表示github://repos/{username}: ユーザーのリポジトリを一覧表示github://issues/{owner}/{repo}: リポジトリの Issue を取得github://commit-status/{owner}/{repo}/{sha}: 特定のコミットのステータスを取得
サーバーの実行
python server.py
使用例
# Get authenticated user information
user_info = owner_info()
# Get user information
user_info = get_user_info("octocat")
# List followers
followers = list_followers("octocat", limit=5)
# List repositories
repos = list_repositories("octocat", limit=3)
# Get repository issues
issues = get_repo_issues("octocat", "Hello-World")
# Create a new issue
new_issue = create_issue(
"octocat",
"Hello-World",
"Bug Report",
"Found a bug in the code",
labels=["bug"]
)
# Get commit statuses
statuses = get_commit_statuses("octocat", "Hello-World", "abc123")
レスポンス形式の例
ユーザー情報
{
"name": "The Octocat",
"login": "octocat",
"bio": "GitHub's mascot",
"public_repos": 8,
"followers": 1000,
"following": 9
}
リポジトリ情報
{
"name": "Hello-World",
"description": "My first repository",
"stars": 100,
"forks": 50,
"language": "Python"
}
Issue 情報
{
"number": 1,
"title": "Bug Report",
"state": "open",
"created_at": "2024-05-04T14:35:40.784Z",
"user": "octocat"
}
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。