Hangsolow.OptiMcpServer 1.0.6

dotnet add package Hangsolow.OptiMcpServer --version 1.0.6
                    
NuGet\Install-Package Hangsolow.OptiMcpServer -Version 1.0.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Hangsolow.OptiMcpServer" Version="1.0.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Hangsolow.OptiMcpServer" Version="1.0.6" />
                    
Directory.Packages.props
<PackageReference Include="Hangsolow.OptiMcpServer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Hangsolow.OptiMcpServer --version 1.0.6
                    
#r "nuget: Hangsolow.OptiMcpServer, 1.0.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Hangsolow.OptiMcpServer@1.0.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Hangsolow.OptiMcpServer&version=1.0.6
                    
Install as a Cake Addin
#tool nuget:?package=Hangsolow.OptiMcpServer&version=1.0.6
                    
Install as a Cake Tool

Hangsolow.OptiMcpServer

⚠️ Development tool only — do not use in production

This package is intended exclusively for local development against a local database. It exposes unauthenticated content read/write operations over HTTP. Running it in a production or shared environment is a serious security risk and is strongly discouraged.

An MCP (Model Context Protocol) server library for Optimizely CMS 12. Install it into your local Optimizely development project to expose content operations as tools callable by AI assistants (Claude, Copilot, etc.).

What it does

Exposes the following MCP tools over HTTP (/mcp):

Tool Description
get_content Fetch a single content item by ID
get_children List children of a content node (paginated)
get_ancestors Get the breadcrumb hierarchy for a content item
get_content_types List all registered content types and their properties
create_content Create a new content item (draft)
update_content Update properties on an existing content item
publish_content Publish a content item
move_to_trash Soft-delete a content item
resolve_url Resolve a friendly URL to a content reference

Two guided prompts help AI assistants scaffold the correct tool calls:

  • create_page — lists available page types and generates a creation workflow
  • create_block — lists available block types and generates a creation workflow

Requirements

  • Optimizely CMS 12
  • .NET 8 or .NET 10
  • SQL Server — local development database only

Installation

Install this package only in your development project configuration (e.g. guarded by #if DEBUG or an environment check). Never deploy it to staging or production.

dotnet add package Hangsolow.OptiMcpServer

Integration

Startup.cs (traditional Optimizely bootstrap)

using OptiMcpServer;

public class Startup
{
    private readonly IConfiguration _configuration;

    public Startup(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCms()
                .AddOptiMcpServer(_configuration);
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapDefaultControllerRoute();
            endpoints.MapMcp("/mcp"); // exposes /mcp
        });
    }
}

AddOptiMcpServer returns an IMcpServerBuilder, so you can chain additional tool assemblies:

services.AddCms()
        .AddOptiMcpServer(_configuration)
        .WithToolsFromAssembly(typeof(MyCustomTool).Assembly);

appsettings.json

{
  "ConnectionStrings": {
    "EPiServerDB": "Server=.;Database=MyDb;Integrated Security=True;TrustServerCertificate=True"
  },
  "OptiMcpServer": {
    "PageBaseClass": "EPiServer.Core.PageData",
    "BlockBaseClass": "EPiServer.Core.BlockData"
  }
}

Set PageBaseClass and BlockBaseClass to your site's abstract base types (e.g. MySite.Models.Pages.SitePageData) so the create_page and create_block prompts only surface content types relevant to your project.

MCP endpoint

Once running, the MCP server is available at:

http://<host>/mcp

Configure your AI client to connect to this URL using the Streamable HTTP transport.

License

This project is licensed under the MIT License — see the LICENSE file for the full text.

Disclaimer: This package is provided "as is", without warranty of any kind. Use it at your own risk. The author(s) accept no liability for any damage, data loss, or other issues arising from its use in any environment, including production Optimizely CMS installations.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.6 109 3/22/2026
1.0.5 97 3/19/2026
1.0.5-beta.2 52 3/19/2026
1.0.5-beta.1 56 3/19/2026
1.0.4 98 3/19/2026
1.0.4-beta.2 51 3/19/2026
1.0.4-beta.1 47 3/19/2026
1.0.3 100 3/19/2026
1.0.2 93 3/19/2026
1.0.2-beta.1 49 3/19/2026
1.0.1 98 3/19/2026