Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
umbraco avatar

Umb Cms Dev Cli

  • 4 installs
  • 39 repo stars
  • Updated August 4, 2026
  • umbraco/umbraco-cms-mcp-dev

Helps with ai & agent building tasks.

About

umb-cms-dev-cli is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.

  • umb-cms-dev-cli
  • AI & Agent Building
  • AI-coding skill

Umb Cms Dev Cli by the numbers

  • 4 all-time installs (skills.sh)
  • Ranked #13,348 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/umbraco/umbraco-cms-mcp-dev --skill umb-cms-dev-cli

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs4
repo stars39
Last updatedAugust 4, 2026
Repositoryumbraco/umbraco-cms-mcp-dev

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

Umbraco MCP Server — CLI Guide

This MCP server runs as a CLI tool. The CLI handles authentication and configuration, then exposes tools that talk directly to the Umbraco Management API.

Detecting the CLI Command

Determine the CLI command in a single check:

# One command to detect context — check for local build AND .env together
ls dist/index.js .env 2>/dev/null
  • If dist/index.js exists: use node dist/index.js
  • Otherwise: use npx @umbraco-cms/mcp-dev@latest

All examples below use <cli> as a placeholder — substitute the correct command.

Quick Reference

# List all tools
<cli> --list-tools

# Describe a specific tool's schema
<cli> --describe-tool <tool-name>

# Call a tool directly (requires auth via .env)
<cli> --call <tool-name> --call-args '{"key":"value"}'

# Generate context documentation
<cli> --generate-context > CONTEXT.md

# Debug resolved configuration
<cli> --debug-config

Authentication

Never pass secrets as CLI arguments. Use a .env file.

Env VarRequiredDescription
UMBRACO_CLIENT_IDYesOAuth client ID from Umbraco API user
UMBRACO_CLIENT_SECRETYesOAuth client secret
UMBRACO_BASE_URLYesUmbraco instance URL

Create a .env file:

UMBRACO_CLIENT_ID=your-client-id
UMBRACO_CLIENT_SECRET=your-secret
UMBRACO_BASE_URL=https://localhost:44391

Introspection commands (--list-tools, --describe-tool, --generate-context) do not require auth.

Tool Filtering

FlagEnv VarDescription
--umbraco-tool-modesUMBRACO_TOOL_MODESEnable named groups of collections
--umbraco-include-slicesUMBRACO_INCLUDE_SLICESOnly expose tools with these slices
--umbraco-exclude-slicesUMBRACO_EXCLUDE_SLICESHide tools with these slices
--umbraco-include-tool-collectionsUMBRACO_INCLUDE_TOOL_COLLECTIONSOnly expose these collections
--umbraco-exclude-tool-collectionsUMBRACO_EXCLUDE_TOOL_COLLECTIONSHide these collections
--umbraco-include-toolsUMBRACO_INCLUDE_TOOLSOnly expose these specific tools
--umbraco-exclude-toolsUMBRACO_EXCLUDE_TOOLSHide these specific tools

Available slices: read, list, create, update, delete, search, tree, publish, move, copy.

Exclude takes precedence over include. Filters combine.

Runtime Modes

Readonly mode

<cli> --umbraco-readonly

Mutation tools are completely removed — the LLM won't see them at all.

Dry-run mode

<cli> --umbraco-dry-run

Read tools execute normally. Mutation tools return a preview without calling the API.

Introspection Commands

These print output and exit immediately — they do not start the MCP server.

FlagDescription
--list-toolsPrint ASCII table of all tools
--describe-tool <name>Print full JSON schema for a tool
--generate-contextOutput CONTEXT.md documenting all tools
--debug-configPrint resolved config (secrets masked)
--call <name>Call a tool directly, print JSON result
--call-args <json>JSON arguments for --call (default: {})

Introspection respects all filtering. --list-tools with UMBRACO_READONLY=true shows exactly what the LLM would see.

Efficient CLI Usage

Every CLI call costs time and tokens. The CLI has built-in filtering so you don't need to fetch everything and grep locally. Follow these principles:

1. Filter server-side, not locally. Instead of --list-tools | grep document, use the filtering flags:

# Bad — fetches all tools then filters locally
<cli> --list-tools | grep document

# Good — server returns only what you need
<cli> --list-tools --umbraco-include-tool-collections document

You can combine filters to narrow further:

<cli> --list-tools --umbraco-include-tool-collections document --umbraco-include-slices read,search

2. Use search tools before tree traversal. When looking for a specific item by name, prefer search-document over walking the tree with get-document-rootget-document-by-id. Search is one call instead of two.

3. Batch independent shell commands. Combine checks that don't depend on each other:

# Bad — two separate calls
ls dist/index.js
ls .env

# Good — one call
ls dist/index.js .env 2>/dev/null

4. Use `--describe-tool` before guessing parameters. If you're unsure what a tool accepts, describe it first rather than making a call that might fail.

For more workflow examples, read references/workflow-patterns.md.

Input Sanitization

The SDK validates all string inputs before tool handlers run:

  • Rejects control characters, path traversal (../), embedded query params, percent-encoded strings
  • Validates UUID format where expected
  • Returns clear error messages for agent self-correction

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.