Skip to Content
Zeotap AgentMCP Server

MCP Server

Zeotap exposes its capabilities through a Model Context Protocol (MCP) server, enabling external AI tools to interact with your CDP programmatically.

Overview

The MCP server runs alongside the control plane and provides a standardized interface for AI agents to discover and use Zeotap tools. This allows integration with Claude Desktop, Cursor, and any other MCP-compatible client.

Available Tools

The MCP server registers 80+ tools spanning every CDP surface — schema inspection, audience and computed-attribute authoring, audience canvases, identity resolution, orchestrations, stores, event streams, and direct warehouse access. Tools are grouped below by domain.

Schema

ToolDescription
list_modelsList all data models in the workspace, including columns, primary keys, entity types, and source references.
get_modelGet detailed information about a specific model — columns, types, primary key, entity type, SQL, and column_config (sensitivity, PII types, aliases).
list_relationshipsList all entity relationships (joins) connecting parent, related, and event models in the workspace.
list_traitsList all computed attributes (aggregated values) defined on parent or related models in the workspace.

Audiences

ToolDescription
list_audiencesList all audiences in the workspace, with name, parent model, filter tree, estimated size, and status.
get_audienceGet an audience’s full filter tree, parent model, estimated size, and sync status.
estimate_audience_sizeEstimate the row count matching a filter tree against a parent model without creating an audience.
validate_filter_nodeValidate a FilterNode JSON structure for correctness without executing it.
compile_filterCompile a FilterNode tree into SQL and return the estimated size; useful before saving an audience.
create_audienceCreate a new audience from a FilterNode tree. The filter is validated and compiled before saving.
update_audienceUpdate an existing audience’s name, description, filter tree, or status. Only provided fields change.

Audience Canvases

ToolDescription
list_audience_canvasesList all audience canvases in the workspace, with parent model, audience count, and when each was last published.
get_audience_canvasGet a canvas’s draft nodes and edges, its published version, and its parent model.
validate_canvas_changesetValidate proposed nodes and edges before saving or publishing — cycles, unwired tiles, missing audience names.
create_audience_canvasCreate a new, empty canvas on a parent model, optionally routed through an identity graph.
update_canvas_draftReplace a canvas’s draft nodes and edges. Autosaved and visible in the editor; nothing is published yet.
publish_audience_canvasPublish the current draft, compiling every Create Audience tile and materialising the audiences it owns.

Computed Attributes

ToolDescription
create_traitCreate a new computed attribute on a parent entity model; it is computed on read wherever it is referenced.
update_traitUpdate a computed attribute’s name, description, configuration, result type, or status. Only provided fields change; setting the status publishes or unpublishes it.
trigger_trait_evaluationTrigger an optional manual refresh of computed attributes for a parent model and return a run ID for tracking. Not required — computed attributes are computed on read.

Models & Schema (Write)

ToolDescription
create_modelCreate a model from a warehouse table or custom SQL. Columns auto-infer; entity_type and primary_key_column are required.
update_modelUpdate an existing model’s name, description, columns, SQL, entity type, or status.
update_column_configSet per-column sensitivity levels, PII types, display aliases, and enabled state.
create_relationshipCreate a relationship (join) between two models, enabling event and relation conditions in audience filters.

Sources & Warehouses

ToolDescription
list_sourcesList all configured data sources (input warehouses) in the workspace, with type, connection config, and status.
introspect_sourceList all database schemas available in a source connection.
list_tablesList all tables in a specific schema of a source connection.
list_columnsList all columns in a specific table, including name, data type, and nullability.
get_warehouse_contextGet the full data model context — models, columns, relationships, computed attributes, event schema, and system tables. Use before writing warehouse SQL.
query_warehouseExecute a read-only SQL query against a data warehouse. SELECT only, capped at 500 rows.
write_warehouseExecute a write SQL statement (INSERT, UPDATE, CREATE TABLE). DELETE, DROP, ALTER, TRUNCATE are blocked.

Destinations & Syncs

ToolDescription
list_destinationsList all configured destinations (output targets), with type, connection config, and status.
create_destinationCreate a new destination (Snowflake, BigQuery, Databricks, webhook, etc.) for syncing audience or model data.
list_syncsList all Reverse ETL syncs in the workspace — model, destination, field mapping, mode, schedule, and status.
list_audience_syncsList all audience syncs — audience, destination, field mapping, mode, schedule, status, and Audience Boost config.
create_audience_syncCreate a new audience sync linking an audience to a destination, with field mapping, sync mode, and schedule. Optionally enables Audience Boost.
trigger_syncTrigger a Reverse ETL sync to execute immediately. Returns the sync run ID.
trigger_audience_syncTrigger an audience sync to execute immediately. If Audience Boost is enabled, runs dual pipelines and reports per-identifier metrics.

Stores

Store tools are only available on workspaces where Stores is enabled.

ToolDescription
list_storesList all stores in the workspace, with primary index and status.
get_storeGet a single store by ID.
list_store_feedsList the feeds attached to a store — model, field mapping, deletion behaviour, schedule, and last refresh.
list_store_feed_runsList a feed’s recent refresh runs, with rows added, updated and deleted, status, and any error.
create_storeCreate a store. The primary index is the row key and cannot be changed afterwards.
archive_storeArchive a store. Its feeds stop running.
create_store_feedAttach a feed that mirrors one parent-entity model into the store.
update_store_feedRename, reschedule, or remap a feed, or change its deletion behaviour.
delete_store_feedDelete a feed. Data already written to the store is not removed.
trigger_store_feedRefresh a feed immediately. Returns the run ID.
resume_store_feedResume a feed that auto-paused after repeated failed refreshes.

Identity Resolution

ToolDescription
list_identity_graphsList all ID graphs in the workspace.
get_identity_graphGet the full configuration of an ID graph — metadata plus models, identifiers, merge rules, limits, and probabilistic rules.
create_identity_graphCreate a new ID graph with full configuration in one call.
update_identity_graphUpdate an ID graph’s metadata. Only provided fields change.
configure_identity_graph_rulesConfigure models, identifiers, merge rules, limit rules, and probabilistic rules for an ID graph (partial update).
delete_identity_graphDelete an ID graph permanently — definition, models, identifiers, rules, run history, and golden-record configs.
list_identity_graph_runsList recent resolution runs for an ID graph (newest first) with status, timing, and metrics.
get_identity_graph_runGet details for a specific ID graph resolution run.
trigger_identity_graph_runTrigger or cancel an ID graph resolution run.
explore_identity_graphLook up a resolved profile by an identifier value — returns the unified profile (ss_id) and all source rows.
configure_golden_recordCreate or update the golden-record configuration (survivorship rules) for an ID graph.

Orchestrations

ToolDescription
list_journeysList all orchestrations in the workspace. Each orchestration is a DAG of tiles defining a multi-step engagement flow.
get_journeyGet full details of an orchestration — tiles, edges, entry/exit criteria, schedule, status, and last run info.
create_journeyCreate a new orchestration (starts in draft status).
update_journeyUpdate an orchestration’s name, description, tiles, edges, or schedule. Only provided fields change.
delete_journeyDelete an orchestration permanently. Warehouse tables created during activation are not auto-deleted.
validate_journeyValidate the DAG structure — cycles, dangling edges, missing tiles, schedule correctness.
activate_journeyActivate an orchestration (draft/paused -> active), provisioning warehouse tables and scheduling.
pause_journeyPause an active orchestration. Existing member state is preserved.
resume_journeyResume a paused orchestration. Evaluation continues from where it left off.
trigger_journeyManually trigger an evaluation run for an active orchestration.
list_journey_runsList recent evaluation runs for an orchestration with status, timing, and per-tile metrics.
get_journey_runGet details for a specific orchestration run, including evaluation metrics.
cancel_journey_runCancel a pending or running orchestration evaluation.

Event Streams

ToolDescription
list_event_keysList all event source write keys in the workspace, with name, value, status, topic, and last-used timestamp.
get_event_volumeGet hourly event volume metrics for the workspace over the last 7 days, grouped by event type and name.
list_event_contractsList all event contracts — schemas, enforcement modes, and undeclared-field handling.
list_event_contract_violationsList event contract violations — type, field path, expected vs received values, sample event ID, count.
list_event_forwarding_rulesList event forwarding rules — destination, event filter, transformation, field mapping, consent, rate limit.
list_event_transformationsList event transformations — JavaScript functions that modify event payloads before forwarding.
get_event_warehouse_configGet the event warehouse configuration — source ID, schema, staging bucket, and enabled status.

Utility

ToolDescription
check_approval_statusCheck the status of a pending guardrail approval. Use this when a previous tool call returned pending_approval.

Authentication

The MCP server authenticates requests using API keys.

  1. In the Zeotap UI, open AI API Keys under Governance in the left sidebar.
  2. Click Create API Key, give it a name, and select the scopes your MCP client needs (see Scopes below). A key needs at least one scope.
  3. Copy the generated key — it starts with sk_ and is shown only once. Store it securely; if you lose it, revoke and regenerate.
  4. Configure your MCP client to send the key as a bearer token in the Authorization header.

The workspace your tool calls run against is derived from the API key itself — there is no separate workspace header.

Scopes

Each MCP tool requires a specific scope on the API key. Grant the minimum set your client needs:

CapabilityRequired scope
Read models, relationships, and warehouse contextread:schema
Read computed attributesread:trait
Create or modify computed attributeswrite:trait
Read audiences and canvases, estimate sizes, validate filtersread:audience
Create or modify audiences, canvases, and audience syncswrite:audience
Read syncs and destinationsread:sync
Trigger sync runstrigger:sync
Read connected warehouses and introspect their tables and columnsread:source
Create or modify models and relationshipswrite:model
Configure destinationswrite:destination
Read identity graphs and resolved profilesread:identity
Modify identity graphs and golden-record ruleswrite:identity
Read orchestrationsread:journey
Modify orchestrationswrite:journey
Trigger orchestration runstrigger:journey
Read event streamsread:event
Run read-only warehouse queriesquery:warehouse
Run warehouse write statementswrite:warehouse
Read stores and feedsread:store
Create or modify stores and feedswrite:store
Trigger or resume feed refreshestrigger:store

A tool call returns an authorization error if the matching scope is missing. check_approval_status is covered by read:schema.

Two scopes are worth granting deliberately rather than as part of a broad selection: query:warehouse lets a client read any table the warehouse connection can reach, and write:warehouse lets it write to that warehouse directly. Unlike the other scopes, neither is bounded to a resource Zeotap manages. Access policies are given to the client as context to apply, not enforced on the query itself, so a warehouse scope is only as narrow as the warehouse credentials behind it. Grant them to clients you would trust with those credentials, and use guardrails to constrain what the agent does with them.

Integration with Claude Desktop

The Zeotap MCP server speaks JSON-RPC over HTTP, which Claude Desktop cannot connect to directly — it expects a stdio transport. Bridge the two with the mcp-remote proxy (no install needed; npx fetches it on demand).

Add the following block to your Claude Desktop claude_desktop_config.json:

{ "mcpServers": { "zeotap": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.zeotap.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer YOUR_API_KEY" } } } }

Replace YOUR_API_KEY with the key copied at creation time, then fully quit and restart Claude Desktop. The ${AUTH_HEADER} indirection keeps the Bearer prefix intact — passing the full header value directly inside args triggers a Claude Desktop bug that splits the string on whitespace.

The same mcp-remote config works for any MCP-compatible client that supports stdio servers (Cursor, Cline, etc.). Clients that already implement the MCP Streamable HTTP transport can connect to https://mcp.zeotap.com/mcp directly, sending the API key as Authorization: Bearer YOUR_API_KEY.

Available Resources

The MCP server also exposes resources that provide structured context to AI agents:

ResourceDescription
zeotap://schema/modelsAll data models with columns, primary keys, entity types, and sensitive-column metadata for PII-safe querying.
zeotap://schema/relationshipsEntity relationship graph — how parent, related, and event models connect via foreign keys.
zeotap://schema/traitsAll computed attribute definitions in the workspace, with types and parent models.
zeotap://schema/filter-node-specThe JSON Schema defining the FilterNode structure used for audience filter trees.
Last updated on