Cloudflare MCP Server
Implementa un servidor MCP remoto y sin autenticación en Cloudflare Workers.
Documentación
MCP Memory
MCP Memory es un servidor MCP que brinda a los clientes MCP (Cursor, Claude, Windsurf y más) la capacidad de recordar información sobre los usuarios (preferencias, comportamientos) a través de conversaciones. Utiliza tecnología de búsqueda vectorial para encontrar recuerdos relevantes basados en el significado, no solo en palabras clave. Está construido con Cloudflare Workers, D1, Vectorize (RAG), Durable Objects, Workers AI y Agents.
📺 Vídeo
🚀 Pruébalo
https://memory.mcpgenerator.com/
🛠️ Cómo Implementar Tu Propio MCP Memory
Opción 1: Implementa Tu Propio MCP Memory en Cloudflare con Un Solo Clic
En la sección Create Vectorize elige:
- Dimensions: 1024
- Metric: cosine
Haz clic en el botón "Create and Deploy"
En el panel de Cloudflare, ve a "Workers & Pages" y haz clic en Visit

Opción 2: Usa esta plantilla
- Haz clic en el botón "Use this template" en la parte superior de este repositorio
- Clona tu nuevo repositorio
- Sigue las instrucciones de configuración a continuación
Opción 3: Crear con CloudFlare CLI
npm create cloudflare@latest --git https://github.com/puliczek/mcp-memory
🔧 Configuración (Solo Opciones 2 y 3)
- Instala las dependencias:
npm install
- Crea un índice de Vectorize:
npx wrangler vectorize create mcp-memory-vectorize --dimensions 1024 --metric cosine
- Instala Wrangler:
npm run dev
- Implementa el worker:
npm run deploy
🧠 Cómo Funciona

-
Almacenamiento de recuerdos:
- Tu texto es procesado por Cloudflare Workers AI usando el modelo de código abierto
@cf/baai/bge-m3para generar embeddings - El texto y su embedding vectorial se almacenan en dos lugares:
- Cloudflare Vectorize: Almacena los embeddings vectoriales para la búsqueda por similitud
- Cloudflare D1: Almacena el texto original y los metadatos para persistencia
- Un Durable Object (MyMCP) gestiona el estado y garantiza la consistencia
- El framework Agents maneja la comunicación del protocolo MCP
- Tu texto es procesado por Cloudflare Workers AI usando el modelo de código abierto
-
Recuperación de recuerdos:
- Tu consulta se convierte en un vector usando Workers AI con el mismo modelo
@cf/baai/bge-m3 - Vectorize realiza una búsqueda por similitud para encontrar recuerdos relevantes
- Los resultados se clasifican por puntuación de similitud
- La base de datos D1 proporciona el texto original para los vectores coincidentes
- El Durable Object coordina el proceso de recuperación
- Tu consulta se convierte en un vector usando Workers AI con el mismo modelo
Esta arquitectura permite:
- Búsqueda rápida de similitud vectorial a través de Vectorize
- Almacenamiento persistente con D1
- Operaciones con estado mediante Durable Objects
- Interacciones de IA estandarizadas a través de Workers AI
- Cumplimiento del protocolo mediante el framework Agents
El sistema encuentra información conceptualmente relacionada incluso cuando las palabras exactas no coinciden.
🔒 Seguridad
MCP Memory implementa varias medidas de seguridad para proteger los datos de los usuarios:
- Los recuerdos de cada usuario se almacenan en espacios de nombres aislados dentro de Vectorize para la separación de datos
- El límite de velocidad integrado previene el abuso (100 req/min - puedes cambiarlo en wrangler.jsonc)
- La autenticación se basa solo en el userId
- Si bien esto es suficiente para una protección básica debido al límite de velocidad
- Se pueden agregar fácilmente capas de autenticación adicionales (como claves API u OAuth) si es necesario
- Todos los datos se almacenan en la infraestructura segura de Cloudflare
- Todas las comunicaciones están protegidas con cifrado TLS estándar de la industria (proporcionado automáticamente por la certificación SSL/TLS de Cloudflare)
💰 Información de Costos - GRATIS para la Mayoría de los Usuarios
MCP Memory es gratuito para niveles de uso normales:
- El nivel gratuito permite 1,000 recuerdos con ~28,000 consultas por mes
- Utiliza la cuota gratuita de Cloudflare para Workers, Vectorize, Worker AI y la base de datos D1
Para más detalles sobre los precios de Cloudflare, consulta:
- Precios de Vectorize
- Precios de Workers AI
- Precios de Workers
- Precios de Durable Objects
- Precios de la Base de Datos D1
❓ Preguntas Frecuentes
-
¿Puedo usar memory.mcpgenerator.com para almacenar mis recuerdos?
- Sí, puedes usar memory.mcpgenerator.com para almacenar y recuperar tus recuerdos
- El servicio es gratuito
- Tus recuerdos se almacenan de forma segura y solo tú puedes acceder a ellos
- No puedo garantizar que el servicio esté siempre disponible
-
¿Puedo alojarlo?
- Sí, puedes alojar tu propia instancia de MCP Memory gratis en Cloudflare
- Necesitarás una cuenta de Cloudflare y los siguientes servicios:
- Workers
- Vectorize
- D1 Database
- Workers AI
-
¿Puedo ejecutarlo localmente?
- Sí, puedes ejecutar MCP Memory localmente para desarrollo
- Usa
wrangler devpara ejecutar el worker localmente - Necesitarás configurar credenciales de desarrollo local para los servicios de Cloudflare
- Ten en cuenta que algunas funciones como la búsqueda vectorial o Workers AI requieren una conexión a los servicios de Cloudflare
-
¿Puedo usar un alojamiento diferente?
- No, MCP Memory está diseñado específicamente para la infraestructura de Cloudflare
-
¿Por qué lo construiste?
- Quería una solución de código abierto
- El control sobre mis propios datos era importante para mí
-
¿Puedo usarlo para más de una persona?
- Sí, MCP Memory se puede integrar en tu aplicación para servir a todos tus usuarios
- Cada usuario tiene su propio espacio de memoria aislado
-
¿Puedo usarlo para almacenar cosas que no sean recuerdos?
- Sí, MCP Memory puede almacenar cualquier tipo de información basada en texto
- Algunos ejemplos prácticos:
- Base de conocimientos: Almacena documentación técnica, procedimientos y guías de resolución de problemas
- Comportamientos de usuario: Realiza un seguimiento de cómo interactúan los usuarios con las funciones y los patrones de uso comunes
- Notas de proyecto: decisiones y actualizaciones del proyecto
- La búsqueda vectorial ayudará a encontrar elementos relacionados independientemente del tipo de contenido
Cloudflare Browser Rendering Experiments & MCP Server
Este proyecto demuestra cómo usar Cloudflare Browser Rendering para extraer contenido web para el contexto de LLM. Incluye experimentos con la API REST y la API de Workers Binding, así como una implementación de servidor MCP que se puede usar para proporcionar contexto web a los LLM.
Estructura del Proyecto
cloudflare-browser-rendering/
├── examples/ # Example implementations and utilities
│ ├── basic-worker-example.js # Basic Worker with Browser Rendering
│ ├── minimal-worker-example.js # Minimal implementation
│ ├── debugging-tools/ # Tools for debugging
│ │ └── debug-test.js # Debug test utility
│ └── testing/ # Testing utilities
│ └── content-test.js # Content testing utility
├── experiments/ # Educational experiments
│ ├── basic-rest-api/ # REST API tests
│ ├── puppeteer-binding/ # Workers Binding API tests
│ └── content-extraction/ # Content processing tests
├── src/ # MCP server source code
│ ├── index.ts # Main entry point
│ ├── server.ts # MCP server implementation
│ ├── browser-client.ts # Browser Rendering client
│ └── content-processor.ts # Content processing utilities
├── puppeteer-worker.js # Cloudflare Worker with Browser Rendering binding
├── test-puppeteer.js # Tests for the main implementation
├── wrangler.toml # Wrangler configuration for the Worker
├── cline_mcp_settings.json.example # Example MCP settings for Cline
├── .gitignore # Git ignore file
└── LICENSE # MIT License
Requisitos Previos
- Node.js (v16 o posterior)
- Una cuenta de Cloudflare con Browser Rendering habilitado
- TypeScript
- CLI de Wrangler (para implementar el Worker)
Instalación
- Clona el repositorio:
git clone https://github.com/yourusername/cloudflare-browser-rendering.git
cd cloudflare-browser-rendering
- Instala las dependencias:
npm install
Configuración del Worker de Cloudflare
- Instala el paquete de Cloudflare Puppeteer:
npm install @cloudflare/puppeteer
- Configura Wrangler:
# wrangler.toml
name = "browser-rendering-api"
main = "puppeteer-worker.js"
compatibility_date = "2023-10-30"
compatibility_flags = ["nodejs_compat"]
[browser]
binding = "browser"
- Implementa el Worker:
npx wrangler deploy
- Prueba el Worker:
node test-puppeteer.js
Ejecutando los Experimentos
Experimento Básico con la API REST
Este experimento demuestra cómo usar la API REST de Cloudflare Browser Rendering para obtener y procesar contenido web:
npm run experiment:rest
Experimento con la API de Puppeteer Binding
Este experimento demuestra cómo usar la API de Workers Binding de Cloudflare Browser Rendering con Puppeteer para una automatización del navegador más avanzada:
npm run experiment:puppeteer
Experimento de Extracción de Contenido
Este experimento demuestra cómo extraer y procesar contenido web específicamente para usarlo como contexto en LLM:
npm run experiment:content
Servidor MCP
El servidor MCP proporciona herramientas para obtener y procesar contenido web usando Cloudflare Browser Rendering para usarlo como contexto en LLM.
Construyendo el Servidor MCP
npm run build
Ejecutando el Servidor MCP
npm start
O, para desarrollo:
npm run dev
Herramientas del Servidor MCP
El servidor MCP proporciona las siguientes herramientas:
fetch_page- Obtiene y procesa una página web para el contexto de LLMsearch_documentation- Busca en la documentación de Cloudflare y devuelve contenido relevanteextract_structured_content- Extrae contenido estructurado de una página web usando selectores CSSsummarize_content- Resume el contenido web para un contexto de LLM más conciso
Configuración
Para usar tu endpoint de Cloudflare Browser Rendering, configura la variable de entorno BROWSER_RENDERING_API:
export BROWSER_RENDERING_API=https://YOUR_WORKER_URL_HERE
Reemplaza YOUR_WORKER_URL_HERE con la URL de tu Worker de Cloudflare implementado. Necesitarás reemplazar este marcador de posición en varios archivos:
- En los archivos de prueba:
test-puppeteer.js,examples/debugging-tools/debug-test.js,examples/testing/content-test.js - En la configuración del servidor MCP:
cline_mcp_settings.json.example - En el cliente del navegador:
src/browser-client.ts(como respaldo si la variable de entorno no está configurada)
Integración con Cline
Para integrar el servidor MCP con Cline, copia el archivo cline_mcp_settings.json.example a la ubicación adecuada:
cp cline_mcp_settings.json.example ~/Library/Application\ Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
O agrega la configuración a tu archivo cline_mcp_settings.json existente.
Aprendizajes Clave
- Cloudflare Browser Rendering requiere el paquete
@cloudflare/puppeteerpara interactuar con el binding del navegador. - El patrón correcto para usar el binding del navegador es:
import puppeteer from '@cloudflare/puppeteer'; // Then in your handler: const browser = await puppeteer.launch(env.browser); const page = await browser.newPage(); - Al implementar un Worker que usa el binding de Browser Rendering, debes habilitar el indicador de compatibilidad
nodejs_compat. - Siempre cierra el navegador después de usarlo para evitar fugas de recursos.
cloudflare-api-mcp
Este es un servidor ligero de Protocolo de Control de Modelos (MCP) inicializado con create-mcp e implementado en Cloudflare Workers.
Este servidor MCP permite que los agentes (como Cursor) interactúen con la API REST de Cloudflare.
Todavía está en desarrollo, iré agregando más herramientas a medida que las necesite.
Herramientas Disponibles
Consulta src/index.ts para ver la lista actual de herramientas. Cada método de la clase es una herramienta MCP.
Instalación
- Ejecuta el script de instalación automatizada para clonar este servidor MCP e implementarlo en tu cuenta de Cloudflare:
bun create mcp --clone https://github.com/zueai/cloudflare-api-mcp
-
Abre
Cursor Settings -> MCP -> Add new MCP servery pega el comando que se copió en tu portapapeles. -
Sube tu clave API y correo electrónico de Cloudflare a los secretos de tu worker:
bunx wrangler secret put CLOUDFLARE_API_KEY
bunx wrangler secret put CLOUDFLARE_API_EMAIL
Desarrollo Local
Agrega tu clave API y correo electrónico de Cloudflare al archivo .dev.vars:
CLOUDFLARE_API_KEY=<your-cloudflare-api-key>
CLOUDFLARE_API_EMAIL=<your-cloudflare-api-email>
Implementación
- Ejecuta el script de implementación:
bun run deploy
- Recarga tu ventana de Cursor para ver las nuevas herramientas.
Cómo Crear Nuevas Herramientas MCP
Para crear nuevas herramientas MCP, agrega métodos a la clase MyWorker en src/index.ts. Cada función se convertirá automáticamente en una herramienta MCP que tu agente puede usar.
Ejemplo:
/**
* Create a new DNS record in a zone.
* @param zoneId {string} The ID of the zone to create the record in.
* @param name {string} The name of the DNS record.
* @param content {string} The content of the DNS record.
* @param type {string} The type of DNS record (CNAME, A, TXT, or MX).
* @param comment {string} Optional comment for the DNS record.
* @param proxied {boolean} Optional whether to proxy the record through Cloudflare.
* @return {object} The created DNS record.
*/
createDNSRecord(zoneId: string, name: string, content: string, type: string, comment?: string, proxied?: boolean) {
// Implementation
}
Los comentarios JSDoc son importantes:
- La primera línea se convierte en la descripción de la herramienta
- Las etiquetas
@paramdefinen los parámetros de la herramienta con tipos y descripciones - La etiqueta
@returnespecifica el valor de retorno y su tipo