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 分