@umbraco-cms/mcp-dev 16.0.0-beta.2 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,785 +1,49 @@
1
1
  # Umbraco MCP ![GitHub License](https://img.shields.io/github/license/umbraco/Umbraco-CMS-MCP-Dev?style=plastic&link=https%3A%2F%2Fgithub.com%2Fumbraco%2FUmbraco-CMS-MCP-Dev%2Fblob%2Fmain%2FLICENSE)
2
2
 
3
- An MCP (Model Context Protocol) server for [Umbraco CMS](https://umbraco.com/)
4
- it provides developer access to the majority of the Management API enabling you to complete most back office tasks with your agent that you can accomplish using the UI.
3
+ An MCP (Model Context Protocol) server for [Umbraco CMS](https://umbraco.com/) 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.
5
4
 
6
5
  ## Intro
7
6
 
8
- The MCP server uses an Umbraco API user to access your Umbraco Management API, mean the tools available to the AI can be controlled using normal Umbraco user permissions.
7
+ 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.
9
8
 
10
- ## Getting Started
9
+ ## Quick Start
11
10
 
12
- ### Umbraco
13
-
14
- In order for the MCP to talk to the Management API you will need to create a API user
15
- if you are unsure how to do this follow [Umbraco's documentation](https://docs.umbraco.com/umbraco-cms/fundamentals/data/users/api-users).
16
-
17
- The level of access you provider this user will determine what your agent is able to do.
18
-
19
- ### Installation
11
+ ### 1. Create an Umbraco API User
20
12
 
21
13
  First, create an Umbraco API user with appropriate permissions. You can find instructions in [Umbraco's documentation](https://docs.umbraco.com/umbraco-cms/fundamentals/data/users/api-users).
22
14
 
23
- <details>
24
- <summary>Claude Desktop</summary>
25
-
26
- To get started with using the Umbraco MCP with Claude, first download and install the [Claude.ai desktop app](https://claude.ai/download).
27
-
28
- Start up your Umbraco instance (currently working with version **15.latest**) and create new API user credentials. You can see instructions on how to do that on the [Umbraco docs](https://docs.umbraco.com/umbraco-cms/fundamentals/data/users/api-users).
29
-
30
- Once you have this information head back into Claude desktop app and head to Settings > Developer > Edit Config. Open the json file in a text editor of your choice and add the below, replacing the `UMBRACO_CLIENT_ID`, `UMBRACO_CLIENT_SECRET` and `UMBRACO_BASE_URL` with your local connection information. The addition of the `NODE_TLS_REJECT_UNAUTHORIZED` env flag is to allow Claude to connect to the MCP using a self-signed cert.
31
-
32
-
33
- ```
34
- {
35
- "mcpServers": {
36
- "umbraco-mcp": {
37
- "command": "npx",
38
- "args": ["@umbraco-cms/mcp-dev@beta"],
39
- "env": {
40
- "NODE_TLS_REJECT_UNAUTHORIZED": "0",
41
- "UMBRACO_CLIENT_ID": "umbraco-back-office-mcp",
42
- "UMBRACO_CLIENT_SECRET": "1234567890",
43
- "UMBRACO_BASE_URL": "https://localhost:44391",
44
- "UMBRACO_INCLUDE_TOOL_COLLECTIONS": "culture,document,media",
45
- "UMBRACO_EXCLUDE_TOOLS": "delete-document,empty-recycle-bin"
46
- }
47
- }
48
- }
49
- }
50
- ```
51
-
52
- Restart Claude and try it out with a simple prompt such as `Tell me the GUID of the home page document type`. You'll need to allow each one of the tools as the Umbraco MCP starts to work its way through. If you receive a connection error with the Umbraco MCP click the button to open the logs and review the file `mcp-server-umbraco-mcp.log` for extra information on how to fix the issue.
53
-
54
- > [!NOTE]
55
- > You may need to update to a paid version of Claude.ai in order to have a large enough context window to run your prompts.
15
+ ### 2. Install in Claude Desktop
56
16
 
57
- </details>
17
+ Download and install the [Claude Desktop app](https://claude.ai/download), then add the MCP server to your configuration:
58
18
 
59
-
60
- <details>
61
- <summary>Claude Code</summary>
62
-
63
- Use the Claude Code CLI to add the Umbraco MCP server:
64
-
65
- ```bash
66
- claude mcp add umbraco-mcp npx @umbraco-cms/mcp-dev@beta
67
- ```
68
-
69
- Or configure environment variables and scope:
70
- ```bash
71
- # Install Claude Code globally (if not already installed)
72
- npm install -g @anthropic-ai/claude-code
73
-
74
- # Add with environment variables
75
- claude mcp add umbraco-mcp --env UMBRACO_CLIENT_ID="your-id" --env UMBRACO_CLIENT_SECRET="your-secret" --env UMBRACO_BASE_URL="https://your-domain.com" --env NODE_TLS_REJECT_UNAUTHORIZED="0" --env UMBRACO_INCLUDE_TOOL_COLLECTIONS="culture,document,media" -- npx @umbraco-cms/mcp-dev@beta
76
-
77
- # Verify installation
78
- claude mcp list
79
- ```
80
-
81
- This will add umbraco-mcp to the existing project in the claude.json config file.
82
-
83
- #### Configuration via .mcp.json (Project-specific)
84
-
85
- For project-specific Claude Code configuration, create a `.mcp.json` file in your project root that references environment variables for sensitive data:
19
+ 1. Open Claude Desktop Settings > Developer > Edit Config
20
+ 2. Add this configuration to your `claude_desktop_config.json`:
86
21
 
87
22
  ```json
88
23
  {
89
24
  "mcpServers": {
90
25
  "umbraco-mcp": {
91
26
  "command": "npx",
92
- "args": ["@umbraco-cms/mcp-dev@beta"],
27
+ "args": ["@umbraco-cms/mcp-dev"],
93
28
  "env": {
94
29
  "NODE_TLS_REJECT_UNAUTHORIZED": "0",
95
- "UMBRACO_CLIENT_ID": "umbraco-back-office-mcp",
96
- "UMBRACO_CLIENT_SECRET": "your-client-secret-here",
97
- "UMBRACO_BASE_URL": "https://localhost:44391",
98
- "UMBRACO_INCLUDE_TOOL_COLLECTIONS": "culture,document,media",
99
- "UMBRACO_EXCLUDE_TOOLS": "delete-document,empty-recycle-bin"
100
- }
101
- }
102
- }
103
- }
104
- ```
105
-
106
- Using the `.mcp.json` file allows you to:
107
- - Configure MCP servers per project
108
- - Share configuration with team members (commit to version control)
109
- - Override global Claude Code MCP settings for specific projects
110
- - Move the environment varaibles to a .env file to prevent leaking of secrets to your code repo
111
-
112
- </details>
113
-
114
- <details>
115
- <summary>VS Code</summary>
116
-
117
- #### Click the button to install:
118
- [<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Server&color=0098FF" alt="Install in VS Code">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522umbraco-mcp%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540umbraco-mcp%252Fumbraco-mcp-cms%2540alpha%2522%255D%252C%2522env%2522%253A%257B%2522UMBRACO_CLIENT_ID%2522%253A%2522%253CAPI%2520user%2520name%253E%2522%252C%2522UMBRACO_CLIENT_SECRET%2522%253A%2522%253CAPI%2520client%2520secert%253E%2522%252C%2522UMBRACO_BASE_URL%2522%253A%2522https%253A%252F%252F%253Cdomain%253E%2522%252C%2522UMBRACO_EXCLUDE_TOOLS%2522%253A%2522%253Ctoolname%253E%252C%253Ctoolname%253E%2522%257D%257D)
119
-
120
- **Requirements:** VS Code 1.101+ with GitHub Copilot Chat extension installed.
121
-
122
- Or install manually:
123
- Follow the MCP [install guide](https://code.visualstudio.com/docs/copilot/customization/mcp-servers#_add-an-mcp-server), use this config.
124
-
125
- ```json
126
- {
127
- "servers": {
128
- "umbraco-mcp": {
129
- "type": "stdio",
130
- "command": "npx",
131
- "args": ["@umbraco-cms/mcp-dev@beta"],
132
- "env": {
133
- "UMBRACO_CLIENT_ID": "<API user name>",
134
- "UMBRACO_CLIENT_SECRET": "<API client secret>",
135
- "UMBRACO_BASE_URL": "https://<domain>",
136
- "UMBRACO_INCLUDE_TOOL_COLLECTIONS": "<collection>,<collection>",
137
- "UMBRACO_EXCLUDE_TOOLS": "<toolname>,<toolname>"
138
- }
139
- }
140
- }
141
- }
142
- ```
143
-
144
- </details>
145
-
146
- <details>
147
- <summary>Cursor</summary>
148
-
149
- ### Or install manually:
150
- Go to `Cursor Settings` -> `Tools & Integrations` -> `Add new MCP Server`.
151
-
152
- Add the following to the config file and update the env variables.
153
-
154
- ```json
155
- {
156
- "mcpServers": {
157
- "umbraco-mcp": {
158
- "command": "npx",
159
- "args": ["@umbraco-cms/mcp-dev@beta"],
160
- "env": {
161
- "UMBRACO_CLIENT_ID": "<API user name>",
162
- "UMBRACO_CLIENT_SECRET": "<API client secret>",
163
- "UMBRACO_BASE_URL": "https://<domain>",
164
- "UMBRACO_INCLUDE_TOOL_COLLECTIONS": "<collection>,<collection>",
165
- "UMBRACO_EXCLUDE_TOOLS": "<toolname>,<toolname>"
30
+ "UMBRACO_CLIENT_ID": "your-api-user-id",
31
+ "UMBRACO_CLIENT_SECRET": "your-api-secret",
32
+ "UMBRACO_BASE_URL": "https://localhost:{port}",
33
+ "UMBRACO_INCLUDE_TOOL_COLLECTIONS": "document,media,document-type,data-type"
166
34
  }
167
35
  }
168
36
  }
169
37
  }
170
38
  ```
171
- </details>
172
-
173
-
174
- #### Authentication Configuration Keys
175
-
176
- - `UMBRACO_CLIENT_ID`
177
-
178
- Umbraco API User name
179
-
180
- - `UMBRACO_CLIENT_SECRET`
181
-
182
- Umbraco API User client secert
183
-
184
- - `UMBRACO_BASE_URL`
185
-
186
- Url of the Umbraco site, it only needs to be the scheme and domain e.g https://<nolink/>example.com
187
-
188
- ### Environment Configuration Options
189
-
190
- The Umbraco MCP server supports environment configuration via:
191
- 1. **Environment variables in MCP client config as above** (Claude Desktop, VS Code, etc.)
192
- 2. **Local `.env` file** for development (see `.env.example`)
193
- 3. **CLI arguments** when running directly
194
-
195
- **Configuration precedence:** CLI arguments > Environment variables > `.env` file
196
-
197
- #### Using a `.env` file (Development)
198
-
199
- For local development, you can create a `.env` file in the project root:
200
-
201
- ```bash
202
- # Edit with your values
203
- UMBRACO_CLIENT_ID=your-api-user-id
204
- UMBRACO_CLIENT_SECRET=your-api-secret
205
- UMBRACO_BASE_URL=http://localhost:56472
206
- ```
207
-
208
- The `.env` file is gitignored to keep your secrets secure.
209
-
210
- #### CLI Arguments
211
-
212
- You can also pass configuration via CLI arguments:
213
-
214
- ```bash
215
- npx @umbraco-cms/mcp-dev@beta \
216
- --umbraco-client-id="your-id" \
217
- --umbraco-client-secret="your-secret" \
218
- --umbraco-base-url="http://localhost:56472" \
219
- --env="/path/to/custom/.env"
220
- ```
221
-
222
- ## API Coverage
223
-
224
- This MCP server provides **comprehensive coverage** of the Umbraco Management API. We have achieved **full parity** with all applicable endpoints, implementing tools for every operational endpoint suitable for AI-assisted content management.
225
-
226
- ### Implementation Status
227
-
228
- **✅ Implemented:** 36 tool collections and 337 tools covering operational endpoints including (but not limited to)
229
- - Content management (Documents, Media, Members)
230
- - Configuration (Document Types, Media Types, Data Types)
231
- - System management (Templates, Scripts, Stylesheets)
232
- - User administration (Users, User Groups, Permissions)
233
- - Advanced features (Webhooks, Relations, Health Checks)
234
-
235
- ### Tool Configuration
236
-
237
- - `UMBRACO_EXCLUDE_TOOLS`
238
-
239
- The allows you to specify tools by name if you wish to exclude them for the usable tools list. This is helpful as some Agents, cant handle so many tools. This is a commma seperated list of tools which can be found below.
240
-
241
- - `UMBRACO_INCLUDE_TOOLS`
242
-
243
- The allows you to specify tools by name if you wish to include only specific tools in the usable tools list. When specified, only these tools will be available. This is a commma seperated list of tools which can be found below.
244
-
245
- - `UMBRACO_INCLUDE_TOOL_COLLECTIONS`
246
-
247
- The allows you to specify collections by name if you wish to include only specific collections. When specified, only tools from these collections will be available. This is a commma seperated list of collection names (see tool list below for collection names).
248
-
249
- - `UMBRACO_EXCLUDE_TOOL_COLLECTIONS`
250
-
251
- The allows you to specify collections by name if you wish to exclude them from the usable tools list. This is a commma seperated list of collection names (see tool list below for collection names).
252
-
253
- ### Tool Collections
254
-
255
- **Note:** Collection names are shown in brackets for use with `UMBRACO_INCLUDE_TOOL_COLLECTIONS` and `UMBRACO_EXCLUDE_TOOL_COLLECTIONS`.
256
-
257
- <details>
258
- <summary> View Tool list</summary>
259
- <br>
260
-
261
- <details>
262
- <summary>Culture (culture)</summary>
263
- <br>
264
-
265
- `get-culture` - gets all cultures avaliable to Umbraco
266
- </details>
267
-
268
- <details>
269
- <summary>Data Type (data-type)</summary>
270
- <br>
271
-
272
- `get-data-type-search` - Search for data types
273
- `get-data-type` - Get a specific data type by ID
274
- `get-data-type-references` - Get references to a data type
275
- `is-used-data-type` - Check if a data type is in use
276
- `get-data-type-root` - Get root level data types
277
- `get-data-type-children` - Get child data types
278
- `get-data-type-ancestors` - Get ancestor data types
279
- `get-all-data-types` - Get all data types
280
- `delete-data-type` - Delete a data type
281
- `create-data-type` - Create a new data type
282
- `update-data-type` - Update an existing data type
283
- `copy-data-type` - Copy a data type
284
- `move-data-type` - Move a data type to a different location
285
- `create-data-type-folder` - Create a folder for organizing data types
286
- `delete-data-type-folder` - Delete a data type folder
287
- `get-data-type-folder` - Get information about a data type folder
288
- `update-data-type-folder` - Update a data type folder details
289
- </details>
290
-
291
- <details>
292
- <summary>Dictionary (dictionary)</summary>
293
- <br>
294
-
295
- `get-dictionary-search` - Search for dictionary items
296
- `get-dictionary-by-key` - Get a dictionary item by key
297
- `create-dictionary` - Create a new dictionary item
298
- `update-dictionary` - Update a dictionary item
299
- `delete-dictionary` - Delete a dictionary item
300
- </details>
301
-
302
- <details>
303
- <summary>Document (document)</summary>
304
- <br>
305
-
306
- `get-document-by-id` - Get a document by ID
307
- `get-document-publish` - Get document publish status
308
- `get-document-configuration` - Get document configuration
309
- `copy-document` - Copy a document
310
- `create-document` - Create a new document
311
- `post-document-public-access` - Set document public access
312
- `delete-document` - Delete a document
313
- `delete-document-public-access` - Remove public access from a document
314
- `get-document-urls` - Get document URLs
315
- `get-document-domains` - Get document domains
316
- `get-document-audit-log` - Get document audit log
317
- `get-document-public-access` - Get document public access settings
318
- `move-document` - Move a document
319
- `move-to-recycle-bin` - Move document to recycle bin
320
- `get-document-notifications` - Get document notifications
321
- `publish-document` - Publish a document
322
- `publish-document-with-descendants` - Publish a document and its descendants
323
- `sort-document` - Sort document order
324
- `unpublish-document` - Unpublish a document
325
- `update-document` - Update a document
326
- `put-document-domains` - Update document domains
327
- `put-document-notifications` - Update document notifications
328
- `put-document-public-access` - Update document public access
329
- `delete-from-recycle-bin` - Delete document from recycle bin
330
- `empty-recycle-bin` - Empty the recycle bin
331
- `get-recycle-bin-root` - Get root items in recycle bin
332
- `get-recycle-bin-children` - Get child items in recycle bin
333
- `search-document` - Search for documents
334
- `validate-document` - Validate a document
335
- `get-document-root` - Get root documents
336
- `get-document-children` - Get child documents
337
- `get-document-ancestors` - Get document ancestors
338
- </details>
339
-
340
- <details>
341
- <summary>Document Blueprint (document-blueprint)</summary>
342
- <br>
343
-
344
- `get-blueprint` - Get a document blueprint
345
- `delete-blueprint` - Delete a document blueprint
346
- `update-blueprint` - Update a document blueprint
347
- `create-blueprint` - Create a new document blueprint
348
- `get-blueprint-ancestors` - Get blueprint ancestors
349
- `get-blueprint-children` - Get blueprint children
350
- `get-blueprint-root` - Get root blueprints
351
- </details>
352
-
353
- <details>
354
- <summary>Document Version (document-version)</summary>
355
- <br>
356
-
357
- `get-document-version` - Get document versions with pagination
358
- `get-document-version-by-id` - Get a specific document version by ID
359
- `update-document-version-prevent-cleanup` - Prevent or allow cleanup of a document version
360
- `create-document-version-rollback` - Rollback a document to a specific version
361
- </details>
362
-
363
- <details>
364
- <summary>Document Type (document-type)</summary>
365
- <br>
366
-
367
- `get-document-type` - Get a document type
368
- `get-document-type-configuration` - Get document type configuration
369
- `get-document-type-blueprint` - Get document type blueprint
370
- `get-document-type-by-id-array` - Get document types by IDs
371
- `get-document-type-available-compositions` - Get available compositions
372
- `get-document-type-composition-references` - Get composition references
373
- `update-document-type` - Update a document type
374
- `copy-document-type` - Copy a document type
375
- `move-document-type` - Move a document type
376
- `create-document-type` - Create a new document type
377
- `delete-document-type` - Delete a document type
378
- `create-element-type` - Create an element type
379
- `get-icons` - Get available icons
380
- `get-document-type-allowed-children` - Get allowed child types
381
- `get-all-document-types` - Get all document types
382
- `create-document-type-folder` - Create a folder
383
- `delete-document-type-folder` - Delete a folder
384
- `get-document-type-folder` - Get folder info
385
- `update-document-type-folder` - Update folder details
386
- `get-document-type-root` - Get root document types
387
- `get-document-type-ancestors` - Get document type ancestors
388
- `get-document-type-children` - Get document type children
389
- </details>
390
-
391
- <details>
392
- <summary>Health (health)</summary>
393
- <br>
394
-
395
- `get-health-check-groups` - Get all health check groups
396
- `get-health-check-group-by-name` - Get health check group by name
397
- `run-health-check-group` - Run health checks for a specific group
398
- `execute-health-check-action` - Execute a health check action
399
- </details>
400
-
401
- <details>
402
- <summary>Imaging (imaging)</summary>
403
- <br>
404
-
405
- `get-imaging-resize-urls` - Generate image resize URLs with various processing options
406
- </details>
407
-
408
- <details>
409
- <summary>Indexer (indexer)</summary>
410
- <br>
411
-
412
- `get-indexer` - Get all indexers
413
- `get-indexer-by-index-name` - Get indexer by index name
414
- `post-indexer-by-index-name-rebuild` - Rebuild an index by name
415
- </details>
416
-
417
- <details>
418
- <summary>Language (language)</summary>
419
- <br>
420
-
421
- `get-language-items` - Get all languages
422
- `get-default-language` - Get default language
423
- `create-language` - Create a new language
424
- `update-language` - Update a language
425
- `delete-language` - Delete a language
426
- `get-language-by-iso-code` - Get language by ISO code
427
- </details>
428
-
429
- <details>
430
- <summary>Log Viewer (log-viewer)</summary>
431
- <br>
432
-
433
- `get-log-viewer-saved-search-by-name` - Get saved search by name
434
- `get-log-viewer-level-count` - Get log level counts
435
- `post-log-viewer-saved-search` - Save a log search
436
- `delete-log-viewer-saved-search-by-name` - Delete saved search
437
- `get-log-viewer` - Get logs
438
- `get-log-viewer-level` - Get log levels
439
- `get-log-viewer-search` - Search logs
440
- `get-log-viewer-validate-logs` - Validate logs
441
- `get-log-viewer-message-template` - Get message template
442
- </details>
443
-
444
- <details>
445
- <summary>Manifest (manifest)</summary>
446
- <br>
447
-
448
- `get-manifest-manifest` - Get all system manifests
449
- `get-manifest-manifest-private` - Get private manifests
450
- `get-manifest-manifest-public` - Get public manifests
451
- </details>
452
-
453
- <details>
454
- <summary>Media (media)</summary>
455
- <br>
456
-
457
- `get-media-by-id` - Get media by ID
458
- `get-media-ancestors` - Get media ancestors
459
- `get-media-children` - Get media children
460
- `get-media-root` - Get root media items
461
- `create-media` - Create new media
462
- `delete-media` - Delete media
463
- `update-media` - Update media
464
- `get-media-configuration` - Get media configuration
465
- `get-media-urls` - Get media URLs
466
- `validate-media` - Validate media
467
- `sort-media` - Sort media items
468
- `get-media-by-id-array` - Get media by IDs
469
- `move-media` - Move media
470
- `get-media-audit-log` - Get media audit log
471
- `get-media-recycle-bin-root` - Get recycle bin root
472
- `get-media-recycle-bin-children` - Get recycle bin children
473
- `empty-recycle-bin` - Empty recycle bin
474
- `restore-from-recycle-bin` - Restore from recycle bin
475
- `move-media-to-recycle-bin` - Move to recycle bin
476
- `delete-from-recycle-bin` - Delete from recycle bin
477
- </details>
478
-
479
- <details>
480
- <summary>Media Type (media-type)</summary>
481
- <br>
482
-
483
- `get-media-type-configuration` - Get media type configuration
484
- `get-media-type-by-id` - Get media type by ID
485
- `get-media-type-by-ids` - Get media types by IDs
486
- `get-allowed` - Get allowed media types
487
- `get-media-type-allowed-at-root` - Get types allowed at root
488
- `get-media-type-allowed-children` - Get allowed child types
489
- `get-media-type-composition-references` - Get composition references
490
- `get-root` - Get root media types
491
- `get-children` - Get child media types
492
- `get-ancestors` - Get ancestor media types
493
- `get-folder` - Get folder information
494
- `create-folder` - Create a new folder
495
- `delete-folder` - Delete a folder
496
- `update-folder` - Update folder details
497
- `create-media-type` - Create a new media type
498
- `copy-media-type` - Copy a media type
499
- `get-media-type-available-compositions` - Get available compositions
500
- `update-media-type` - Update a media type
501
- `move-media-type` - Move a media type
502
- `delete-media-type` - Delete a media type
503
- </details>
504
-
505
- <details>
506
- <summary>Member (member)</summary>
507
- <br>
508
-
509
- `get-member` - Get member by ID
510
- `create-member` - Create a new member
511
- `delete-member` - Delete a member
512
- `update-member` - Update a member
513
- `find-member` - Find members
514
- </details>
515
-
516
- <details>
517
- <summary>Member Group (member-group)</summary>
518
- <br>
519
-
520
- `get-member-group` - Get member group
521
- `get-member-group-by-id-array` - Get member groups by IDs
522
- `create-member-group` - Create a new member group
523
- `update-member-group` - Update a member group
524
- `delete-member-group` - Delete a member group
525
- `get-member-group-root` - Get root member groups
526
- </details>
527
-
528
- <details>
529
- <summary>Member Type (member-type)</summary>
530
- <br>
531
-
532
- `get-member-type-by-id` - Get member type by ID
533
- `create-member-type` - Create a new member type
534
- `get-member-type-by-id-array` - Get member types by IDs
535
- `delete-member-type` - Delete a member type
536
- `update-member-type` - Update a member type
537
- `copy-member-type` - Copy a member type
538
- `get-member-type-available-compositions` - Get available compositions
539
- `get-member-type-composition-references` - Get composition references
540
- `get-member-type-configuration` - Get member type configuration
541
- `get-member-type-root` - Get root member types
542
- </details>
543
-
544
- <details>
545
- <summary>Models Builder (models-builder)</summary>
546
- <br>
547
-
548
- `get-models-builder-dashboard` - Get Models Builder dashboard information
549
- `get-models-builder-status` - Get Models Builder status
550
- `post-models-builder-build` - Trigger Models Builder code generation
551
- </details>
552
-
553
- <details>
554
- <summary>Partial View (partial-view)</summary>
555
- <br>
556
-
557
- `get-partial-view-by-path` - Get partial view by path
558
- `get-partial-view-folder-by-path` - Get partial view folder by path
559
- `get-partial-view-snippet-by-id` - Get partial view snippet by ID
560
- `get-partial-view-snippet` - Get partial view snippet
561
- `create-partial-view` - Create a new partial view
562
- `create-partial-view-folder` - Create a partial view folder
563
- `update-partial-view` - Update a partial view
564
- `rename-partial-view` - Rename a partial view
565
- `delete-partial-view` - Delete a partial view
566
- `delete-partial-view-folder` - Delete a partial view folder
567
- `get-partial-view-root` - Get root partial views
568
- `get-partial-view-children` - Get child partial views
569
- `get-partial-view-ancestors` - Get partial view ancestors
570
- `get-partial-view-search` - Search partial views
571
- </details>
572
-
573
- <details>
574
- <summary>Property Type (property-type)</summary>
575
- <br>
576
-
577
- `get-property-type` - Get property type by ID
578
- `get-property-type-all-property-type-groups` - Get all property type groups
579
- `create-property-type` - Create a new property type
580
- `update-property-type` - Update a property type
581
- `delete-property-type` - Delete a property type
582
- </details>
583
-
584
- <details>
585
- <summary>Redirect (redirect)</summary>
586
- <br>
587
-
588
- `get-all-redirects` - Get all redirects
589
- `get-redirect-by-id` - Get redirect by ID
590
- `delete-redirect` - Delete a redirect
591
- `get-redirect-status` - Get redirect status
592
- `update-redirect-status` - Update redirect status
593
- </details>
594
-
595
- <details>
596
- <summary>Relation (relation)</summary>
597
- <br>
598
-
599
- `get-relation-by-relation-type-id` - Get relations by relation type ID
600
- </details>
601
-
602
- <details>
603
- <summary>Relation Type (relation-type)</summary>
604
- <br>
605
-
606
- `get-relation-type` - Get all relation types
607
- `get-relation-type-by-id` - Get relation type by ID
608
- </details>
609
-
610
- <details>
611
- <summary>Script (script)</summary>
612
- <br>
613
-
614
- `get-script-by-path` - Get script by path
615
- `get-script-folder-by-path` - Get script folder by path
616
- `get-script-items` - Get script items
617
- `create-script` - Create a new script
618
- `create-script-folder` - Create a script folder
619
- `update-script` - Update a script
620
- `rename-script` - Rename a script
621
- `delete-script` - Delete a script
622
- `delete-script-folder` - Delete a script folder
623
- `get-script-tree-root` - Get root script items
624
- `get-script-tree-children` - Get child script items
625
- `get-script-tree-ancestors` - Get script ancestors
626
- </details>
627
-
628
- <details>
629
- <summary>Searcher (searcher)</summary>
630
- <br>
631
-
632
- `get-searcher` - Get all searchers
633
- `get-searcher-by-searcher-name-query` - Query a specific searcher by name
634
- </details>
635
-
636
- <details>
637
- <summary>Server (server)</summary>
638
- <br>
639
-
640
- `get-server-status` - Get server status
641
- `get-server-log-file` - Get server log file
642
- `tour-status` - Get tour status
643
- `upgrade-status` - Get upgrade status
644
- </details>
645
-
646
- <details>
647
- <summary>Static File (static-file)</summary>
648
- <br>
649
-
650
- `get-static-files` - Get static files with filtering
651
- `get-static-file-root` - Get root static files
652
- `get-static-file-children` - Get child static files
653
- `get-static-file-ancestors` - Get static file ancestors
654
- </details>
655
-
656
- <details>
657
- <summary>Stylesheet (stylesheet)</summary>
658
- <br>
659
-
660
- `get-stylesheet-by-path` - Get stylesheet by path
661
- `get-stylesheet-folder-by-path` - Get stylesheet folder by path
662
- `create-stylesheet` - Create a new stylesheet
663
- `create-stylesheet-folder` - Create a stylesheet folder
664
- `update-stylesheet` - Update a stylesheet
665
- `rename-stylesheet` - Rename a stylesheet
666
- `delete-stylesheet` - Delete a stylesheet
667
- `delete-stylesheet-folder` - Delete a stylesheet folder
668
- `get-stylesheet-root` - Get root stylesheets
669
- `get-stylesheet-children` - Get child stylesheets
670
- `get-stylesheet-ancestors` - Get stylesheet ancestors
671
- `get-stylesheet-search` - Search stylesheets
672
- </details>
673
-
674
- <details>
675
- <summary>Tag (tag)</summary>
676
- <br>
677
-
678
- `get-tags` - Get all tags
679
- </details>
680
-
681
- <details>
682
- <summary>Template (template)</summary>
683
- <br>
684
-
685
- `get-template-search` - Search for templates by name
686
- `get-template` - Get a template by ID
687
- `get-templates-by-id-array` - Get templates by IDs
688
- `create-template` - Create a new template
689
- `update-template` - Update a template by ID
690
- `delete-template` - Delete a template by ID
691
- `execute-template-query` - Execute template queries and return generated LINQ code
692
- `get-template-query-settings` - Get schema for template queries (document types, properties, operators)
693
- `get-template-root` - Get root template items
694
- `get-template-children` - Get child templates or template folders by parent ID
695
- `get-template-ancestors` - Get ancestors of a template by ID
696
- </details>
697
-
698
- <details>
699
- <summary>Temporary File (temporary-file)</summary>
700
- <br>
701
-
702
- `create-temporary-file` - Create a temporary file
703
- `get-temporary-file` - Get a temporary file
704
- `delete-temporary-file` - Delete a temporary file
705
- `get-temporary-file-configuration` - Get temporary file configuration
706
- </details>
707
-
708
- <details>
709
- <summary>User (user)</summary>
710
- <br>
711
-
712
- `get-user` - Get users with pagination
713
- `get-user-by-id` - Get user by ID
714
- `find-user` - Find users by search criteria
715
- `get-item-user` - Get user item information
716
- `get-user-current` - Get current authenticated user
717
- `get-user-configuration` - Get user configuration
718
- `get-user-current-configuration` - Get current user configuration
719
- `get-user-current-login-providers` - Get current user login providers
720
- `get-user-current-permissions` - Get current user permissions
721
- `get-user-current-permissions-document` - Get current user document permissions
722
- `get-user-current-permissions-media` - Get current user media permissions
723
- `get-user-by-id-calculate-start-nodes` - Calculate start nodes for a user
724
- `upload-user-avatar-by-id` - Upload avatar for a user
725
- `upload-user-current-avatar` - Upload avatar for current user
726
- `delete-user-avatar-by-id` - Delete user avatar
727
- </details>
728
-
729
- <details>
730
- <summary>User Data (user-data)</summary>
731
- <br>
732
-
733
- `create-user-data` - Create user data key-value pair
734
- `update-user-data` - Update user data value
735
- `get-user-data` - Get all user data for current user
736
- `get-user-data-by-id` - Get user data by key
737
- </details>
738
-
739
- <details>
740
- <summary>User Group (user-group)</summary>
741
- <br>
742
-
743
- `get-user-group` - Get user group
744
- `get-user-group-by-id-array` - Get user groups by IDs
745
- `get-user-groups` - Get all user groups
746
- `get-filter-user-group` - Filter user groups
747
- `create-user-group` - Create a new user group
748
- `update-user-group` - Update a user group
749
- `delete-user-group` - Delete a user group
750
- `delete-user-groups` - Delete multiple user groups
751
- </details>
752
-
753
- <details>
754
- <summary>Webhook (webhook)</summary>
755
- <br>
756
-
757
- `get-webhook-by-id` - Get webhook by ID
758
- `get-webhook-by-id-array` - Get webhooks by IDs
759
- `delete-webhook` - Delete a webhook
760
- `update-webhook` - Update a webhook
761
- `get-webhook-events` - Get webhook events
762
- `get-all-webhook-logs` - Get all webhook logs
763
- `create-webhook` - Create a new webhook
764
- </details>
765
- </details>
766
39
 
767
- **⚠️ Intentionally Excluded:** 69 endpoints across 14 categories
40
+ 3. Fully restart Claude Desktop (including in the system tray on Windows)
768
41
 
769
- Certain endpoints are intentionally not implemented due to security, complexity, or contextual concerns. For a detailed breakdown of excluded endpoints and the rationale behind each exclusion, see [Ignored Endpoints Documentation](./docs/analysis/IGNORED_ENDPOINTS.md).
42
+ ## Documentation
770
43
 
771
- ### Excluded Categories Summary
44
+ For complete installation instructions, configuration options, tool listings, and usage examples, see the full documentation:
772
45
 
773
- - **User Management (22 endpoints)** - User creation/deletion, password operations, 2FA management, and client credentials pose significant security risks
774
- - **User Group Membership (3 endpoints)** - Permission escalation risks from AI-driven group membership changes
775
- - **Security Operations (4 endpoints)** - Password reset workflows require email verification and user interaction
776
- - **Import/Export (9 endpoints)** - Complex file operations better handled through the Umbraco UI
777
- - **Package Management (9 endpoints)** - Package creation and migration involve system-wide changes
778
- - **Cache Operations (3 endpoints)** - Cache rebuild can impact system performance
779
- - **Telemetry (3 endpoints)** - System telemetry configuration and data collection
780
- - **Install/Upgrade (5 endpoints)** - One-time system setup and upgrade operations
781
- - **Preview/Profiling (4 endpoints)** - Frontend-specific debugging functionality
782
- - **Other (7 endpoints)** - Internal system functionality, oEmbed, dynamic roots, object types
46
+ **[Umbraco MCP Documentation](https://docs.umbraco.com/umbraco-cms/reference/developer-mcp)**
783
47
 
784
48
  ## Contributing with AI Tools
785
49
 
@@ -806,7 +70,7 @@ rulesync supports 19+ AI development tools including GitHub Copilot, Cline, Aide
806
70
 
807
71
  The instruction files cover:
808
72
  - MCP development patterns and conventions
809
- - TypeScript implementation guidelines
73
+ - TypeScript implementation guidelines
810
74
  - Comprehensive testing standards with builders and helpers
811
75
  - Project-specific context and architecture
812
- - API integration patterns with Umbraco Management API
76
+ - API integration patterns with Umbraco Management API