Umbraco CMS Dev MCP server
A developer focused model context protocol (MCP) server for Umbraco CMS
39 stars921 downloads/wk
Reviews
Write oneNobody has reviewed Umbraco CMS Dev yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Umbraco CMS Dev tools (100, 30 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
copy-data-typeCopy a data type by Id. Returns the new data type's ID on success.
copy-documentCopy a document to a new location. Returns the new document's ID on success. This is also the recommended way to create new documents. Copy an existing document to preserve the complex JSON structure, then modify specific fields as needed. WORKFLOW NOTES: - The copy is created as a draft with the naming pattern "Original Name (N)" where N is a number - Use the returned ID for subsequent update and
create-data-typewrite actionCreates a new data type *** CRITICAL WORKFLOW REQUIREMENT *** BEFORE creating any new data type, you MUST perform the following steps: 1. First use the find-data-type function to search for existing data types with similar names and/or property editors 2. Verify if an existing data type can satisfy the requirements 3. Only proceed with creating a new data type if no suitable option exists 4. If a
create-data-type-folderwrite actionCreates a new data type folder
create-dictionarywrite actionCreates a new dictionary item.
create-document-blueprintwrite actionCreates a new document blueprint.
create-document-blueprint-folderwrite actionCreates a new document blueprint folder
create-document-blueprint-from-documentwrite actionCreate a new document blueprint from an existing document Use this to create a blueprint template based on an existing document, preserving its structure and content for reuse. Note: Blueprints created from documents are always created at the root level. Use the move-document-blueprint tool to relocate them to folders after creation if needed.
delete-data-typewrite actionDeletes a data type by Id
delete-data-type-folderwrite actionDeletes a data type folder by Id
delete-dictionary-itemwrite actionDeletes a dictionary item by Id
delete-documentwrite actionDeletes a document by Id
delete-document-blueprintwrite actionDeletes a document blueprint by Id
delete-document-blueprint-folderwrite actionDeletes a document blueprint folder by Id
delete-document-public-accesswrite actionRemoves public access settings from a document by Id.
delete-document-recycle-bin-itemwrite actionPermanently deletes a document from the recycle bin by its id
delete-from-recycle-binwrite actionDeletes a document from the recycle bin by Id.
empty-recycle-binEmpties the document recycle bin.
find-data-typeFinds a data type by Id or Name
find-dictionaryFinds a dictionary by Id or name
get-all-data-typesGets all data types by recursively fetching from root and all children. This is the preferred approach when you need to understand the full folder structure. For large sites, this may take a while to complete. For smaller sites its more efficient than fetching all data types by folder.
get-collection-document-by-idGet a collection of document items Use this to retrieve a filtered and paginated collection of document items based on various criteria like data type, ordering, and filtering.
get-cultureRetrieves a paginated list of cultures that Umbraco can be configured to use
get-data-typeGets a data type by Id
get-data-type-ancestorsGets the ancestors of a data type by Id
get-data-type-ancestors-batchGets the ancestor chain (breadcrumb) for multiple data type Ids in one call. Returns one entry per requested Id, each containing that Id's chain of ancestors. Differs from get-data-type-ancestors which returns the tree-style ancestors of a single Id.
get-data-type-batchGets full data types for multiple Ids in one call. Returns each data type's editor configuration values (e.g. dropdown options, numeric min/max), not just the lightweight item shape returned by get-data-types-by-id-array. Use when you need the same payload as get-data-type but for many Ids at once.
get-data-type-childrenGets the children data types or data type folders by the parent id
get-data-type-configurationGets global data type configuration settings including change permissions and default list view IDs
get-data-type-folderGets a data type folder by Id
get-data-type-rootGets the root level of the data type and data type folders in the tree.
get-data-type-schemaGets the JSON Schema for a data type by Id. Returns a JSON Schema describing the value structure for the specified data type, including its configured property editor settings. IMPORTANT: Use this tool BEFORE creating data types to understand the expected configuration structure for a specific property editor.
get-data-type-schemasGets JSON Schemas for multiple data types in a single batch request. Returns JSON Schemas describing the value structure for each specified data type. This is more efficient than calling get-data-type-schema multiple times when you need schemas for several data types.
get-data-type-searchSearches the data type tree for a data type by name. It does NOT allow for searching for data type folders.
get-data-type-siblingsGets sibling data types or data type folders for a given descendant id
get-data-type-tree-searchSearches data types in tree-node shape (with hasChildren and parent for tree navigation). Use this when paginating through tree results; for a flat search of items use get-data-type-search. Optional itemKind filter accepts 'Item', 'Folder' or 'All'.
get-data-types-by-id-arrayGets data types by IDs (or empty array if no IDs are provided)
get-dictionaryGets a dictionary by Id
get-dictionary-ancestorsGets the ancestors of a dictionary item by Id
get-dictionary-by-id-arrayGets dictionary items by IDs (or empty array if no IDs are provided)
get-dictionary-childrenGets the children of a dictionary item by Id
get-dictionary-rootGets the root level of the dictionary tree
get-document-ancestorsGets ancestor items for a document.
get-document-ancestors-batchGets the ancestor chain (breadcrumb) for multiple document Ids in one call. Returns one entry per requested Id, each containing that Id's chain of ancestors. Differs from get-document-ancestors which returns the tree-style ancestors of a single Id.
get-document-are-referencedCheck if document items are referenced Use this to verify if specific document items are being referenced by other content before deletion or modification.
get-document-audit-logFetches the audit log for a document by Id.
get-document-available-segment-optionsGets available segment options for a document by its id Use this to retrieve the available segment options (content variations) for a document. Useful for: \u2022 Understanding what content variations are available for a document \u2022 Determining which segments can be used when creating or editing document content \u2022 Viewing segment names, aliases, and associated cultures
get-document-blueprintGets a document blueprint by Id
get-document-blueprint-ancestorsGets the ancestors of a document blueprint by Id
get-document-blueprint-by-id-arrayGets document blueprints by IDs (or empty array if no IDs are provided)
get-document-blueprint-childrenGets the children of a document blueprint by Id
get-document-blueprint-folderGets a document blueprint folder by Id
get-document-blueprint-rootGets the root level of the document blueprint tree
get-document-blueprint-scaffoldGet scaffold information for a document blueprint Use this to retrieve the scaffold structure and default values for a document blueprint, typically used when creating new documents from blueprints.
get-document-blueprint-siblingsGets sibling document blueprints for a given descendant id
get-document-by-idGets a document by id Use this to retrieve existing documents. When creating new documents, first get an existing document of similar type, then use the Copy document endpoint.
get-document-by-id-referenced-byGet items that reference a specific document item Use this to find all content, documents, or other items that are currently referencing a specific document item.
get-document-by-id-referenced-descendantsGet descendant references for a document item Use this to find all descendant references (child items) that are being referenced for a specific document item. Useful for: \u2022 Impact analysis: Before deleting a document folder, see what content would be affected \u2022 Dependency tracking: Find all content using documents from a specific folder hierarchy \u2022 Content auditing: Identify which d
get-document-childrenGets child items for a document.
get-document-configurationGets the document configuration for the Umbraco instance.
get-document-domainsGets the domains assigned to a document by Id.
get-document-notificationsGets the notifications for a document by Id.
get-document-public-accessGets the public access settings for a document by Id. Set includeAncestors=true to also resolve protection inherited from an ancestor (the response's isProtectedByAncestor field reflects this).
get-document-publishwrite actionGets the published state of a document by Id.
get-document-recycle-bin-siblingsGets sibling documents in the recycle bin for a given descendant id
get-document-rootGets root items for documents.
get-document-siblingsGets sibling documents for a given descendant id
get-document-type-schemaGets the JSON Schema for a document type by Id. Returns a complete JSON Schema describing the structure for creating documents of that type, including all property definitions and their value formats. IMPORTANT: Use this tool BEFORE creating documents to understand the expected property structure for a specific document type.
get-document-urlsGets the URLs for a document.
get-item-documentGets document items by their ids
get-recycle-bin-document-childrenGets child items for a document in the recycle bin.
get-recycle-bin-document-original-parentGet the original parent location of a document item in the recycle bin Returns information about where the document item was located before deletion.
get-recycle-bin-document-referenced-byGet references to deleted document items in the recycle bin Use this to find content that still references deleted document items before permanently deleting them.
get-recycle-bin-document-rootGets root items for the document recycle bin.
get-references-data-typeGets the document types and properties that use a specific data type. This is the recommended method to find all document types that reference a particular data type. Usage examples: - Find all document types using the RichText editor data type - Identify properties that reference a specific data type before modifying or deleting it - Perform bulk updates to all properties using a specific data ty
is-used-data-typeChecks if a data type is used within Umbraco
move-data-typeMove a data type by Id
move-dictionary-itemMoves a dictionary item by Id
move-documentMove a document to a new location
move-document-blueprintMoves a document blueprint by Id
move-document-to-recycle-binMove a document to the recycle bin
post-document-public-accesswrite actionAdds public access settings to a document by Id.
publish-documentwrite actionPublishes a document by Id. IMPORTANT: If workflow approval is required, use the initiate-workflow-action function instead. This function bypasses approval workflows and publishes directly to the live site. When the culture is not provided, the default culture is null. When the schedule is not provided, the default schedule is null.
publish-document-with-descendantswrite actionPublishes a document and its descendants by Id. This is an asynchronous operation that may take time for large document trees. The tool will poll for completion and return the final result when finished.
put-document-domainswrite actionUpdates the domains assigned to a document by Id. Default value of the defaultIsoCode is null. Domain isoCode in the domains array should be in the format of 'en-US' amd be a valid domain name from the Umbraco instance.
put-document-notificationswrite actionUpdates the notifications for a document by Id.
put-document-public-accesswrite actionUpdates public access settings for a document by Id.
restore-document-from-recycle-binRestores a document from the recycle bin.
search-documentSearches for documents by query, skip, and take.
sort-documentSorts the order of documents under a parent.
unpublish-documentUnpublishes a document by Id.
update-block-propertywrite actionUpdates or adds property values within BlockList, BlockGrid, or RichText block content. This tool enables targeted updates to individual block properties without sending the entire JSON payload. You can update existing properties, add new properties, or do both in a single call. It automatically handles deep traversal of nested block structures (e.g., RichText blocks containing nested blocks). Key
update-data-typewrite actionUpdates a data type by Id
update-data-type-folderwrite actionUpdates a data type folder by Id
update-dictionary-itemwrite actionUpdates a dictionary item by Id
update-documentwrite actionUpdates a document by Id. USE AS LAST RESORT ONLY. IMPORTANT: Prefer these specialized tools instead: - update-document-properties: For updating individual property values (simpler, safer) - update-block-property: For updating properties within BlockList/BlockGrid/RichText blocks Only use this tool when you need to update document-level metadata (template, variants) or when the specialized tools c
update-document-blueprintwrite actionUpdates a document blueprint by Id
update-document-blueprint-folderwrite actionUpdates a document blueprint folder
update-document-propertieswrite actionUpdates or adds property values on a document without requiring the full document JSON payload. This tool simplifies property updates by handling the read-modify-write cycle internally. You can update existing properties, add new properties, or do both in a single call. Key features: - Update existing properties or add new ones - Property must exist on the document type (including compositions) -
validate-documentValidates a create document model, using the Umbraco API.
Public scan report
scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it
- Code scan9 source files scanned20/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 4 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year9/10
Findings (1)
- mediumeval / new Function used
exec.evaldist/index.cjs: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…
What the publisher says
From the Umbraco CMS Dev repository's README, as published. We do not edit it. Read it on GitHub
Umbraco MCP
An MCP (Model Context Protocol) server for Umbraco CMS that unlocks AI-powered content management. It provides comprehensive access to the Umbraco Management API, enabling your AI agent to perform back office tasks through natural conversation - freeing you from the UI and making complex, repetitive workflows that would be tedious or impossible manually become effortless.
Intro
The MCP server authenticates using an Umbraco API user, ensuring secure, permission-based access to the Umbraco Management API. This means you maintain complete control over what your AI agent can do through Umbraco's standard user permission system - no special security model required.
Quick Start
1. Create an Umbraco API User
First, create an Umbraco API user with appropriate permissions. You can find instructions in Umbraco's documentation.
2. Install in Claude Desktop
Download and install the Claude Desktop app, then add the MCP server to your configuration:
- Open Claude Desktop Settings > Developer > Edit Config
- Add this configuration to your claudedesktopconfig.json:
{
"mcpServers": {
"umbraco-mcp": {
"command": "npx",
"args": ["@umbraco-cms/mcp-dev@17"],
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0",
"UMBRACO_CLIENT_ID": "your-api-user-id",
"UMBRACO_CLIENT_SECRET": "your-api-secret",
"UMBRACO_BASE_URL": "https://localhost:{port}",
"UMBRACO_INCLUDE_TOOL_COLLECTIONS": "document,media,document-type,data-type"
}
}
}
}- Fully restart Claude Desktop (including in the system tray on Windows)
Documentation
For complete installation instructions, configuration options, tool listings, and usage examples, see the full documentation:
Umbraco MCP Documentation
Hosted Deployment
The Cloudflare Worker entry point (src/worker.ts) supports two deployment modes, selected at request time by the @umbraco-cms/mcp-hosted library:
- Single-tenant (default) — the worker authenticates against the UMBRACOBASEURL configured in wrangler.toml. This is the existing behavior and requires no extra configuration.
- Multi-tenant Umbraco Cloud — set UMBRACOCLOUDROUTING_ENABLED = "true" under [vars] in wrangler.toml. Requests to /at/{alias}/... resolve the upstream Umbraco Cloud project for {alias} and issue access tokens scoped to that resource per the MCP resource-indicator spec. Each Umbraco Cloud project served by the worker must register an OpenIddict client with id umbraco-cms-developer-mcp-hosted.
siteRouting is wired unconditionally; the per-request toggle is the env var.
Contributing with AI Tools
This project is optimized for development with AI coding assistants. We provide instruction files for popular AI tools to help maintain consistency with our established patterns and testing standards.
Using rulesync
The project includes rulesync configuration files that can automatically generate instruction files for 19+ AI development tools. Generate configuration files for your preferred AI tools:
# Generate only for Claude Code
npx rulesync generate --claudecode
# Generate only for Cursor
npx rulesync generate --cursor
# Generate only for Vs Code Copilot
npx rulesync generate --copilotOther AI Tools
rulesync supports 19+ AI development tools including GitHub Copilot, Cline, Aider, and more. Check the rulesync repository for the complete list of supported tools.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Install directly
Runs npx -y @umbraco-cms/mcp-dev on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add Umbraco-CMS-MCP-Dev -- npx -y @umbraco-cms/mcp-dev
Umbraco CMS Dev: common questions
- Is Umbraco CMS Dev MCP server safe?
- Mostly: it is graded B (77/100). Read the Umbraco CMS Dev safety report
- How do I install Umbraco CMS Dev?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Umbraco CMS Dev need an API key?
- Yes. The registry entry asks for
UMBRACO_CLIENT_ID,UMBRACO_CLIENT_SECRET. - Is Umbraco CMS Dev maintained?
- The last commit was 5 days ago (2026-09-22). The latest release is v18.0.1.