Mmcp.market

Umbraco CMS Dev MCP server

by umbraco·io.github.umbraco/Umbraco-CMS-MCP-Dev·v18.0.1

A developer focused model context protocol (MCP) server for Umbraco CMS

B77/100grade B
What users say
No reviews yet
Be the first
Safety scan
B77/100

full report

Adoption
Established

39 stars921 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • copy-data-type

    Copy a data type by Id. Returns the new data type's ID on success.

  • copy-document

    Copy 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 action

    Creates 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 action

    Creates a new data type folder

  • create-dictionarywrite action

    Creates a new dictionary item.

  • create-document-blueprintwrite action

    Creates a new document blueprint.

  • create-document-blueprint-folderwrite action

    Creates a new document blueprint folder

  • create-document-blueprint-from-documentwrite action

    Create 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 action

    Deletes a data type by Id

  • delete-data-type-folderwrite action

    Deletes a data type folder by Id

  • delete-dictionary-itemwrite action

    Deletes a dictionary item by Id

  • delete-documentwrite action

    Deletes a document by Id

  • delete-document-blueprintwrite action

    Deletes a document blueprint by Id

  • delete-document-blueprint-folderwrite action

    Deletes a document blueprint folder by Id

  • delete-document-public-accesswrite action

    Removes public access settings from a document by Id.

  • delete-document-recycle-bin-itemwrite action

    Permanently deletes a document from the recycle bin by its id

  • delete-from-recycle-binwrite action

    Deletes a document from the recycle bin by Id.

  • empty-recycle-bin

    Empties the document recycle bin.

  • find-data-type

    Finds a data type by Id or Name

  • find-dictionary

    Finds a dictionary by Id or name

  • get-all-data-types

    Gets 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-id

    Get 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-culture

    Retrieves a paginated list of cultures that Umbraco can be configured to use

  • get-data-type

    Gets a data type by Id

  • get-data-type-ancestors

    Gets the ancestors of a data type by Id

  • get-data-type-ancestors-batch

    Gets 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-batch

    Gets 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-children

    Gets the children data types or data type folders by the parent id

  • get-data-type-configuration

    Gets global data type configuration settings including change permissions and default list view IDs

  • get-data-type-folder

    Gets a data type folder by Id

  • get-data-type-root

    Gets the root level of the data type and data type folders in the tree.

  • get-data-type-schema

    Gets 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-schemas

    Gets 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-search

    Searches the data type tree for a data type by name. It does NOT allow for searching for data type folders.

  • get-data-type-siblings

    Gets sibling data types or data type folders for a given descendant id

  • get-data-type-tree-search

    Searches 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-array

    Gets data types by IDs (or empty array if no IDs are provided)

  • get-dictionary

    Gets a dictionary by Id

  • get-dictionary-ancestors

    Gets the ancestors of a dictionary item by Id

  • get-dictionary-by-id-array

    Gets dictionary items by IDs (or empty array if no IDs are provided)

  • get-dictionary-children

    Gets the children of a dictionary item by Id

  • get-dictionary-root

    Gets the root level of the dictionary tree

  • get-document-ancestors

    Gets ancestor items for a document.

  • get-document-ancestors-batch

    Gets 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-referenced

    Check 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-log

    Fetches the audit log for a document by Id.

  • get-document-available-segment-options

    Gets 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-blueprint

    Gets a document blueprint by Id

  • get-document-blueprint-ancestors

    Gets the ancestors of a document blueprint by Id

  • get-document-blueprint-by-id-array

    Gets document blueprints by IDs (or empty array if no IDs are provided)

  • get-document-blueprint-children

    Gets the children of a document blueprint by Id

  • get-document-blueprint-folder

    Gets a document blueprint folder by Id

  • get-document-blueprint-root

    Gets the root level of the document blueprint tree

  • get-document-blueprint-scaffold

    Get 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-siblings

    Gets sibling document blueprints for a given descendant id

  • get-document-by-id

    Gets 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-by

    Get 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-descendants

    Get 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-children

    Gets child items for a document.

  • get-document-configuration

    Gets the document configuration for the Umbraco instance.

  • get-document-domains

    Gets the domains assigned to a document by Id.

  • get-document-notifications

    Gets the notifications for a document by Id.

  • get-document-public-access

    Gets 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 action

    Gets the published state of a document by Id.

  • get-document-recycle-bin-siblings

    Gets sibling documents in the recycle bin for a given descendant id

  • get-document-root

    Gets root items for documents.

  • get-document-siblings

    Gets sibling documents for a given descendant id

  • get-document-type-schema

    Gets 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-urls

    Gets the URLs for a document.

  • get-item-document

    Gets document items by their ids

  • get-recycle-bin-document-children

    Gets child items for a document in the recycle bin.

  • get-recycle-bin-document-original-parent

    Get 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-by

    Get 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-root

    Gets root items for the document recycle bin.

  • get-references-data-type

    Gets 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-type

    Checks if a data type is used within Umbraco

  • move-data-type

    Move a data type by Id

  • move-dictionary-item

    Moves a dictionary item by Id

  • move-document

    Move a document to a new location

  • move-document-blueprint

    Moves a document blueprint by Id

  • move-document-to-recycle-bin

    Move a document to the recycle bin

  • post-document-public-accesswrite action

    Adds public access settings to a document by Id.

  • publish-documentwrite action

    Publishes 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 action

    Publishes 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 action

    Updates 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 action

    Updates the notifications for a document by Id.

  • put-document-public-accesswrite action

    Updates public access settings for a document by Id.

  • restore-document-from-recycle-bin

    Restores a document from the recycle bin.

  • search-document

    Searches for documents by query, skip, and take.

  • sort-document

    Sorts the order of documents under a parent.

  • unpublish-document

    Unpublishes a document by Id.

  • update-block-propertywrite action

    Updates 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 action

    Updates a data type by Id

  • update-data-type-folderwrite action

    Updates a data type folder by Id

  • update-dictionary-itemwrite action

    Updates a dictionary item by Id

  • update-documentwrite action

    Updates 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 action

    Updates a document blueprint by Id

  • update-document-blueprint-folderwrite action

    Updates a document blueprint folder

  • update-document-propertieswrite action

    Updates 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-document

    Validates 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

1 medium
  • 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 usedexec.eval
    dist/index.cjs: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…
Overall 77/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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:

  1. Open Claude Desktop Settings > Developer > Edit Config
  2. 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"
      }
    }
  }
}
  1. 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 --copilot

Other 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
Add to Cursor

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.

More from umbraco →