mcpField
C
CONTRI

CONTRI

ローカル
contri-two.vercel.appバージョン管理43 日前に更新

CONTRI について

CONTRIは、コーディングエージェント向けの読み取り専用MCPサーバーで、貢献を始める前に公開GitHubのIssueやリポジトリを分析します。Issueの担当・着手状況、プロジェクトの活動、メンテナーの応答、貢献先の検索を、CONTRIブラウザー拡張と同じ判定ロジックで扱います。

主な機能

  1. 01Issueの担当者・着手表明・関連PRを確認
  2. 02最大10件のIssueを一括確認
  3. 03リポジトリの活動と応答時間を確認
  4. 04初心者向けIssueと活動中のプロジェクトを検索
  5. 05出典リンク付きの貢献ブリーフを作成
  6. 06レポートをキャッシュしGitHubの残りリクエスト数を表示

活用シーン

  1. 01Issueにすでに取り組んでいる人がいるか確認
  2. 02活動中のプロジェクトで初心者向けIssueを選定
  3. 03プロジェクトの活動状況とメンテナーの応答を評価
  4. 04貢献前にリポジトリのガイドを確認

MCP 対応

stdio経由で、読み取り専用のGitHub分析ツールとプロンプトをMCPクライアントに提供します。GitHub上の公開データのみを扱い、コメント、着手表明、プルリクエストは作成しません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"alphasafal-contri": {
"command": "npx",
"args": [
"-y",
"contri-mcp"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>"
}
}
}
}
起動コマンドnpx -y contri-mcp
設定が必要な環境変数
GITHUB_TOKENシークレットOptional fine-grained token (public repositories, no permissions). Without it, the sign_in tool offers GitHub's device flow.

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

パッケージ
npmcontri-mcp0.2.0

ツール

9

掲載時のツール一覧 · 5 日前に更新

パラメーター型必須説明
forcebooleanいいえキャッシュをバイパスします(リクエスト数が増加します)。
issuestringはいhttps://github.com/owner/name/issues/123 または owner/name#123
detailenumいいえbrief:判定 + URL(約 40 トークン);full:根拠を含むbrief | full
includeThreadbooleanいいえissue の本文と最近のコメントも返します(最大約 14k 文字)。

詳細

contri-mcp

AI コーディングエージェント向けの CONTRI です。 エージェントが GitHub の issue に取りかかる前に、CONTRI がブラウザー上で表示する情報を確認できます。すでに誰かが取り組んでいるか、プロジェクトが活発か、メンテナーから返信があるかをチェックできます。

  • 作業の重複を防ぎます。 すでに誰かが担当を表明した issue に、エージェントがプルリクエストを作成するケースが増えています。check_issue は、担当者、「これに取り組みたい」というコメント(および反応が途絶えた担当表明)、issue を参照するオープンなプルリクエストを見つけます。
  • 拡張機能と同じ数値です。 サーバーは CONTRI 独自のレポートと判定ロジックを再利用するため、github.com のバッジと同じ結果を返します。
  • 読み取り専用で、ローカルから公開データのみを扱います。 お使いのマシン上で stdio を介して動作し、api.github.com とのみ通信します。コメント、担当表明、プルリクエストの作成は行いません。

ツール

ツール回答する内容リクエスト数(サインイン済み/匿名)
check_issueこの issue に取り組めますか? 空いているようです、@x が担当表明しています、担当表明後に反応がありません、オープンな PR #n、担当者あり…1~2 / 約4
check_issues1 回の呼び出しで最大 10 件の issue をまとめて確認します。デフォルトでは判定結果のみなので、候補の絞り込みを低コストで行えますissue ごとに上記と同じ
repo_health活発ですか? 過去 90 日間にマージされた PR(ボットを除く)、人間の作成者、マージまでの時間、リリース2 / 約7
team_responsiveness誰かが返信しますか? 外部からの PR と issue に対するチームの最初の返信、返信を待っている人、メンテナー2~3 / 約35
find_issues担当者のいない初心者向け issue。サインイン済みの場合は、すでにオープンな PR がその issue を参照しているかどうかも確認します3 / 2
discover_projects言語またはトピック別に、最近の人間によるマージ数と初心者向け issue をもとに順位付けした活発なプロジェクト1 / 約7
contribution_brief出典リンク付きの概要と、README、貢献ガイド、行動規範、テンプレート2~3 / 約5

プロンプト:find_first_issue(活発なプロジェクトと、誰も取り組んでいない issue を見つける)と can_i_take_this(issue を 1 件確認し、取り組み始める、先に確認する、別の issue を選ぶ、のどれがよいかを伝える)。

すべての結果には、サインイン状態と GitHub が示す残りのリクエスト数を含む github フィールドが付いています。これにより、エージェントはリクエスト数を見積もり、サインインを案内するタイミングを判断できます。レポートは拡張機能と同じ期間、メモリ内にキャッシュされます(issue の確認は 10 分、概要は 30 分、チームの応答状況は 6 時間)。

トークンの予算。 結果は余分な情報を含まないコンパクトな JSON です。check_issue の完全な結果は約 200~300 トークン、detail: "brief"(判定結果と URL)は約 40 トークンです。thread: "digest" は issue の先頭部分と直近 3 件のコメントを追加し、約 400 トークンになります(スレッド全体では約 3,500 トークンになる場合があります)。check_issues では、バッチ全体に対してフッターを 1 つだけ返します。数値は小数第 1 位に丸め、空のセクションは省略するため、取り組むべきかどうかだけを知りたいエージェントは、判定結果分をわずかに上回る程度のトークンで済みます。

セットアップ

サーバーの実行には Node.js 20.3 以降が必要です。npm では contri-mcp として公開されているため、クローンやビルドは不要です。

Claude Code

claude mcp add --transport stdio contri -- npx -y contri-mcp

Claude Desktop、Cursor、Windsurf および mcpServers 設定ファイルを使用するその他のクライアント

{
  "mcpServers": {
    "contri": {
      "command": "npx",
      "args": ["-y", "contri-mcp"]
    }
  }
}

クライアントが npx を見つけられない場合(シェルの設定を読み込まない場合)は、which npx で確認できるフルパスを使用してください。

ソースから(未リリースの変更を試す場合。ビルドには Node.js 22.12 以降が必要で、24 を推奨します)

git clone https://github.com/alphasafal/contri ~/contri
cd ~/contri && npm ci && npm run build:mcp      # writes mcp/dist/contri-mcp.js
claude mcp add --transport stdio contri -- node ~/contri/mcp/dist/contri-mcp.js

ソースからインストールしたものを更新するには、cd ~/contri && git pull && npm ci && npm run build:mcp を実行してから、MCP クライアントを再起動してください。

GitHub でサインインする

サインインしていない場合、GitHub では1 時間あたり 60 件までリクエストできますが、エージェントはすぐに上限に達してしまいます。サインインすると上限が 5,000 件になり、CONTRI は数十件の代わりに GraphQL リクエストを 1 件だけ使用できるようになります。コピーするトークンはありません。

  1. エージェントに _「GitHub にサインインして」_と頼むか、そのまま CONTRI を使い始めてください。サインインしていない場合は、サインインを求められます。
  2. エージェントに短いコードと github.com/login/device へのリンクが表示されます。リンクを開いてコードを入力し、CONTRI を承認してください。
  3. これで完了です。CONTRI は承認を自動で検知し、以降のすべての呼び出しでその認証を使用します。

これは拡張機能と同じサインイン方法です。スコープなしの GitHub のデバイスフローと CONTRI OAuth App を使い、パスワードが CONTRI を経由することはありません(公開リポジトリへの読み取り専用アクセス)。サインイン情報は次回のために ~/.config/contri/mcp-credentials.json に保存され、読み取れるのはあなただけです(別のパスを使うには CONTRI_MCP_CREDENTIALS を設定するか、エージェントに remember: false を指定してサインインするよう頼むと、このセッション中のみ有効になります)。sign_out を実行するとサインイン情報が削除されます。github.com/settings/applications からいつでもアクセスを取り消せます。

トークンを使いたい場合:サーバーの env に GITHUB_TOKEN(または GH_TOKEN)を設定し、Public repositories とすべての権限を No access にしたきめ細かなトークンを指定してください。GitHub がトークンを拒否した場合や、PASTE_YOUR_TOKEN_HERE のようなプレースホルダーのままの場合、CONTRI は匿名で処理を続け、エラーにする代わりにサインインを提案します。

試してみる

エージェントに、次のように尋ねてください。

  • 「https://github.com/owner/repo/issues/123 を担当してもいいですか?」
  • 「メンテナーが数日以内に返信する、活発な TypeScript プロジェクトで、初めて取り組むのに適した issue を探してください。」
  • 「この issue に取りかかる前に、ほかに作業している人がいないか確認してください。」

プライバシー

バックエンドもアナリティクスもありません。サーバーがリクエストを送信するのは GitHub(api.github.com と、サインイン時の github.com)のみで、サインイン情報も GitHub にのみ送信されます。分析対象は公開リポジトリのみです。レポートはメモリ上に保持され、プロセスの終了時に消去されます。書き込まれるファイルは、サインインした場合に保存されるサインイン情報だけです。issue のテキストは、エージェントが要求した場合にのみ送信されます(includeThread を指定した check_issue)。PRIVACY.md をご覧ください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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