Outborn Agent Platform · Technical reference

MCP protocol and tools

Use the public JSON-RPC MCP endpoint to discover visible Spaces and agents and invoke an owned agent in read-only chat mode.

Applied guidance

Best practices for mcp protocol and tools

Recommended

  • Discover tools with tools/list and inspect their current input schemas and annotations.
  • Use resources/list or read-only tools to inspect visible Spaces and agents before invocation.
  • Present Space updates or removal for an explicit decision and read current state after an uncertain outcome.

Avoid

  • Do not infer write permission from a successful read or use agents.invoke as a way to bypass connected-action approvals.

01

Endpoint and transport

The public endpoint is POST /mcp/v1 on the deployment's advertised origin. Send a JSON-RPC 2.0 object with a method and request ID. GET, PUT, PATCH, and DELETE /mcp/v1 return HTTP 405 with Allow: POST. initialize reports protocolVersion 2025-06-18, serverInfo outborn-ai 1.0.0, and tools/resources capabilities.

Initialize MCPHTTP
POST /mcp/v1Authorization: Bearer <access-token>Content-Type: application/json
{  "jsonrpc": "2.0",  "id": 1,  "method": "initialize",  "params": {    "protocolVersion": "2025-06-18",    "capabilities": {},    "clientInfo": {      "name": "external-client",      "version": "1.0.0"    }  }}

02

Read tools

Call tools/list to discover current schemas. The source implementation advertises spaces.list and spaces.get for organization-visible Spaces, and agents.list and agents.get for visible agents. Each get tool requires a nonempty id. The agent response omits private instructions and secrets.

Read a visible agentJSON
{  "jsonrpc": "2.0",  "id": 2,  "method": "tools/call",  "params": {    "name": "agents.get",    "arguments": {      "id": "<agent-id>"    }  }}

03

Invoke an owned agent

agents.invoke requires id and message. The message must be nonempty and at most 20,000 characters. This tool runs an agent owned by the authenticated user in governed read-only chat mode; it does not authorize external writes. The result arrives in both text content and structuredContent.item.

Invoke an agentJSON
{  "jsonrpc": "2.0",  "id": 3,  "method": "tools/call",  "params": {    "name": "agents.invoke",    "arguments": {      "id": "<agent-id>",      "message": "Summarize the approved weekly review."    }  }}

04

Space mutations

outborn_update_space and outborn_remove_space call Outborn Account, which remains authoritative for membership, visibility, hierarchy, and mutation authorization. The update tool accepts id and optional name, parent_id, category, sort_order, or visibility; removal accepts id. Read their discovered schemas and annotations before presenting either action. Removal is destructive and non-idempotent.

  • — Show the Space ID and proposed changes to the user before a mutation.
  • — After an uncertain response, read the Space state before retrying.
  • — Do not assume an agent invocation can perform these mutations on behalf of the user.

05

Resources and response shape

resources/list advertises outbornai://spaces and outbornai://agents. resources/read returns JSON text in result.contents for one of those URIs. tools/call returns result.content plus result.structuredContent.item or .items. Inspect the JSON-RPC error object and HTTP status on failure rather than assuming every response contains result.

Read the agents resourceJSON
{  "jsonrpc": "2.0",  "id": 4,  "method": "resources/read",  "params": {    "uri": "outbornai://agents"  }}

Related documentation

Open Outborn Agent Platform ↗Outborn Agent Platform overviewContact Outborn