Intent: an agent asked "what is @name working on?" answers from the forge, with the same privacy as the person's page.
Done:
[ ] src/http/mcp.ts has a person tool, placed right after explore, taking username, limit and cursor. It answers what GET /api/v1/users/:username and /api/v1/users/:username/repos answer for the same caller
[ ] a private repository the caller cannot see is never listed; an unknown username is not found
[ ] docs/MCP.md has its row beside explore
[ ] test/mcp-person.test.ts: a stranger sees only public repositories; a collaborator also sees the private one they were given; an unknown name is not found
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 so the hunks do not meet. Do not change the API routes: the tool calls the same functions.
Intent: an agent asked "what is @name working on?" answers from the forge, with the same privacy as the person's page.
Done:
persontool, placed right afterexplore, takingusername,limitandcursor. It answers what GET/api/v1/users/:usernameand/api/v1/users/:username/reposanswer for the same callerexploreRisks:
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 so the hunks do not meet. Do not change the API routes: the tool calls the same functions.