integrations tools optimizely-cms
Optimizely CMS MCP for your AI agent
Cogny's Optimizely CMS integration exposes 11 tools (7 read, 3 write, 1 destructive) to an AI agent over MCP. The same tools are available on every plan, from your own AI client or inside the Cogny app.
- 7readonly reads data.
- 3writecreates or changes something.
- 1destructivedeletes, removes or replaces something.
Over MCP your own AI client asks before it runs a write. To take a tool away from your agent, block it in Settings → Integrations. Plans, approvals and limits
set it up.
Add Cogny to your AI client once, then connect Optimizely CMS in Cogny. Every Optimizely CMS tool below appears in the client.
- Claude CodeRun
claude mcp add --transport http cogny https://app.cogny.com/mcp, then authorise in the browser. - Claude.aiSettings → Connectors → Add custom connector, URL
https://app.cogny.com/mcp, then log in and pick your workspace. - ChatGPTSettings → Apps → Advanced settings → Developer mode → Create app, URL
https://app.cogny.com/mcp, authentication OAuth. - CursorIn Cogny, Settings → Data & Integrations → Connect AI Clients shows the block to paste into
.mcp.json, with an API key. - CodexRun
codex mcp add cogny --url https://app.cogny.com/mcp.
Notes
Optimizely CMS connects with an API key you create in your CMS (SaaS) instance under Settings → API Keys: a client ID and a client secret, and the secret is shown only once. What the agent may do follows the key's access rights under Settings → Set Access Rights, per page and inherited by the pages below it. Read is enough for every read tool. Creating pages needs Create, editing drafts needs Change, and publish_draft needs Publish.
New pages and edits are always saved as drafts. create_page creates a draft under the parent you name. update_draft changes only the fields you pass, on a draft. To change a page that is already live, create_draft_version copies the published version into a new draft first, so the live page doesn't change while you work. Nothing is public until publish_draft, which is marked destructive so MCP clients ask before it runs. In Cogny's chat on Free and Solo every publish needs a fresh approval, and in tickets the agent stages the draft for review instead of publishing. publish_draft can also schedule a publish for a later time.
Field values are passed as plain values, e.g. {"heading": "Spring sale"}. Rich text is {"html": "<p>…</p>"}. Check which fields a page type takes with get_content_type before you create one.
Lists return up to 100 items per call and page with page_index.
Known gaps
- Optimizely CMS (SaaS) only. CMS 12 self-hosted (PaaS) sites use a different API on your own host, and aren't covered yet. Many CMS 12 installs don't have the Content Management API that writes would need.
- Optimizely Web Experimentation is a separate integration with its own token.
- No delete, unpublish, move or copy of content. Nothing can be marked ready or sent for review, and nothing in review can be approved or rejected.
- No upload of images or other media. Existing media can be referenced in a field by its key.
- Reads return field values as the CMS stores them. Blocks inside an experience or section come back as the version's
composition; they are not resolved into separate items. - There is no full-text search. Find content by status and locale with
list_content_versions, or browse withlist_childrenfrom a page you know. - The live website URL of a page isn't returned, only its URL segment.
what each tool does.
Read 7 · only reads data
list_content_versionsReadList pages and other content across your Optimizely CMS, with type, locale, status and URL segment.list_childrenReadList the pages and other content items directly under a page or folder in your Optimizely CMS.get_contentReadGet one content item from your Optimizely CMS: its type, parent, locales and versions.get_content_versionReadGet the fields of a page in your Optimizely CMS — title, body, SEO fields and blocks — for one version.list_content_typesReadList the content types in your Optimizely CMS and the fields each one takes.get_content_typeReadGet one content type in your Optimizely CMS with every field it takes.list_localesReadList the languages (locales) set up in your Optimizely CMS.
Write 3 · creates or changes something
create_pageWriteCreate a new page in your Optimizely CMS as a draft under a parent page.update_draftWriteEdit a draft page in your Optimizely CMS: title, SEO fields, body text and other fields.create_draft_versionWriteStart a new draft of a published page in your Optimizely CMS, so it can be edited without changing the live page.
Destructive 1 · deletes, removes or replaces something
publish_draftDestructivePublish a draft page in your Optimizely CMS so it goes live on your website.
Exact input schemas come from tools/list once Optimizely CMS is connected; the free plan is enough to check. Missing something? Your agent can ask for it with request_feature.