Skip to main content
POST
http://127.0.0.1:8765
/
messages
Deploy API: MCP Server
curl --request POST \
  --url http://127.0.0.1:8765/messages/ \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "jsonrpc": "<string>",
  "method": "<string>",
  "params": {},
  "id": 123,
  "params.name": "<string>",
  "params.arguments": {},
  "params.protocolVersion": "<string>",
  "params.capabilities": {},
  "params.clientInfo": {}
}
'

MCP API

MCP (Model Context Protocol) endpoints for agents deployed via Agent.launch(protocol="mcp") or ToolsMCPServer.

Base URL + Playground

# Start MCP server
agent.launch(protocol="mcp", port=8080)
Base URL: http://localhost:8080

Endpoints

GET /sse

Server-Sent Events endpoint for MCP communication.
none
none
No parameters required.
curl -N http://localhost:8080/sse
Response: SSE stream with MCP protocol messages.

POST /messages/

Send JSON-RPC messages to the MCP server.
jsonrpc
string
required
JSON-RPC version (must be “2.0”)
method
string
required
MCP method name (tools/list, tools/call, initialize)
params
object
Method parameters
id
integer
required
Request ID
curl -X POST http://localhost:8080/messages/ \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
Response:
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      {
        "name": "execute_assistant_task",
        "description": "Executes the agent's primary task with the given prompt.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "prompt": {"type": "string"}
          },
          "required": ["prompt"]
        }
      }
    ]
  }
}

MCP Methods

tools/list

List available tools.
curl -X POST http://localhost:8080/messages/ \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
Response:
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      {
        "name": "search",
        "description": "Search the web for information.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "query": {"type": "string"}
          },
          "required": ["query"]
        }
      }
    ]
  }
}

tools/call

Execute a tool.
params.name
string
required
Tool name to execute
params.arguments
object
required
Tool arguments
curl -X POST http://localhost:8080/messages/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "search",
      "arguments": {"query": "AI news"}
    },
    "id": 2
  }'
Response:
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Results for: AI news"
      }
    ]
  }
}

initialize

Initialize MCP session.
params.protocolVersion
string
required
MCP protocol version
params.capabilities
object
Client capabilities
params.clientInfo
object
Client information (name, version)
curl -X POST http://localhost:8080/messages/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": {"name": "test-client", "version": "1.0.0"}
    },
    "id": 0
  }'
Response:
{
  "jsonrpc": "2.0",
  "id": 0,
  "result": {
    "protocolVersion": "2024-11-05",
    "capabilities": {"tools": {}},
    "serverInfo": {"name": "praisonai-tools", "version": "1.0.0"}
  }
}

Errors

MCP errors follow JSON-RPC 2.0 format:
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32601,
    "message": "Method not found"
  }
}
CodeMessage
-32700Parse error
-32600Invalid request
-32601Method not found
-32602Invalid params
-32603Internal error