For AI agents
Find Anlyon's machine-readable docs, the API's OpenAPI spec and the MCP endpoint, and authenticate an agent to the Anlyon API.
This page is for AI agents and the people who set them up. It lists where the machine-readable sources are, so an agent can read the docs, call the API and connect over MCP without scraping HTML or guessing endpoints.
Read the docs as Markdown
Start with the smallest source that answers the question.
| Need | URL |
|---|---|
| Every page, with a one-line summary, in sidebar order | https://docs.anlyon.com/llms.txt |
| One page without site navigation | Append .md to its URL, for example https://docs.anlyon.com/quickstart.md. .mdx returns the source with components as written. |
| Every page’s Markdown in one file | https://docs.anlyon.com/llms-full.txt |
| Pages with their Markdown and JSON URLs | https://docs.anlyon.com/api/docs/pages.json |
| Every agent-facing file on this site | https://docs.anlyon.com/agent-readability.json |
The site also publishes an API catalog and an AI catalog. The documentation is served as static files: there is no live documentation search endpoint and no documentation MCP server.
Read in this order for most tasks: Why Anlyon, the quickstart, Act for your users, then the page for the framework or client you are wiring up.
Fetch the API’s OpenAPI spec
| What | URL |
|---|---|
| The Anlyon API’s OpenAPI document | https://docs.anlyon.com/api-reference/openapi.json |
| The same operations, one page each | https://docs.anlyon.com/api-reference |
| The API’s base URL | https://api.anlyon.com. Every operation is under /api/v2. |
Take exact paths, parameters, request bodies, scopes and response schemas from the spec, not from examples. Each operation lists the scope it needs in x-anlyon-scopes.
https://docs.anlyon.com/openapi.json is a different document: it describes this documentation site’s own JSON API, not the Anlyon API.
Connect to the Anlyon MCP server
| What | URL |
|---|---|
| Every action in the workspace, plus approval tools | https://api.anlyon.com/mcp |
| One integration’s actions, plus approval tools | https://api.anlyon.com/mcp/<integration>, for example https://api.anlyon.com/mcp/github |
The server speaks Streamable HTTP. Its tools include list_actions, invoke_action, check_approval and wait_for_approval, and each enabled action also appears as its own tool, action_<name>, with the action’s input schema. See MCP servers for every tool and Claude Code, Cursor or Codex for exact client configuration.
Authenticate an agent
Pick one of these. An agent never needs, and never receives, a provider credential such as a GitHub or Gmail token: Anlyon adds it when it makes the call.
- OAuth, for an MCP client a person uses. Point the client at
https://api.anlyon.com/mcp. It registers itself and opens a browser, where the person signs in and chooses the workspace, the environment and the permission groups. Approve on your behalf, secrets, budgets and notification channels are off unless they turn them on. - An API key, for the REST API or a server-side MCP connection. Send
Authorization: Bearer anlyon_live_.... A key belongs to one environment and holds a fixed set of scopes. An agent key needsactions:read,actions:invokeandapprovals:read, and nothing privileged. Create it in Settings → API Keys in the console. See API keys and scopes. - Acting for one of a product’s users. The product’s server, not the model, adds
Anlyon-End-User: <id>to each request made with an API key (anlyon.forUser(id)in TypeScript,client.for_user(id)in Python,--end-user <id>for the stdio MCP server). An OAuth connection that sends this header is refused withEND_USER_HEADER_NOT_ALLOWED. See Workspace and end-user connections.
Check a key before doing work: GET https://api.anlyon.com/api/v2/auth/identity returns its environment, scopes and expiry and never a secret.
curl https://api.anlyon.com/api/v2/auth/identity \
-H "Authorization: Bearer $ANLYON_API_KEY"
Follow the rules an agent should keep
- Never retry an
unknownoutcome. It may have reached the provider. Read the receipt, or tell a person. See When the outcome is unknown. - Wait for a pending approval instead of calling again. A second call is a second request for approval. Use
wait_for_approval, or check the invocation later. - Treat a refusal as final.
grade: "refused"(a limit),denied(a person or a policy said no) andfailedbefore dispatch mean nothing was sent. Report it; do not work around it. - On
connect_required, ask the user to connect. The result carries aconnectUrl. Nothing was done.
Set up a project with one prompt
The agent setup prompt walks a coding agent through installing the SDK, creating the right keys and wiring the first action call, using only these docs.

