POSTPro+
/mcp/{model_id}MCP Tool Call
The MCP HTTP transport. A single JSON-RPC 2.0 endpoint that dispatches to all of Metapad's MCP tools (get_metamodel, search_nodes, create_nodes, etc.) — set 'method' to the JSON-RPC method ('tools/call', 'tools/list', 'initialize', 'ping') and put the tool name + arguments in 'params'. This is the same endpoint that Claude Desktop, Claude Code, and other MCP clients connect to — use it directly from scripts and CI when no interactive OAuth login is possible. Distinct from the REST API v1 endpoints under /api/v1/..., which expose individual resources as conventional REST.
AuthenticationBearer mpt_... or OAuth JWT
Plan RequirementPro+
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
model_id | String (UUID) | ✓ | [MCP Tool Call] UUID of the model the call operates on. Path parameter — the API token must have access to this model. | |
jsonrpc | String | ✓ | "2.0" | [MCP Tool Call] JSON-RPC protocol version. Must be the string "2.0". Body field. |
params | Object | — | [MCP Tool Call] Method parameters. For 'tools/call' this is {"name": "<tool>", "arguments": {...}} where 'name' selects an APITool and 'arguments' contains its inputs. For 'tools/list' / 'initialize' / 'ping' an empty object is fine. Body field. | |
model_id | String (UUID) | ✓ | [MCP Tool Call] UUID of the model the call operates on. Path parameter — the API token must have access to this model. | |
jsonrpc | String | ✓ | "2.0" | [MCP Tool Call] JSON-RPC protocol version. Must be the string "2.0". Body field. |
id | Number | String | — | [MCP Tool Call] Client-chosen request ID echoed in the response. Number or string. Body field. Omit for notifications (e.g. notifications/initialized). | |
method | String | ✓ | [MCP Tool Call] JSON-RPC method to invoke. Supported: 'initialize', 'ping', 'tools/list', 'tools/call', 'resources/list', 'resources/templates/list', 'notifications/initialized'. Most scripts only need 'tools/call'. Body field. | |
params | Object | — | [MCP Tool Call] Method parameters. For 'tools/call' this is {"name": "<tool>", "arguments": {...}} where 'name' selects an APITool and 'arguments' contains its inputs. For 'tools/list' / 'initialize' / 'ping' an empty object is fine. Body field. |
Example Response
{"jsonrpc": "2.0", "id": 1, "result": {"content": [{"type": "text", "text": "{\"total_count\": 3, \"returned_count\": 3, \"nodes\": [...]}"}]}}
// Errors use JSON-RPC error envelope:
{"jsonrpc": "2.0", "id": 1, "error": {"code": -32602, "message": "Invalid tool call params: ..."}}
// 401 Unauthorized responses include a WWW-Authenticate header for OAuth discovery (RFC 9728).