@umbraco-cms/mcp-dev 16.0.0-beta.1 → 16.0.0-beta.2
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 +285 -76
- package/dist/index.cjs +2642 -367
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2719 -444
- package/dist/index.js.map +1 -1
- package/package.json +10 -6
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Umbraco MCP 
|
|
2
2
|
|
|
3
3
|
An MCP (Model Context Protocol) server for [Umbraco CMS](https://umbraco.com/)
|
|
4
|
-
it provides access to
|
|
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.
|
|
5
5
|
|
|
6
6
|
## Intro
|
|
7
7
|
|
|
@@ -29,6 +29,7 @@ Start up your Umbraco instance (currently working with version **15.latest**) an
|
|
|
29
29
|
|
|
30
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
31
|
|
|
32
|
+
|
|
32
33
|
```
|
|
33
34
|
{
|
|
34
35
|
"mcpServers": {
|
|
@@ -79,6 +80,34 @@ claude mcp list
|
|
|
79
80
|
|
|
80
81
|
This will add umbraco-mcp to the existing project in the claude.json config file.
|
|
81
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:
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"mcpServers": {
|
|
90
|
+
"umbraco-mcp": {
|
|
91
|
+
"command": "npx",
|
|
92
|
+
"args": ["@umbraco-cms/mcp-dev@beta"],
|
|
93
|
+
"env": {
|
|
94
|
+
"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
|
|
82
111
|
|
|
83
112
|
</details>
|
|
84
113
|
|
|
@@ -117,7 +146,7 @@ Follow the MCP [install guide](https://code.visualstudio.com/docs/copilot/custom
|
|
|
117
146
|
<details>
|
|
118
147
|
<summary>Cursor</summary>
|
|
119
148
|
|
|
120
|
-
|
|
149
|
+
### Or install manually:
|
|
121
150
|
Go to `Cursor Settings` -> `Tools & Integrations` -> `Add new MCP Server`.
|
|
122
151
|
|
|
123
152
|
Add the following to the config file and update the env variables.
|
|
@@ -142,38 +171,86 @@ Add the following to the config file and update the env variables.
|
|
|
142
171
|
</details>
|
|
143
172
|
|
|
144
173
|
|
|
145
|
-
|
|
174
|
+
#### Authentication Configuration Keys
|
|
146
175
|
|
|
147
|
-
`UMBRACO_CLIENT_ID`
|
|
176
|
+
- `UMBRACO_CLIENT_ID`
|
|
148
177
|
|
|
149
178
|
Umbraco API User name
|
|
150
179
|
|
|
151
|
-
`UMBRACO_CLIENT_SECRET`
|
|
180
|
+
- `UMBRACO_CLIENT_SECRET`
|
|
152
181
|
|
|
153
182
|
Umbraco API User client secert
|
|
154
183
|
|
|
155
|
-
`UMBRACO_BASE_URL`
|
|
184
|
+
- `UMBRACO_BASE_URL`
|
|
156
185
|
|
|
157
|
-
Url of the site
|
|
186
|
+
Url of the Umbraco site, it only needs to be the scheme and domain e.g https://<nolink/>example.com
|
|
158
187
|
|
|
159
|
-
|
|
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`
|
|
160
238
|
|
|
161
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.
|
|
162
240
|
|
|
163
|
-
`UMBRACO_INCLUDE_TOOLS`
|
|
241
|
+
- `UMBRACO_INCLUDE_TOOLS`
|
|
164
242
|
|
|
165
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.
|
|
166
244
|
|
|
167
|
-
`UMBRACO_INCLUDE_TOOL_COLLECTIONS`
|
|
245
|
+
- `UMBRACO_INCLUDE_TOOL_COLLECTIONS`
|
|
168
246
|
|
|
169
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).
|
|
170
248
|
|
|
171
|
-
`UMBRACO_EXCLUDE_TOOL_COLLECTIONS`
|
|
249
|
+
- `UMBRACO_EXCLUDE_TOOL_COLLECTIONS`
|
|
172
250
|
|
|
173
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).
|
|
174
252
|
|
|
175
|
-
|
|
176
|
-
## Umbraco Management API Tools
|
|
253
|
+
### Tool Collections
|
|
177
254
|
|
|
178
255
|
**Note:** Collection names are shown in brackets for use with `UMBRACO_INCLUDE_TOOL_COLLECTIONS` and `UMBRACO_EXCLUDE_TOOL_COLLECTIONS`.
|
|
179
256
|
|
|
@@ -311,15 +388,41 @@ The allows you to specify collections by name if you wish to exclude them from t
|
|
|
311
388
|
`get-document-type-children` - Get document type children
|
|
312
389
|
</details>
|
|
313
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
|
+
|
|
314
417
|
<details>
|
|
315
418
|
<summary>Language (language)</summary>
|
|
316
419
|
<br>
|
|
317
420
|
|
|
318
|
-
`get-language-items` - Get all languages
|
|
319
|
-
`get-default-language` - Get default language
|
|
320
|
-
`create-language` - Create a new language
|
|
321
|
-
`update-language` - Update a language
|
|
322
|
-
`delete-language` - Delete a language
|
|
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
|
|
323
426
|
`get-language-by-iso-code` - Get language by ISO code
|
|
324
427
|
</details>
|
|
325
428
|
|
|
@@ -327,17 +430,26 @@ The allows you to specify collections by name if you wish to exclude them from t
|
|
|
327
430
|
<summary>Log Viewer (log-viewer)</summary>
|
|
328
431
|
<br>
|
|
329
432
|
|
|
330
|
-
`get-log-viewer-saved-search-by-name` - Get saved search by name
|
|
331
|
-
`get-log-viewer-level-count` - Get log level counts
|
|
332
|
-
`post-log-viewer-saved-search` - Save a log search
|
|
333
|
-
`delete-log-viewer-saved-search-by-name` - Delete saved search
|
|
334
|
-
`get-log-viewer` - Get logs
|
|
335
|
-
`get-log-viewer-level` - Get log levels
|
|
336
|
-
`get-log-viewer-search` - Search logs
|
|
337
|
-
`get-log-viewer-validate-logs` - Validate logs
|
|
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
|
|
338
441
|
`get-log-viewer-message-template` - Get message template
|
|
339
442
|
</details>
|
|
340
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
|
+
|
|
341
453
|
<details>
|
|
342
454
|
<summary>Media (media)</summary>
|
|
343
455
|
<br>
|
|
@@ -417,18 +529,27 @@ The allows you to specify collections by name if you wish to exclude them from t
|
|
|
417
529
|
<summary>Member Type (member-type)</summary>
|
|
418
530
|
<br>
|
|
419
531
|
|
|
420
|
-
`get-member-type-by-id` - Get member type by ID
|
|
421
|
-
`create-member-type` - Create a new member type
|
|
422
|
-
`get-member-type-by-id-array` - Get member types by IDs
|
|
423
|
-
`delete-member-type` - Delete a member type
|
|
424
|
-
`update-member-type` - Update a member type
|
|
425
|
-
`copy-member-type` - Copy a member type
|
|
426
|
-
`get-member-type-available-compositions` - Get available compositions
|
|
427
|
-
`get-member-type-composition-references` - Get composition references
|
|
428
|
-
`get-member-type-configuration` - Get member type configuration
|
|
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
|
|
429
541
|
`get-member-type-root` - Get root member types
|
|
430
542
|
</details>
|
|
431
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
|
+
|
|
432
553
|
<details>
|
|
433
554
|
<summary>Partial View (partial-view)</summary>
|
|
434
555
|
<br>
|
|
@@ -464,59 +585,99 @@ The allows you to specify collections by name if you wish to exclude them from t
|
|
|
464
585
|
<summary>Redirect (redirect)</summary>
|
|
465
586
|
<br>
|
|
466
587
|
|
|
467
|
-
`get-all-redirects` - Get all redirects
|
|
468
|
-
`get-redirect-by-id` - Get redirect by ID
|
|
469
|
-
`delete-redirect` - Delete a redirect
|
|
470
|
-
`get-redirect-status` - Get redirect status
|
|
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
|
|
471
592
|
`update-redirect-status` - Update redirect status
|
|
472
593
|
</details>
|
|
473
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
|
+
|
|
474
610
|
<details>
|
|
475
611
|
<summary>Script (script)</summary>
|
|
476
612
|
<br>
|
|
477
613
|
|
|
478
|
-
`get-script-by-path` - Get script by path
|
|
479
|
-
`get-script-folder-by-path` - Get script folder by path
|
|
480
|
-
`get-script-items` - Get script items
|
|
481
|
-
`create-script` - Create a new script
|
|
482
|
-
`create-script-folder` - Create a script folder
|
|
483
|
-
`update-script` - Update a script
|
|
484
|
-
`rename-script` - Rename a script
|
|
485
|
-
`delete-script` - Delete a script
|
|
486
|
-
`delete-script-folder` - Delete a script folder
|
|
487
|
-
`get-script-tree-root` - Get root script items
|
|
488
|
-
`get-script-tree-children` - Get child script items
|
|
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
|
|
489
625
|
`get-script-tree-ancestors` - Get script ancestors
|
|
490
626
|
</details>
|
|
491
627
|
|
|
492
628
|
<details>
|
|
493
|
-
<summary>
|
|
629
|
+
<summary>Searcher (searcher)</summary>
|
|
494
630
|
<br>
|
|
495
631
|
|
|
496
|
-
`get-
|
|
497
|
-
`get-
|
|
498
|
-
`create-stylesheet` - Create a new stylesheet
|
|
499
|
-
`create-stylesheet-folder` - Create a stylesheet folder
|
|
500
|
-
`update-stylesheet` - Update a stylesheet
|
|
501
|
-
`rename-stylesheet` - Rename a stylesheet
|
|
502
|
-
`delete-stylesheet` - Delete a stylesheet
|
|
503
|
-
`delete-stylesheet-folder` - Delete a stylesheet folder
|
|
504
|
-
`get-stylesheet-root` - Get root stylesheets
|
|
505
|
-
`get-stylesheet-children` - Get child stylesheets
|
|
506
|
-
`get-stylesheet-ancestors` - Get stylesheet ancestors
|
|
507
|
-
`get-stylesheet-search` - Search stylesheets
|
|
632
|
+
`get-searcher` - Get all searchers
|
|
633
|
+
`get-searcher-by-searcher-name-query` - Query a specific searcher by name
|
|
508
634
|
</details>
|
|
509
635
|
|
|
510
636
|
<details>
|
|
511
637
|
<summary>Server (server)</summary>
|
|
512
638
|
<br>
|
|
513
639
|
|
|
514
|
-
`get-server-status` - Get server status
|
|
515
|
-
`get-server-log-file` - Get server log file
|
|
516
|
-
`tour-status` - Get tour status
|
|
640
|
+
`get-server-status` - Get server status
|
|
641
|
+
`get-server-log-file` - Get server log file
|
|
642
|
+
`tour-status` - Get tour status
|
|
517
643
|
`upgrade-status` - Get upgrade status
|
|
518
644
|
</details>
|
|
519
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
|
+
|
|
520
681
|
<details>
|
|
521
682
|
<summary>Template (template)</summary>
|
|
522
683
|
<br>
|
|
@@ -538,23 +699,54 @@ The allows you to specify collections by name if you wish to exclude them from t
|
|
|
538
699
|
<summary>Temporary File (temporary-file)</summary>
|
|
539
700
|
<br>
|
|
540
701
|
|
|
541
|
-
`create-temporary-file` - Create a temporary file
|
|
542
|
-
`get-temporary-file` - Get a temporary file
|
|
543
|
-
`delete-temporary-file` - Delete a temporary file
|
|
702
|
+
`create-temporary-file` - Create a temporary file
|
|
703
|
+
`get-temporary-file` - Get a temporary file
|
|
704
|
+
`delete-temporary-file` - Delete a temporary file
|
|
544
705
|
`get-temporary-file-configuration` - Get temporary file configuration
|
|
545
706
|
</details>
|
|
546
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
|
+
|
|
547
739
|
<details>
|
|
548
740
|
<summary>User Group (user-group)</summary>
|
|
549
741
|
<br>
|
|
550
742
|
|
|
551
|
-
`get-user-group` - Get user group
|
|
552
|
-
`get-user-group-by-id-array` - Get user groups by IDs
|
|
553
|
-
`get-user-groups` - Get all user groups
|
|
554
|
-
`get-filter-user-group` - Filter user groups
|
|
555
|
-
`create-user-group` - Create a new user group
|
|
556
|
-
`update-user-group` - Update a user group
|
|
557
|
-
`delete-user-group` - Delete a user group
|
|
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
|
|
558
750
|
`delete-user-groups` - Delete multiple user groups
|
|
559
751
|
</details>
|
|
560
752
|
|
|
@@ -572,6 +764,23 @@ The allows you to specify collections by name if you wish to exclude them from t
|
|
|
572
764
|
</details>
|
|
573
765
|
</details>
|
|
574
766
|
|
|
767
|
+
**⚠️ Intentionally Excluded:** 69 endpoints across 14 categories
|
|
768
|
+
|
|
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).
|
|
770
|
+
|
|
771
|
+
### Excluded Categories Summary
|
|
772
|
+
|
|
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
|
|
783
|
+
|
|
575
784
|
## Contributing with AI Tools
|
|
576
785
|
|
|
577
786
|
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.
|