Intent: a fork's owner sees and changes what it follows from their harness.
Done:
[ ] src/http/mcp.ts has a upstream tool, placed right after follow_mode, that calls what GET and PUT /api/v1/repos/:owner/:name/upstream and POST …/upstream/check call, for the same caller
[ ] docs/MCP.md has its row beside follow_mode
[ ] test/mcp-upstream.test.ts: an admin sets an upstream, reads it back and checks it; a reader is refused set; an upstream they cannot read is refused
Risks: test/mcp-size.test.ts holds tools/list under a 37,000-byte headroom, so keep the description to one short sentence. Other MCP tools are being added in parallel, so put this one exactly where named. Do not change the API routes: the tool calls the functions they call, with the same permissions.
Intent: a fork's owner sees and changes what it follows from their harness.
Done:
upstreamtool, placed right afterfollow_mode, that calls what GET and PUT/api/v1/repos/:owner/:name/upstreamand POST…/upstream/checkcall, for the same callerfollow_modeRisks:
test/mcp-size.test.tsholdstools/listunder a 37,000-byte headroom, so keep the description to one short sentence. Other MCP tools are being added in parallel, so put this one exactly where named. Do not change the API routes: the tool calls the functions they call, with the same permissions.