Hangsolow.OptiMcpServer
1.0.6
dotnet add package Hangsolow.OptiMcpServer --version 1.0.6
NuGet\Install-Package Hangsolow.OptiMcpServer -Version 1.0.6
<PackageReference Include="Hangsolow.OptiMcpServer" Version="1.0.6" />
<PackageVersion Include="Hangsolow.OptiMcpServer" Version="1.0.6" />
<PackageReference Include="Hangsolow.OptiMcpServer" />
paket add Hangsolow.OptiMcpServer --version 1.0.6
#r "nuget: Hangsolow.OptiMcpServer, 1.0.6"
#:package Hangsolow.OptiMcpServer@1.0.6
#addin nuget:?package=Hangsolow.OptiMcpServer&version=1.0.6
#tool nuget:?package=Hangsolow.OptiMcpServer&version=1.0.6
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 workflowcreate_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 DEBUGor 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 | Versions 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. |
-
net10.0
- EPiServer.CMS (>= 12.34.2)
- ModelContextProtocol.AspNetCore (>= 1.1.0)
-
net8.0
- EPiServer.CMS (>= 12.34.2)
- ModelContextProtocol.AspNetCore (>= 1.1.0)
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 |