Skip to main content
Glama
ady133t

Cloudflare Memory MCP

by ady133t

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 cache

Capturas 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:

  1. El argumento project_root (recomendado) — pasas tu carpeta de trabajo a cualquier herramienta, por ejemplo remember({ 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 herramienta identify_project permite fijarlo explícitamente.

  2. El argumento project_id — un identificador explícito (también se guarda en caché durante la sesión).

  3. Las cabeceras x-project-root / x-project-id — para los clientes que las definan.

  4. 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 deploy

Tus puntos de conexión:

  • MCP: https://cloudflare-memory-mcp.<your-subdomain>.workers.dev/mcp

  • Panel: 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:local

Integració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

identify_project

Fija la identidad de la sesión a partir de project_root / project_id (devuelve el id resuelto)

remember

Guarda una nota (la incrusta para recuperación semántica); opcionalmente hace upsert de entities + relations al grafo

query_memory

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 remember; usa search_memory para recuperación instantánea

search_memory

Búsqueda exacta de palabras clave (D1 FTS5)

get_recent_memories

Últimas notas del proyecto

get_project_context

Paquete con estadísticas + memorias recientes + entidades principales + relaciones recientes (llamada explícita)

add_entity / add_relation

Construir el grafo de conocimiento de forma deliberada

query_graph

Vecinos de una entidad (profundidad 1–3) o entidades más conectadas

forget

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 forget. Consultas ~29 000/mes

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 server
F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    16
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    A
    maintenance
    Self-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 AI
    4
    737
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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