Umbraco CMS
.NET CMS configured in appsettings.json, with an official MCP server over its Management API.
Umbraco is an MIT-licensed ASP.NET Core CMS with a back office for documents, media, and content types, a Management API, and a Content Delivery API for headless reads. The Umbraco org publishes @umbraco-cms/mcp-dev, an MCP server that wraps the Management API so an agent can manage documents, media, document types, and data types under a normal API user's permissions.
- I run .NET and want a CMS my editors like and my agent can populate through a permissioned API
- I need to bulk-create pages and media for a site launch without clicking through the back office
- The MCP package is named mcp-dev and pinned to the CMS major (@umbraco-cms/mcp-dev@17); the CMS repo's own MCP.md calls its config local-development-only, though the MCP-Dev repo also ships a Cloudflare Worker hosted mode
- The MCP authenticates as an Umbraco API user with client credentials; create that user and scope its permissions first
- Swagger and the OpenAPI document at /umbraco/openapi are disabled in production
- README says not to run Umbraco from the source checkout; install the NuGet templates and extend
Last activity Sep 3, 2026. Fit: adaptable 3, operable 3.
Editions
Umbraco CMS · Free open source
- Clone
git clone https://github.com/umbraco/Umbraco-CMS - Install
dotnet new install Umbraco.Templates && dotnet new umbraco --name MyProject
Umbraco Cloud · Free closed source
- HostedOpen the hosted app
Umbraco Heartcore · Free closed source
- HostedOpen the hosted app
Adaptable: what is yours to change
Make it yours
Config only11 things to edit
A new site is a dotnet template; appsettings.json holds the Umbraco:CMS section (global settings, unattended install, connection string, security) and any key can be overridden with ASP.NET double-underscore env vars. Content types are modelled in the back office, not code. Views are Razor files if you want to change markup. The MCP server is configured entirely by UMBRACO_* env vars.
- Env vars
ConnectionStrings__umbracoDbDSNUmbraco__CMS__Global__IdUmbraco__CMS__Unattended__InstallUnattendedUMBRACO_CLIENT_IDUMBRACO_CLIENT_SECRETUMBRACO_BASE_URLUMBRACO_INCLUDE_TOOL_COLLECTIONS- Config files
appsettings.jsonappsettings.Development.jsonViews/*.cshtml.mcp.json- Prompt files
- none
- Accounts you need
- Umbraco Cloud (only for the hosted edition)
Source
- github.com/umbraco/Umbraco-CMS
- MIT license
- Last commit Sep 3, 2026
- 5,239 stars
Operable: what an agent can drive
Interface
OfficialMCP serverpublished by the builderremote or local
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
Reach
Partial coverage. 6 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Create and edit content documents | Reachable | MCP tool collection 'document' (MCP.md; MCP-Dev README) |
| Publish and unpublish content | Reachable | document collection wraps Management API document endpoints, which include publish; confirm in tool listing |
| Manage media items | Reachable | MCP tool collection 'media' |
| Define document types (content models) | Reachable | MCP tool collection 'document-type' |
| Define data types (property editors) | Reachable | MCP tool collection 'data-type' |
| Define media types | Reachable | MCP tool collection 'media-type' |
| Manage users and API users | Undetermined | not among the five collections named in MCP.md; full tool listing at docs.umbraco.com/umbraco-developer-mcp not fetched |
| Build and read form submissions | Undetermined | separate umbraco/Umbraco-Forms-MCP-Dev repo exists; not analyzed |
| Serve content headlessly to a front end | Not reachable | Content Delivery API is a read interface for sites, not an MCP job |
| Edit Razor templates and views | Not reachable | templates are code in the project |
Code stack
- Languages
- C#TypeScript
- Frameworks
- ASP.NET CoreRazorLit (back office)
- Package manager
- NuGet
- Database
- SQL ServerSQLite
- Hosting target
- any .NET hostAzureUmbraco CloudDocker
- Built
- Human-written (recorded, never ranked)
Skills
The official MCP repo ships a plugin with skills for CLI setup and wiring the MCP server; the CMS repo separately carries contributor-only skills.
- Kind
- bundled
- Paths
plugins-server/skills/*/SKILL.md- Install
/plugin marketplace add umbraco/Umbraco-CMS-MCP-Dev
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: .NET CMS installed with dotnet new templates with a web back office | 95% |
| executionModel | no model at runtime | 95% |
| operability | umbraco/Umbraco-CMS-MCP-Dev (MIT, pushed 2026-09-02) on the Umbraco org; documented at docs.umbraco.com/umbraco-developer-mcp; CMS repo ships MCP.md and .mcp.json wiring it | 90% |
| effort | MCP.md documents UMBRACO_* env vars; appsettings.json is the documented CMS config surface (docs.umbraco.com); triage-confirmed | 80% |
| editions | README: free and open source .NET CMS; umbraco.com lists Cloud and Heartcore | 70% |
| active | pushedAt 2026-09-03 (CMS) and 2026-09-02 (MCP-Dev) | – |
| provenance | company-backed project since 2005; no vibe-coded claim | 90% |
| reach | 70% |
Open questions
- Fetch the full tool listing at docs.umbraco.com/umbraco-developer-mcp to settle users and publish Reach
- Umbraco Cloud and Heartcore prices
- Confirm the exact appsettings.json keys used for unattended install and connection string
Sources
- github.com/umbraco/Umbraco-CMS sourcing:content-publishing:curated
- github.com/umbraco/Umbraco-CMS-MCP-Dev analysis:content-publishing
- docs.umbraco.com/umbraco-cms/develop-with-umbraco/headless-and-apis/management-api analysis:content-publishing