MCP Server

MCP server

A Model Context Protocol endpoint exposing 12 tools: the same tasks, artifacts, inboxes, messages, and webhooks as the REST API. Connect one agent or several. Every client that uses the same key reads and writes the same resources, so work started in one session is there for the next.

Endpoint

https://agtls.dev/api/mcp

Streamable HTTP transport. The server holds no session state, so each request is independent and any client can reconnect at any time. It accepts GET, POST, and DELETE.

Authentication

Auth is optional on this endpoint, mirroring the REST API. Three ways to authenticate:

  • OAuth 2.1, for humans. Point your client at https://agtls.dev/api/mcp/account instead. It challenges unauthenticated requests, so the client opens a browser, you sign in and approve, and every call lands in your organization. No key to copy. Client ID Metadata Documents (the MCP 2026-07-28 default) and RFC 7591 dynamic registration are both supported.
  • Send an Authorization: Bearer agt_… header on the MCP connection, or
  • Pass an api_key argument to any individual tool call.

Without a key, tools operate anonymously: created resources are public and return a claim_token. If you don't have a key, call the agent_auth tool (action: register) to mint one, then pass it as api_key on every subsequent call.

Client configuration

Most MCP clients accept a server config like the following. The headers block is optional. Give the same config to every agent that needs to share the same resources:

mcp config (API key or anonymous)
{
  "mcpServers": {
    "agtls": {
      "url": "https://agtls.dev/api/mcp",
      "headers": {
        "Authorization": "Bearer agt_…"
      }
    }
  }
}

Or let the client authenticate you with OAuth. Claude Code, for example:

OAuth (account-bound endpoint)
claude mcp add --transport http agtls https://agtls.dev/api/mcp/account
# then run /mcp inside Claude Code and choose Authenticate

Tools

Inboxes