mcpField
G
GitHub MCP Server

GitHub MCP Server

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

GitHub MCP Server について

@sumirati/mcp-githubは、MCPクライアントをGitHub REST APIに接続し、リポジトリや開発ワークフローを扱います。5つのツール構成で幅広い操作カタログを必要に応じて検索・実行し、よく使うファイル、リポジトリ、コミット操作には直接アクセスできます。

主な機能

  1. 0113分野の操作をオンデマンド検索
  2. 02リポジトリ、ブランチ、ファイル操作
  3. 03コミットとプルリクエストのワークフロー
  4. 04Issue、Actions、リリース管理
  5. 05読み取り専用モードと出力投影

活用シーン

  1. 01リポジトリのファイルやコミット差分を調べる
  2. 02プルリクエストとコードレビューを管理する
  3. 03ワークフローを確認しジョブ失敗を調査する
  4. 04Issue、リリース、リポジトリ設定を管理する

MCP 対応

このMCPサーバーは、操作カタログの検索・実行用2ツールと、ファイル、リポジトリ、コミットへの直接アクセス用ツールを合わせた5ツールを公開します。カタログは83種類のGitHub操作を扱い、読み取り専用モードも選べます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sumirati-mcp-github": {
"command": "npx",
"args": [
"-y",
"@sumirati/mcp-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<GITHUB_PERSONAL_ACCESS_TOKEN>",
"GITHUB_API_URL": "<GITHUB_API_URL>",
"GITHUB_READ_ONLY": "<GITHUB_READ_ONLY>",
"GITHUB_EXPOSE_ALL_TOOLS": "<GITHUB_EXPOSE_ALL_TOOLS>",
"MCP_OUTPUT_FORMAT": "<MCP_OUTPUT_FORMAT>"
}
}
}
}
起動コマンドnpx -y @sumirati/mcp-github
設定が必要な環境変数
GITHUB_PERSONAL_ACCESS_TOKENシークレットGitHub Personal Access Token (classic or fine-grained)
GITHUB_API_URLGitHub API URL (defaults to https://api.github.com)
GITHUB_READ_ONLYEnable 3-tier read-only safety mode (true/false)
GITHUB_EXPOSE_ALL_TOOLSSet to 'true' to expose all 83 tools directly instead of the 5-tool hybrid discovery mode
MCP_OUTPUT_FORMATDefault output format for tool responses ('markdown' or 'json')

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@sumirati/mcp-github2.2.0

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
querystringいいえアクション名、ドメイン、説明を検索するキーワード(例:'pull request'、'issue comment'、'webhook'、'deploy'、'dependabot')
domainenumいいえ検出対象を特定の機能カテゴリに限定する任意のドメインフィルターrepositories | commits | pull-requests | issues | milestones | collaborators | variables | gists | actions | releases | security | webhooks | user
formatenumはい出力形式:'json'(デフォルト、構造化オブジェクト)または 'markdown'(人間/LLM が読みやすい簡潔なテキストテーブル)json | markdown

詳細

GitHub MCP サーバー(@sumirati/mcp-github)

自律型 AI エージェントと開発者のワークフロー向けに設計された、GitHub REST API 用の最新の 2026 年版 AI ネイティブ Model Context Protocol(MCP)サーバーです。

npm version License: MIT GitHub


v2 の特徴:2026 年の 5 ツール・ハイブリッド標準

初期の MCP サーバーでは、50~100 個以上のツール定義を積極的に公開していたため、LLM の各ターンに何千もの冗長なスキーマトークン(「システムプロンプト税」)が流れ込み、推論の一貫性が損なわれていました。

@sumirati/mcp-github は、5 ツールのハイブリッド構成でこの問題を解決します。

  • Glama TDQS 一貫性ティア A(5/5):クライアントに公開するツールを正確に 5 つにすることで、サーバーを一貫性の理想的な範囲である 3~15 ツールに収めます。
  • 極めて軽量なシステムプロンプト税:スキーマのオーバーヘッドを 23,112 トークン(92,447 B)から**1,125 トークン(4,498 B)**に削減し(95.1%削減)、コンテキストウィンドウを確保して LLM のプロンプトキャッシュのヒット率を最大化します。
  • ホップなしの即時実行:開発者とエージェントが頻繁に使う 3 つの操作(get_file_contents、get_repository、get_commit)は、ホップなしで即座に実行できるよう、引き続き積極的に公開されるツールです。
  • 必要に応じてプラットフォーム全体にアクセス:13 のドメインにわたる83 のアクションからなるプラットフォーム全体の機能を、動的なアクション検出(github_find_actions $\rightarrow$ github_execute_action)を通じて必要に応じて利用できます。既定では高密度の Markdown テーブルと要約(format: "markdown" | "json")を返し、91%~99%のトークン削減を実現します。
  • 堅牢なフォールバック:エージェントがカタログ内のアクション名(例:list_pull_requests)を直接呼び出した場合でも、サーバーは完全な入力検証と射影を行い、そのアクションを動的に実行します。
LLM Prompt Context (5-Tool Hybrid Surface):
├── 1. github_find_actions(query, [domain], [format])     [Meta Discovery]
├── 2. github_execute_action(action, params, [format])   [Meta Dynamic Execution]
├── 3. get_file_contents(owner, repo, path)               [Eager Daily Driver #1]
├── 4. get_repository(owner, repo)                        [Eager Daily Driver #2]
└── 5. get_commit(owner, repo, ref)                       [Eager Daily Driver #3]

Under the hood (Dynamic Registry):
└── 83 Curated Actions across 13 Domains (grounded in GitHub REST API 2022-11-28)

13 分野にわたる主な機能

  1. リポジトリとブランチガバナンス(repositories、12 アクション):リポジトリのライフサイクル全般、ブランチ管理、ブランチ保護ルール(get_branch_protection)、ファイルの読み取り(Base64 の自動デコード、シンボル一覧、行の範囲指定)、単一ファイルのコミット、フォークに対応します。
  2. コミットとコミットステータス(commits、6 アクション):コミット履歴、トークン上限付きのコミット差分(get_commit)、Git Trees API を使った複数ファイルのアトミックなコミット(create_commit、push_files)、コミットステータスチェックに対応します。
  3. プルリクエストとコードレビュー(pull-requests、11 アクション):PR のライフサイクル(create、update、merge)、レビューコメント、差分へのインラインレビュー、ロックファイルのフィルタリングを含む統合差分の確認に対応します。
  4. イシューとラベル(issues、8 アクション):イシュートラッキング、上流データのインデックスを使ったフィルタリング、会話コメント、ラベル管理に対応します。
  5. プロジェクトのマイルストーン(milestones、4 アクション):マイルストーンの作成、進捗管理、期限管理に対応します。
  6. コラボレーターと権限(collaborators、4 アクション):リポジトリのコラボレーターと権限レベルの監査・管理に対応します。
  7. Actions の変数とシークレット(variables、6 アクション):リポジトリの Actions 設定変数の管理と、シークレットのメタデータの確認に対応します。
  8. Gist とコードスニペット(gists、5 アクション):複数ファイルのコードスニペットや設定を共有するための、Gist のライフサイクル全般に対応します。
  9. GitHub Actions と CI/CD(actions、10 アクション):ワークフローの確認、ワークフロー実行、ジョブステップの内訳、ビルドアーティファクト(list_workflow_run_artifacts、get_workflow_run_artifact)、失敗ログのスマートな抽出(get_job_logs)、実行のキャンセル・再実行、ワークフローの手動実行に対応します。
  10. リリースと Git タグ(releases、5 アクション):リリースの公開、軽量タグ・注釈付きタグの作成、リリースアセットの確認に対応します。
  11. ユーザー、組織、チーム、診断(user、7 アクション):認証済みユーザーの識別、組織の確認、チームの作成(create_team)、アクセス可能なリポジトリの確認、API のヘルスチェックとレート制限の診断(system_health_check)に対応します。
  12. Webhook とリポジトリトピック(webhooks、4 アクション):リポジトリのイベント Webhook の監査と、リポジトリトピックタグの管理に対応します。
  13. セキュリティと Dependabot(security、1 アクション):Dependabot の脆弱性アラートを状態と深刻度で監査します。

クイックスタートとインストール

オプション 1:npx で実行(インストール不要)
npx -y @sumirati/mcp-github
オプション 2:グローバルにインストール
npm install -g @sumirati/mcp-github
mcp-github
オプション 3:ローカルクローン
git clone https://github.com/sumirati/mcp-github.git
cd mcp-github
npm install
npm test
npm start

環境設定

変数必須デフォルト説明
GITHUB_PERSONAL_ACCESS_TOKENはい—GitHub パーソナルアクセストークン(classic または fine-grained)
GITHUB_TOKENいいえ—代替のトークン変数名
GITHUB_API_URLいいえhttps://api.github.comベース API URL(または GitHub Enterprise Server)
GITHUB_READ_ONLYいいえfalse3 段階の読み取り専用モードを有効にします(true、1、yes)
GITHUB_EXPOSE_ALL_TOOLSいいえfalsetrue(または GITHUB_EXPOSE_LEGACY_TOOLS=true)に設定すると、レガシークライアント向けに ListTools で 83 個すべてのツールを直接公開します
MCP_OUTPUT_FORMATいいえmarkdownツール実行時のデフォルトの出力形式(markdown または json)

クライアント設定

Google Antigravity/Claude Desktop/Cursor

MCP 設定ファイル(mcp_config.json または claude_desktop_config.json)に追加します。

npm/npx を使用する場合(推奨):
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@sumirati/mcp-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-github-token>",
        "GITHUB_READ_ONLY": "false"
      }
    }
  }
}
ローカルクローンを使用する場合:
{
  "mcpServers": {
    "github": {
      "command": "node",
      "args": ["/path/to/mcp-github/index.js"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-github-token>",
        "GITHUB_READ_ONLY": "false"
      }
    }
  }
}

アクション一覧の完全リファレンス(83 アクション)

83 個すべてのアクションで、厳密な Zod 入力検証と 2 段階の出力プロジェクションを利用できます。

1. クライアントに公開される5つのツール(ハイブリッドモード)
ツール種類説明
github_find_actionsメタ13のすべてのドメインにわたって利用可能なGitHub操作を検索・検出し、簡潔なパラメーターシグネチャを表示します
github_execute_actionメタ検出したGitHubプラットフォームの操作を、入力検証とトークン最適化された投影を適用して実行します
get_file_contents即時任意の参照先にある生のファイル内容(Base64を自動デコード)、シンボルの概要、行範囲、またはディレクトリ一覧を読み取ります
get_repository即時リポジトリのメタデータ、公開設定、説明、デフォルトブランチ、HTML URL、件数を取得します
get_commit即時Gitコミットの詳細、作成者情報、トークン上限付きのファイル差分を確認します
2. リポジトリとブランチ(repositories — 12個のアクション)
アクション説明変更を伴う?
search_repositoriesクエリ修飾子(例:'org:myorg language:typescript')を使って、GitHub全体または組織内のリポジトリを検索します。ページネーションには上限があります(最大100件)。所有者とリポジトリ名が分かっている場合は、正確なO(1)検索を行える 'get_repository' を優先してください。いいえ
get_repository正確な所有者/リポジトリを指定して、リポジトリのメタデータ、公開設定、説明、デフォルトブランチ、クローンURL、統計情報を取得します。リポジトリの設定やデフォルトブランチ名の確認に使用してください。いいえ
create_repository認証済みユーザーのアカウントまたは指定した組織の配下に、新しいGitHubリポジトリを作成します。書き込み権限と GITHUB_READ_ONLY=false が必要です。auto_init が false でない限り、デフォルトの README コミットで自動初期化されます。はい
get_file_contents指定したgit参照先にあるファイルの現在の内容の読み取り、シンボルの概要の抽出('outline_only: true')、行範囲の取得、またはディレクトリエントリの一覧表示を行います。Base64をUTF-8に自動デコードします。まず 'outline_only: true' を指定して約50~100トークンで構造を確認し、その後、特定の行範囲をリクエストしてください。いいえ
create_or_update_fileブランチ上の新しいファイルの作成、または既存ファイルの上書きを、単一のアトミックコミットで行います。更新の場合は、ファイルの現在のblob SHAを 'sha' に指定してください(または空欄にして自動解決します)。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
delete_filegitコミットでブランチから既存のファイルを削除します。並行上書きを防ぐため、現在のblob SHAが必要です。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
list_branches保護状態とHEADコミットSHAを含む、リポジトリ内のブランチ一覧を取得します。保護状態によるアップストリームの絞り込みと、上限付きのページネーション(最大100件)に対応しています。ブランチ名が分かっている場合は 'get_branch' を優先してください。いいえ
get_branchブランチ保護ルールや最新のコミットの詳細など、指定したブランチの詳細な状態を取得します。マージまたは削除の前に、ブランチの存在や保護ポリシーを確認するために使用してください。いいえ
get_branch_protection必須のステータスチェック、必須レビュー、管理者への適用、強制プッシュや削除の制限など、指定したGitブランチの包括的な保護ルールを取得します。いいえ
create_branchコミットSHAを指定するか、既存のブランチから分岐して新しいgitブランチを作成します(デフォルトは 'main')。変更のコミットやプルリクエストの作成前に使用してください。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
delete_branchリポジトリからブランチを削除します。リポジトリの破損を防ぐため、デフォルトブランチ(例:'main')の削除リクエストは明示的に拒否されます。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
fork_repositoryリポジトリを認証済みユーザーのアカウント、または指定した組織の名前空間にフォークします。アップストリームのプロジェクトへの直接プッシュアクセスが制限されている場合に、コントリビュートするために使用してください。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
3. Git コミットとステータス(commits — 6 アクション)
アクション説明変更を伴う?
list_commitsリポジトリのコミット履歴を時系列順に一覧表示します。上流リポジトリによる絞り込み(sha、path、author、since、until)に対応し、ページネーションの上限は100件です。コミットの実際の行ごとの差分を表示するには、代わりに get_commit を使用してください。いいえ
get_commit特定のコミット SHA または ref の詳細なコミットメタデータ、ファイル変更統計、統合差分を取得します。コミット内のコード変更のレビューやリグレッションのデバッグに使用します。差分はトークン予算に合わせて最適化され、max_diff_lines(デフォルト:400行)で切り詰められます。いいえ
create_commitGitHub Git Trees API を使用して、複数の作成、更新、削除対象ファイルを含むアトミックな Git コミットを作成します。リファクタリング、複数ファイルにわたるコード変更の適用、コードとドキュメントの同時更新に使用します。個別の単一ファイルコミットを複数回行う必要がなく、ローカルでの git クローンも不要です。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
push_files「create_commit」の別名です。GitHub Git Database API を使用して、複数のファイルへの追加、変更、削除を1つの Git コミットとしてアトミックにコミットします。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
get_commit_statusコミット SHA またはブランチ ref の統合ステータスチェック状態(pending、success、failure)と個々のチェック実行を取得します。いいえ
create_commit_status特定のコミット SHA のコミットステータスチェック(pending、success、failure、error)を設定または更新します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
4. プルリクエストとコードレビュー(pull-requests — 11 個のアクション)
アクション説明変更を伴う?
list_pull_requests上流でインデックス化されたパラメーター(state、head、base)と上限付きページネーション(最大 100 件)を使って、プルリクエストを一覧表示し、絞り込みます。既知の PR を確認する場合は、pull_number を指定して 'get_pull_request' を使用してください。差分を確認する場合は get_pull_request_diff を使用してください。いいえ
get_pull_requestマージ可能性(clean、dirty、unstable)、head/base ブランチの参照、作成者、担当者など、特定のプルリクエストの詳細なステータスを取得します。PR のマージ準備ができているか、ブロックされているかを確認するために使用してください。コード変更を読むためには使用しないでください。代わりに get_pull_request_diff を使用してください。いいえ
get_pull_request_diffプルリクエストのコード変更をレビューするために、統一形式の git 差分を取得します。コード変更の分析、パッチのレビュー、インラインコメントの準備に使用してください。PR のマージ可能性やメタデータの確認には使用しないでください(代わりに get_pull_request を使用してください)。LLM のコンテキストあふれを防ぐため、差分はトークン効率を考慮しており、max_lines(デフォルト:400 行)で自動的に切り詰められます。いいえ
create_pull_requesthead ブランチから base ブランチへの新しいプルリクエストを作成します。書き込み権限と GITHUB_READ_ONLY=false が必要です。head ブランチはすでに存在し、base ブランチとの差分となるコミットが少なくとも 1 つ必要です。はい
update_pull_request既存のプルリクエストのタイトル、本文、オープン/クローズ状態、または base ブランチを更新します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
merge_pull_requestmerge、squash、rebase の方法で、プルリクエストを base ブランチにマージします。書き込み/管理者権限と GITHUB_READ_ONLY=false が必要です。マージ前に、PR のマージ可能な状態が clean であることを確認してください。はい
list_pull_request_commentsプルリクエストの特定の差分行に紐づくインラインコードレビューコメントを一覧表示します。行ごとのレビュー指摘を確認する場合に使用してください。PR 全体のレビュー承認や変更要求を確認する場合は、代わりに list_pull_request_reviews を使用してください。いいえ
create_pull_request_commentプルリクエスト内の特定のファイルと行番号に紐づくインラインレビューコメントを投稿します。commit_id、path、ファイル内の行番号が必要です。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
create_pull_request_reply既存のプルリクエストレビューコメントのスレッドに返信します。親コメントの comment_id が必要です。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
list_pull_request_reviewsプルリクエストに投稿された正式なコードレビュー(承認、変更要求、コメントの要約)を一覧表示します。マージ前にレビュアーの判断と承認条件を確認するために使用してください。いいえ
create_pull_request_review承認判断(APPROVE、REQUEST_CHANGES、COMMENT)と、任意の要約本文またはインラインコメントを含めて、プルリクエストに正式なコードレビューを投稿します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
5. イシューとラベル(issues — 8 個のアクション)
アクション説明変更を伴う?
list_issuesリポジトリのイシューを、上流でインデックス化されたパラメーター(state、labels、assignee、creator、mentioned、milestone、since)と上限付きページネーション(最大 100 件)で検索、絞り込みます。プルリクエストは除外します。イシュー番号がすでにわかっている場合は、正確な O(1) ルックアップが可能な get_issue を優先してください。いいえ
get_issue特定のイシューの詳細情報を取得します。Markdown の本文、担当者、マイルストーン、状態の理由、コメント数が含まれます。バグ報告の調査やイシューの仕様確認に使用します。いいえ
create_issueリポジトリに新しいイシューを作成します。ラベル、担当者、マイルストーンは任意で指定できます。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
update_issue既存のイシューのタイトル、本文、状態('open'/'closed')、状態の理由('completed'/'not_planned')、ラベル、担当者、またはマイルストーンを更新します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
list_issue_commentsイシューへのディスカッションコメントを時系列順に一覧表示します。会話履歴、デバッグの進捗状況、イシューへのユーザーフィードバックを確認する際に使用します。いいえ
create_issue_commentイシューに Markdown コメントを追加します。ディスカッションへの返信、進捗の記録、解決内容の提示に使用します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
list_labelsリポジトリに設定されているすべてのラベルについて、名前、説明、16 進数のカラーコードを一覧表示します。イシューの作成や更新の前に、利用可能なタグを確認する際に使用します。いいえ
create_labelリポジトリに新しいラベルを作成します。名前、説明、6 文字の 16 進数カラーコードを指定します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
6. プロジェクトのマイルストーン(milestones — 4 個のアクション)
アクション説明変更を伴う?
list_milestonesリポジトリのプロジェクトマイルストーンを、未完了/完了イシュー数と期限とともに一覧表示します。リリースロードマップの監視や、イシューや PR に関連付ける前のマイルストーン番号の確認に使用します。いいえ
get_milestone特定のマイルストーンの詳細なステータスを取得します。タイトル、未完了/完了イシュー数、作成日、期限が含まれます。マイルストーンの進捗状況や期限を確認する際に使用します。いいえ
create_milestoneタイトル、説明、任意の期限を指定して、新しいプロジェクトマイルストーンを作成します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
update_milestone既存のマイルストーンのタイトル、説明、状態('open'/'closed')、または期限を更新します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
7. コラボレーターとロール(collaborators — 4 個のアクション)
アクション説明変更を伴う?
list_collaboratorsリポジトリへのアクセス権を持つコラボレーターと、割り当てられているロールおよび権限を一覧表示します。チームのアクセス権の監査や、ユーザーのメンバーシップ確認に使用します。いいえ
get_collaborator_permissionリポジトリにおける特定ユーザーの正確な権限レベル('admin'、'maintain'、'write'、'triage'、'read'、または 'none')を確認します。特権操作を試みる前の認可確認に使用します。いいえ
add_collaborator指定した権限レベルで、GitHub ユーザーをリポジトリのコラボレーターとして追加または招待します。ユーザーが組織のメンバーでない場合、コラボレーションへの招待が送信されます。管理者権限と GITHUB_READ_ONLY=false が必要です。はい
remove_collaboratorリポジトリからコラボレーターを削除し、そのユーザーの直接アクセス権を取り消します。管理者権限と GITHUB_READ_ONLY=false が必要です。はい
8. Actions の変数とシークレット(variables — 6 アクション)
アクション説明変更を伴う?
list_actions_variablesリポジトリに定義されている、機密情報ではない GitHub Actions 設定変数とその値およびタイムスタンプを一覧表示します。ビルド環境のパラメーターの確認に使用します。いいえ
get_actions_variable名前を指定して、特定の GitHub Actions リポジトリ変数のプレーンテキスト値と最終更新タイムスタンプを取得します。いいえ
create_actions_variableGitHub Actions ワークフロー用の、機密情報ではない設定変数を作成します。書き込み/管理者権限と GITHUB_READ_ONLY=false が必要です。機密性の高い認証情報には、代わりにリポジトリシークレットを使用してください。はい
update_actions_variable既存の、機密情報ではない GitHub Actions 設定変数の値を更新します。書き込み/管理者権限と GITHUB_READ_ONLY=false が必要です。はい
delete_actions_variableGitHub Actions から、機密情報ではない設定変数を削除します。書き込み/管理者権限と GITHUB_READ_ONLY=false が必要です。はい
list_actions_secretsGitHub Actions リポジトリのシークレット名とタイムスタンプを一覧表示します。動作上の安全性:シークレットの値は GitHub によって永続的にマスクされ、プレーンテキストで返されることはありません。いいえ
9. Gist とコードスニペット(gists — 5 アクション)
アクション説明変更を伴う?
list_gists認証済みユーザーが所有するコードスニペットと Gist を、ファイルの概要とともに一覧表示します。読み取りや編集の前に、コードスニペット ID を見つけるために使用します。いいえ
get_gistID を指定して、特定の GitHub Gist のソースコード全体、ファイル、説明を取得します。単独のコードスニペットや設定テンプレートの確認に使用します。いいえ
create_gist1 つ以上のファイルを含む、新しい公開またはシークレットの GitHub Gist を作成します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
update_gist既存の Gist の説明を更新するか、Gist 内の個々のファイルを変更、名前変更、削除します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
delete_gist識別子を指定して Gist を完全に削除します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
10. GitHub Actions と CI/CD の可観測性(actions — 10 個のアクション)
アクション説明変更を伴うか?
list_workflowsリポジトリ(.github/workflows)に設定されている GitHub Actions の CI/CD ワークフローファイルを一覧表示します。実行をトリガーしたり、実行内容を調べたりする前に、ワークフロー名と ID を確認するために使用します。いいえ
list_workflow_run_artifacts特定の GitHub Actions ワークフロー実行で生成されたアーティファクトを、ファイルサイズ、ダウンロード用アーカイブ URL、有効期限とともに一覧表示します。生成されたビルド成果物、テストログ、リリースバイナリを確認するために使用します。いいえ
get_workflow_run_artifact数値のアーティファクト ID を指定して、特定の GitHub Actions ビルドアーティファクトのメタデータとダウンロード用アーカイブ URL を取得します。ビルド成果物をダウンロードしたり、個々のアーティファクトを調べたりする場合に使用します。いいえ
list_workflow_runsワークフローの実行を、ステータス、結果(「success」「failure」)、トリガーイベント、コミット SHA とともに一覧表示します。CI/CD パイプラインの状態を確認したり、実行 ID を探したりするために使用します。いいえ
get_workflow_run特定のワークフロー実行の詳細なステータス、所要時間、結果を取得します。CI パイプラインの完了を監視する場合に使用します。いいえ
list_workflow_run_jobsワークフロー実行内の個々のジョブとステップの詳細をすべて一覧表示します。ビルド中に失敗した特定のジョブまたはステップを特定するために使用します。いいえ
get_job_logsActions ジョブの実行ログをプレーンテキストで取得し、失敗箇所をスマートに抽出して ANSI 制御文字を除去します。動作上の安全対策として、エラーやパニックをスキャンして失敗箇所のブロックを抽出し、大量のログを切り詰めて LLM のトークンコンテキストを確保します。いいえ
trigger_workflowカスタム入力を指定し、workflow_dispatch イベントを介してブランチまたはタグ上でワークフローの実行を開始します。書き込み権限と GITHUB_READ_ONLY=false が必要です。対象のワークフローファイルで workflow_dispatch トリガーが定義されている必要があります。はい
cancel_workflow_runキューに入っている、または現在実行中の GitHub Actions ワークフロー実行をキャンセルします。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
rerun_workflow完了または失敗した GitHub Actions ワークフロー実行のすべてのジョブを再実行します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
11. リリースと Git タグ(releases — 5 個のアクション)
アクション説明変更を伴うか?
list_releasesリポジトリで公開済みおよび下書きのリリースを、リリースタイトル、アセットのダウンロード数、公開日とともに一覧表示します。リリース履歴やダウンロード URL を確認するために使用します。いいえ
get_releaseタグ名または数値のリリース ID を指定して、変更履歴の本文やアセットへのリンクを含む特定のリリースの詳細を取得します。いいえ
create_releaseタグに対して、タイトル、Markdown 形式のリリースノート/変更履歴、プレリリース/下書きフラグを指定し、正式な GitHub リリースを公開します。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
list_tagsリポジトリ内の Git タグを、タグ名とコミット SHA とともに一覧表示します。リリースを公開する前に、利用可能なバージョンタグを確認するために使用します。いいえ
create_tag特定のコミット SHA を指す Git タグを作成します(メッセージが指定されている場合は、軽量参照または注釈付きタグオブジェクト)。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
12. ユーザー、組織、チーム(user — 7 アクション)
アクション説明変更を伴うか
system_health_checkGitHub API に対して、エンドツーエンドの接続性、レイテンシ、レート制限のクォータ、権限を診断します。トークンの有効性、認証済みアカウントの詳細、残りのレート制限、読み取り専用ポリシーが有効かどうかを検証します。いいえ
get_authenticated_user現在認証されている GitHub トークンのプロフィールメタデータ(ログイン名、名前、メールアドレス、公開リポジトリ数、フォロワー数)を取得します。トークンの識別情報とスコープの確認に使用します。いいえ
get_userユーザー名で指定した GitHub ユーザーの公開プロフィール情報(ログイン名、名前、会社、自己紹介、公開リポジトリ数)を取得します。いいえ
list_user_organizations認証済みユーザーが所属する GitHub 組織を一覧表示します。リポジトリの作成や検索に使用する組織の名前空間を確認できます。いいえ
get_organization特定の GitHub 組織の詳細情報(名前、説明、メールアドレス、ブログ、公開/非公開リポジトリ)を取得します。組織へのアクセス確認や組織設定の調査に使用します。いいえ
create_teamGitHub 組織に新しいチームを作成します。parent_team_id に対応し、親子関係のあるチームを作成できます。組織のオーナーまたは管理者の権限と、GITHUB_READ_ONLY=false が必要です。はい
list_accessible_repositories認証済みユーザーがアクセスできるリポジトリ(所有、共同作業、またはメンバーとしてアクセス可能なリポジトリ)を一覧表示します。アカウントをまたいで利用可能なリポジトリを確認できます。いいえ
13. Webhook とトピック(webhooks — 4 アクション)
アクション説明変更を伴うか
get_repository_topicsGitHub リポジトリに関連付けられているすべてのトピックタグを取得します。プロジェクトのカテゴリや検索性を高めるキーワードの確認に使用します。いいえ
set_repository_topicsリポジトリのすべてのトピックタグを、新しいトピック文字列の配列に置き換えます。書き込み権限と GITHUB_READ_ONLY=false が必要です。はい
list_repository_webhooksリポジトリに設定されたイベント Webhook を、送信先 URL、有効状態、購読対象のイベントトリガーとともに一覧表示します。いいえ
get_repository_webhookID で指定したリポジトリ Webhook の詳細な設定を取得します。配信 URL と購読対象のイベントも含まれます。いいえ
14. セキュリティと Dependabot(security — 1 アクション)
アクション説明変更を伴うか
list_dependabot_alertsリポジトリの Dependabot 脆弱性アラートを一覧表示します。影響を受けるパッケージ、深刻度(critical、high、medium、low)、パッチに関するアドバイザリが含まれます。いいえ

ベンチマーク:再現可能なトークン削減の実証(test/benchmark-test.js)

公式 GitHub REST API(2022-11-28) のレスポンススキーマ(test/fixtures/github-api-v3-fixtures.js)のみに基づいており、npm test の実行ごとに node test/benchmark-test.js で検証されます。

操作GitHub API の生データ(2022-11-28)変換後の JSON(format: "json")デフォルトの Markdown(format: "markdown")検証済みの削減率
システムプロンプトのコスト(83 ツールと 5 つのハイブリッドツールの比較)23,112 トークン(92,447 B)—1,125 トークン(4,498 B)95.1% 削減
get_repository(1 リポジトリ)1,321 トークン(5,283 B)104 トークン(414 B)85 トークン(340 B)93.6% 削減
list_issues(10 件の Issue)15,375 トークン(61,499 B)1,567 トークン(6,267 B)313 トークン(1,250 B)98.0% 削減
list_pull_requests(head/base リポジトリを含む 10 件の PR)46,536 トークン(186,141 B)1,586 トークン(6,341 B)330 トークン(1,317 B)99.3% 削減
list_workflow_runs(10 件のワークフロー実行)14,957 トークン(59,826 B)839 トークン(3,356 B)212 トークン(846 B)98.6% 削減
get_file_contents(outline_only: true)3,589 トークン(14,355 B)331 トークン(1,323 B)314 トークン(1,255 B)91.3% 削減
トークン圧縮の仕組み
  • システムプロンプトのトークン削減(95.1%削減):MCP の ListTools スキーマの容量を、83 個の完全なツールスキーマ(23,112 トークン/92,447 B)から、5 ツールのハイブリッドな構成(1,125 トークン/4,498 B)に縮小します。
  • 再帰的な出力射影フィルター(projectOutput):GitHub REST API v3 のハイパーメディアテンプレート URL(*_url RFC 6570 テンプレート)、avatar_url、gravatar_id、node_id、site_admin、_links、内部の api.github.com セルフリンク、および null/"" フィールドを自動的に削除します。
  • スマートな差分とロックファイルの省略:デフォルトで ignore_lockfiles: true を設定し、コミットと PR の差分に含まれる依存関係のロックファイル(package-lock.json、pnpm-lock.yaml、yarn.lock、go.sum、Cargo.lock、*.min.js)を自動的に折りたたみます。ロックファイルの差分全体を確認するには、ignore_lockfiles: false を指定します。
  • 保守的なデフォルトページネーション:すべての一覧アクションで、デフォルトの per_page は 10(最大:100)です。
  • 高密度な Markdown 形式をデフォルトに設定:検出(github_find_actions)、実行(github_execute_action)、および 3 つの先行実行ツールすべてで、デフォルトの format は "markdown" です。
  • 統合差分の省略:PR の差分(max_lines)とコミットの差分(max_diff_lines)は、デフォルトで 400 行に制限されます。
  • 安全なログ末尾の取得:CI ワークフローのジョブログから、エラー箇所とティアダウン部分の末尾(デフォルトの tail_lines は 100)を抽出し、ANSI エスケープシーケンスを除去します。

ロードマップ

v2.1 で完了
  • 上流でのインデックス付きフィルタリングと厳密なページネーション上限(state、labels、assignee、creator、mentioned、milestone、since)
  • クライアントのエラー耐性(セカンダリレート制限/不正利用の検出、403/404 のスコープ診断、空の本文を伴う 201/202 の処理)
  • 再帰の深度ガード(maxDepth = 32)、RFC 6570 ハイパーメディア URL の削除、空のコレクションの保持を備えた、強化された出力射影
  • 子チームと組織のネストされた管理(create_team、get_organization)
  • get_job_logs での CI/CD の失敗ログのスマートな抽出と ANSI シーケンスの削除(strip_ansi、smart_failure)
  • get_file_contents でのアウトライン優先のコードシンボル抽出と行範囲の切り出し(outline_only、start_line、end_line)
  • GitHub Git Trees API を介したファイルの作成、更新、削除に対応する、複数ファイルのアトミックなコミット(create_commit、push_files)
  • マージ可能性と競合の事前検証(get_mergeability)
  • トークンスコープのセルフ監査と権限の事前チェック
今後の展望(v2.x)
  • LiteLLM/Eigent のエージェントオーケストレーションで複数ターンの履歴整理を容易にする、標準化されたコレクションの _summary ヘッダー
  • リモートトランスポート:Streamable SSE および HTTP リモートサーバーモード
  • リレーショナルな詳細調査のための、スコープ指定可能な GraphQL クエリエンジン
  • DevSecOps のコードスキャンおよびシークレットスキャンのアラートクエリ
  • プロジェクトリポジトリ内での、スコープ指定とレート制限に対応したコード検索

謝辞と系譜

このプロジェクトには、以下のアーキテクチャ概念、スキーマ、パターンが取り入れられています。

  • @modelcontextprotocol/sdk(MIT License)— Copyright (c) Anthropic, PBC.
  • zod(MIT License)— Colin McDonnell.
  • GitHub REST API 仕様 — GitHub, Inc.
  • jmrplens/gitlab-mcp-server — 動的なアクション検出およびメタディスパッチャーパターンの概念。
  • @sumirati/mcp-gitlab — 関連プロジェクトのアーキテクチャ、3 層の読み取り専用モード、およびトークン射影の標準。

第三者への帰属表示の詳細については、NOTICE をご覧ください。


ライセンス

このプロジェクトは MIT License に基づいてライセンスされています — Copyright (c) 2026 [email protected].

コメント

MCP は初めてですか?

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

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