Website Design and CMS MCP Tools

Based on the real WebsiteManager MCP manifest, covering site discovery, page content, collections, global content, media uploads, SEO meta, Google Schema, LLM.txt / AI Markdown, analytics settings, sync validation, deployments, and approval status checks.

website.list_websites

read

List manageable websites so the agent can choose the correct website_id.

None

Read-only; no action request.

Use returned website_id; do not infer site identity.

website.list_pages

read

List static and dynamic page keys for a website.

website.list_websites

Read-only; no action request.

Use returned page_key values for later reads and writes.

website.get_page_schema

read

Read only editable page schema to inspect section and field structure.

website.list_pages

Read-only; no action request.

Before writing, still read get_page_content for current values and item_key.

website.get_page_content

read

Read page schema, values, supported_langs, item_key, common value bindings, and base token.

website.list_pages

Read-only; no action request.

All page writes must use returned section_key, field_key, item_key, and language keys.

website.get_global_content

read

Read global-edit schema, values, and per-field target tokens.

website.list_websites

Read-only; no action request.

Use field_tokens for global writes; do not use the response base token.

website.update_global_field

write

Update one non-list global content field.

website.get_global_content

Governed write; may execute or return pending_approval.

language must match supported_langs; list fields use replace_global_list.

website.replace_global_list

write

Replace one global shared list field in full.

website.get_global_content

Governed write; may execute or return pending_approval.

Preserve existing item_key values; omit only for new items.

website.update_page_field

write

Update one non-list page field such as title, text, image id, or setting.

website.get_page_content

Governed write; may execute or return pending_approval.

Do not use for lists; common-value fields affect all dynamic slugs under the page_key.

website.replace_page_list

write

Replace a page list field for reorder or complete bulk updates.

website.get_page_content

Governed write; may execute or return pending_approval.

items must be object[]; preserve existing item_key values.

website.add_page_list_item

write

Add one item to a page list, either appended or inserted.

website.get_page_content

Governed write; may execute or return pending_approval.

insert_after / before item_key must be copied from read results.

website.update_page_list_item

write

Update one existing item inside a page list.

website.get_page_content

Governed write; may execute or return pending_approval.

Pass item_key as parameter, not inside changes; never rewrite existing item_key.

website.remove_page_list_item

write

Remove one page list item by stable item_key.

website.get_page_content

Governed write; may execute or return pending_approval.

Confirm item_key and dynamic_slug before deletion to avoid removing the wrong shared item.

website.get_collection_items

read

Read collection schema, items, item_key values, languages, and base token.

website.list_pages

Read-only; no action request.

slug/name/item_key are identity fields; do not convert them to localized objects.

website.add_collection_item

write

Add one collection item and let the system create a stable item_key.

website.get_collection_items

Governed write; may execute or return pending_approval.

Put localized fields in payload; keep slug/name scalar.

website.update_collection_item

write

Update one collection item payload by item_key.

website.get_collection_items

Governed write; may execute or return pending_approval.

changes.payload merges fields; use rename_collection_item_slug for slug changes.

website.replace_collection_items

write

Replace all collection items for ordering or full collection sync.

website.get_collection_items

Governed write; may execute or return pending_approval.

Before full replace, confirm unrelated items are not removed; preserve existing item_key values.

website.rename_collection_item_slug

write

Rename a collection item slug and migrate the linked dynamic page scope.

website.get_collection_items

Governed write; may execute or return pending_approval.

Use only this tool for slug changes; do not change slug through update_collection_item.

website.remove_collection_item

write

Remove one collection item by stable item_key.

website.get_collection_items

Governed write; may execute or return pending_approval.

Confirm item_key, slug, and linked dynamic page impact before deletion.

website.create_page_field_upload_session

upload

Create an upload session for a scalar page image/file field.

website.get_page_content

Session creation does not save content; later save remains governed.

After HTTP upload, always read media.get_upload_session_result.

website.create_page_list_item_field_upload_session

upload

Create an upload session for a nested field inside a page list item.

website.get_page_content

Session creation does not save content; later update_page_list_item remains governed.

item_key must be copied from the list read result.

website.create_collection_item_field_upload_session

upload

Create an upload session for a field inside one collection item.

website.get_collection_items

Session creation does not save content; later update_collection_item remains governed.

item_key and field_key must come from get_collection_items.

website.create_page_meta_og_image_upload_session

upload

Create a non-destructive upload session for a Meta OG image.

website.get_page_meta

Session creation does not save meta; later meta write remains governed.

For normal edits use target=user_override, then save media_id with update_page_meta_override.

media.get_upload_session_result

read

Read final media_id, URL, file_path, format, and status after upload.

Any create_*_upload_session

Read-only; no action request.

Use this result as media source of truth; never use local temp paths.

website.get_page_meta

read

Read meta and target token for one page/language/dynamic context.

website.list_pages

Read-only; no action request.

language is required; dynamic pages need dynamic_slug.

website.update_page_meta_override

write

Update the left-side User Override fields in the CMS Meta modal.

website.get_page_meta

Governed write; may execute or return pending_approval.

Use this for normal AI/user meta edits; update only one visible field at a time.

website.update_page_meta

write

Advanced maintenance for right-side Default Meta source fields.

website.get_page_meta

Governed write; may execute or return pending_approval.

Do not use for normal meta edits; use update_page_meta_override instead.

website.preview_page_meta

preview

Preview final HTML meta tags, including variables, overrides, and OG image resolution.

website.get_page_meta or a meta write

Preview only; does not save or create action requests.

Before deployment, confirm OG image resolves to a public URL.

website.list_google_schema_components

read

List reusable Google Schema components.

website.list_pages

Read-only; no action request.

Assignments must use returned component IDs, not schema type names.

website.get_google_schema_component

read

Read one schema component definition and base token.

website.list_google_schema_components

Read-only; no action request.

Read canonical config before update or delete.

website.preview_google_schema_component

preview

Validate and resolve a schema component template without saving.

website.get_page_content

Preview only; does not save or create action requests.

Use [section-field] tokens in standard mode and [field] in list mode.

website.create_google_schema_component

write

Create one reusable Google Schema component.

website.preview_google_schema_component

Governed write; may execute or return pending_approval.

After create, read assignment, assign by component id, then preview.

website.update_google_schema_component

write

Update an existing Google Schema component.

website.get_google_schema_component + website.preview_google_schema_component

Governed write; may execute or return pending_approval.

Preview changes first and pass base_version_token for stale protection.

website.delete_google_schema_component

write

Delete a Google Schema component with assignment cleanup policy.

website.get_google_schema_component

Governed write; may execute or return pending_approval.

Default is reject_if_assigned; avoid accidentally removing assigned schema.

website.get_google_schema_assignment

read

Read schema assignment and assignable components for one page/language/dynamic context.

website.list_google_schema_components

Read-only; no action request.

Later component_ids must be copied from components[].id.

website.update_google_schema_assignment

write

Save, disable, or inherit Google Schema assignment for a page or dynamic slug.

website.get_google_schema_assignment

Governed write; may execute or return pending_approval.

Do not use empty exact-slug save to mean inherit; use inherit_default.

website.preview_google_schema

preview

Preview JSON-LD scripts resolved from the current assignment.

website.update_google_schema_assignment or website.get_google_schema_assignment

Preview only; does not save or create action requests.

Before deploy, confirm JSON-LD has no errors and uses the correct page fields.

website.get_llm_txt

read

Read website-level LLM.txt raw/resolved text and target token.

website.list_websites

Read-only; no action request.

When editing, send a full replacement, not a partial patch.

website.update_llm_txt

write

Update website-level LLM.txt raw text.

website.get_llm_txt

Governed write; may execute or return pending_approval.

Write public AI guidance only; do not include admin or private operating instructions.

website.get_llms_full_txt

read

Read long-form LLMS Full.txt raw/resolved text and target token.

website.list_websites

Read-only; no action request.

Update with complete raw_text only; empty string clears it.

website.update_llms_full_txt

write

Update website-level LLMS Full.txt long-form AI-readable document.

website.get_llms_full_txt

Governed write; may execute or return pending_approval.

Do not include private/admin instructions; this does not alter LLM.txt.

website.list_ai_markdown_pages

read

List page, language, and dynamic scopes for AI Markdown maintenance.

website.list_pages

Read-only; no action request.

Maintain AI-readable content only for public pages.

website.get_ai_markdown_page

read

Read raw/resolved markdown, warnings, and token for one AI Markdown scope.

website.list_ai_markdown_pages

Read-only; no action request.

Exact language scope does not fallback; confirm page_key/language/dynamic_slug before writing.

website.preview_ai_markdown_page

preview

Preview AI Markdown variable resolution and warnings without saving.

website.get_ai_markdown_page

Preview only; does not save or create action requests.

Preview before update when markdown uses variables or has major changes.

website.update_ai_markdown_page

write

Update complete AI Markdown for one page/language/dynamic scope.

website.get_ai_markdown_page + website.preview_ai_markdown_page

Governed write; may execute or return pending_approval.

Send complete raw_markdown and base token; partial patches are not accepted.

website.disable_ai_markdown_page

write

Disable one AI Markdown scope while preserving raw_markdown.

website.get_ai_markdown_page

Governed write; may execute or return pending_approval.

Requires base token; disabling is not deletion.

website.validate_sync_page

preview

Validate page sync payload schema/demo without saving.

Local sync payload

Mutation-shaped read; no action request.

Successful validation does not mean content is published; sync/deploy is still required.

website.validate_sync_collection

preview

Validate collection sync payload schema/demo without saving.

Local sync payload

Mutation-shaped read; no action request.

Inspect format_errors only; it does not modify the collection.

website.validate_sync_global

preview

Validate global sync payload schema/demo without saving.

Local sync payload

Mutation-shaped read; no action request.

Use only for preflight; it does not replace formal writes.

website.analytics_get_overview

read

Read analytics overview, summary stats, sessions, and trends.

website.list_websites

Read-only; no action request.

Affected by global filters; confirm filter context before interpreting.

website.analytics_get_overview_acquisition

read

Read acquisition breakdown including pages, sources, and UTM sections.

website.analytics_get_overview

Read-only; no action request.

Check cache metadata and filter scope.

website.analytics_get_overview_audience

read

Read audience breakdown including device, environment, and location.

website.analytics_get_overview

Read-only; no action request.

Use for aggregate analysis; do not infer personal identity.

website.analytics_get_overview_traffic

read

Read traffic timing breakdown and weekly heatmap.

website.analytics_get_overview

Read-only; no action request.

Ensure time range matches the reporting need.

website.analytics_get_sessions

read

Read session rows, total count, and cache metadata.

website.analytics_get_global_filters

Read-only; no action request.

Use bounded pagination; do not request all sessions at once.

website.analytics_get_realtime

read

Read realtime active stats, top pages, referrers, and countries.

website.list_websites

Read-only; no action request.

Realtime data is volatile; do not treat it as a long-term trend.

website.analytics_get_events

read

Read aggregated analytics events, trend series, and event rows.

website.analytics_get_global_filters

Read-only; no action request.

Analyze collected events only; missing events do not prove no behavior.

website.analytics_get_retention

read

Read monthly retention cohorts.

website.analytics_get_global_filters

Read-only; no action request.

Interpret cohorts with sample size and date range context.

website.analytics_get_funnels

read

Read saved funnel configuration rows.

website.list_websites

Read-only; no action request.

Read existing IDs, steps, and windows before writing funnels.

website.analytics_get_goals

read

Read saved goal configuration rows.

website.list_websites

Read-only; no action request.

Read existing IDs, types, and values before writing goals.

website.analytics_get_funnel_options

read

Discover page paths and event names for funnel configuration.

website.analytics_get_funnels

Read-only; no action request.

Use observed values for funnel steps; do not invent missing events.

website.analytics_get_goal_options

read

Discover page paths and event names for goal configuration.

website.analytics_get_goals

Read-only; no action request.

Choose goal path/event from options; do not invent values without data basis.

website.analytics_get_funnel_report

read

Read funnel report by funnel ID.

website.analytics_get_funnels

Read-only; no action request.

funnel_id must come from get_funnels.

website.analytics_get_goal_report

read

Read all saved goals and calculated conversion results.

website.analytics_get_goals

Read-only; no action request.

Report is affected by filters/date range; keep context explicit.

website.analytics_get_global_filters

read

Read analytics global filters, compiled Umami params, hash, and base_version.

website.list_websites

Read-only; no action request.

Read before updating filters and use base_version for stale protection.

website.analytics_update_global_filters

write

Update website analytics global reporting filters.

website.analytics_get_global_filters

Governed write; may execute or return pending_approval.

Filters affect reporting only; they do not stop Umami ingestion.

website.analytics_replace_funnels

write

Replace saved funnel configuration rows in full.

website.analytics_get_funnels + website.analytics_get_funnel_options

Governed write; may execute or return pending_approval.

Before full replace, preserve funnel rows that should remain.

website.analytics_replace_goals

write

Replace saved goal configuration rows in full.

website.analytics_get_goals + website.analytics_get_goal_options

Governed write; may execute or return pending_approval.

Before full replace, preserve goal rows that should remain.

website.request_deploy

write

Request deployment for the whole website or a scoped page/dynamic_slug.

Relevant preview / validation / content read

Governed write; may execute or return pending_approval.

Before deploy, confirm content, meta, schema, and AI-readable docs have been previewed/validated.

core.list_action_requests

status

List pending or recent action requests for governed writes.

Any write returning pending_approval

Status lookup; does not create a new write.

When pending, inspect the original request instead of resubmitting the same write.

core.get_action_request_status

status

Check approval, execution, or failure status for one action_request_id.

core.list_action_requests or write result

Status lookup; does not create a new write.

Poll the original action_request_id only; do not resubmit with modified payload.