Skip to main content

MCP Server

AgentsBoard exposes a JSON-RPC 2.0 server implementing the Model Context Protocol (MCP).

Protocol

Communication uses stdio transport with JSON-RPC 2.0:

// Request
{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "list_sessions"}}

// Response
{"jsonrpc": "2.0", "id": 1, "result": {"sessions": [...]}}

Built-in Tools

ToolDescription
list_sessionsList all active agent sessions
get_fleet_statsAggregate fleet statistics
get_activity_logRecent activity events
send_inputSend text to a specific session
get_agent_statesSnapshot of all agent states

Adding Custom Tools (OCP)

// 1. Implement the MCPTool protocol
final class MyTool: MCPTool {
var definition: MCPToolDefinition {
MCPToolDefinition(
name: "my_tool",
description: "Does something useful",
inputSchema: ["type": "object", "properties": [...]]
)
}

func execute(params: [String: AnyCodable]?) async -> Any {
return ["result": "success"]
}
}

// 2. Register at runtime
server.registerTool(MyTool())

MCPServer Usage

let server = MCPServer()
server.registerTool(ListSessionsTool(fleet: fleet))
server.registerTool(GetFleetStatsTool(fleet: fleet))
try server.start()