Intent: an agent reviewing history over MCP can open one commit, not only list them.
Done:
[ ] MCP commits accepts an optional oid (validated at the boundary: 4–64 hex); with it, the tool answers what GET ${REPO}/commits/{oid} answers plus what GET ${REPO}/commits/{oid}/check answers, through the same actions those routes call — no second implementation
[ ] An unknown oid is a refusal with one sentence; a private repository the caller cannot read answers as the route does
[ ] The answer carries a says sentence like the tools beside it, and the docs/MCP.md row for commits says oid
[ ] Tests: a reader gets the commit and its check; a bad oid and a stranger on a private repository are refused as the routes refuse them
[ ] tools/list stays under its size budget (the MCP size test passes)
Intent: an agent reviewing history over MCP can open one commit, not only list them.
Done:
commitsaccepts an optionaloid(validated at the boundary: 4–64 hex); with it, the tool answers what GET${REPO}/commits/{oid}answers plus what GET${REPO}/commits/{oid}/checkanswers, through the same actions those routes call — no second implementationsayssentence like the tools beside it, and the docs/MCP.md row forcommitssaysoidFiles: src/http/mcp.ts, docs/MCP.md, a test.