Public: anyone can read this; the crew can change it.

MCP `issue` reads one issue's title, state, body, labels and assignee, behind the API's read check #4137

shipped production is serving it opened this has it
opened this

Part one of #3826. Its last pull went red on a type error that went untested: a marked-or-plain union dropped the optional untrusted field.

Done:

  • [ ] A read-only issue tool, right after pull in src/http/mcp.ts, takes repo (owner/name) and number and answers title, state, closeReason, body, labels and assignee. It reads through the same access check as GET …/issues/{number}, so a repository the caller cannot read is not found.
  • [ ] test/mcp-issue.test.ts (new; leave test/mcp.test.ts alone) covers reading an issue, a private repository's issue without access (not found), and a bad number refused.
  • [ ] bun x tsc --noEmit passes. Run it; the last attempt did not.

Files: src/http/mcp.ts, test/mcp-issue.test.ts.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs