MCP Server Mesh — API Reference
HTTP endpoints served by the data-plane for this capability (52 endpoints). 1 response schemas could not be derived from source and are recorded as unknown.
Endpoints
GET /api/dp/v1/catalog/agent-versions
- response type
- ListResponse[AgentVersion]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/agent-versions
- response type
- *AgentVersion
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/agents
- response type
- ListResponse[Agent]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/agents
- response type
- *Agent
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
DELETE /api/dp/v1/catalog/agents/{id}
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/agents/{id}
- response type
- *Agent
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
PATCH /api/dp/v1/catalog/agents/{id}
- response type
- *Agent
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/agents/{id}/api-key
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
Not available yet: response is an untyped map[string]string; field-level shape is not derivable from source
POST /api/dp/v1/catalog/agents/{id}/approve
- response type
- *Agent
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/agents/{id}/block
- response type
- *Agent
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
PUT /api/dp/v1/catalog/agents/{id}/roles
- description
- updateAgentRoles replaces an agent's role assignment list. Body is a JSON array of role names: ["developer", "release-bot"]. Empty array clears all assignments. Role names should match what the IdP exposes; UI is responsible for picking from /api/identity/roles to avoid typos.
- response type
- *Agent
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/applications
- response type
- ListResponse[Application]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/applications
- response type
- *Application
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
DELETE /api/dp/v1/catalog/applications/{id}
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/applications/{id}
- response type
- *Application
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/columns
- response type
- ListResponse[Column]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/columns
- response type
- *Column
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/datasets
- response type
- ListResponse[Dataset]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/datasets
- response type
- *Dataset
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/datasets/{id}
- response type
- *Dataset
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/mcp-server-snapshots
- response type
- ListResponse[McpServerSnapshot]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/mcp-server-snapshots
- response type
- *McpServerSnapshot
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/mcp-servers
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/mcp-servers
- response type
- *McpServer
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/mcp-servers/protocol-version-counts
- description
- protocolVersionCounts — P0-SPEC-2026-S4. The order list is duplicated here (rather than imported from discovery) to keep the catalog module boundary clean — importing discovery from catalog would introduce a cycle (discovery already imports catalog). This list is a stable UI contract; both this handler and discovery.AllKnownSpecs must be updated together when adding a new spec version. The 000029 migration's CHECK constraint is the third place — the migration is the source of truth for storage, the mcpspec.go file is source of truth for behavior, and this handler is source of truth for display order.
- response type
- ListResponse[ProtocolVersionCount]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
DELETE /api/dp/v1/catalog/mcp-servers/{id}
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/mcp-servers/{id}
- response type
- *McpServer
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/mcp-servers/{id}/activity
- response type
- []Activity
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/model-versions
- response type
- ListResponse[ModelVersion]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/model-versions
- response type
- *ModelVersion
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/model-versions/{id}
- response type
- *ModelVersion
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/prompt-templates
- response type
- ListResponse[PromptTemplate]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/prompt-templates
- response type
- *PromptTemplate
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/prompt-templates/{id}
- response type
- *PromptTemplate
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/resources
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/resources
- response type
- *Resource
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/resources/{id}
- response type
- *Resource
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/role-mappings
- response type
- ListResponse[RoleMapping]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/role-mappings
- response type
- *RoleMapping
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
DELETE /api/dp/v1/catalog/role-mappings/{id}
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/roles
- response type
- ListResponse[Role]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/roles
- response type
- *Role
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/roles/{id}
- response type
- *Role
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/source-repos
- response type
- ListResponse[SourceRepo]
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/source-repos
- response type
- *SourceRepo
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/tables
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/tables
- response type
- *Table
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/tables/{id}
- response type
- *Table
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/tools
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
POST /api/dp/v1/catalog/tools
- response type
- *Tool
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
GET /api/dp/v1/catalog/tools/{id}
- response type
- *Tool
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
PATCH /api/dp/v1/catalog/tools/{id}/extractor
- description
- updateToolExtractor handles PATCH /tools/{id}/extractor — the focused per-tool extractor edit triggered from the tool detail card. The body shape is just `{"target_extractor": <jsonb>}`. Setting it to {} clears the extractor (gateway falls back to tool-level governance only for invocations of this tool).
- response type
- *Tool
- middleware
- dpmiddleware.DemoReadOnly, AuthMiddleware(...)
Verification
Route extraction agrees with the runtime chi.Walk census for this plane.
- matched
- 207
- runtime only
- 0

Docs