Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CDP_PASSWORDNoYour CDP password for OAuth2 authentication
CDP_USERNAMENoYour CDP username for OAuth2 authentication
CDP_CLIENT_IDNoYour CDP client ID for OAuth2 authentication
CDP_TENANT_IDNoYour CDP tenant ID
CDP_AUTH_TOKENNoA static bearer token for authentication (alternative to OAuth2)
CDP_ENVIRONMENTNoThe CDP environment to use (e.g., dev, qa, prod)
CDP_CLIENT_SECRETNoYour CDP client secret for OAuth2 authentication

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
cdp_list_usersB

List all CDP users for a tenant with pagination; optional search filter

cdp_get_userB

Get a specific CDP user by ID

cdp_create_userC

Create a new CDP user. Requires userName and password.

cdp_update_userC

Update an existing CDP user's details

cdp_delete_userC

Delete a CDP user by ID

cdp_list_rolesB

List all roles for a CDP tenant. Supports optional search and tenantIds (comma-separated string, e.g. '0,425,802') for multi-tenant queries.

cdp_get_roleC

Get a specific role by ID

cdp_create_roleC

Create a new role with whitelist/blacklist permissions. Pass whitelist/blacklist as JSON arrays of Permission objects.

cdp_update_roleC

Update an existing role. Pass whitelist/blacklist/included as JSON strings.

cdp_delete_roleD

Delete a role by ID

cdp_list_role_actionsB

List all available permission actions that can be assigned to roles

cdp_list_clientsC

List all OAuth clients for a tenant

cdp_get_clientB

Get a specific OAuth client by numeric ID

cdp_create_clientC

Create a new OAuth client. Requires client_id_str, client_secret, grants, and token_validity.

cdp_update_clientC

Update an existing OAuth client

cdp_delete_clientC

Delete an OAuth client by numeric ID

cdp_list_users_liteC

List all users in lightweight format (fewer fields, faster response)

cdp_get_user_liteB

Get a specific user in lightweight format by ID

cdp_list_selfservice_rolesB

List available self-service roles for a tenant

cdp_list_selfservice_usersB

List all self-service users for a tenant

cdp_get_selfservice_userB

Get a specific self-service user by ID

cdp_create_selfservice_userC

Create a new self-service user. Pass user details as a JSON string.

cdp_update_selfservice_userC

Update a self-service user. Pass updated fields as a JSON string.

cdp_delete_selfservice_userC

Delete a self-service user by ID

cdp_update_selfservice_user_statusC

Update a self-service user's status (e.g., activate/deactivate). Pass action and body as JSON string.

cdp_list_entitiesC

Query entities from a CDP data warehouse resource (e.g., customer, organization, transaction). Supports filtering via fq parameter.

cdp_get_entityC

Get a single entity by its resource name and ID

cdp_create_entityC

Create a new entity in a DW resource. Pass entity data as a JSON string.

cdp_update_entityC

Update an existing entity in a DW resource. Pass updated fields as a JSON string.

cdp_lookup_valuesC

Lookup distinct values for a field in a DW entity resource. Requires the field name to look up. Pass lookup request as JSON string.

cdp_get_customer_360C

Get Customer 360 summary view for a resource type (e.g., list of customer profiles)

cdp_get_customer_360_detailC

Get detailed Customer 360 profile for a specific customer

cdp_get_customer_360_realtimeC

Get real-time Customer 360 data (includes latest streaming events)

cdp_get_customer_identitiesC

Get all identities associated with given customer IDs. Pass customer IDs as a JSON string body.

cdp_get_audience_countC

Get audience count based on a segment definition (synchronous). Pass segment definition as a JSON string.

cdp_calculate_audienceA

Start an asynchronous audience count calculation. Returns a jobId to poll with cdp_get_calculated_count. Pass segment definition as a JSON string.

cdp_get_calculated_countB

Get the result of an async audience calculation (poll after cdp_calculate_audience)

cdp_post_tracking_eventA

Post a real-time tracking event to the CDP (POST /{apiVersion}/{tenantId}/dw/tracker). api_version is a routable path segment — defaults to 'v2' but the controller accepts any version clients want to pin. Pass event data as a JSON string with eventType, identityHash, properties.

cdp_update_customer_profileC

Update customer profile attributes in real-time (POST /v2/{tenantId}/dw/profile). Pass profile update data as a JSON string.

cdp_request_data_erasureC

Request GDPR/CCPA data erasure for a customer (by identityHash or email). Pass erasure request as a JSON string.

cdp_delete_data_erasure_requestC

Cancel/delete a pending data erasure request

cdp_update_data_erasure_requestC

Update an existing data erasure request (PUT /dw/dataerasure). Pass the updated erasure request body as a JSON string.

cdp_data_erasure_status_overrideC

Admin-only: override the status of a data erasure request (POST /dw/dataerasure/admin?action=statusoverride). Pass override payload as JSON string.

cdp_get_data_erasure_statusC

List all data erasure request statuses for a tenant

cdp_get_data_erasure_status_by_idC

Get the status of a specific data erasure request by resource ID

cdp_get_offers

Retrieve available offers for a customer or segment. Pass offer request as a JSON string.

cdp_describe_resources

List all available DW resources (tables/entities) for a tenant

cdp_describe_entity

Get the schema/attribute definitions for a DW entity resource

cdp_dw_fetch_report

Fetch cached report results via the DW API path

cdp_dw_execute_report

Execute a report in real-time via the DW API path. Pass report definition as a JSON string.

cdp_purge_data

Purge customer data from the data warehouse. Pass purge request as a JSON string with customerIds, purgeReason, and optional purgeTypes.

cdp_get_campaign_output_attributes

Get the output attribute columns for a campaign definition. Pass campaign definition as a JSON string.

cdp_refresh_rtmeta

Refresh the real-time metadata switch values. Must be called with tenantId=0.

cdp_list_campaignsC

List all campaign definitions for a tenant. Returns paged results.

cdp_get_campaignB

Get a specific campaign definition by ID

cdp_create_campaignA

Create a new campaign definition. Recommended workflow: call with name+description ONLY to get a resourceId, then call cdp_update_campaign with the full body containing INLINE 'audience' and INLINE 'messageDefs' objects. Do NOT reference an existing messageDef by resourceId — shared messageDefs are rejected with E0420. See resource cdp://docs/campaign-playbook for the full body template, operator enum, and time-window math.

Pass folder_id to place the campaign under a specific Campaign folder (the UI always does this). Omit it to let the backend default to the tenant's root folder.

cdp_update_campaignB

Update an existing campaign definition. Pass updated fields as a JSON string. Pass folder_id to move the campaign into a specific folder (matches UI save behaviour, which always sends ?folderId=...).

cdp_delete_campaignC

Delete a campaign definition by ID

cdp_clone_campaignC

Clone/copy a campaign definition by ID. Creates a duplicate.

cdp_start_campaignA

Execute/run a campaign immediately ('send now'). Requires entity_id (the campaign def resourceId). Set cohort=True for cohort campaigns. An empty {"campaignProperties":"{}"} body is sent automatically to match the Vega UI contract — omitting it causes the backend to 400 on some builds. For triggered/web campaigns use cdp_publish_web_campaign instead.

cdp_publish_web_campaignA

Publish a triggered/web campaign via the CAMPAIGN_FLOW_DEFAULT workflow. This is the correct action for real-time/triggered campaigns (web, API, journey) — cdp_start_campaign only works for batch 'send now' runs. Mirrors what the Vega UI does when you click 'Publish' on a web campaign.

cdp_stop_campaignC

Stop/kill a running campaign by ID. Sends a workflow kill signal.

cdp_copy_datasetdefA

Copy an existing datasetDef (audience definition) to create a new, independent one. CDP rejects shared datasetDefs across campaigns with E400: 'The campaignDef being created refers to an existing datasetDef. Please correct this by calling /v2/{tenantId}/datasetDef/{id}?action=copy'. Use this tool to produce a detached copy, then embed the returned object inline in your new campaign's audience field.

cdp_list_dispatchesC

List dispatch definitions for a campaign

cdp_get_dispatchC

Get a specific dispatch definition by ID

cdp_create_dispatchC

Create a dispatch definition for a campaign. Pass dispatch definition as a JSON string.

cdp_update_dispatchC

Update a dispatch definition. Pass updated fields as a JSON string.

cdp_delete_dispatchC

Delete a dispatch definition

cdp_list_campaign_runsB

List execution history (dataset descriptions) for a campaign definition. Requires defId and defType (e.g. DATASET_DEF). Returns paged results.

cdp_get_campaign_runC

Get details of a specific campaign execution (dataset description) by ID

cdp_get_run_dispatchesB

Get the latest execution status for a campaign definition. Requires defId and defType. Optionally include step details.

cdp_list_audience_defsB

List audience definitions for a tenant. Returns paged results.

cdp_get_audience_defB

Get a specific audience definition by ID

cdp_create_audience_defA

Create a new audience definition. WARNING: the underlying endpoint POST /campaign/audienceDefs is NOT supported on current CDP builds and will return E400 'Request method POST is not supported'. Instead, define the audience INLINE on a campaign via cdp_create_campaign + cdp_update_campaign. See resource cdp://docs/campaign-playbook.

cdp_update_audience_defC

Update an existing audience definition. Pass updated fields as a JSON string.

cdp_delete_audience_defC

Delete an audience definition

cdp_execute_audience_defC

Execute/calculate an audience definition. Triggers the audience calculation workflow.

cdp_lookup_audience_defsC

Lookup audiences by name. Returns matching audience definitions with optional offset/limit.

cdp_list_campaign_templatesB

List available campaign templates. Requires type parameter (e.g. PLAYBOOK, MESSAGE, AUDIENCE).

cdp_create_campaign_templateC

Create a new campaign template. Pass template type and entityId along with tenant list as JSON body.

cdp_list_message_defsC

List message definitions for a tenant. Returns paged results.

cdp_get_message_defC

Get a specific message definition by ID

cdp_create_message_defA

Create standalone message definitions. Pass as a JSON string list. WARNING: standalone messageDefs created here CANNOT be referenced from a campaign by resourceId — the server rejects shared references with E0420. For campaign-bound emails, instead put the messageDef object INLINE in the campaign's 'messageDefs' array via cdp_update_campaign. Only use this tool for message templates that are independently managed.

cdp_update_message_defC

Update a message definition by ID. Pass updated fields as a JSON string.

cdp_delete_message_defB

Delete a message definition by ID

cdp_list_data_exportsC

List all data export definitions for a tenant.

cdp_get_data_exportC

Get a specific data export definition by ID.

cdp_create_data_exportB

Create a new data export definition. Body must be a JSON STRING containing at least name and exportDefItems. Pass folder_id to place the export in a specific folder (matches Vega UI which always sends ?folderId=). Controller expects an array, so the body you provide is wrapped in [...] automatically.

cdp_update_data_exportC

Update an existing data export definition. Pass updated fields as a JSON string. folder_id moves the export between folders.

cdp_delete_data_exportB

Delete a data export definition by ID.

cdp_copy_data_exportC

Copy/duplicate a data export definition by ID.

cdp_run_data_exportB

Execute a data export immediately via the DATA_EXPORT_DEFAULT workflow. Equivalent to clicking 'Send Now' in the Vega Data Export UI. Sends body {"dataExportProperties":"{}"} to match the UI contract.

cdp_list_dataset_defsB

List datasetDefs (raw audience definitions) for a tenant. Useful for discovering shared definitions before calling cdp_copy_datasetdef.

cdp_get_dataset_defC

Get a specific datasetDef by ID.

cdp_list_tenantsC

List all tenants accessible to the current user

cdp_get_tenantB

Get details of a specific tenant by ID. Tenant IDs are strings — may be numeric, a GUID, or a slug.

cdp_list_workflowsC

List workflows for a tenant

cdp_get_workflowC

Get a specific workflow by ID. Optionally specify a version.

cdp_run_workflowA

Trigger a workflow execution. Optionally provide entityType/entityId for scoped runs, or scheduleId for scheduled runs. body is an optional JSON string — many workflows require a properties map, e.g. CAMPAIGN_FLOW_DEFAULT needs {"campaignProperties":"{}"}, DATA_EXPORT_DEFAULT needs {"dataExportProperties":"{}"}. When omitted, no body is sent.

cdp_deploy_workflowC

Deploy a workflow (make it active)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
campaign-playbookAuthoritative playbook for creating campaigns, audiences, and message definitions on CDP. Consult before calling cdp_create_campaign, cdp_update_campaign, cdp_create_message_def, cdp_create_audience_def, cdp_get_audience_count, or cdp_score_spam. Covers the inline-ownership rule, operator enum, time-window math, EXCLUDE behavior pattern, and body-as-JSON-string convention.
orchestration-playbookMulti-step orchestration recipes the MCP cannot infer on its own: generic schedule lifecycle (create row + arm runner workflow + poll), connector publish/schedule/unschedule, report & data-export send-now and scheduled runs, sQueryDef generate-then-validate, provisioning via PROVISIONER_TOOL_DEFAULT, compaction, and the universal drain-before-delete rule. Consult before any action that touches config/schedules, config/workflows/{name}?action=..., or runner workflows (AIF_RUNNER, REPORT_RUNNNER_DEFAULT, DATA_EXPORT_DEFAULT, CAMPAIGN_FLOW_DEFAULT, CONNECTOR_OPS_DEFAULT).
customer360-playbookAuthoritative flow for customer-360 retrieval, rendering, search, and identity purge. Covers the three parallel fetches a profile page requires (dw/a360/customers + UDMPTables + tenant 360 layout properties), the layout deep-merge rules, realtime polling, targetentity-based pagination, `fq` advanced-search encoding, and GDPR purge polling. Consult before calling cdp_get_customer_360*, cdp_request_data_erasure, or cdp_list_a360_rules.
admin-ops-playbookAdmin and data-governance orchestration: DQE rule batches with dry-run-via-compaction, A360 rule three-phase saves, compaction lifecycle, status-page job control (rerun/kill/suspend/resume), GDPR erasure polling and override, provisioner package runs, content-model bulk template provisioning, user/role onboarding, and the universal drain-before-delete rule. Consult before any destructive multi-entity action.
reports-dashboards-playbookAuthoritative flow for report definitions, cube (OLAP) reports, SQL-query reports, and dashboards. Covers the array-wrap POST contract ([reportDef] / [dashboard]), the REPORT_RUNNNER_DEFAULT (triple-N) send-now workflow, the ?folderId= requirement, cube metadata walk (cubemetadata → dimensions → hierarchies → levels), ad-hoc vs cached execution (?action=execute vs ?action=fetch), the BI_MAPPER_DEFAULT + A1_ORCHESTRATOR dual freshness check, dashboard uiProperties JSON-string layout serialization, and sQueryDef argument validation. Consult before calling cdp_create_report_def, cdp_create_dashboard, cdp_execute_report, cdp_fetch_report_data, or cdp_get_cube_status.
workflow-authoring-playbookAuthoritative flow for authoring, modifying, deploying, and invoking configAPI workflows. Covers the symbolic workflowId vs numeric workflowDBId trap (URL segment vs entityId query param), the three parallel GETs required to materialize a workflow graph (workflows/{id} + /workflowSteps + /workflowEdges), versioning rules (query-string-only on deploy/delete), batch step POST/PUT vs per-script POST/PUT/DELETE for mapping scripts, full create→deploy sequence, invocation verb taxonomy (run/deploy/schedule/unschedule/activate_schedule/rerun/kill/publish), and the drain-before-delete rule. Consult before any cdp_create_workflow, cdp_update_workflow, cdp_delete_workflow, cdp_run_workflow, or cdp_invoke_workflow_action call.
connector-wizard-playbookAuthoritative flow for connector CRUD, publish, schedule, and unschedule. Covers input vs output endpoint swap (connectors vs outputConnectors), the 4-or-5-step wizard with ssidPrefix-based branching (inputConnectorsToSkip / intervalConnectors), the create → CONNECTOR_OPS_DEFAULT?action=publish two-step, the 3-step schedule orchestration (GET AIF_RUNNER id → POST schedules → POST AIF_RUNNER?action=schedule) with the referenceId vs entityId trap, the reverse 2-step unschedule-then-delete, the [entity, [columns]] mapping tuple shape, parameter completion and dateStarted requirements. Consult before any cdp_create_connector, cdp_publish_connector, or connector-schedule call.
udmp-metadata-playbookAuthoritative flow for UDMP tables/columns, column validators, mapping templates, content-model templates, and tenant properties. Covers the nested {columns: {content: []}} read shape vs flat {columns: []} write shape, parallel POST/PUT/DELETE batch saveResources (non-transactional), the UDMPTables → UDMPResources cascade, schema publish ordering (pause consumers first), custom-attribute whitelist gating via summaryEntity.customAttribute.whitelist, idempotent PUT for tableoverrides, the unusual PUT templates/provision?action=update contract for content models, and the customer360 / default.360.layout vs tenant.360.layout protection rule. Consult before modifying UDMP tables, column validators, templates, or tenant properties.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/atharva-joshi77/cdp-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server