{"id":30768688,"url":"https://github.com/matthew-wise/umbraco-mcp","last_synced_at":"2025-09-04T21:10:26.085Z","repository":{"id":288578767,"uuid":"968160980","full_name":"Matthew-Wise/umbraco-mcp","owner":"Matthew-Wise","description":"A model context protocol  (MCP) server for Umbraco ","archived":false,"fork":false,"pushed_at":"2025-08-26T20:00:50.000Z","size":1954,"stargazers_count":52,"open_issues_count":9,"forks_count":16,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-08-26T21:52:07.693Z","etag":null,"topics":["mcp","mcp-server","umbraco","umbraco-cms"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Matthew-Wise.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-17T15:55:20.000Z","updated_at":"2025-08-26T20:00:54.000Z","dependencies_parsed_at":"2025-04-19T00:14:26.748Z","dependency_job_id":"c9a0e14d-d869-4618-a0eb-abb25bff0347","html_url":"https://github.com/Matthew-Wise/umbraco-mcp","commit_stats":null,"previous_names":["matthew-wise/umbraco-mcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Matthew-Wise/umbraco-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matthew-Wise%2Fumbraco-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matthew-Wise%2Fumbraco-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matthew-Wise%2Fumbraco-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matthew-Wise%2Fumbraco-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Matthew-Wise","download_url":"https://codeload.github.com/Matthew-Wise/umbraco-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matthew-Wise%2Fumbraco-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273673256,"owners_count":25147511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mcp","mcp-server","umbraco","umbraco-cms"],"created_at":"2025-09-04T21:10:23.759Z","updated_at":"2025-09-04T21:10:26.070Z","avatar_url":"https://github.com/Matthew-Wise.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Umbraco MCP ![GitHub License](https://img.shields.io/github/license/matthew-wise/umbraco-mcp?style=plastic\u0026link=https%3A%2F%2Fgithub.com%2FMatthew-Wise%2Fumbraco-mcp%3Ftab%3DMIT-1-ov-file%23readme)\n\nAn MCP (Model Context Protocol) server for [Umbraco CMS](https://umbraco.com/)\nit provides access to key parts of the Management API enabling you to do back office tasks with your agent.\n\n## Intro\n\nThe 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.\n\n## Getting Started\n\n### Umbraco\n\nIn order for the MCP to talk to the Management API you will need to create a API user\nif you are unsure how to do this follow [Umbraco's documentation](https://docs.umbraco.com/umbraco-cms/fundamentals/data/users/api-users).\n\nThe level of access you provider this user will determine what your agent is able to do.\n\n### Installation\n\nFirst, 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).\n\n\u003cdetails\u003e\n\u003csummary\u003eClaude Desktop\u003c/summary\u003e\n\nTo get started with using the Umbraco MCP with Claude, first download and install the [Claude.ai desktop app](https://claude.ai/download).  \n\nStart 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).\n\nOnce you have this information head back into Claude desktop app and head to Settings \u003e Developer \u003e 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.\n\n```\n{\n  \"mcpServers\": {\n    \"umbraco-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@umbraco-mcp/umbraco-mcp-cms@alpha\"],\n      \"env\": {\n        \"NODE_TLS_REJECT_UNAUTHORIZED\": \"0\",\n        \"UMBRACO_CLIENT_ID\": \"umbraco-back-office-mcp\",\n        \"UMBRACO_CLIENT_SECRET\": \"1234567890\",\n        \"UMBRACO_BASE_URL\": \"https://localhost:44391\"\n      }\n    }\n  }\n}\n```\n\nRestart 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.  \n\n\u003e [!NOTE]\n\u003e 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.\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eClaude Code\u003c/summary\u003e\n\nUse the Claude Code CLI to add the Umbraco MCP server:\n\n```bash\nclaude mcp add umbraco-mcp npx @umbraco-mcp/umbraco-mcp-cms@alpha\n```\n\nOr configure environment variables and scope:\n```bash\n# Install Claude Code globally (if not already installed)\nnpm install -g @anthropic-ai/claude-code\n\n# Add with environment variables\nclaude mcp add umbraco-mcp --env UMBRACO_CLIENT_ID=\"your-id\" --env UMBRACO_CLIENT_SECRET=\"your-secret\" --env UMBRACO_BASE_URL=\"https://your-domain.com\" -- npx @umbraco-mcp/umbraco-mcp-cms@alpha\n\n# Verify installation\nclaude mcp list\n```\n\nThis will add umbraco-mcp to the existing project in the claude.json config file.\n\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eVS Code\u003c/summary\u003e\n\n#### Click the button to install:\n[\u003cimg src=\"https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square\u0026label=Install%20Server\u0026color=0098FF\" alt=\"Install in VS Code\"\u003e](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%2522EXCLUDE_MANAGEMENT_TOOLS%2522%253A%2522%253Ctoolname%253E%252C%253Ctoolname%253E%2522%257D%257D)\n\n**Requirements:** VS Code 1.101+ with GitHub Copilot Chat extension installed.\n\nOr install manually:\nFollow the MCP [install guide](https://code.visualstudio.com/docs/copilot/customization/mcp-servers#_add-an-mcp-server), use this config.\n\n```json\n{\n  \"servers\": {\n    \"umbraco-mcp\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\", \n      \"args\": [\"@umbraco-mcp/umbraco-mcp-cms@alpha\"],\n      \"env\": {\n        \"UMBRACO_CLIENT_ID\": \"\u003cAPI user name\u003e\",\n        \"UMBRACO_CLIENT_SECRET\": \"\u003cAPI client secret\u003e\",\n        \"UMBRACO_BASE_URL\": \"https://\u003cdomain\u003e\",\n        \"EXCLUDE_MANAGEMENT_TOOLS\": \"\u003ctoolname\u003e,\u003ctoolname\u003e\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCursor\u003c/summary\u003e\n\n#### Or install manually:\nGo to `Cursor Settings` -\u003e `Tools \u0026 Integrations` -\u003e `Add new MCP Server`. \n\nAdd the following to the config file and update the env variables.\n\n```json\n{\n  \"mcpServers\": {\n    \"umbraco-mcp\": {\n      \"command\": \"npx\", \n      \"args\": [\"@umbraco-mcp/umbraco-mcp-cms@alpha\"],\n      \"env\": {\n        \"UMBRACO_CLIENT_ID\": \"\u003cAPI user name\u003e\",\n        \"UMBRACO_CLIENT_SECRET\": \"\u003cAPI client secret\u003e\",\n        \"UMBRACO_BASE_URL\": \"https://\u003cdomain\u003e\",\n        \"EXCLUDE_MANAGEMENT_TOOLS\": \"\u003ctoolname\u003e,\u003ctoolname\u003e\"\n      }\n    }\n  }\n}\n```\n\u003c/details\u003e\n\n\n### Configuration Environment Variables\n\n`UMBRACO_CLIENT_ID`\n\nUmbraco API User name\n\n`UMBRACO_CLIENT_SECRET` \n\nUmbraco API User client secert\n\n`UMBRACO_BASE_URL`\n\nUrl of the site you want to connect to, it only needs to be the scheme and domain e.g https://\u003cnolink/\u003eexample.com\n\n`EXCLUDE_MANAGEMENT_TOOLS`\n\nThe 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.\n\n\n##  Umbraco Management API Tools\n\u003cdetails\u003e\n\u003csummary\u003e View Tool list\u003c/summary\u003e\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCulture\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-culture` - gets all cultures avaliable to Umbraco  \n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eData Type\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-data-type-search` - Search for data types  \n`get-data-type` - Get a specific data type by ID  \n`get-data-type-references` - Get references to a data type  \n`is-used-data-type` - Check if a data type is in use  \n`get-data-type-root` - Get root level data types  \n`get-data-type-children` - Get child data types  \n`get-data-type-ancestors` - Get ancestor data types  \n`get-all-data-types` - Get all data types  \n`delete-data-type` - Delete a data type  \n`create-data-type` - Create a new data type  \n`update-data-type` - Update an existing data type  \n`copy-data-type` - Copy a data type  \n`move-data-type` - Move a data type to a different location  \n`create-data-type-folder` - Create a folder for organizing data types  \n`delete-data-type-folder` - Delete a data type folder  \n`get-data-type-folder` - Get information about a data type folder  \n`update-data-type-folder` - Update a data type folder details\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDictionary\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-dictionary-search` - Search for dictionary items  \n`get-dictionary-by-key` - Get a dictionary item by key  \n`create-dictionary` - Create a new dictionary item  \n`update-dictionary` - Update a dictionary item  \n`delete-dictionary` - Delete a dictionary item  \n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDocument\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-document-by-id` - Get a document by ID  \n`get-document-publish` - Get document publish status  \n`get-document-configuration` - Get document configuration  \n`copy-document` - Copy a document  \n`create-document` - Create a new document  \n`post-document-public-access` - Set document public access  \n`delete-document` - Delete a document  \n`delete-document-public-access` - Remove public access from a document  \n`get-document-urls` - Get document URLs  \n`get-document-domains` - Get document domains  \n`get-document-audit-log` - Get document audit log  \n`get-document-public-access` - Get document public access settings  \n`move-document` - Move a document  \n`move-to-recycle-bin` - Move document to recycle bin  \n`get-document-notifications` - Get document notifications  \n`publish-document` - Publish a document  \n`publish-document-with-descendants` - Publish a document and its descendants  \n`sort-document` - Sort document order  \n`unpublish-document` - Unpublish a document  \n`update-document` - Update a document  \n`put-document-domains` - Update document domains  \n`put-document-notifications` - Update document notifications  \n`put-document-public-access` - Update document public access  \n`delete-from-recycle-bin` - Delete document from recycle bin  \n`empty-recycle-bin` - Empty the recycle bin  \n`get-recycle-bin-root` - Get root items in recycle bin  \n`get-recycle-bin-children` - Get child items in recycle bin  \n`search-document` - Search for documents  \n`validate-document` - Validate a document  \n`get-document-root` - Get root documents  \n`get-document-children` - Get child documents  \n`get-document-ancestors` - Get document ancestors\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDocument Blueprint\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-blueprint` - Get a document blueprint  \n`delete-blueprint` - Delete a document blueprint  \n`update-blueprint` - Update a document blueprint  \n`create-blueprint` - Create a new document blueprint  \n`get-blueprint-ancestors` - Get blueprint ancestors  \n`get-blueprint-children` - Get blueprint children  \n`get-blueprint-root` - Get root blueprints\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDocument Type\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-document-type` - Get a document type  \n`get-document-type-configuration` - Get document type configuration  \n`get-document-type-blueprint` - Get document type blueprint  \n`get-document-type-by-id-array` - Get document types by IDs  \n`get-document-type-available-compositions` - Get available compositions  \n`get-document-type-composition-references` - Get composition references  \n`update-document-type` - Update a document type  \n`copy-document-type` - Copy a document type  \n`move-document-type` - Move a document type  \n`create-document-type` - Create a new document type  \n`delete-document-type` - Delete a document type  \n`create-element-type` - Create an element type  \n`get-icons` - Get available icons  \n`get-document-type-allowed-children` - Get allowed child types  \n`get-all-document-types` - Get all document types  \n`create-document-type-folder` - Create a folder  \n`delete-document-type-folder` - Delete a folder  \n`get-document-type-folder` - Get folder info  \n`update-document-type-folder` - Update folder details  \n`get-document-type-root` - Get root document types  \n`get-document-type-ancestors` - Get document type ancestors  \n`get-document-type-children` - Get document type children\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eLanguage\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-language-items` - Get all languages  \n`get-default-language` - Get default language  \n`create-language` - Create a new language  \n`update-language` - Update a language  \n`delete-language` - Delete a language  \n`get-language-by-iso-code` - Get language by ISO code\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eLog Viewer\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-log-viewer-saved-search-by-name` - Get saved search by name  \n`get-log-viewer-level-count` - Get log level counts  \n`post-log-viewer-saved-search` - Save a log search  \n`delete-log-viewer-saved-search-by-name` - Delete saved search  \n`get-log-viewer` - Get logs  \n`get-log-viewer-level` - Get log levels  \n`get-log-viewer-search` - Search logs  \n`get-log-viewer-validate-logs` - Validate logs  \n`get-log-viewer-message-template` - Get message template\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMedia\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-media-by-id` - Get media by ID  \n`get-media-ancestors` - Get media ancestors  \n`get-media-children` - Get media children  \n`get-media-root` - Get root media items  \n`create-media` - Create new media  \n`delete-media` - Delete media  \n`update-media` - Update media  \n`get-media-configuration` - Get media configuration  \n`get-media-urls` - Get media URLs  \n`validate-media` - Validate media  \n`sort-media` - Sort media items  \n`get-media-by-id-array` - Get media by IDs  \n`move-media` - Move media  \n`get-media-audit-log` - Get media audit log  \n`get-media-recycle-bin-root` - Get recycle bin root  \n`get-media-recycle-bin-children` - Get recycle bin children  \n`empty-recycle-bin` - Empty recycle bin  \n`restore-from-recycle-bin` - Restore from recycle bin  \n`move-media-to-recycle-bin` - Move to recycle bin  \n`delete-from-recycle-bin` - Delete from recycle bin\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMedia Type\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-media-type-configuration` - Get media type configuration  \n`get-media-type-by-id` - Get media type by ID  \n`get-media-type-by-ids` - Get media types by IDs  \n`get-allowed` - Get allowed media types  \n`get-media-type-allowed-at-root` - Get types allowed at root  \n`get-media-type-allowed-children` - Get allowed child types  \n`get-media-type-composition-references` - Get composition references  \n`get-root` - Get root media types  \n`get-children` - Get child media types  \n`get-ancestors` - Get ancestor media types  \n`get-folder` - Get folder information  \n`create-folder` - Create a new folder  \n`delete-folder` - Delete a folder  \n`update-folder` - Update folder details  \n`create-media-type` - Create a new media type  \n`copy-media-type` - Copy a media type  \n`get-media-type-available-compositions` - Get available compositions  \n`update-media-type` - Update a media type  \n`move-media-type` - Move a media type  \n`delete-media-type` - Delete a media type\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMember\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-member` - Get member by ID  \n`create-member` - Create a new member  \n`delete-member` - Delete a member  \n`update-member` - Update a member  \n`find-member` - Find members\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMember Group\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-member-group` - Get member group  \n`get-member-group-by-id-array` - Get member groups by IDs  \n`create-member-group` - Create a new member group  \n`update-member-group` - Update a member group  \n`delete-member-group` - Delete a member group  \n`get-member-group-root` - Get root member groups\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMember Type\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-member-type-by-id` - Get member type by ID  \n`create-member-type` - Create a new member type  \n`get-member-type-by-id-array` - Get member types by IDs  \n`delete-member-type` - Delete a member type  \n`update-member-type` - Update a member type  \n`copy-member-type` - Copy a member type  \n`get-member-type-available-compositions` - Get available compositions  \n`get-member-type-composition-references` - Get composition references  \n`get-member-type-configuration` - Get member type configuration  \n`get-member-type-root` - Get root member types\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eProperty Type\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-property-type` - Get property type by ID  \n`get-property-type-all-property-type-groups` - Get all property type groups  \n`create-property-type` - Create a new property type  \n`update-property-type` - Update a property type  \n`delete-property-type` - Delete a property type\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eRedirect\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-all-redirects` - Get all redirects  \n`get-redirect-by-id` - Get redirect by ID  \n`delete-redirect` - Delete a redirect  \n`get-redirect-status` - Get redirect status  \n`update-redirect-status` - Update redirect status\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eServer\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-server-status` - Get server status  \n`get-server-log-file` - Get server log file  \n`tour-status` - Get tour status  \n`upgrade-status` - Get upgrade status\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eTemplate\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-template-search` - Search for templates by name  \n`get-template` - Get a template by ID  \n`get-templates-by-id-array` - Get templates by IDs  \n`create-template` - Create a new template  \n`update-template` - Update a template by ID  \n`delete-template` - Delete a template by ID  \n`execute-template-query` - Execute template queries and return generated LINQ code  \n`get-template-query-settings` - Get schema for template queries (document types, properties, operators)  \n`get-template-root` - Get root template items  \n`get-template-children` - Get child templates or template folders by parent ID  \n`get-template-ancestors` - Get ancestors of a template by ID\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eTemporary File\u003c/summary\u003e\n\u003cbr\u003e\n\n`create-temporary-file` - Create a temporary file  \n`get-temporary-file` - Get a temporary file  \n`delete-temporary-file` - Delete a temporary file  \n`get-temporary-file-configuration` - Get temporary file configuration\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eUser Group\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-user-group` - Get user group  \n`get-user-group-by-id-array` - Get user groups by IDs  \n`get-user-groups` - Get all user groups  \n`get-filter-user-group` - Filter user groups  \n`create-user-group` - Create a new user group  \n`update-user-group` - Update a user group  \n`delete-user-group` - Delete a user group  \n`delete-user-groups` - Delete multiple user groups\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWebhook\u003c/summary\u003e\n\u003cbr\u003e\n\n`get-webhook-by-id` - Get webhook by ID  \n`get-webhook-by-id-array` - Get webhooks by IDs  \n`delete-webhook` - Delete a webhook  \n`update-webhook` - Update a webhook  \n`get-webhook-events` - Get webhook events  \n`get-all-webhook-logs` - Get all webhook logs  \n`create-webhook` - Create a new webhook\n\u003c/details\u003e\n\u003c/details\u003e\n\n## Contributing with AI Tools\n\nThis 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.\n\n### Using rulesync\n\nThe project includes rulesync configuration files that can automatically generate instruction files for 19+ AI development tools. Generate configuration files for your preferred AI tools:\n\n```bash\n# Generate only for Claude Code\nnpx rulesync generate --claudecode\n\n# Generate only for Cursor\nnpx rulesync generate --cursor\n\n# Generate only for Vs Code Copilot\nnpx rulesync generate --copilot\n```\n\n### Other AI Tools\n\nrulesync supports 19+ AI development tools including GitHub Copilot, Cline, Aider, and more. Check the [rulesync repository](https://github.com/dyoshikawa/rulesync) for the complete list of supported tools.\n\nThe instruction files cover:\n- MCP development patterns and conventions\n- TypeScript implementation guidelines  \n- Comprehensive testing standards with builders and helpers\n- Project-specific context and architecture\n- API integration patterns with Umbraco Management API  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthew-wise%2Fumbraco-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthew-wise%2Fumbraco-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthew-wise%2Fumbraco-mcp/lists"}