automate-mcp-server
OfficialProvides an MCP server template for Umbraco add-ons, enabling AI agents to connect to an Umbraco instance and interact with add-on APIs.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@automate-mcp-serverSet up OAuth for my Umbraco MCP server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
automate-mcp-server
MCP server template for Umbraco add-ons using the @umbraco-cms/mcp-server-sdk.
Getting Started
1. Install Dependencies
npm install2. Configure Environment
Copy .env.example to .env and fill in your Umbraco connection details:
cp .env.example .env3. Generate API Client (Optional)
If you have an OpenAPI spec for your add-on:
Update
orval.config.tsto point to your specRun the generator:
npm run generate4. Build and Test
# Build the server
npm run build
# Run tests
npm test
# Test with MCP Inspector
npm run inspectRelated MCP server: Remote MCP Server on Cloudflare
Project Structure
├── src/
│ ├── api/
│ │ ├── client.ts # API client configuration
│ │ └── generated/ # Orval-generated API code
│ ├── tools/
│ │ └── example/ # Example tool collection
│ │ ├── get/
│ │ ├── post/
│ │ └── index.ts
│ └── index.ts # Server entry point
├── scripts/
│ └── tunnels.sh # Cloudflare tunnels for remote MCP client testing
├── umbraco/
│ ├── McpOAuthComposer.cs # Self-hosted: OAuth client for your own Worker
│ ├── McpHostedClientsComposer.Cloud.cs # Cloud only (commented out): one or more hosted MCP clients (Editor / Dev / …) chosen via array
│ └── McpExternalLoginShortCircuitComposer.Cloud.cs # Cloud only (commented out): redirects to Umbraco SSO instead of dead-ending at /umbraco/login
├── __tests__/
│ └── example/ # Example tests
├── package.json
├── tsconfig.json
├── tsup.config.ts
├── jest.config.ts
├── orval.config.ts
└── .env.exampleAdding Your Own Tools
Create a new folder under
src/tools/for your tool collectionCreate tool files following the example pattern:
get/for GET operationspost/for POST operationsput/for PUT operationsdelete/for DELETE operations
Create an
index.tsthat exports the collectionRegister the collection in
src/index.ts
Tool Pattern Example
import { z } from "zod";
import {
withStandardDecorators,
executeGetApiCall,
CAPTURE_RAW_HTTP_RESPONSE,
ToolDefinition,
} from "@umbraco-cms/mcp-server-sdk";
const inputSchema = {
id: z.string().uuid(),
};
const myTool: ToolDefinition<typeof inputSchema> = {
name: "my-tool",
description: "Does something useful",
inputSchema,
slices: ["read"],
annotations: { readOnlyHint: true },
handler: async ({ id }) => {
return executeGetApiCall((client) =>
client.getMyItem(id, CAPTURE_RAW_HTTP_RESPONSE)
);
},
};
export default withStandardDecorators(myTool);Testing
Tests use Jest with the MCP toolkit's testing helpers:
import {
setupTestEnvironment,
createSnapshotResult,
createMockRequestHandlerExtra,
} from "@umbraco-cms/mcp-server-sdk/testing";
describe("my-tool", () => {
setupTestEnvironment();
it("should do something", async () => {
const result = await myTool.handler({ id: "..." }, createMockRequestHandlerExtra());
expect(createSnapshotResult(result)).toMatchSnapshot();
});
});Testing with Claude Code
This project ships with a .mcp.json that registers the MCP server with Claude Code automatically. Once you have run init, discover, and npm run build, open the project directory in Claude Code and the server is available immediately — no manual claude mcp add required.
# One-time setup
npx @umbraco-cms/create-umbraco-mcp-server init # writes credentials to .env
npx @umbraco-cms/create-umbraco-mcp-server discover # generates API client
npm run build # compiles dist/index.js
# Open in Claude Code — .mcp.json is picked up automatically
claude .The server reads credentials from .env via node --env-file=.env ./dist/index.js, so no secrets are committed to source control.
Publishing
Update
package.jsonwith your package name and detailsBuild:
npm run buildPublish:
npm publish
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop and other MCP clients to interact with any OAuth2-authenticated OpenAPI-based API through automatic tool generation from OpenAPI specifications, with built-in token management and authentication handling.93MIT
- AlicenseNot gradedqualityCmaintenanceEnables deploying and connecting to MCP servers on Cloudflare Workers with OAuth login, allowing remote access to tools via MCP clients like Claude Desktop.208MIT
- FlicenseNot gradedqualityDmaintenanceEnables deployment of MCP servers over HTTP, providing ready-to-use tools for text processing, math calculations, and social media content generation, accessible to AI assistants like GitHub Copilot and Claude.-
- AlicenseCqualityFmaintenanceSingle MCP server providing over 500 developer tools for Claude Code, covering security, testing, documentation, and more.500503MIT