CONTRI

io.github.alphasafal由 GitHub 帳號 alphasafal 發布v0.2.0更新於 Oct 29, 2026

Is this GitHub issue free to take, is the project alive, will maintainers reply? Read-only.

概覽

AI 產生的概覽

唯讀 MCP 伺服器,讓 AI 程式助理在動手前確認某個 GitHub issue 是否可接手、專案是否活躍、維護者是否會回覆。

可以做什麼
  • 檢查單一或最多 10 個 issue 的指派者、認領留言和引用該 issue 的開啟中 PR,給出可接手、已被認領、認領後無下文等結論
  • 評估儲存庫活躍度,包括近期人工合併數、合併耗時與發佈情況
  • 衡量維護者對外部 PR 與 issue 的回應速度
  • 尋找無人認領的新手 issue,並依語言或主題發掘活躍專案
  • 產出附來源連結的貢獻簡報,含 README、貢獻指南、行為準則與範本
  • 提供尋找第一個 issue 與判斷是否接手的引導式提示
適用情境
適合在助理開始處理某個 GitHub issue 之前使用,避免與他人已認領的工作或已開啟的 PR 重複,並挑選活躍且回應即時的專案。適合需要快速結論而非完整 issue 討論串的開源貢獻情境。
執行需求
以 stdio 方式在本機執行,需要 Node.js 20.3 或更新版本,從 npm 安裝 contri-mcp(例如透過 npx)。需要連線 api.github.com 與 github.com。可選用 GITHUB_TOKEN 或 GH_TOKEN 精細權限權杖;否則 sign_in 工具會提供 GitHub 裝置流程,匿名使用每小時僅 60 次請求。
安裝前請注意
登入後憑證會存於使用者設定目錄下的檔案,除非以 CONTRI_MCP_CREDENTIALS 指定其他路徑或選擇僅本次工作階段有效;可隨時在 GitHub 設定中撤銷授權。僅分析公開儲存庫且請求只送往 GitHub,但要求完整討論串時 issue 文字會傳送給助理。伺服器為唯讀,不會留言、認領或建立 PR。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 CONTRI,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

contri-mcp

CONTRI for AI coding agents. Before your agent starts on a GitHub issue, it can check what CONTRI shows people in the browser: is someone already working on it, is the project alive, and will a maintainer reply?

  • No duplicate work. Agents increasingly open pull requests on issues someone already claimed. check_issue finds assignees, “I'd like to work on this” comments (and claims that went quiet) and open pull requests that reference the issue.
  • Same numbers as the extension. The server reuses CONTRI's own reports and verdict logic, so the answer matches the badge on github.com.
  • Read-only, local, public data only. It runs on your machine over stdio, talks only to api.github.com, and never comments, claims or opens pull requests.

Tools

ToolAnswersRequests (signed in / anonymous)
check_issueCan I take this issue? Looks free, Claimed by @x, Claim went quiet, Open PR #n, Assigned…1–2 / ~4
check_issuesThe same for up to 10 issues in one call: verdicts only by default, so a shortlist is cheapper issue, as above
repo_healthIs it alive? PRs merged in 90 days (bots excluded), human authors, time to merge, release2 / ~7
team_responsivenessWill someone reply? First team reply to outside PRs and issues, who is waiting, maintainers2–3 / ~35
find_issuesBeginner issues without an assignee; signed in, also whether an open PR already references it3 / 2
discover_projectsActive projects for a language or topic, ranked by recent human merges and good first issues1 / ~7
contribution_briefA source-linked brief plus the README, contributing guide, code of conduct and templates2–3 / ~5

Prompts: find_first_issue (find an active project and an issue nobody is working on) and can_i_take_this (check one issue and say whether to start, ask first or pick another).

Every result carries a github field with the sign-in state and the requests GitHub says are left, so an agent can budget and knows when to offer sign-in. Reports are cached in memory for the same times as the extension (issue checks 10 minutes, overview 30 minutes, team 6 hours).

Token budget. Results are compact JSON without padding: a full check_issue is about 200–300 tokens, detail: "brief" (verdict and URL) about 40, thread: "digest" adds the issue head and last three comments for about 400 (the full thread can be ~3,500), and check_issues returns one footer for the whole batch. Numbers are rounded to one decimal and empty sections are left out, so an agent that only needs to know whether to proceed pays for little more than the verdict.

Set up

The server runs on Node.js 20.3 or later and is published to npm as contri-mcp, so there is nothing to clone or build.

Claude Code

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

Claude Desktop, Cursor, Windsurf and other clients that use an mcpServers config file:

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

If the client cannot find npx (it does not read your shell setup), use the full path from which npx.

From source (to try unreleased changes; building needs Node.js 22.12 or later, 24 recommended):

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

To update a source install: cd ~/contri && git pull && npm ci && npm run build:mcp, then restart your MCP client.

Sign in with GitHub

Without signing in, GitHub allows 60 requests an hour, which an agent uses up quickly. Signing in raises it to 5,000 and lets CONTRI use one GraphQL request instead of dozens. There is no token to copy:

  1. Ask your agent to “sign in to GitHub”, or just start using CONTRI: when it isn't signed in, it asks you.
  2. The agent shows a short code and a link to github.com/login/device. Open it, enter the code and approve CONTRI.
  3. That's it. CONTRI notices the approval by itself and every later call uses it.

This is the same sign-in as the extension: GitHub's device flow with the CONTRI OAuth App, no scopes (public, read-only access), no password through CONTRI. The sign-in is saved for next time in ~/.config/contri/mcp-credentials.json, readable only by you (set CONTRI_MCP_CREDENTIALS to use another path, or ask the agent to sign in with remember: false to keep it for this session only). sign_out forgets it; revoke it any time at github.com/settings/applications.

Prefer a token? Set GITHUB_TOKEN (or GH_TOKEN) in the server's env to a fine-grained token with Public repositories and every permission at No access. If GitHub rejects it, or it is still a placeholder like PASTE_YOUR_TOKEN_HERE, CONTRI carries on anonymously and offers to sign in instead of failing.

Try it

Ask your agent something like:

  • “Can I take https://github.com/owner/repo/issues/123?”
  • “Find me a good first issue in an active TypeScript project where maintainers reply within a few days.”
  • “Before you start on this issue, check nobody else is working on it.”

Privacy

There is no backend and no analytics. The server sends requests only to GitHub (api.github.com, plus github.com for the sign-in), and your sign-in only there. Only public repositories are analyzed. Reports are kept in memory and are gone when the process exits; the only file written is the saved sign-in, if you sign in. Issue text goes to your agent only when it asks for it (check_issue with includeThread). See PRIVACY.md.

License

MIT

來源:mcp/README.md,提交 2c14d34

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.0最新Oct 29, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分