Playing with MCP: An Experimental Server for Optimizely CMS

I’ve been tinkering with something experimental: an MCP server for Optimizely CMS.

MCP, or Model Context Protocol, is a way for AI tools to talk to external systems. It’s not a REST API, and it’s not GraphQL either. Think of it more like a common “protocol wrapper” that lets AI assistants discover what a server can do — what data it exposes, what actions it supports — and then call those capabilities in a structured way.

Here’s the catch: MCP isn’t really built to run over HTTP like most APIs we’re used to. Right now it’s more about local connections (stdio, sockets). That’s fine for experiments, but it does mean it’s not drop-in ready for cloud deployments.

That said, I think if MCP evolves to run reliably over HTTP, we’ll start to see some very cool “public MCP” layers: imagine subscribing to a SaaS tool, dropping your API key into your AI desktop, and instantly being able to query and manage your data. We’re not there yet, but it’s worth exploring.

What I built

This MCP server sits in front of Optimizely CMS and combines two APIs:

  • Graph API – to query content and inspect content types.
  • Content Management API – to create, update, publish, and manage content.

So instead of juggling multiple APIs, the MCP server gives you a single entry point that AI assistants can plug into.

Out of the box, the server supports:

  • Fetching content with different auth methods (keys, OAuth, HMAC, etc.)
  • Managing versions and workflows
  • Exploring content type schemas
  • Handling multiple languages
  • Adding a caching layer for performance

It’s built in TypeScript with runtime validation, so it’s fairly solid — but for now it’s still experimental.

Potential Use Cases

For developers

  • Connect the MCP server to something like Cursor or VS Code.
  • Debugging headless builds becomes easier:
    “What’s the Graph data for this URL?”
    “Show me the schema for this content type.”

For marketers

  • Imagine asking your AI assistant questions like:
    “How many published pages use this content type?”
    “Which pieces of content are waiting for approval?”
    “Show me the graph data behind this article.”

Where this could go

Right now, this is a side experiment. It’s not production-ready, and MCP itself is still finding its footing. But I see a possible future where MCP servers can be hosted over HTTP, sitting in front of APIs like Optimizely’s Graph and Content Management APIs.

That would open up some powerful use cases: SaaS vendors offering public MCP endpoints, customers connecting their own AI desktops/agents with nothing more than an API key, and assistants becoming first-class clients of CMS platforms.

Try it out

he code is open source here: https://github.com/first3things/optimizely-cms-mcp

Clone it, run it locally, and see what you can do. If you’ve got thoughts on where MCP should head — especially around HTTP exposure and public access — I’d love to hear them.