opticli.

Edit your site's content with your AI assistant. It signs in as you.

OptiCli.Mcp adds an MCP server to your site. Your assistant uses your CMS login and access rights, and everything it saves stays a draft until someone publishes it.

You: The Alloy Track teaser should mention reporting, and the page title should say the same.

Assistant

Used update_content as a dry run

Here's what I'd change on Alloy Track, as a dry run, so nothing is saved yet:

PropertyNowAfter
Teaser textInvolve the whole team!Plan, track and report with the whole team
Page titleAlloy Track, online risk management where the whole team gets involved in the project planAlloy Track: plan, track and report with the whole team

You may edit this page and both values are valid. Shall I save it as a draft?

You: Looks good. Save it.

Assistant

Used update_content

Saved as a draft in your name. Here's how it will look before it goes live:

  • saved: a draft, in your name
  • approval sequence: applies
  • publishing: off on this site

An illustrative conversation, on Optimizely's Alloy sample site.

What your assistant can do

Most of what you'd do in edit view: find, read and change content.

  • Find and read content

    Find pages, blocks and media by name, by URL or under a page, and read everything on them: every property, the blocks in a content area, links and rich text, and on CMS 13 the sections and elements of a Visual Builder page. It also checks which properties a page type has and which values they allow.

  • See images

    If your assistant handles images, it can look at the ones in the media library, so it can write alt text or pick an image without you describing it.

  • Change content, as drafts

    Change properties, create pages and blocks, add a language version, upload images and files, and move content. Any change can be tried as a dry run first, to see what would change. Saved changes are drafts.

  • Preview every draft

    Every draft comes with a link to its preview in the CMS, which opens when you're signed in. The assistant can also check the preview itself, through a short-lived link of its own. Your site can turn that off.

  • Publish, if your site allows it

    Publishing, unpublishing and deleting are off until the site turns them on. Where an approval sequence applies, the assistant can only send content for review.

What the site enforces

The site enforces these, whichever assistant you use and whatever you ask it.

  • Only what you may do

    Every read and save is checked against your access rights in the CMS. Content you can't read looks to the assistant the same as content that doesn't exist.

    your access rights
  • Drafts, without script

    Changes are saved as drafts in your name. Script in rich text and other markup is refused.

    drafts
  • Publishing and deleting

    Off until the site turns them on. Approval sequences always apply.

    off by default
  • Who can connect

    Apps on your own machine, and web-based assistants only from addresses the site allows: claude.ai by default. You see your connections and can revoke them.

    your machine, or allowed sites
  • Instructions hidden in content

    The assistant is told to ignore instructions it finds in pages, file names or images. This is guidance to the assistant, not a rule the site can enforce like the ones above.

    not enforced

Connect your assistant

The first time, your browser opens your CMS login, then asks you to allow the connection.

  • On your own machine

    Desktop apps, code editors and command-line agents that support MCP servers with an OAuth sign-in: add a server with the address https://your-site.example/episerver/opticli/mcp. No extra setup.

  • In the browser

    A web-based assistant reaches your site from its own servers, so the site has to be reachable from the internet, and the site has to allow that assistant's address. claude.ai is allowed by default; for any other, ask your developer.

With Claude

  • Claude Desktop

    Open the extension file, or drag it into Claude Desktop's Settings → Extensions, and fill in the site's address. Nothing else to install. Your site may have its own extension with the address built in: ask your developer.

    opticli-cms.mcpb
  • claude.ai

    Add a custom connector with the site's MCP address. On Team and Enterprise plans an owner may have to add it for the organization. Connectors reach your site from Anthropic's cloud, so the site has to be reachable from the internet.

  • Claude Code

    claude mcp add --transport http cms https://your-site.example/episerver/opticli/mcp, then /mcp in Claude Code to sign in.

For your developerOptimizely CMS 12 (12.12.1, CMS UI 12.16.1 or newer) or CMS 13
# in the site's project: CMS 12
dotnet add package OptiCli.Mcp
# or CMS 13
dotnet add package OptiCli.Mcp.Cms13

# Startup.cs
services.AddOptiCliMcp();    # after the site's own login setup
endpoints.MapOptiCliMcp();   # after MapContent() and the site's endpoints

# editors then connect their assistant to
https://your-site.example/episerver/opticli/mcp

Install OptiCli.Mcp in the site, in any environment, production included. On CMS 13, use OptiCli.Mcp.Cms13: setup is the same, so upgrading is a package swap. Editors sign in with the site's existing login, Entra ID or ASP.NET Identity, and the assistant uses the same operations as opticli's site agent.

The README has every option: publishing and deleting, preview links, the web addresses assistants may connect from (AllowedRedirectHosts) and a dedicated host.