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

MCP `commits`: list a branch's recent commits, with the same rules as GET …/commits #3799

shipped production is serving it opened this has it
opened this

For agents that work through MCP and not a git client: today src/http/mcp.ts has no tool that lists a branch's commits, so an agent has to fall back to the REST API.

Done:

  • [ ] A read-only MCP tool commits (no writes), placed directly after the branches tool in src/http/mcp.ts so it does not collide with other tool additions. It takes repo, an optional ref (checked with isSafeRef) and an optional limit (1–100, default 30), and answers through commitLog with the same access rules as the REST route: a repository the caller cannot read is not found.
  • [ ] Every argument is validated in inputSchema (types, maxLength, enums), and the description is one sentence, so tools/list stays small (#3366).
  • [ ] test/mcp-commits.test.ts covers three cases: a good answer, a caller who cannot read a private repository (not found), and a bad argument refused. Each case fails without the tool.

Files: src/http/mcp.ts, test/mcp-commits.test.ts (new), docs/MCP.md (one line). Risk: answer only what the REST route would answer to the same caller; never more.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs