Workers MCP
Un transporte MCP para interactuar con tu propio Cloudflare Worker.
Documentación
workers-mcp
¡Habla con un Cloudflare Worker desde Claude Desktop!
[!WARNING]
Deberías comenzar aquí en su lugar — y construir un servidor MCP remotoPuedes conectarte a servidores MCP remotos desde Claude Desktop, Cursor y otros clientes usando mcp-remote.
¿Qué es workers-mcp?
Este paquete proporciona tanto las herramientas de línea de comandos como la lógica dentro del Worker para conectar Claude Desktop (o cualquier Cliente MCP) a un Cloudflare Worker en tu cuenta, para que puedas personalizarlo según tus necesidades. Funciona mediante un paso de compilación que puede traducir métodos TypeScript de tu Worker como este:
export class ExampleWorkerMCP extends WorkerEntrypoint<Env> {
/**
* Generates a random number. This is extra random because it had to travel all the way to
* your nearest Cloudflare PoP to be calculated which... something something lava lamps?
*
* @return {string} A message containing a super duper random number
* */
async getRandomNumber() {
return `Your random number is ${Math.random()}`
}
// ...etc
}
...en herramientas MCP que un servidor Node.js local puede exponer a los clientes MCP. El servidor Node.js actúa como un proxy, manejando el transporte stdio localmente y llamando al método correspondiente de tu Worker que se ejecuta en Cloudflare. Esto te permite exponer cualquier función o API de tu aplicación, o cualquier servicio en la plataforma de desarrolladores de Cloudflare, de vuelta a un LLM en tu agente de codificación, Claude Desktop u otro cliente MCP.
Sí, sé que
Math.random()funciona igual en un Worker que en tu máquina local, pero no le digas a Claude 🤫
Uso
Paso 1: Genera un nuevo Worker
Usa create-cloudflare para generar un nuevo Worker.
npx create-cloudflare@latest my-new-worker
Sugiero elegir un worker de tipo Hello World.
Paso 2: Instala workers-mcp
cd my-new-worker # I always forget this bit
npm install workers-mcp
Paso 3: Ejecuta el comando setup
npx workers-mcp setup
Nota: si algo sale mal, ejecuta npx workers-mcp help
Paso 4..♾️: Iterando
Después de cambiar el código de tu Worker, solo necesitas ejecutar npm run deploy para actualizar tanto los metadatos de Claude sobre tu función como tu instancia de Worker en vivo.
Sin embargo, si cambias los nombres de tus métodos, o sus parámetros, o agregas o eliminas métodos, Claude no verá las actualizaciones hasta que lo reinicies.
Nunca deberías necesitar volver a ejecutar npx workers-mcp install:claude, pero es seguro hacerlo si quieres descartar la configuración de Claude como fuente de errores.
Uso con Otros Clientes MCP
Cursor
Para que tu servidor MCP de Cloudflare funcione en Cursor, necesitas combinar el 'command' y los 'args' de tu archivo de configuración en una sola cadena y usar el tipo 'command'.
Por ejemplo, si tu archivo de configuración se ve así:
{
"mcpServers": {
"your-mcp-server-name": {
"command": "/path/to/workers-mcp",
"args": [
"run",
"your-mcp-server-name",
"https://your-server-url.workers.dev",
"/path/to/your/project"
],
"env": {}
}
}
}
En Cursor, crea una entrada de servidor MCP con:
- tipo:
command - comando:
/path/to/workers-mcp run your-mcp-server-name https://your-server-url.workers.dev /path/to/your/project
Otros Clientes MCP
Para Windsurf y otros clientes MCP, actualiza tu archivo de configuración para incluir tu worker y así poder usar las herramientas directamente desde el cliente:
{
"mcpServers": {
"your-mcp-server-name": {
"command": "/path/to/workers-mcp",
"args": [
"run",
"your-mcp-server-name",
"https://your-server-url.workers.dev",
"/path/to/your/project"
],
"env": {}
}
}
}
Asegúrate de reemplazar los marcadores de posición con tu nombre de servidor, URL y ruta de proyecto reales.
Ejemplos
Consulta el directorio examples para algunas ideas de para qué usar esto:
examples/01-hello-worldes una captura tomada después de las instrucciones de instalación anterioresexamples/02-image-generationusa Workers AI para ejecutar el modelo de generación de imágenes Flux. Claude es muy bueno sugiriendo prompts y puede interpretar el resultado y decidir qué nuevos prompts probar para lograr el resultado que deseas.- TODO Browser Rendering
- TODO Durable Objects