Sitecore Marketer MCP Server: A Complete Working Guide
Sitecore’s Marketer MCP server lets you do real work in SitecoreAI by describing what you want, instead of clicking through the interface. You can create a page, localise it, add a component, stand up an A/B test, or draft a campaign brief—all from an AI client like Claude, in plain language.
I put it through its paces and mapped each tool to a prompt that reliably produces the result you need. This is the full guide.
Important Context Before You Begin
A quick word before you dive in: this is useful, but it isn’t magic. There’s no publish button, deletion is permanent, and a few workflows stop one step short of completion on purpose.
I’ve documented all of these limitations at the end of the guide. Read them carefully before you apply this to anything you care about.
How to Use This Guide
The guide maps natural-language prompts to the tools exposed by the Marketer MCP server. Each prompt runs from your AI client (in this case, Claude) with the connector enabled, and the tools execute actions inside your SitecoreAI tenant.
Replace placeholders such as [site name], [page ID], and [brand kit name] with your own environment values before running any prompts.
In many cases, earlier tasks such as site exploration or page creation return IDs and paths that are required for later steps. Composite workflows (C1–C6) combine individual tools into complete end-to-end processes, since single tools rarely complete full real-world tasks on their own.
Task 1 - Site Exploration
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 1.1 | List all available sites. | list_sites | Site names, IDs, URLs - confirm site name for subsequent steps. |
| 1.2 | List all pages in the [site name] site with path and ID. | get_all_pages_by_site | Full page inventory with IDs and paths. |
| 1.3 | Search for pages containing "campaign" in the [site name] site. | search_site | Matching pages - useful for auditing before edits. |
Task 2 - Page Creation and Localisation
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 2.1 | Create a landing page "Winter Sale 2026" under [parent page] in [site name]. | create_page | New page created - returns ID and path. |
| 2.2 | Add a French language version to the page. | add_language_to_page | French variant created - ready for translated content (see composite flow C2). |
| 2.3 | Get a preview URL for the page. | get_page_preview_url | Preview link to verify before publishing. |
Task 3 - Content Editing
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 3.1 | Get the HTML content of the [page name] | get_page_html | Full page HTML - review current state before editing. |
| 3.2 | Update the [field name] in the [component name] on [page name] to 'MCP field update test'. | update_fields_on_item | Field updated on the content item. |
| 3.3 | Create a new blog post 'MCP Blog post test' under [blog section path]. | create_content_item | New content item created - returns ID and path. |
Task 4 - Component Management
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 4.1 | List all components currently on the homepage. | get_components_on_page | Component names, IDs, and placeholder positions. |
| 4.2 | What components can I add to the main placeholder on the homepage? | get_allowed_comps_by_ph | Allowable component list for that placeholder. |
| 4.3 | Add a promo banner to the main placeholder on Winter Sale 2026. | add_component_on_page | Component added - returns updated page component list (then assign a datasource, flow C1). |
Task 5 - Asset Management
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 5.1 | Find all image assets tagged "hero". | search_assets | Matching assets with IDs, names, metadata. |
| 5.2 | Update the alt text on all hero-tagged images. | update_asset | Alt text updated across matching assets. |
| 5.3 | Get the details for the brand logo asset. | get_asset_information | Full asset metadata - verify alt text, tags, and description before or after editing. |
Task 6 - Personalisation
Requires personalisation enabled on the tenant. See limitation L3.
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 6.1 | What personalisation conditions are available? | get_perso_cond_tmpls | All condition templates - use to select audience rule. |
| 6.2 | Create a personalisation version of the homepage for returning visitors. | create_perso_version | New variant with audience condition applied. |
| 6.3 | List all personalisation variants on the homepage. | get_perso_ver_by_page | All active variants with audience rules and names. |
| 6.4 | Get the condition template details for condition ID [id]. | get_perso_cond_tmpl_by_id | Condition template with parameter definitions - build targeting rules correctly. |
| 6.5 | Create a personalised variant of the [page name] page where country condition is US, returning visitor and day of the week is Tuesday. Change the Heading CTA 2 component. Use the COPY strategy. | create_perso_version_multi | New variant created with multiple conditions applied. |
| 6.6 | Update the variant name to [new name] and change the day of the week condition to Wednesday. | update_perso_version | Variant updated with revised audience definition. |
Task 7 - A/B Testing
Requires personalisation enabled on the tenant. See limitation L3.
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 7.1 | Create an A/B test on the hero banner component on the homepage. | create_component_ab_test | Test created with control and variant - returns test ID. |
| 7.2 | Configure Variant A with COPY strategy. Change the Title field to 'AB Test'. | set_component_variant | Variant A updated with replacement component. |
| 7.3 | List all A/B tests currently running on the homepage. | list_page_flows | All active flow definitions with variant and goal config. |
| 7.4 | Update the goal of the [test name] A/B test to [goal name]. | update_ab_test | Test updated with revised goal or variant configuration. |
Task 8 - Brief Creation and Management
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 8.1 | List all available brief types. | list_brief_types | Brief type names and IDs - select before generating. |
| 8.2 | Generate a campaign brief for a mid-year sale using the [brand kit name] brand kit. | generate_brief_draft | Draft generated for review - not saved until confirmed. |
| 8.3 | Save the brief draft. | create_brief_from_draft | Brief committed - returns brief ID and confirmation. |
| 8.4 | List all existing briefs. | list_briefs | All briefs with status, creator, and type - find a brief to review or revise. |
| 8.5 | Get the full details of brief ID [id]. | get_brief_by_id | Brief content including all fields and audit metadata. |
| 8.6 | Get the details of brief type ID [id]. | get_brief_type_by_id | Brief type field definitions - understand what a brief of this type contains. |
| 8.7 | Generate a revised draft of brief ID [id] with updated messaging for the autumn season. | generate_brief_revision | Revised draft for review - existing brief unchanged until confirmed. |
| 8.8 | Save the revised brief draft. | update_brief_from_revision | Existing brief updated - returns confirmation and updated brief ID. |
Task 9 - Site Details
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 9.1 | Get details for the [site name] site. | get_site_information | Site config and metadata - confirm settings before structural changes. |
| 9.2 | Get the site ID associated with [page/item ID]. | get_site_id_from_item | Site ID - useful when item site context is unclear. |
| 9.3 | List all languages available in this site. | get_all_languages | Full language list - confirm language codes before adding variants. |
Task 10 - Page Inspection
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 10.1 | Get the page path for the live URL [url]. | get_page_path_by_live_url | Internal page path - bridges live URLs to CMS item structure. |
| 10.2 | Get a screenshot of the homepage. | get_page_screenshot | Base64 image of the rendered page - visually verify current state. |
| 10.3 | Get details for page ID [id] in English. | get_page | Page metadata including fields, template, and language version. |
| 10.4 | Get the template details for page ID [id]. | get_page_template_by_id | Template fields and settings - understand which content fields are available. |
| 10.5 | Set the datasource for the hero component on the homepage to [datasource ID]. | set_component_datasource | Datasource linked to component - content now pulls from the specified item. |
Task 11 - Content Retrieval and Lifecycle
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 11.1 | Get the content item at path [content path]. | get_content_item_by_path | Full content item details including all field values. |
| 11.2 | Get the content item with ID [item ID]. | get_content_item_by_id | Full content item details - use when you have an ID but not the path. |
| 11.3 | List all templates I can insert under [parent item path]. | list_avail_insertopts | Available child templates - confirm what content types can be created here. |
| 11.4 | Update the body copy and publish date on the "AI in retail" blog post. | update_content | Content item updated with new field values. |
| 11.5 | Delete the content item at [item path]. | delete_content | Item removed. Warning: deletes all language versions regardless of language param - see L2. |
Task 12 - Component Datasources
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 12.1 | List all components available for the [site name] site. | list_components | Full component library for the site, grouped by category. |
| 12.2 | Get details for the [component name] component. | get_component | Component ID, field names and values, and datasource options. |
| 12.3 | Search for available datasources for the [component name] component. | search_component_ds | Existing datasources that can be assigned to that component. |
| 12.4 | Create a new datasource for the [component name] component with [field values] on [page name]. | create_component_ds | New datasource item created - returns ID for use in set_component_datasource. Component needs to already be on the page. If not, add component to page first. |
Task 13 - Brand Kits
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 13.1 | List all available brand kits. | list_brandkits | All brand kit names, IDs, and status. Select before generating briefs. |
| 13.2 | Get the full details of the [brand kit name] brand kit. | get_brandkit_by_id | Full brand kit including sections and fields. Review brand guidelines. |
Task 14 - Flow Definitions
| Step | Prompt | Tool | Expected Outcome |
|---|---|---|---|
| 14.1 | Get the full definition of flow ID [id]. | get_flow_definition | Complete flow structure, variants, targeting rules, and configuration. |
| 14.2 | Get the details of variant ID [id] in the homepage A/B test. | get_flow_variant_by_id | Variant details including datasource and component setup. |
Composite Workflows
Individual tools rarely complete a real task on their own. These sequences chain them into end-to-end flows, and each one is buildable from the tools above.
C1 - Add a Component and Make It Render Content
A component added to a page renders empty until it has a datasource. This closes that loop.
Add a promo banner to the main placeholder on the Winter Sale 2026 page, then search for an existing promo banner datasource. If none fits, create a new one with the Winter sale copy and set it as the component's datasource.
Workflow: add_component_on_page → search_component_ds (or create_component_ds) → set_component_datasource
C2 - Create and Translate a Language Version
Adding a language version creates an empty shell. Populating it is a separate step.
Add a French language version to the Winter Sale 2026 page, get the French page so I can see its fields, then update the hero heading and body fields with the French copy.
Workflow: add_language_to_page → get_page (French) → update_fields_on_item
C3 - Read Before You Write
Inspect current field values before overwriting, so you do not clobber content you meant to keep.
Get the content item for the AI in retail blog post by path, show me its current fields, then update the body copy while leaving the summary unchanged.
Workflow: get_content_item_by_path (or get_content_item_by_id) → update_content
C4 - Verify a Change After Making It
Edits should be confirmed visually or in markup, not assumed.
Update the hero heading on the homepage to "Innovation starts here", then get a screenshot and a preview URL so I can confirm it rendered correctly.
Workflow: update_fields_on_item → get_page_screenshot → get_page_preview_url
C5 - Iterate on a Brief Until Approved
Briefs are a conversational, iterative flow, not a single generate-and-save.
Show me the June marketing brief, generate a revision with updated autumn messaging, and once I confirm, save the revision over the existing brief.
Workflow: get_brief_by_id → generate_brief_revision → (review) → update_brief_from_revision. Repeat the revision and review loop as many times as needed before saving.
C6 - Stand Up an A/B Test End to End
List the components on the homepage, create an A/B test on the hero banner, configure Variant B to swap in the Winter Sale promo banner, then list the page flows to confirm the test is live.
Workflow: get_components_on_page → create_component_ab_test → set_component_variant → list_page_flows
Known Limitations and Caveats
These come straight from the source documentation, or from gaps in the documented toolset. Read them before relying on this operationally.
L1 - No publish action exists. The toolset can preview with get_page_preview_url, capture screenshots with get_page_screenshot, and read markup with get_page_html, but nothing publishes a page or makes changes go live. Any workflow that ends at preview is intentionally incomplete. Publishing happens outside this MCP server.
L2 - Deletion is irreversible and broader than it looks. delete_content removes the entire content item, and according to the source, the language query parameter is not currently in use. All language versions are deleted regardless of what you specify. There is no undo or rollback in the set. Treat deletion as permanent.
L3 - Personalisation must be enabled first. The personalisation and experiment tools require personalisation to be enabled on the SitecoreAI tenant before use. If it is off, those tasks will not work.
L4 - Supported scope only. The source states the server is reliable only for the supported use cases it documents, and responses outside that scope have not been validated and may be inaccurate. Anything beyond the documented prompts is unsupported territory.
L5 - Briefs are an iterative flow. The brief generation and revision tools are built to be used as part of a conversational, multi-pass flow driven by the model, though they can be called individually. Expect to loop through flow C5 rather than finish a brief in a single call.
L6 - Drafts are not saved until explicitly committed. generate_brief_draft and generate_brief_revision produce drafts for review only. Nothing persists until create_brief_from_draft or update_brief_from_revision runs.
L7 - Components need datasources to render. Adding a component with add_component_on_page does not populate it. Without a datasource set through flow C1, it renders empty.
L8 - Verify, do not assume. Field updates return confirmation of the changed value, not the rendered result. Use the screenshot or preview tools from flow C4 to confirm a change actually looks right on the page.
Source and Further Reading
Sitecore Marketer MCP server - overview and setup
Marketer MCP and Agent API overview - what MCP is and how it connects to SitecoreAI
Marketer MCP - capabilities summary
Marketer MCP tool reference and other information
The toolset moves, so treat this as a snapshot rather than gospel. Check the tool reference before you lean on an older copy. And if you are working out how MCP fits into the way your marketing team actually runs Sitecore, the limitations section is the part to read twice.

