Skip to main content
SONZAI
Api

M C P

List MCP catalog entries

GET
/projects/{projectId}/mcp/catalog
AuthorizationBearer <token>

API key issued to a Sonzai project. Format: Bearer sk_....

In: header

Path Parameters

projectId*string

Project UUID

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/projects/string/mcp/catalog"
{
  "$schema": "/api/v1/schemas/ListMCPCatalogOutputBody.json",
  "entries": [
    {
      "$schema": "/api/v1/schemas/MCPCatalogEntry.json",
      "auth": {
        "bearer_secret_ref": "string",
        "bearer_token": "string",
        "header_name": "string",
        "header_secret_ref": "string",
        "header_value": "string",
        "kind": "none"
      },
      "created_at": "string",
      "description": "string",
      "health": {
        "failures_1h": 0,
        "last_auth_rejected_at": "string",
        "last_error": "string",
        "last_error_at": "string",
        "last_ok_at": "string",
        "status": "string"
      },
      "id": "string",
      "name": "string",
      "transport": "string",
      "updated_at": "string",
      "url": "string"
    }
  ]
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Create MCP catalog entry

POST
/projects/{projectId}/mcp/catalog
AuthorizationBearer <token>

API key issued to a Sonzai project. Format: Bearer sk_....

In: header

Path Parameters

projectId*string

Project UUID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://loading/api/v1/projects/string/mcp/catalog" \  -H "Content-Type: application/json" \  -d '{    "auth": {      "kind": "none"    },    "name": "string",    "transport": "streamable-http",    "url": "http://example.com"  }'
{
  "$schema": "/api/v1/schemas/MCPCatalogEntry.json",
  "auth": {
    "bearer_secret_ref": "string",
    "bearer_token": "string",
    "header_name": "string",
    "header_secret_ref": "string",
    "header_value": "string",
    "kind": "none"
  },
  "created_at": "string",
  "description": "string",
  "health": {
    "failures_1h": 0,
    "last_auth_rejected_at": "string",
    "last_error": "string",
    "last_error_at": "string",
    "last_ok_at": "string",
    "status": "string"
  },
  "id": "string",
  "name": "string",
  "transport": "string",
  "updated_at": "string",
  "url": "string"
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Probe MCP config (pre-create)

POST
/projects/{projectId}/mcp/catalog/probe
AuthorizationBearer <token>

API key issued to a Sonzai project. Format: Bearer sk_....

In: header

Path Parameters

projectId*string

Project UUID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://loading/api/v1/projects/string/mcp/catalog/probe" \  -H "Content-Type: application/json" \  -d '{    "auth": {      "kind": "none"    },    "name": "string",    "transport": "streamable-http",    "url": "http://example.com"  }'
{
  "$schema": "/api/v1/schemas/MCPProbeResponseBody.json",
  "error": "string",
  "latency_ms": 0,
  "ok": true,
  "tool_count": 0
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Get MCP catalog entry

GET
/projects/{projectId}/mcp/catalog/{id}
AuthorizationBearer <token>

API key issued to a Sonzai project. Format: Bearer sk_....

In: header

Path Parameters

projectId*string

Project UUID

id*string

Catalog entry UUID

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/projects/string/mcp/catalog/string"
{
  "$schema": "/api/v1/schemas/MCPCatalogEntry.json",
  "auth": {
    "bearer_secret_ref": "string",
    "bearer_token": "string",
    "header_name": "string",
    "header_secret_ref": "string",
    "header_value": "string",
    "kind": "none"
  },
  "created_at": "string",
  "description": "string",
  "health": {
    "failures_1h": 0,
    "last_auth_rejected_at": "string",
    "last_error": "string",
    "last_error_at": "string",
    "last_ok_at": "string",
    "status": "string"
  },
  "id": "string",
  "name": "string",
  "transport": "string",
  "updated_at": "string",
  "url": "string"
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Update MCP catalog entry

PATCH
/projects/{projectId}/mcp/catalog/{id}
AuthorizationBearer <token>

API key issued to a Sonzai project. Format: Bearer sk_....

In: header

Path Parameters

projectId*string

Project UUID

id*string

Catalog entry UUID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X PATCH "https://loading/api/v1/projects/string/mcp/catalog/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "$schema": "/api/v1/schemas/MCPCatalogEntry.json",
  "auth": {
    "bearer_secret_ref": "string",
    "bearer_token": "string",
    "header_name": "string",
    "header_secret_ref": "string",
    "header_value": "string",
    "kind": "none"
  },
  "created_at": "string",
  "description": "string",
  "health": {
    "failures_1h": 0,
    "last_auth_rejected_at": "string",
    "last_error": "string",
    "last_error_at": "string",
    "last_ok_at": "string",
    "status": "string"
  },
  "id": "string",
  "name": "string",
  "transport": "string",
  "updated_at": "string",
  "url": "string"
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Delete MCP catalog entry

DELETE
/projects/{projectId}/mcp/catalog/{id}
AuthorizationBearer <token>

API key issued to a Sonzai project. Format: Bearer sk_....

In: header

Path Parameters

projectId*string

Project UUID

id*string

Catalog entry UUID

Query Parameters

force?boolean

Delete even if referenced by agents

Response Body

application/problem+json

curl -X DELETE "https://loading/api/v1/projects/string/mcp/catalog/string"
Empty
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Probe MCP catalog entry

POST
/projects/{projectId}/mcp/catalog/{id}/probe
AuthorizationBearer <token>

API key issued to a Sonzai project. Format: Bearer sk_....

In: header

Path Parameters

projectId*string

Project UUID

id*string

Catalog entry UUID

Response Body

application/json

application/problem+json

curl -X POST "https://loading/api/v1/projects/string/mcp/catalog/string/probe"
{
  "$schema": "/api/v1/schemas/MCPProbeResponseBody.json",
  "error": "string",
  "latency_ms": 0,
  "ok": true,
  "tool_count": 0
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

List tools for MCP catalog entry

GET
/projects/{projectId}/mcp/catalog/{id}/tools
AuthorizationBearer <token>

API key issued to a Sonzai project. Format: Bearer sk_....

In: header

Path Parameters

projectId*string

Project UUID

id*string

Catalog entry UUID

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/projects/string/mcp/catalog/string/tools"
{
  "$schema": "/api/v1/schemas/MCPCatalogToolsResponse.json",
  "tools": [
    {
      "description": "string",
      "input_schema": {
        "property1": null,
        "property2": null
      },
      "name": "string"
    }
  ]
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

List agents referencing MCP catalog entry

GET
/projects/{projectId}/mcp/catalog/{id}/usages
AuthorizationBearer <token>

API key issued to a Sonzai project. Format: Bearer sk_....

In: header

Path Parameters

projectId*string

Project UUID

id*string

Catalog entry UUID

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/projects/string/mcp/catalog/string/usages"
{
  "$schema": "/api/v1/schemas/MCPCatalogUsagesResponse.json",
  "agent_ids": [
    "string"
  ]
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}