This repository includes configuration for Model Context Protocol (MCP) servers, enabling AI tooling integration for Umbraco CMS development workflows.
MCP allows AI assistants (like Claude) to interact with external tools and services. This repository configures two MCP servers:
| Server | Purpose | Package |
|---|---|---|
| umbraco-cms | Manage Umbraco content types, documents, and media | @umbraco-cms/mcp-dev@17 |
| playwright | Browser automation for testing and debugging | @playwright/mcp@latest |
Ensure your local Umbraco instance is running at https://localhost:44339 (or update the URL in your .env.local).
Copy the example environment file and customize it:
cp .env.example .env.localEdit .env.local with your local settings:
UMBRACO_CLIENT_ID=umbraco-back-office-mcp
UMBRACO_CLIENT_SECRET=<your-client-secret>
UMBRACO_BASE_URL=https://localhost:44339
NODE_TLS_REJECT_UNAUTHORIZED=0
UMBRACO_INCLUDE_TOOL_COLLECTIONS=data-type,document-type,document,media-type,mediaCreate an OAuth client in your Umbraco instance with:
- Client ID:
umbraco-back-office-mcp - Client Secret: The value you set in
.env.local - Grant Type: Client Credentials
| Variable | Description | Example |
|---|---|---|
UMBRACO_CLIENT_ID |
OAuth client ID configured in Umbraco | umbraco-back-office-mcp |
UMBRACO_CLIENT_SECRET |
OAuth client secret (keep secure!) | your-secure-secret |
UMBRACO_BASE_URL |
URL of your local Umbraco instance | https://localhost:44339 |
NODE_TLS_REJECT_UNAUTHORIZED |
Set to 0 for self-signed certificates (local dev only) |
0 |
UMBRACO_INCLUDE_TOOL_COLLECTIONS |
Comma-separated list of tool collections to enable | data-type,document-type,document |
The UMBRACO_INCLUDE_TOOL_COLLECTIONS variable controls which Umbraco MCP tools are available:
data-type- Manage data types (property editors)document-type- Manage document types (content types)document- Manage content/documentsmedia-type- Manage media typesmedia- Manage media items
Warning: This configuration is for local development only.
NODE_TLS_REJECT_UNAUTHORIZED=0 disables SSL certificate validation. This is necessary for self-signed certificates in local development but:
- Never use in production
- Affects all HTTPS connections made by Node.js processes
- Consider trusting your local development certificate instead
- Never commit real secrets to source control
- The
.env.localfile is gitignored for this reason - Use strong, unique secrets even in development
- The example value
1234567890in.env.exampleis a placeholder only
Umbraco-CMS/
├── .mcp.json # MCP server configuration
├── .env.example # Example environment variables (committed)
├── .env.local # Your local environment variables (gitignored)
├── .claude/
│ ├── settings.json # Shared Claude AI permissions (committed)
│ └── settings.local.json # Local Claude overrides (gitignored)
├── .gitignore # Ignores .env.local and settings.local.json
└── MCP.md # This documentation (you are here)
The .claude/settings.json file configures which MCP tools Claude can use automatically without prompting. This is shared across the team for consistent developer experience.
Create .claude/settings.local.json to override permissions for your environment:
{
"permissions": {
"allow": [
"mcp__umbraco__get-all-document-types"
]
}
}- Ensure Umbraco is running at the configured
UMBRACO_BASE_URL - Check that the port matches your local setup
- Verify the OAuth client is configured in Umbraco
- Check that
UMBRACO_CLIENT_IDandUMBRACO_CLIENT_SECRETmatch - Ensure the client has appropriate permissions
- For local development, set
NODE_TLS_REJECT_UNAUTHORIZED=0in.env.local - Alternatively, trust your local development certificate
- Ensure Node.js is installed (v22+ recommended, matching .nvmrc)
- Run
npx @umbraco-cms/mcp-dev@17 --helpto verify the package works