For agents
An MCP server and a plain-text build, so the agent writing the integration reads the current docs.
Most integrations are now written by a person and an agent together, and the agent is reading a copy of an API reference pasted into a prompt — which is how an integration gets written against last quarter's shape. There are two ways to stop that here, and both are generated from the same source these pages render.
The MCP server
A Model Context Protocol server over Streamable HTTP. It lets an agent ask rather than swallow the whole document: find the page about signatures, read that page, list the endpoints.
{
"mcpServers": {
"guiru": { "type": "http", "url": "https://guiru.app/api/mcp" }
}
}claude mcp add --transport http guiru https://guiru.app/api/mcp- search_docsquery, limit?
- The pages that answer a question, with an excerpt and the slug to read in full.
- get_docslug
- One page, whole, with its code examples.
- list_docs—
- Every page in reading order, with summaries.
- list_endpoints—
- Every documented endpoint: method, path, credential, purpose.
- get_schemasname?
- The exact shape of every request and response: entitlement, usage, identity, token, webhook envelope.
- list_events—
- Every webhook event with the delivery guarantees a handler must respect.
- list_errors—
- Every status, what causes it, and whether a retry can help.
- review_integrationcode
- Checks code or a description against the mistakes we see most: re-serialised bodies,
==on signatures, missing timestamp window, comparingends_at, ignoringretry-after. - get_full_docs—
- Everything at once, the same text as llms.txt.
Or just the text
If your tool does not speak MCP, the whole documentation is one plain-text document:
GET /developers/docs/llms.txtNo key, no HTML to parse. The page you are reading and the text an agent fetches cannot disagree, because there is only one source.
What an agent should be told
Three things are worth saying explicitly in a prompt, because they are the mistakes an agent makes from prior knowledge of other platforms: there is no refresh token, there is no product id parameter (the key is the product), and the webhook signature covers the raw body, not a re-serialised object. The MCP server says all three in its own instructions, so a client that reads them starts from the right place — and review_integration catches them in code afterwards, which is the version that survives a long session.
The shortest useful prompt: *install @guiru/sdk, call review_integration on the handler when you are done*. The SDK removes the mistakes by construction; the tool catches them when somebody writes the HTTP by hand.