Cloudflare Memory MCP
Cloudflare Memory MCP
Ein projektspezifischer Memory-MCP-Server für opencode, vollständig auf Cloudflares kostenlosem Tarif gehostet:
Notizen – einfache schlüsselbasierte Speichereinträge mit Tags und Typen
Vektor – semantischer Abruf über Vectorize (Embeddings von Workers AI
@cf/baai/bge-m3, 1024-dimensional, mehrsprachig)Graph – Entitäten + Relationen in D1 (SQLite) mit rekursiver Traversierung
Web-Dashboard – öffne
/in einem Browser, um jedes Projekt mit seinen Memories zu sehen. Jede Projektkarte öffnet eine Detailansicht mit einem interaktiven kraftbasierten Graphen seiner Entitäten und Relationen (Mausrad = Zoomen, Ziehen = Verschieben, Doppelklick oder Buttons = Zurücksetzen, Hover = Nachbarn hervorheben) sowie einen Projekt löschen-Button, der das Projekt, seine Notizen, den Graphen, FTS-Zeilen, Caches und Vektor-Embeddings entfernt
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 cacheScreenshots
Projektliste
Das Dashboard listet jedes dem Konto bekannte Projekt auf, darunter die Anzahl der Notizen, Entitäten, Relationen und der letzten Aktivität.
Wissensgraph
Öffne ein Projekt, um seine Memories und seinen Graphen zu inspizieren. Der Graph unterstützt gekrümmte, gerichtete Kanten, Hervorhebung bei „Hover“, Mausrad-Zoom, Paning per Ziehen und Z urücksetzen.
Related MCP server: MCP Memory
Wie die Ordnerisolierung funktioniert
Der Server führt seine MCP-Sitzungen in einem Durable Object aus (kostenloser Tarif, SQLite-Backend) und heftet jede Nachricht einer Sitzung an genau ein isoliertes Isolate. Die Projektidentität wird in dieser Reihenfolge aufgelöst:
project_root-Toolargument (empfohlen) – du übergibst deinen Arbeitsordner an jedes Tool, z. B.remember({ project_root: "D:/Projects/foo", content: ... }). Der Server bildet einen Hash aus einer normalisierten Form des Pfads auf eine stabile Projekt-ID und behält sie für den Rest der Sitzung in Erinnerung, sodass spätere Aufrufe sie weglassen können. Das Toolexist_projectexistiert, um sie explizit festzulegen.project_id-Toolargument – eine explizite ID (ebenfalls für die Sitzung zwischengespeichert).x-project-root/x-project-id-Header – für Clients, die diese konfigurieren.MCP roots – automatische Ordnererkennung, wenn der Client das unterstützt.
Da die Identität nur ein Hash des normalisierten Pfads ist, führt derselbe Ordner, auch wenn er über einen anderen absoluten Pfad geöffnet wird, weiterhin auf dasselbe Projekt. Jeder Lese- und Schreibvorgang ist auf diese ID beschränkt – Vectorize-Abfragen verwenden einen Namespace pro Projekt, und jede D1-Abfrage filtert nach project_id, sodass zwei Ordner sich niemals gegenseitig sehen können.
Verwendung aus opencode
opencodes offen habe ich mich in Treibsand begeben – das ist nicht gut.
When using the memory MCP tools, pass project_root (your bash cwd) on the first
memory call of the session.Setup
Voraussetzungen: Node 18+, ein Cloudflare-Konto und ein einmaliges npx wrangler login.
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 deployDeine Endpunkte:
MCP:
https://cloudflare-memory-mcp.<your-subdomain>.workers.dev/mcpDashboard:
https://cloudflare-memory-mcp.<your-subdomain>.workers.dev/
Lokale Entwicklung:
npm run dev # wrangler dev --local (AI + Vectorize are remote-only)
npm run db:migrate:localEinbindung in opencode
Ein einziger Eintrag – dieselbe Konfiguration funktioniert in jedem Projekt. Keine projektspezifischen Werte nötig:
// ~/.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}"
}
}
}
}Die Projektidentität wird dann vom Agenten selbst bestimmt: sie übergibt ihr Arbeitsverzeichnis als project_root beim ersten Memory-Aufruf jeder Sitzung (siehe den AGENTS.md-Hinweis oben), und der Server bindet von da an alles an diesen Ordner.
Das Dashboard (/) fragt einmal nach demselben MEMORY_AUTH_TOKEN und hört es in localStorage. Wenn du MEMORY_AUTH_TOKEN leer lässt, ist alles öffentlich – das nur für private/wiederverwendbare Experimente sinnvoll.
MCP-Tools
Tool | Zweck |
| Fixiert die Projektidentität für die Sitzung über |
| Speichert eine Notiz (bettet sie für den semantischen Abruf ein); fügt optional |
| Semantische / Vektor-Suche – Abruf nach Bedeutung. Hinweis: Mutationen in Vectorize sind asynchron, eine Notiz ist wenige Sekunden nach |
| Exakte Stichwortsuche (D1 FTS5) |
| Neueste Notizen für das Projekt |
| Bündelt Statistik, neueste Memories, Top-Entitäten und aktuelle Relationen (explizit aufrufen) |
| Erweitere den Wissensgraphen gezielt |
| Nachbarn einer Entität (Tiefe 1–3) oder am stärksten verbundene Entitäten |
| Löscht eine Notiz samt zugehörigem Embedding |
Alle Tools akzeptieren ein optionales project_root (Ordnerpfad oder file://-URI) und project_id; sobald eines von beiden in einer Sitzung angegeben wurde, wird es gespeichert.
Budget für den kostenlosen Tarif
Ressource | Kostenloses Kontingent | Anmerkungen |
Durable Object | 100k Anfragen/Tag, ca. 28 Std. aktiv/Tag | Hostes MCP-Sitzungen; ca. 1 Anfrage pro MCP-Nachricht |
Vectorize | 5 M gespeicherte Dimensionen | ca. 4.800 eingebettete Notizen bei 1024-dimensionalen; aufräumen mit |
Workers AI | 10k Neuronen/Tag | bge-m3-Embedding einer 1k-Token-Notiz ≈ 1 Neuron → Tausende/Tag |
D1 | 5 GB / 500 MB pro Datenbank | Notizen + Graph + FTS sind bei privater Nutzung praktisch unbegrenzt |
KV / Worker | 1 GB / 100k Anfragen/Tag | Caches + Premiere; einige Anfragen pro opencode-Sitzung |
Wenn du einmal an die Vektor-Obergrenze stößt, gibt es Design-Hebel: Bette die nur die dauerhaften Memories ein (remember mit type: "decision" | "fact" ) und überlasse search_memory (FTS5, ungedeckelt) den Long Tail; oder baue den Index mit bge-small (384-dimensional, nur Englisch) neu auf, für die ca. 3-fache Kapazität.
Projektstruktur
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