Skip to main content
Glama
Cloudflare Memory MCP

Cloudflare Memory MCP

by ady133t

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 cache

Screenshots

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: second-brain-cloudflare

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:

  1. 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 Tool exist_project existiert, um sie explizit festzulegen.

  2. project_id-Toolargument – eine explizite ID (ebenfalls für die Sitzung zwischengespeichert).

  3. x-project-root / x-project-id-Header – für Clients, die diese konfigurieren.

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

Deine Endpunkte:

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

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

Einbindung 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

identify_project

Fixiert die Projektidentität für die Sitzung über project_root / project_id (gibt die aufgelöste ID zurück)

remember

Speichert eine Notiz (bettet sie für den semantischen Abruf ein); fügt optional entities und relations per Upsert in den Graphen ein

query_memory

Semantische / Vektor-Suche – Abruf nach Bedeutung. Hinweis: Mutationen in Vectorize sind asynchron, eine Notiz ist wenige Sekunden nach remember semantisch abrufbar; für sofortigen Abruf search_memory verwenden

search_memory

Exakte Stichwortsuche (D1 FTS5)

get_recent_memories

Neueste Notizen für das Projekt

get_project_context

Bündelt Statistik, neueste Memories, Top-Entitäten und aktuelle Relationen (explizit aufrufen)

add_entity / add_relation

Erweitere den Wissensgraphen gezielt

query_graph

Nachbarn einer Entität (Tiefe 1–3) oder am stärksten verbundene Entitäten

forget

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 forget. Abfragen ca. 29k/Monat

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 server

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    -
  • 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
    2 npm
    854
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A minimal, tag-free personal memory system that syncs across all Claude interfaces. Built on Cloudflare's edge stack for zero-maintenance serverless operation.
    17 npm
    MIT