MCP

MCP server (JSON-RPC)

POST/mcp
No scope required

The Model Context Protocol (MCP) endpoint. Unlike the rest of this API it is JSON-RPC, not REST, so individual method/tool schemas are not enumerated here.

  • Transport: JSON-RPC over HTTP at /api/v2/mcp.
  • Auth: the same hlm_-prefixed bearer token as the REST API.
  • Scopes: the exposed MCP tools mirror the REST scopes (e.g. list_investors requires investors:read, submit_form requires forms:write), enforced per tool exactly as the REST routes enforce their scopes.
  • Auditing & rate limits: MCP requests pass the same apiSuite middleware (auditing, IP allowlist, rate limiting) as REST requests.

See the MCP guide for connection details and how tools map to operations.

Request body

application/json, required

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_investors",
    "arguments": {
      "limit": 25
    }
  }
}

Responses

200

A JSON-RPC 2.0 response envelope.

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"data\":[{\"id\":\"6f1c2e8a-1b2c-4d5e-8f90-1a2b3c4d5e6f\",\"email\":\"ada.lovelace@example.com\"}]}"
      }
    ]
  }
}
401

Authentication failed. error.code is one of invalid_token, expired, revoked.

Error
403

Authorization failed. error.code is one of org_disabled, ip_blocked, missing_scope, scope_disabled, user_disabled.

Error
429

Rate limit exceeded (error.code = rate_limited).

Error

Examples

curl -X POST https://your-org-domain/kong/core/api/v2/mcp\
  -H "Authorization: Bearer $HELM_API_KEY"\
  -H "Content-Type: application/json"\
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_investors",
    "arguments": {
      "limit": 25
    }
  }
}'