Portal tools
Portal MCP tools cover organization selection and workflow-approval waiting. Most tenant settings, billing, team, and integration operations remain product API/UI surfaces until catalog entries exist.
This page is generated from the checked MCP catalog inventory. Run pnpm generate:mcp-catalog after platform catalog changes, then run pnpm generate:mcp-pages to refresh these reference tables. Do not add UI/API counterpart claims here unless a source file verifies the shared capability.
Catalog source
| Source | Value |
|---|---|
| Catalog | apps/ai-coo-cf/src/tools/catalog.ts |
| Manifest schema | 2026-05-01 |
| Generated inventory | docs/src/generated/mcp-catalog.json |
| Pillar | portal |
| Total tools | 11 |
| Read tools | 1 |
| Write tools | 5 |
| Simulate tools | 5 |
Scope
accounting, full, and unlimited scopes can see Portal tools when the caller also satisfies per-tool policy.
T4 tools default to the internal surface only. Public and internal surface visibility still depends on auth, tenant context, entitlements, roles, permissions, feature gates, and model policy. Error codes below are generated from catalog overrides or the catalog default error profiles.
Read tools
| Tool | Tier | Surfaces | Pagination | Error codes |
|---|---|---|---|---|
inblack_list_orgs | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
Write tools
Every catalog write tool has a generated simulate counterpart listed in the Simulated by column. Customer-facing agent writes that mutate financial state remain MCP-first, including inside code-mode.
| Tool | Tier | Surfaces | Pagination | Simulated by | Error codes |
|---|---|---|---|---|---|
inblack_create_merchant_org | T2 | public | none | inblack_simulate_create_merchant_org | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_CONFLICT, INBLACK_IDEMPOTENCY_CONFLICT, INBLACK_CONFIRMATION_REQUIRED, INBLACK_AUDIT_UNAVAILABLE |
inblack_invite_member | T3 | public, internal | none | inblack_simulate_invite_member | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_CONFLICT, INBLACK_IDEMPOTENCY_CONFLICT, INBLACK_CONFIRMATION_REQUIRED, INBLACK_AUDIT_UNAVAILABLE |
inblack_set_member_role | T3 | public, internal | none | inblack_simulate_set_member_role | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_CONFLICT, INBLACK_IDEMPOTENCY_CONFLICT, INBLACK_CONFIRMATION_REQUIRED, INBLACK_AUDIT_UNAVAILABLE |
inblack_set_org | T2 | public, internal | none | inblack_simulate_set_org | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_CONFLICT, INBLACK_IDEMPOTENCY_CONFLICT, INBLACK_CONFIRMATION_REQUIRED, INBLACK_AUDIT_UNAVAILABLE |
inblack_wait_for_workflow_approval | T3 | internal | none | inblack_simulate_wait_for_workflow_approval | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_CONFLICT, INBLACK_IDEMPOTENCY_CONFLICT, INBLACK_CONFIRMATION_REQUIRED, INBLACK_AUDIT_UNAVAILABLE |
Simulate tools
Generated simulate tools are kind: "simulate" and tier: "T1". Standalone simulate tools are explicitly declared in the catalog.
| Tool | Tier | Surfaces | Simulates | Error codes |
|---|---|---|---|---|
inblack_simulate_create_merchant_org | T1 | public | inblack_create_merchant_org | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_invite_member | T1 | public, internal | inblack_invite_member | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_set_member_role | T1 | public, internal | inblack_set_member_role | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_set_org | T1 | public, internal | inblack_set_org | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_wait_for_workflow_approval | T1 | internal | inblack_wait_for_workflow_approval | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |