mcpField
C
CONTRI

CONTRI

Local
contri-two.vercel.appVersion Control4Updated 3d ago

About CONTRI

CONTRI is a read-only MCP server for coding agents that evaluates public GitHub issues and repositories before contribution work. It combines issue-claim checks, project activity, maintainer responsiveness, and contribution discovery using the same verdict logic as the CONTRI browser extension.

Key features

  1. 01Check issue assignments, claims, and linked pull requests
  2. 02Batch-check up to 10 issues
  3. 03Review repository activity and maintainer response times
  4. 04Find beginner issues and active projects
  5. 05Generate source-linked contribution briefs
  6. 06Cache reports and report GitHub request limits

Use cases

  1. 01Check whether an issue is already being worked on
  2. 02Choose a beginner issue in an active project
  3. 03Assess project activity and maintainer responsiveness
  4. 04Review repository guidance before contributing

MCP support

Exposes read-only GitHub analysis tools and prompts to MCP clients over stdio. It accesses public data through GitHub and does not create comments, claims, or pull requests.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"alphasafal-contri": {
"command": "npx",
"args": [
"-y",
"contri-mcp"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>"
}
}
}
}
Run commandnpx -y contri-mcp
Environment variables to set
GITHUB_TOKENSecretOptional fine-grained token (public repositories, no permissions). Without it, the sign_in tool offers GitHub's device flow.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmcontri-mcp0.2.0

Tools

9

Saved tool list · updated 5d ago

ParameterTypeRequiredDescription
forcebooleanNoBypass the cache (costs requests)
issuestringYeshttps://github.com/owner/name/issues/123 or owner/name#123
detailenumNobrief: verdict + URL (~40 tokens); full: with evidencebrief | full
includeThreadbooleanNoAlso return issue text and recent comments (up to ~14k chars)

Details

From the project 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

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

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

{
  "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):

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

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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.