sitecore-personalize-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SITECORE_PERSONALIZE_API_URL | Yes | Personalize/CDP admin API base URL for your tenant/region | |
| SITECORE_PERSONALIZE_AUTH_URL | Yes | Identity token endpoint | |
| SITECORE_PERSONALIZE_CLIENT_ID | Yes | OAuth2 client ID from Sitecore Cloud Portal | |
| SITECORE_PERSONALIZE_CLIENT_SECRET | Yes | OAuth2 client secret | |
| SITECORE_PERSONALIZE_DECISIONING_API_URL | No | (optional) Interactive decisioning/edge API base, if it differs from the admin API |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sitecore_personalize_flow_listA | Lists flow definitions (experiments and experiences) configured in Sitecore Personalize. Filter by subtype ('EXPERIMENT' or 'EXPERIENCE') to distinguish A/B tests from experiences. Supports offset/limit pagination. |
| sitecore_personalize_flow_getA | Retrieves the full definition of a single flow (experiment or experience) by its ref. |
| sitecore_personalize_flow_set_statusA | Changes a flow definition's status (e.g. to 'PRODUCTION' or 'LIVE' to publish, 'PAUSED' to pause). Sitecore has no dedicated publish endpoint — this reads the current flow definition and writes it back with the new status, since updates are a full replace. This is a write operation with production impact. |
| sitecore_personalize_flow_executeA | Triggers real-time decisioning execution of a published flow, identified by friendlyId, for a guest identified by exactly one of browserId, email, or identifiers — returning the flow's decision output. Equivalent to the Personalize interactive callFlows API. |
| sitecore_personalize_experience_listA | Lists experiences (flow definitions with subtype EXPERIENCE) configured in Sitecore Personalize. Equivalent to sitecore_personalize_flow_list with subtype='EXPERIENCE' pre-applied. Supports offset/limit pagination. |
| sitecore_personalize_experience_getA | Retrieves a single experience (flow definition with subtype EXPERIENCE) by its ref. Equivalent to sitecore_personalize_flow_get — provided as a named convenience for experience-specific workflows. |
| sitecore_personalize_audience_listA | Lists audiences (segments) configured in Sitecore Personalize/CDP. Supports pagination. |
| sitecore_personalize_audience_getA | Retrieves the definition and membership rules of a single audience/segment by ID. |
| sitecore_personalize_audience_createA | Creates a new audience/segment from a set of attribute rules. This is a write operation that adds a new segment to the tenant. |
| sitecore_personalize_guest_getA | Retrieves a single guest (visitor/contact) profile from Sitecore CDP by guest reference. |
| sitecore_personalize_guest_upsertA | Creates a new guest profile (POST), or updates an existing one (PUT) when guestRef is provided. Covers the base guest object fields (name, contact info, address, etc.) — for arbitrary custom key/value attributes, use sitecore_personalize_guest_set_data_extension instead, which is a separate Sitecore mechanism. |
| sitecore_personalize_guest_deleteA | Permanently deletes a guest profile and its associated data from Sitecore CDP. This is a destructive, irreversible operation — typically used for privacy/right-to-be-forgotten requests. NOTE: this endpoint is unverified against Sitecore's docs — confirm with curl/Postman before relying on it. |
| sitecore_personalize_guest_searchB | Searches for guest profiles by email. Supports pagination. NOTE: this endpoint is unverified against Sitecore's docs — confirm with curl/Postman before relying on it. |
| sitecore_personalize_guest_set_data_extensionB | Sets arbitrary custom key/value attributes on a guest via Sitecore's Guest data extension mechanism (one of 6 fixed groups: ext, ext1-ext5). This call REPLACES the entire named group — any existing key not included gets deleted. NOTE: the exact URL path shape for this endpoint is unverified against Sitecore's docs (they render inconsistently across doc pages) — confirm with curl/Postman against your tenant before relying on it in production. |
| sitecore_personalize_event_sendA | Ingests a behavioral event (e.g. PRODUCT_VIEW, ADD_TO_CART, ORDER) into Sitecore CDP for a guest, feeding real-time and batch decisioning. This is a write operation. |
| sitecore_personalize_dataset_listB | Lists datasets (e.g. product catalogs, custom reference data) available in the tenant. |
| sitecore_personalize_dataset_getA | Retrieves metadata and schema information for a single dataset by ID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
The core resources (flow, audience, guest, dataset, event) are clearly separated, but flow and experience overlap heavily: experience_list/get are documented as exact equivalents of flow_list/get with a subtype pre-applied. This duplication is explained, but an agent could reasonably select either path for the same operation.
All tools follow a consistent sitecore_personalize_<resource>_<action> snake_case convention, such as flow_list, audience_get, guest_upsert, and event_send. The action verbs are predictable and there are no mixed casing or naming styles.
17 tools is at the upper edge but reasonable for a server spanning flows, experiences, audiences, guests, datasets, and events. The experience_list/get convenience duplicates add slight bloat, but most tools map to a distinct domain operation.
The guest lifecycle is well covered with get, upsert, delete, search, and data extension handling, and flows support listing, retrieving, status changes, and execution. However, audiences have create and read but no update/delete, flows cannot be created or updated beyond status, and datasets are read-only, leaving notable lifecycle gaps.