Skip to main content
Glama
charlesnpx
by charlesnpx

GitHub MCP

汎用の読み取り専用リモート MCP コネクタで、GitHub App インストールを通じて選択された GitHub リポジトリを照会します。セルフホスティング向けに設計されており、GitHub、Cloudflare、MCP クライアントのアカウント識別子は一切含まれません。

このコネクタは、2 つの認可レイヤーを使用します。

  1. ユーザーは GitHub App を承認して自分の GitHub アイデンティティを証明します。接続を完了できるのは、オペレーターが設定したログインのみです。

  2. ツール呼び出しは、要求されたインストール済みリポジトリに制限された短時間有効な GitHub App インストールトークンを使用します。

GitHub ユーザートークンは本人確認後に破棄されます。このコネクタは書き込みツールを公開しません。

機能

  • GitHub App インストールで選択されたリポジトリを検出します。

  • コードを検索し、テキストファイルまたはディレクトリ一覧を取得します。

  • コミット、プルリクエスト、diff、レビュー、コメントを確認します。

  • イシューとイシューコメントを確認します。

  • OAuth、PKCE、Dynamic Client Registration を使用してリモート MCP クライアントを認証します。

Related MCP server: GitHub Code Search MCP Server

ローカル開発

要件: Node 22 以降および Yarn 1.22。

yarn install
yarn type-check
yarn lint
yarn test
yarn build

テストは偽のアイデンティティとモック化された GitHub サービスを使用します。ローカル検証には GitHub App や Cloudflare のアカウントは必要ありません。

Worker を実際のサービスに対して実行するには、オペレーターセットアップガイド に従ってください。wrangler.jsonc、ローカルシークレット、GitHub App の秘密鍵をコミットしないでください。

MCP ツール

ツール

目的

list_repositories

アプリのインストールで選択されたリポジトリを一覧表示します。

search_code

インストール済みの 1 つのリポジトリ内を検索します。

list_directory

指定された ref で 1 つのリポジトリディレクトリを一覧表示します。

get_file

UTF-8 テキストファイルを取得します。行範囲指定も可能です。

list_commits / get_commit

リポジトリの履歴を確認します。

list_pull_requests / get_pull_request

プルリクエスト、ファイル、diff、レビュー、コメントを確認します。

get_pull_request_diff

プルリクエストの unified diff を取得します。

list_issues / get_issue

イシューとイシューコメントを確認します。

結果は GitHub API のライブレスポンスであり、正規の GitHub URL を含む上限付き JSON に正規化されます。ページネーションは既定で 20 件、最大 50 件です。テキストと diff の出力は 100,000 文字に制限されます。

セキュリティモデル

  • AUTHORIZED_GITHUB_LOGINS は必須であり、空の場合はフェイルクローズします。

  • GitHub App インストールにより、このコネクタに存在するリポジトリが決定されます。

  • 各リポジトリのツール呼び出しは、そのリポジトリに限定された 1 時間有効なトークンを発行します。

  • 必要な GitHub App 権限は、読み取り専用の Metadata、Contents、Issues、Pull Requests です。

  • OAuth コード、ユーザートークン、インストールトークン、クライアントシークレット、秘密鍵が返信されたり、意図的にログに記録されることはありません。

このプロジェクトは、個人または小規模チーム向けのコネクタであり、ホスト型のマルチエナントサービスではありません。

ライセンス

このプロジェクトは MIT License の下で提供されています。

Related MCP Connectors

Related MCP Servers