CX (Customer 360) tools
CX MCP tools cover contacts, companies, activities, segments, exports, health scoring, message sending, and the generic substrate query/update tools. Customer 360 is ledger-powered.
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 | cx |
| Total tools | 42 |
| Read tools | 20 |
| Write tools | 11 |
| Simulate tools | 11 |
Scope
full and unlimited scopes can see CX tools. The accounting scope does not expose CX tools.
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_get_average_health_score | T1 | public, internal | none | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_get_contact_health | T1 | public, internal | none | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_get_crm_company | T1 | public, internal | none | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_get_crm_contact | T1 | public, internal | none | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_get_crm_revenue_attribution | T1 | public, internal | none | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_get_cx_segment | T1 | public, internal | none | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_get_cx_segment_contacts | T1 | public, internal | none | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_get_health_distribution | T1 | public, internal | none | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_contacts_by_health_tier | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_crm_activities | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_crm_ai_duplicate_insights | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_crm_ai_enrichment_suggestions | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_crm_companies | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_crm_contact_merges | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_crm_contacts | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_crm_duplicates | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_crm_relationship_insights | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_cx_segments | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_list_health_score_changes | T1 | public, internal | cursor | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR |
inblack_query_records | T1 | public, internal | none | 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_archive_crm_contact | T4 | internal | none | inblack_simulate_archive_crm_contact | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_CONFLICT, INBLACK_IDEMPOTENCY_CONFLICT, INBLACK_AUDIT_UNAVAILABLE, INBLACK_T4_BLOCKED |
inblack_create_crm_activity | T3 | public, internal | none | inblack_simulate_create_crm_activity | 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_create_crm_company | T3 | public, internal | none | inblack_simulate_create_crm_company | 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_create_crm_contact | T3 | public, internal | none | inblack_simulate_create_crm_contact | 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_merge_crm_contacts | T4 | internal | none | inblack_simulate_merge_crm_contacts | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_CONFLICT, INBLACK_IDEMPOTENCY_CONFLICT, INBLACK_AUDIT_UNAVAILABLE, INBLACK_T4_BLOCKED |
inblack_resolve_crm_enrichment | T3 | public, internal | none | inblack_simulate_resolve_crm_enrichment | 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_send_message | T3 | public, internal | none | inblack_simulate_send_message | 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_send_studio_email_template | T3 | public, internal | none | inblack_simulate_send_studio_email_template | 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_update_crm_company | T3 | public, internal | none | inblack_simulate_update_crm_company | 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_update_crm_contact | T3 | public, internal | none | inblack_simulate_update_crm_contact | 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_update_record | T3 | public, internal | none | inblack_simulate_update_record | 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_archive_crm_contact | T1 | internal | inblack_archive_crm_contact | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_create_crm_activity | T1 | public, internal | inblack_create_crm_activity | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_create_crm_company | T1 | public, internal | inblack_create_crm_company | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_create_crm_contact | T1 | public, internal | inblack_create_crm_contact | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_merge_crm_contacts | T1 | internal | inblack_merge_crm_contacts | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_resolve_crm_enrichment | T1 | public, internal | inblack_resolve_crm_enrichment | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_send_message | T1 | public, internal | inblack_send_message | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_send_studio_email_template | T1 | public, internal | inblack_send_studio_email_template | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_update_crm_company | T1 | public, internal | inblack_update_crm_company | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_update_crm_contact | T1 | public, internal | inblack_update_crm_contact | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |
inblack_simulate_update_record | T1 | public, internal | inblack_update_record | INBLACK_UNAUTHORIZED, INBLACK_FORBIDDEN, INBLACK_VALIDATION_ERROR, INBLACK_NOT_FOUND, INBLACK_RATE_LIMITED, INBLACK_BACKEND_ERROR, INBLACK_NOT_IMPLEMENTED, INBLACK_AUDIT_UNAVAILABLE |