{
  "version": "2",
  "generatedAt": "2026-11-03T22:49:39.280Z",
  "listing": {
    "slug": "umbraco--umbraco-cms",
    "name": "Umbraco CMS",
    "tagline": ".NET CMS configured in appsettings.json, with an official MCP server over its Management API.",
    "shortTagline": ".NET CMS with an MCP server",
    "description": "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.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "content-publishing",
    "alternativeTo": [
      "Sitecore",
      "Optimizely"
    ],
    "shape": "business-app",
    "formFactor": "web-app",
    "executionModel": "deterministic",
    "provenance": "human-written",
    "codeStack": {
      "languages": [
        "C#",
        "TypeScript"
      ],
      "frameworks": [
        "ASP.NET Core",
        "Razor",
        "Lit (back office)"
      ],
      "packageManager": "NuGet",
      "database": [
        "SQL Server",
        "SQLite"
      ],
      "hostingTarget": [
        "any .NET host",
        "Azure",
        "Umbraco Cloud",
        "Docker"
      ]
    },
    "modelStack": null,
    "repos": [
      {
        "url": "https://github.com/umbraco/Umbraco-CMS",
        "owner": "umbraco",
        "name": "Umbraco-CMS",
        "license": "MIT",
        "stars": 5239,
        "lastCommit": "2026-09-03"
      },
      {
        "url": "https://github.com/umbraco/Umbraco-CMS-MCP-Dev",
        "owner": "umbraco",
        "name": "Umbraco-CMS-MCP-Dev",
        "license": "MIT",
        "stars": 39,
        "lastCommit": "2026-09-02"
      }
    ],
    "interface": {
      "kind": "mcp",
      "url": "https://github.com/umbraco/Umbraco-CMS-MCP-Dev",
      "official": true,
      "hosted": "both"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Create and edit content documents",
        "reachable": true,
        "evidence": "MCP tool collection 'document' (MCP.md; MCP-Dev README)"
      },
      {
        "job": "Publish and unpublish content",
        "reachable": true,
        "evidence": "document collection wraps Management API document endpoints, which include publish; confirm in tool listing"
      },
      {
        "job": "Manage media items",
        "reachable": true,
        "evidence": "MCP tool collection 'media'"
      },
      {
        "job": "Define document types (content models)",
        "reachable": true,
        "evidence": "MCP tool collection 'document-type'"
      },
      {
        "job": "Define data types (property editors)",
        "reachable": true,
        "evidence": "MCP tool collection 'data-type'"
      },
      {
        "job": "Define media types",
        "reachable": true,
        "evidence": "MCP tool collection 'media-type'"
      },
      {
        "job": "Manage users and API users",
        "reachable": null,
        "evidence": "not among the five collections named in MCP.md; full tool listing at docs.umbraco.com/umbraco-developer-mcp not fetched"
      },
      {
        "job": "Build and read form submissions",
        "reachable": null,
        "evidence": "separate umbraco/Umbraco-Forms-MCP-Dev repo exists; not analyzed"
      },
      {
        "job": "Serve content headlessly to a front end",
        "reachable": false,
        "evidence": "Content Delivery API is a read interface for sites, not an MCP job"
      },
      {
        "job": "Edit Razor templates and views",
        "reachable": false,
        "evidence": "templates are code in the project"
      }
    ],
    "editions": [
      {
        "name": "Umbraco CMS",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/umbraco/Umbraco-CMS"
          },
          {
            "kind": "installable",
            "url": "https://docs.umbraco.com/umbraco-cms/fundamentals/setup/install",
            "command": "dotnet new install Umbraco.Templates && dotnet new umbraco --name MyProject"
          }
        ]
      },
      {
        "name": "Umbraco Cloud",
        "price": null,
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://umbraco.com/products/umbraco-cloud/"
          }
        ]
      },
      {
        "name": "Umbraco Heartcore",
        "price": null,
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://umbraco.com/products/umbraco-heartcore/"
          }
        ]
      }
    ],
    "skills": {
      "kind": "bundled",
      "paths": [
        "plugins-server/skills/*/SKILL.md"
      ],
      "install": "/plugin marketplace add umbraco/Umbraco-CMS-MCP-Dev",
      "note": "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."
    },
    "customization": {
      "summary": "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.",
      "envVars": [
        "ConnectionStrings__umbracoDbDSN",
        "Umbraco__CMS__Global__Id",
        "Umbraco__CMS__Unattended__InstallUnattended",
        "UMBRACO_CLIENT_ID",
        "UMBRACO_CLIENT_SECRET",
        "UMBRACO_BASE_URL",
        "UMBRACO_INCLUDE_TOOL_COLLECTIONS"
      ],
      "configFiles": [
        "appsettings.json",
        "appsettings.Development.json",
        "Views/*.cshtml",
        ".mcp.json"
      ],
      "promptFiles": [],
      "effort": "config-only",
      "editCount": 11
    },
    "useWhen": [
      "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"
    ],
    "accounts": [
      "Umbraco Cloud (only for the hosted edition)"
    ],
    "active": true,
    "lastActivity": "2026-09-03",
    "gotchas": [
      "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"
    ],
    "fit": {
      "adaptable": 3,
      "operable": 3
    },
    "evidence": {
      "formFactor": "README: .NET CMS installed with dotnet new templates with a web back office",
      "executionModel": "no model at runtime",
      "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",
      "effort": "MCP.md documents UMBRACO_* env vars; appsettings.json is the documented CMS config surface (docs.umbraco.com); triage-confirmed",
      "editions": "README: free and open source .NET CMS; umbraco.com lists Cloud and Heartcore",
      "active": "pushedAt 2026-09-03 (CMS) and 2026-09-02 (MCP-Dev)",
      "provenance": "company-backed project since 2005; no vibe-coded claim"
    },
    "confidence": {
      "formFactor": 0.95,
      "executionModel": 0.95,
      "operability": 0.9,
      "effort": 0.8,
      "reach": 0.7,
      "editions": 0.7,
      "provenance": 0.9
    },
    "openQuestions": [
      "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": [
      {
        "url": "https://github.com/umbraco/Umbraco-CMS",
        "foundBy": "sourcing:content-publishing:curated"
      },
      {
        "url": "https://github.com/umbraco/Umbraco-CMS-MCP-Dev",
        "foundBy": "analysis:content-publishing"
      },
      {
        "url": "https://docs.umbraco.com/umbraco-cms/develop-with-umbraco/headless-and-apis/management-api",
        "foundBy": "analysis:content-publishing"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "unverified",
      "reason": "Analysis found an official MCP server on the Umbraco org (not just the Management API the triage relied on), configured by env vars. MIT and appsettings.json make the adaptable side config-only.",
      "disputed": []
    },
    "url": "apps/umbraco--umbraco-cms.html",
    "coverage": "partial",
    "paid": false,
    "source": "research/verified/umbraco--umbraco-cms.json"
  }
}
