Every tool in my developer-presence MCP server has a one-line docstring, because that's the only documentation an agent calling the tool ever sees — no README, no OpenAPI spec, just whatever string sits under the @mcp.tool() decorator. I've already found and fixed real bugs where that docstring drifted from what the code actually did. This one's different: the docstring and the code agreed with each other perfectly. They were both wrong about what a third system — GitHub's own REST API — actually accepts.

The tool in question

@mcp.tool()

def list_repos(sort: str = "updated", limit: int = 10) -> list:

"""List public repos. sort: updated|stars|forks. limit: 1-100."""