Reading the catalog
The MCP manifest is the machine-readable view of the Worker tool catalog after surface, tenant, policy, role, entitlement, and persona filtering.
Endpoint
GET https://ai-coo.inblack.app/mcp/manifestAuthorization: Bearer <zitadel-access-token>X-Tenant-ID: <tenant-id>The internal equivalent is:
GET https://ai-coo.inblack.app/internal/mcp/manifestAuthorization: Bearer <service-token-or-internal-scope-token>X-Tenant-ID: <tenant-id>Top-level fields
{ "schema_version": "2026-05-01", "canonical_catalog": "apps/ai-coo-cf/src/tools/catalog.ts", "surface": "public", "endpoint_path": "/mcp", "transport": "mcp_streamable_http", "auth": "zitadel_bearer", "visibility_schema_version": "2026-05-01", "tool_count": 42, "counts_by_kind": { "read": 0, "write": 0, "simulate": 0 }, "counts_by_pillar": { "accounting": 0, "commerce": 0, "cx": 0, "portal": 0, "reporting": 0, "studio": 0 }, "tools": []}/.well-known/inblack-mcp returns runtime metadata and manifest summaries without full tool entries.
Tool entry fields
| Field | Meaning |
|---|---|
name | Canonical inblack_* tool name |
description | Catalog description |
tier | Risk tier: T1, T2, T3, or T4 |
pillar | accounting, commerce, cx, portal, reporting, or studio |
kind | read, write, or simulate |
pagination | cursor or none |
provenance | required for writes, not_applicable otherwise |
surfaces | Public/internal exposure declared by the catalog |
error_codes | Possible INBLACK_* tool error codes |
input_schema_keys | Sorted input field names |
visibility | Entitlement, feature, GL layer, role, permission, and persona gates |
deterministic | Deterministic replay metadata |
simulated_by | Name of the generated simulate tool for a write |
simulates | Name of the write tool a simulate tool previews |
The manifest intentionally does not include UI-counterpart or HTTP-equivalent fields. Those links are documentation decisions and must be source-verified under ADR-0019.
Filtering
The public manifest hides tools when:
- The tool is not on the public surface.
- The tenant AI assistant is disabled.
- The effective tier is T4 on the public surface.
- The tool is outside the tenant AI COO scope.
- The pillar, feature, GL layer, entitlement, role, permission, or persona gate fails.
The public surface uses bootstrap visibility when no X-Tenant-ID is present. Tenant-scoped discovery should send the tenant header.
Compare to tools/list
tools/list is the MCP protocol view for an active client. /mcp/manifest is the InBlack metadata view for documentation, audits, SDK generation, and catalog drift checks.
Local drift check
This docs repo includes a generated catalog artifact and check:
pnpm check:mcpRun it after changes to apps/ai-coo-cf/src/tools/catalog.ts. It fails if either the checked-in generated inventory or the pillar reference pages no longer match the platform catalog.