Cloudflare Memory MCP
Cloudflare Memory MCP
Un servidor MCP de memoria por proyecto para opencode, alojado por completo en el plan gratuito de Cloudflare:
Notas: memorias simples con clave, etiquetas y tipos
Vector: recuperación semántica mediante Vectorize (embeddings de Workers AI
@cf/baai/bge-m3, 1024 dimensiones, multilingüe)Grafo: entidades + relaciones en D1 (SQLite) con recorrido recursivo
Panel web: abre
/en un navegador para ver todos los proyectos con sus memorias. Cada tarjeta de proyecto abre una vista de detalle con un grafo interactivo dirigido por fuerzas de sus entidades y relaciones (rueda = zoom, arrastre = desplazamiento, doble clic o botones = restablecer, cursor encima = resaltar vecinos) y un botón Eliminar proyecto que borra el proyecto, sus notas, el grafo, las filas de FTS, las cachés y los embeddings vectoriales
opencode ── MCP (streamable HTTP + Bearer auth) ──> Worker
├─ Vectorize memory-vectors (namespace per project)
├─ D1 projects / notes / nodes / edges / FTS5
├─ Workers AI bge-m3 embeddings
└─ KV recent-memories cacheCapturas de pantalla
Lista de proyectos
El panel de control muestra todos los proyectos conocidos por la cuenta, incluidos los recuentos de memorias, entidades, relaciones y última actividad.
Grafo de conocimiento
Abre un proyecto para inspeccionar sus memorias y su grafo. El grafo admite aristas curvas y direccionales, resaltado al pasar el cursor, zoom con la rueda, desplazamiento arrastrando y controles de restablecer.
Related MCP server: MCP Memory
Cómo funciona el aislamiento de carperas
El servidor ejecuta sus sesiones MCP dentro de un Durable Object (plan gratuito, backend SQLite), lo que fija cada mensaje de una sesión a un único isolate. La identidad del proyecto se resuelve en este orden:
El argumento
project_root(recomendado) — pasas tu carpeta de trabajo a cualquier herramienta, por ejemploremember({ project_root: "D:/Projects/foo", content: ... }). El servidor calcula un hash de la forma normalizada de la ruta para obtener un id de proyecto estable y lo recuerda durante el resto de la sesión, así que las llamadas posteriores pueden omitirlo. La herramientaidentify_projectpermite fijarlo explícitamente.El argumento
project_id— un identificador explícito (también se guarda en caché durante la sesión).Las cabeceras
x-project-root/x-project-id— para los clientes que las definan.MCP roots — detección automática de carpetas cuando el cliente lo soporte.
Cómo la identidad es solo un hash de la ruta normalizada, la misma carpeta abierta desde una ruta absoluta distinta siempre resuelve al mismo proyecto. Cada lectura y escritura está limitada a ese id — Vectorize usa un namespace por proyecto y cada consulta D1 filtra por project_id, por lo que dos carpetas nunca pueden ver la memoria de la otra.
Cómo se usa desde opencode
opencode conoce su directorio de trabajo (tu bash actual). El agente debe pasarlo una vez por sesión. Este repositorio incluye una estrategia lista para copiar en AGENTS.md: cópiala en cualquier proyecto donde quieras memoria, define PROJECT_ROOT con el directorio de ese proyecto y el agente será el que gestione la identidad automáticamente:
When using the memory MCP tools, pass project_root (your bash cwd) on the first
memory call of the session.Configuración
Requisitos previos: Node.js 18+, una cuenta de Cloudflare y un npx wrangler login hecho una vez.
npm install
npm run setup # creates D1 db, KV namespace, Vectorize index; patches wrangler.toml
npm run db:migrate:remote
npx wrangler secret put MEMORY_AUTH_TOKEN # optional but strongly recommended
npm run deployTus puntos de conexión:
MCP:
https://cloudflare-memory-mcp.<your-subdomain>.workers.dev/mcpPanel:
https://cloudflare-memory-mcp.<your-subdomain>.workers.dev/
Desarrollo local:
npm run dev # wrangler dev --local (AI + Vectorize are remote-only)
npm run db:migrate:localIntegración con opencode
Una única entrada: la misma configuración funciona en todos los proyectos. No hace falta de por proyecto:
// ~/.config/opencode/opencode.jsonc
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"memory": {
"type": "remote",
"url": "https://cloudflare-memory-mcp.<your-subdomain>.workers.dev/mcp",
"oauth": false,
"headers": {
"Authorization": "Bearer {env:MEMORY_AUTH_TOKEN}"
}
}
}
}La identidad del proyecto queda entonces en mano del propio agente: pasa su directorio de trabajo como project_root en la primera llamada de memoria de cada sesión (ver el consejo de AGENTS.md antes) y el servidor lo incluye todo dentro de la carpeta.
El panel (/) pide el valor del MEMORY_AUTH_TOKEN una vez y lo guarda en localStorage. Si no defines MEMORY_AUTH_TOKEN, todo es público — solo hagas experimentos personales o para una sola prueba.
Herramientas MCP
Herramienta | Função |
| Fija la identidad de la sesión a partir de |
| Guarda una nota (la incrusta para recuperación semántica); opcionalmente hace upsert de |
| Búsqueda semántica/vectorial — recupera por significado. Nota: las mutaciones de Vectorize son asíncronas, por lo que una nota se puede consultar semánticamente unos segundos después del |
| Búsqueda exacta de palabras clave (D1 FTS5) |
| Últimas notas del proyecto |
| Paquete con estadísticas + memorias recientes + entidades principales + relaciones recientes (llamada explícita) |
| Construir el grafo de conocimiento de forma deliberada |
| Vecinos de una entidad (profundidad 1–3) o entidades más conectadas |
| Borra una nota y su embedding |
Todas las herramientas aceptan un project_root opcional (ruta de carpeta o URI file://) y un project_id; una vez se indica cualquiera de los dos, el resto de la sesión se recuerda.
Presupuesto del plan gratuito
Recurso | Cuota gratuita | Notas |
Durable Object | 100 000 solicitudes/día, ~28 h/día de compute activo | Aloja las sesiones MCP; ~1 solicitud por mensaje MCP |
Vectorize | 5 millones de dimensiones almacenadas por cuenta | ~4 800 notas incrustadas @1024-dim; recortables con |
Workers AI | 10 k neuronas/día | El embedding bge-m3 de una nota de 1 k tokens ≈1 neurona más o similar → miles por día |
D1 | 5 GB / 500 MB por base de datos | Notas + grafo + FTS prácticamente ilimitados para uso personal |
KV / Worker | 1 GB / 100k solicitudes al día | Cachés + servidor; pocas solicitudes por sesión de opencode |
Puedes aplicar palancas si estás cerca del techo vectorial: guarda solo en memoria lo esencial (remember con type: "decision" | "fact"), usa search_memory (FTS5, sin límite) para el resto; o recrea el índice con bge-small (384 dimensiones, solo en inglés) para multiplicar por ~3 la capacidad.
Estructura del proyecto
src/index.ts fetch router: dashboard, /api/*, /mcp -> Durable Object
src/session-do.ts MCP session host (Durable Object): sessions, SSE, roots, identity
src/tools.ts the 10 tool definitions (zod schemas + implementations)
src/store.ts D1 / Vectorize / KV data layer
src/identity.ts project-id derivation from folder roots
src/embed.ts Workers AI bge-m3 embeddings
src/api.ts dashboard API (projects, detail, graph, delete)
src/web.ts dashboard page (token-gated)
migrations/ D1 schema
scripts/setup.mjs creates Cloudflare resources and patches wrangler.toml
AGENTS.md template to copy into projects that use this memory serverThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to remember user information and preferences across conversations using vector search technology. Built on Cloudflare infrastructure with isolated user namespaces for secure, persistent memory storage.16MIT
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to remember and retrieve user information across conversations using vector search technology. Built on Cloudflare infrastructure with isolated user namespaces for secure, persistent memory storage.16
- FlicenseNot gradedqualityDmaintenanceProvides cross-device access to a persistent knowledge graph via Cloudflare Workers, enabling memory storage and retrieval through both MCP protocol and REST API with full-text search capabilities.
- AlicenseNot gradedqualityAmaintenanceSelf-hosted semantic memory layer for Claude and MCP-compatible AI clients. Store notes, search by meaning not keywords, and recall relevant context automatically across sessions. Runs free on Cloudflare Workers, D1, Vectorize, and Workers AI4737MIT
Related MCP Connectors
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Cross-session, cross-device memory for your agent: remember and recall notes. No key to start.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ady133t/Cloudflare-Memory-Mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server