Axendo.ModelContextProtocol.Umbraco 0.1.5

dotnet add package Axendo.ModelContextProtocol.Umbraco --version 0.1.5
                    
NuGet\Install-Package Axendo.ModelContextProtocol.Umbraco -Version 0.1.5
                    
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="Axendo.ModelContextProtocol.Umbraco" Version="0.1.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Axendo.ModelContextProtocol.Umbraco" Version="0.1.5" />
                    
Directory.Packages.props
<PackageReference Include="Axendo.ModelContextProtocol.Umbraco" />
                    
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 Axendo.ModelContextProtocol.Umbraco --version 0.1.5
                    
#r "nuget: Axendo.ModelContextProtocol.Umbraco, 0.1.5"
                    
#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.
#addin nuget:?package=Axendo.ModelContextProtocol.Umbraco&version=0.1.5
                    
Install Axendo.ModelContextProtocol.Umbraco as a Cake Addin
#tool nuget:?package=Axendo.ModelContextProtocol.Umbraco&version=0.1.5
                    
Install Axendo.ModelContextProtocol.Umbraco as a Cake Tool

Model Context Protocol for Umbraco

The first step to a more AI-agentic Umbraco.

This package adds MCP Server capabilities to your Umbraco instance. This allows you to communicate with the Umbraco CMS using the Model Context Protocol that has been gaining a lot of traction in the AI space recently.
Among many other features like AI workflow automation, it allows you to chat directly with your CMS using LLMs.

Demo

This packages offers the following functionality or tools as they are called in MCP:

  • Create a document
  • Update a document
  • Get the document types and their structure
  • Publish a document
  • Schedule document for publication
  • Some basic content quering tools and helpers to let the LLM understand your Umbraco instance better.

Installation

To get started, install the package from NuGet after installing Umbraco 15+.

dotnet add package Axendo.ModelContextProtocol.Umbraco

Getting Started

Configuration

In your Umbraco 15+ project, add the following section to your appsettings.json.

...
  "McpServer": {
    "Username": "{UMBRACO USER}"
  }
...

This defines the user identity MCP utilizes for retrieving and storing data within Umbraco. It is advisable to create a seperate user for this.

Run Umbraco

Run Umbraco and navigate to your Umbraco instance (e.g. https://localhost:43111/sse) to vertify the Model Context Protocol Server has been started.

⚠️ NOTE

This version of the package exposes an unproteced public-facing HTTP endpoint. It is intended for local development and testing purposes only.

Setup a basic document type structure or use a starter package

Create either set up a basic Document Type structure or use a starter package.

I've been using the Clean starterkit by Paul Seal while testing.

After that create and publish some content via the Umbraco back-office. This will create some reference files that the LLM will use later on learn about details of your Umbraco instance and configuration.

Connect your favorite LLM

ChatGPT for Desktop will support MCP soonish, according to the annoucment by Sam Altman. For now, you can use the most popular Claude Desktop, Cursor & Windsurf to connect.

Configure by using the following config format:

{
  "mcpServers": {
    "MyUmbracoWebsite": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://{HOSTNAME}/sse"
      ],
     "env": {
         "NODE_TLS_REJECT_UNAUTHORIZED": "0"
        },
    }
  }
}

You don't need the NODE_TLS_REJECT_UNAUTHORIZED if you allow self signed certificates by default.

More info about how to configure MCP Servers per client:

Read more about connecting to an MCP Server from a local client here.

Prompt away!

Chat from you favorite client and use prompts like:

  • Create an article from this Word document and publish it.
  • Create an article with title "I'm testing the Model Context Protocol" and Publish it directly.
  • Are there any typos in my articles on my Umbraco website?
  • How many articles does my Umbrao site contain?
  • Make up 3 articles about soccer and publish them.

Known limitations

  • Only a part of the Umbraco functionality (such as creating and publishing pages) is available in the MCP server.
  • This package relies on the official C# SDK that is still in preview mode.

Possible improvements

There are heaps 😃

  • Generate InputSchema dynamically to reflect actual document type structure.
  • Optimze tools to have smaller input and results sets to avoid token usage limits of LLMs.

What I dream of...

It is easy to think about future possibilities and extentions:

  • Chain this with other AI agents, such a Figma so the LLM can update the website design by updating template HTML & CSS.
  • Automatically create a document type structure based on design analysis.
  • Create campagnes with advanced publication schemes.
  • Let Umbraco function as an AI agent with workflow autocation tools such as n8n and Azure AI Foundry.

About MCP

The Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context to Large Language Models (LLMs). It enables secure integration between LLMs and various data sources and tools.

For more information about MCP:

Acknowledgements

The author of of the official C# SDK have been helpfull while making this package.

License

This project is licensed under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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. 
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
0.1.5 139 4/18/2025
0.1.4-alpha 120 4/18/2025
0.1.3-alpha 142 4/17/2025
0.1.2-alpha 141 4/15/2025
0.1.1-alpha 135 4/15/2025
0.1.0-alpha 189 4/15/2025