Lets Claude Desktop and other MCP clients call functions defined in a Cloudflare Worker.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add workers --env MCP_SERVER_NAME='<MCP_SERVER_NAME>' --env WORKER_URL='<WORKER_URL>' --env PROJECT_PATH='<PROJECT_PATH>' -- npx workers-mcp run '{{config.MCP_SERVER_NAME}}' '{{config.WORKER_URL}}' '{{config.PROJECT_PATH}}'~/.codex/config.toml
[mcp_servers.workers]
command = "npx"
args = ["workers-mcp", "run", "{{config.MCP_SERVER_NAME}}", "{{config.WORKER_URL}}", "{{config.PROJECT_PATH}}"]
env = { MCP_SERVER_NAME = "<MCP_SERVER_NAME>", WORKER_URL = "<WORKER_URL>", PROJECT_PATH = "<PROJECT_PATH>" }
# codex mcp add workers --env MCP_SERVER_NAME='<MCP_SERVER_NAME>' --env WORKER_URL='<WORKER_URL>' --env PROJECT_PATH='<PROJECT_PATH>' -- npx workers-mcp run '{{config.MCP_SERVER_NAME}}' '{{config.WORKER_URL}}' '{{config.PROJECT_PATH}}'~/.cursor/mcp.json
{
"mcpServers": {
"workers": {
"command": "npx",
"args": [
"workers-mcp",
"run",
"{{config.MCP_SERVER_NAME}}",
"{{config.WORKER_URL}}",
"{{config.PROJECT_PATH}}"
],
"env": {
"MCP_SERVER_NAME": "<MCP_SERVER_NAME>",
"WORKER_URL": "<WORKER_URL>",
"PROJECT_PATH": "<PROJECT_PATH>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"workers": {
"type": "stdio",
"command": "npx",
"args": [
"workers-mcp",
"run",
"{{config.MCP_SERVER_NAME}}",
"{{config.WORKER_URL}}",
"{{config.PROJECT_PATH}}"
],
"env": {
"MCP_SERVER_NAME": "<MCP_SERVER_NAME>",
"WORKER_URL": "<WORKER_URL>",
"PROJECT_PATH": "<PROJECT_PATH>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"workers": {
"command": "npx",
"args": [
"workers-mcp",
"run",
"{{config.MCP_SERVER_NAME}}",
"{{config.WORKER_URL}}",
"{{config.PROJECT_PATH}}"
],
"env": {
"MCP_SERVER_NAME": "<MCP_SERVER_NAME>",
"WORKER_URL": "<WORKER_URL>",
"PROJECT_PATH": "<PROJECT_PATH>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"workers": {
"command": "npx",
"args": [
"workers-mcp",
"run",
"{{config.MCP_SERVER_NAME}}",
"{{config.WORKER_URL}}",
"{{config.PROJECT_PATH}}"
],
"env": {
"MCP_SERVER_NAME": "<MCP_SERVER_NAME>",
"WORKER_URL": "<WORKER_URL>",
"PROJECT_PATH": "<PROJECT_PATH>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"workers": {
"command": "npx",
"args": [
"workers-mcp",
"run",
"{{config.MCP_SERVER_NAME}}",
"{{config.WORKER_URL}}",
"{{config.PROJECT_PATH}}"
],
"env": {
"MCP_SERVER_NAME": "<MCP_SERVER_NAME>",
"WORKER_URL": "<WORKER_URL>",
"PROJECT_PATH": "<PROJECT_PATH>"
}
}
}
}Environment variables
MCP_SERVER_NAMEWORKER_URLPROJECT_PATH
Replace the placeholders with your own credentials and keep them out of version control.