GitHub Issue Triage MCP Server

Ask Claude what to triage first and get a ranked list with reasons, the duplicates and the right labels, without giving it the keys to close anything.

GitHub Issue Triage MCP Server product illustration

What it does

Give Claude, Cursor or any MCP client a maintainer's view of a GitHub repo: which issues to triage next and why, who is still waiting for a first reply, what's unlabeled, unassigned or stale, which issues look like duplicates, and which of your repo's own labels fit an issue. Read-only by default. Python standard library only: no pip install, no Docker.

What you get

The screenshot is real output from the kit’s own commands. Tested from a fresh download of this exact zip: ./run_tests.sh ran 19 tests OK on Python 3.13 and 3.10.

Real terminal output from GitHub Issue Triage MCP Server: demo and passing tests

Tools

ToolWhat it does
triage_reportOpen issues (pull requests excluded) scored for "triage next" with reasons, plus: no reply yet, unlabeled, unassigned, stale (stale_days, default 30), possible duplicate pairs with the shared words, label and age counts
list_issuesOpen issues with age, idle days, labels, assignees, comments, reactions; optional label filter
get_issueOne issue with its body and comments, and whether a maintainer (owner, member, collaborator) has replied
find_similarIssues similar to a draft's text or to an existing issue, open and closed, by TF-IDF word similarity
suggest_labelsUp to 3 of the repo's existing labels with the words that triggered each (bug, feature, docs, question, performance, security, dependencies, UI vocab + your label names and descriptions)
list_labelsThe repo's labels and descriptions
add_labels *(opt-in)*Adds existing labels to an issue; never creates or removes labels
post_comment *(opt-in)*Posts a comment as the token's user

The two write tools don't exist unless you start the server with --allow-write (or GH_TRIAGE_ALLOW_WRITE=1), so a read-only setup can't label or comment even if asked to.

Token

Works without a token on public repos (GitHub allows 60 requests an hour). For private repos or more requests (5,000/hour), create a fine-grained personal access token with access to the repos you want and the repository permission Issues: Read-only (or Read and write if you enable the write tools), and set it as GITHUB_TOKEN. The token is only sent to api.github.com (or GITHUB_API_URL for GitHub Enterprise Server, e.g. https://github.example.com/api/v3).

Install

Claude Code

claude mcp add github-triage --env GITHUB_TOKEN=github_pat_... -- python3 /absolute/path/to/github-issue-triage-mcp/server.py --repo your-org/your-repo

Or install the folder as a Claude Code plugin (.claude-plugin/plugin.json, .mcp.json passing GITHUB_TOKEN and GH_TRIAGE_REPOS from your environment, and a triage skill in skills/github-issue-triage/).

Cursor: copy examples/configs/cursor-mcp.json into .cursor/mcp.json or ~/.cursor/mcp.json. Claude Desktop: merge examples/configs/claude_desktop_config.json.

Options: --repo owner/name (repeatable) or GH_TRIAGE_REPOS=a/b,c/d limits which repos the tools may touch; --allow-write turns on the two write tools.

Then ask: "Triage report for your-org/your-repo: what should I look at first?", "Is there already an issue like this: export crashes on emoji?", "Suggest labels for #412 and #415".

Protocol

Speaks MCP 2026-07-28 (stateless: server/discover, per-request _meta version) and the handshake versions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05 on the same stdio process, so current and older clients both connect. Uses GitHub REST API version 2026-03-10 with Link-header pagination and a 2-minute in-memory cache.

Safety

  • Issue titles, bodies and comments are written by strangers. Every result carries a note telling the model to treat them as data, never instructions; the skill repeats it. (The demo data includes an issue that tries a prompt injection.)
  • Read-only by default; write tools only with --allow-write, and the skill tells the agent to show you the exact labels or comment text and wait for a yes.
  • Optional repo allowlist; repo names are validated; the token is never printed or returned.

How it compares

GitHub's official MCP server covers general GitHub work (issues, PRs, code, Actions) and is the right choice for creating and editing. This server is narrower: triage views and duplicate/label suggestions computed on your machine, read-only unless you opt in, with nothing to install but Python. You can run both.

Demo and tests

./demo.sh runs the real server over MCP against a fixture repo (acme/widget, 13 open items, 2 of them pull requests). ./run_tests.sh runs 19 offline tests, including both protocol eras, pagination, rate limits, the write opt-in and the repo allowlist.

Honest limits

  • "No reply yet" means zero comments; get_issue checks whether a maintainer replied.
  • Duplicate and similar-issue search is word-based (TF-IDF), not semantic: different words for the same bug can be missed. Always read both issues.
  • Reports read up to max_issues (default 500) newest open items; very large repos use more API requests.
  • Issues only: no pull request review, projects or discussions.

Also see the CSV & Excel MCP Server and the MCP Config Validator. License: LICENSE.txt.

Format and license

Zip, 29 KB, v1.0, 23 files. You may use and modify this kit for your own work and for clients you serve, including paid client work. Not affiliated with or endorsed by GitHub, Anthropic or Cursor (Anysphere).

FAQ

Can it close or edit issues?
No. It's read-only unless you start it with --allow-write, and even then it can only add existing labels and post comments you approve.
Does it need a token?
Not for public repos (60 requests an hour); a fine-grained token with Issues read access gives 5,000 an hour and private repos.
Does it work with GitHub Enterprise?
Yes, set GITHUB_API_URL to your server's /api/v3 URL.
How do I get the files?
Right after payment, Stripe’s confirmation page shows your download link.
Refunds?
Email hello@youraitools.co within 14 days if it doesn’t work and we can’t fix it.
Can I pay with crypto?
Yes. Pay the same price in USDC or USDT on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana from the "Pay with crypto" button, with no account or KYC. We check the payment on-chain and show your download links as soon as it confirms.

Get GitHub Issue Triage MCP Server

MCP server that triages GitHub issues: scored queue, no-reply and stale lists, duplicate pairs, similar-issue search, label suggestions. Read-only. $29.

Pairs well with

DownloadFree

Python MCP Server Template

Free Python MCP server template with no dependencies: stdio server for MCP 2026-07-28 and 2025 clients, two example tools, tests and a probe client.

View Python MCP Server Template
Download$19

DevOps & SRE Subagents for Claude Code

10 Claude Code subagents for DevOps and SRE: incident triage, Terraform plan review, Kubernetes, CI fixes, alerts, postmortems. Guard hook blocks destroy. $19.

View DevOps & SRE Subagents for Claude Code
Download$19

Data & Analytics Subagents for Claude Code

10 Claude Code subagents for data teams: SQL and dbt review, query tuning, data quality, metrics, A/B tests. SQL guard blocks DROP and unfiltered DELETE. $19.

View Data & Analytics Subagents for Claude Code

Related