ContextStream MCP Server
In 30 Sekunden ausprobieren
npx --prefer-online -y @contextstream/mcp-server@latest setupDieser eine Befehl erkennt deine KI-Editoren, schreibt deren MCP-Konfigurationen und Regeln, installiert Lifecycle-Hooks, wo unterstützt, indexiert dein Projekt im Hintergrund und verifiziert alles, was er gerade getan hat — dann startest du deinen Editor neu und deine KI hat ein Gedächtnis. Kostenlose Stufe verfügbar.
Automatisieren? Der Zero-Prompt-Modus übernimmt jeden Standardwert:
npx --prefer-online -y @contextstream/mcp-server@latest setup --yesRelated MCP server: Doclea MCP
Wir gewinnen bei Speicher-Benchmarks — ehrlich gemessen
ContextStream erreicht 90,0 % beim vollständigen LongMemEval-S-Benchmark, dem Standardtest für konversationelles Gedächtnis über ~115.000-Token-Mehrfachsitzungs-Verläufe. Das ist die komplette Suite mit 500 Instanzen und dem offiziellen GPT-4o-Judge — 450/500 korrekt (89,6 % Single-Shot, 90,0 % mit Self-Consistency k=3; Wilson-95-%-KI [87,1 %, 92,3 %]). Veröffentlicht am 14. Juni 2026.
System | LongMemEval-S | Anmerkungen |
ContextStream | 90,0 % | Vollständige 500 Instanzen, offizieller GPT-4o-Judge |
Zep | 90,2 % | Vom Anbieter veröffentlicht — ein statistisches Unentschieden (0,2 Punkte liegen im Messrauschen) |
supermemory | 85,4 % | Vom Anbieter veröffentlicht — ContextStream gewinnt mit statistischer Signifikanz |
Beim Mehrfachsitzungs-Abruf — dem Gedächtnis, das für einen Coding-Agenten, der über Tage hinweg an Sitzungen arbeitet, tatsächlich zählt — erreicht ContextStream 81,2 % gegenüber Zeps veröffentlichten 57,9 % im Familienvergleich. Und beim agentischen Projektgedächtnis-Benchmark erhöht dasselbe Gedächtnis den Agenten-Aufgabenerfolg von 58 % auf 96 %.
Vollständige Methodik, Aufschlüsselungen nach Familie und Hinweise zur Judge-Vergleichbarkeit (Wettbewerbszahlen stammen aus den jeweiligen Veröffentlichungen der Anbieter): contextstream.io/benchmarks
Was ist ContextStream?
ContextStream ist ein Model Context Protocol (MCP)-Server, der KI-Coding-Assistenten ein Langzeitgedächtnis und ein tiefes Codebasis-Verständnis verleiht. Er indexiert deinen Code für die semantische Suche, zeichnet deine Entscheidungen, Lehren und Pläne über Sitzungen hinweg auf, kartiert deinen Abhängigkeitsgraphen und zieht Teamwissen aus GitHub, Slack und Notion heran — und liefert dann bei jeder Nachricht genau den richtigen Ausschnitt davon an deine KI.
Er funktioniert mit jedem MCP-Client: Claude Code, Cursor, VS Code + GitHub Copilot, Windsurf, Cline, Roo Code, Kilo Code, Codex CLI, OpenCode, Aider, Antigravity, Gemini CLI und Claude Desktop.
Welche ContextStream-Runtime verwende ich?
ContextStream hat unabhängige Release-Linien. Eine gehostete 0.5.x-Version und eine 0.4.x-npm-Version sind unterschiedliche Runtimes, kein Beleg dafür, dass einer der Updater defekt ist.
Runtime | So erkennst du sie | Versionslinie | Kanonische Release-Metadaten und Hinweise |
Gehostetes MCP | Deine Editor-Konfiguration verwendet | Rust MCP |
|
Installiertes Rust-MCP | Dein Editor startet ein | Rust MCP | Dasselbe maschinenlesbare R2-Manifest; |
Legacy-npm-MCP (dieses Repository) | Dein Editor startet | TypeScript MCP | GitHub-Releases und die CHANGELOG.md dieses Repositorys. |
ContextStream Desktop | Prüfe die Info-/Update-Oberfläche der App. Desktop kann die lokale Sync-Bridge ausführen, aber das ändert nichts an der MCP-Runtime, die in deinem Editor konfiguriert ist. | Desktop | Der In-App-Updater und die öffentliche Desktop-Versionsdatei, die |
Die von help(action="version") gemeldete version ist immer der MCP-Prozess, der diesen Tool-Aufruf bedient. Die Desktop-Version ist separat, auch wenn Desktop das lokale Repository hinzugefügt oder indexiert hat.
Warum vergessen KI-Coding-Assistenten alles?
Weil jedes Gespräch bei null beginnt. Deine KI liest dieselben Dateien erneut, leitet dieselbe Architektur erneut ab, wiederholt den Fehler von letzter Woche und verliert den Faden, sobald das Kontextfenster komprimiert wird. ContextStream behebt die gesamte Problemklasse:
Ohne ContextStream | Mit ContextStream |
KI durchsucht Dateien einzeln mit grep, verbrennt Tokens | Semantische Codesuche findet Code nach Bedeutung in Millisekunden |
Kontext geht verloren, wenn Gespräche lang werden | Erfassung vor der Komprimierung speichert kritischen Zustand, bevor er verloren geht — und stellt ihn danach wieder her |
Dieselben Fehler wiederholen sich über Sitzungen hinweg | Lehren-System zeigt vergangene Fehlschläge bevor deine KI sie wiederholt |
„Warum haben wir X gewählt?“ — niemand erinnert sich | Entscheidungen und Pläne bleiben bestehen und tauchen wieder auf, wenn sie relevant sind |
Teamwissen über Tools verstreut | GitHub-, Slack- und Notion-Wissen, automatisch abgefragt |
Generische Antworten ohne Projektbewusstsein | Workspace-Kontext bei jeder einzelnen Nachricht |
Was deine KI nach der Einrichtung kann
🔍 Code nach Bedeutung finden, nicht nach Schlüsselwörtern
Frage „Wo behandeln wir die Authentifizierung?“ und erhalte sofort rankierte, Snippet-genaue Antworten. Hybride semantische + Schlüsselwortsuche mit Exakt-Token-Fusion, sodass eine Symbolsuche wie resolveWriteScope die Definition trifft — nicht ähnlich aussehende Treffer. Die Suche funktioniert, sobald die Einrichtung abgeschlossen ist: Schlüsselwort-Ergebnisse kommen sofort zurück, während der semantische Index im Hintergrund aufgebaut wird.
🧠 Sich an alles Wichtige erinnern
Entscheidungen, Lehren, Präferenzen, Pläne, Aufgaben, Dokumentationen, Runbooks — während der Arbeit erfasst und in späteren Turns, in späteren Sitzungen, sogar nach Kontextkomprimierung automatisch wieder angezeigt. Das Transkript jeder früheren Sitzung ist indexiert und abfragbar: „Was haben wir letzte Woche zum ID-Format beschlossen?“ funktioniert einfach.
💬 Bei Problemen den Workspace fragen
Das integrierte Agent Q&A-Tool ermöglicht es deiner KI, die Wissensbasis deines Workspaces zu befragen — frühere Entscheidungen, Konventionen, Runbooks, Leitplanken — und eine fundierte Antwort mit Quellenangaben für jede Behauptung zu erhalten.
🕸️ Den gesamten Graphen sehen
„Wovon hängt UserService ab?“ „Was bricht, wenn ich diese Funktion ändere?“ Abhängigkeitszuordnung, Auswirkungsanalyse, Erkennung zirkulärer Abhängigkeiten und totem Code in deiner gesamten Codebasis.
📦 Kontext zwischen Agenten übergeben
ContextCapsule verpackt den Projektzustand in einen portablen, teilbaren Snapshot — einen neuen Agenten bootstrappen, an einen Teammitglied übergeben oder einen token-geschützten Link mit einem externen Agenten teilen.
🛡️ Lange Sitzungen überstehen
Der Token-Druck wird kontinuierlich überwacht (mit Schwellenwerten, die an das Kontextfenster deines Modells angepasst sind). Vor der Komprimierung wird der kritische Zustand als Checkpoint gesichert; danach wird der Kontext wiederhergestellt.
Welche KI-Editoren und Agenten werden unterstützt?
Editor / Agent | Verwaltete Regeln | MCP-Konfiguration | Lifecycle-Hooks |
Claude Code | ✅ | ✅ | ✅ |
Cursor | ✅ ( | ✅ | ✅ |
Windsurf | ✅ | ✅ | ✅ |
Cline | ✅ | ✅ | ✅ |
Roo Code | ✅ | ✅ | ✅ |
Kilo Code | ✅ | ✅ | regelbasiert |
VS Code + GitHub Copilot | ✅ | ✅ (inkl. gehostetem OAuth) | regelbasiert |
Codex CLI | ✅ | ✅ | regelbasiert |
OpenCode | ✅ | ✅ | regelbasiert |
Aider | ✅ | ✅ | regelbasiert |
Antigravity | ✅ | ✅ | regelbasiert |
Claude Desktop | — | ✅ | — |
Alles, was das Model Context Protocol spricht, kann sich verbinden – die Tabelle zeigt nur, was der Setup-Assistent automatisch konfiguriert.
Tools
36 Tools in der Standardoberfläche, organisiert als konsolidierte Domänen, sodass sie ~75 % weniger Tokens kosten als einzelne Registrierungen. Die Tools, die Ihre KI erhält:
init / context – Workspace-Zustand + der richtige Kontext bei jeder Nachricht
search – semantische, hybride, Stichwort-, Muster-, erschöpfende und Refactoring-Modi
memory – Ereignisse, Entscheidungen, Dokumente, Runbooks, Aufgaben, Todos, Diagramme, Transkripte
session – Entscheidungen & Lektionen erfassen, frühere Sitzungen abrufen, Pläne, rückwirkende Erfassung
qa – fundierte Fragen & Antworten über Ihre Workspace-Wissensdatenbank, mit Zitaten
graph – Abhängigkeiten, Auswirkungsanalyse, zirkuläre Abhängigkeiten, ungenutzter Code
capsule – portable, teilbare Kontext-Snapshots für Agenten-Übergaben
entity – Tickets, Vorfälle, Releases, Sprints, OKRs, Risiken
project / workspace – Projektindizierung, Umfang und Workspace-Verwaltung
skill – wiederverwendbare Anweisungs- und Aktionsbündel, über Tools hinweg portabel
media – Bilder, Videos, Audio und Dokumente indizieren und durchsuchen
vcs / reminder / integration / help – Repo-Links, Erinnerungen, Integrationen, Diagnose
Plus fokussierte Schreibwerkzeuge (capture_plan, memory_create_doc, session_capture_lesson, …), damit Agenten, die Toolnamen anzeigen, zeigen, was sie tun. Ihre KI nutzt all dies automatisch – Sie programmieren einfach.
Daily Recaps
Tägliche Zusammenfassungen werden um etwa 23:00 Uhr in Ihrer konfigurierten Zeitzone generiert, wenn genügend Aktivität vorhanden ist. Sie werden nicht durch das Schließen eines Editors, das Ändern einer MCP-session_id oder das Starten eines neuen Chats ausgelöst, sodass langlebige VS Code/Copilot-Verbindungen den nächtlichen Job nicht unterdrücken.
session(action="list_recaps", workspace_id="<uuid>", limit=30)listet abgeschlossene Zusammenfassungen zuerst nach neuesten mitrecap_date- undgenerated_at-Zeitstempeln auf.session(action="trigger_recap", workspace_id="<uuid>")stellt eine asynchrone manuelle Zusammenfassung in die Warteschlange. Rufen Sie danachlist_recapsauf, um den Abschluss zu überprüfen.
Diese Aktionen verwenden denselben Zusammenfassungsverlauf und Generierungsdienst wie das Dashboard.
CLI-Befehle
contextstream-mcp setup # interactive onboarding wizard
contextstream-mcp setup --yes # zero-prompt setup with sane defaults (great for CI/dotfiles)
contextstream-mcp doctor # ✓/✗ diagnostics: auth, scope, index health, rules, hooks
contextstream-mcp index [path] # index a project folder on demandsetup --editors=claude,cursor begrenzt die Konfiguration auf bestimmte Editoren; doctor sagt Ihnen genau, was falsch konfiguriert ist und wie Sie es beheben können – es wird automatisch am Ende jedes Setups ausgeführt.
Manuelle Konfiguration
Überspringen Sie dies, wenn Sie den Setup-Assistenten ausgeführt haben.
claude mcp add contextstream -- npx --prefer-online -y @contextstream/mcp-server@latest
claude mcp update contextstream -e CONTEXTSTREAM_API_URL=https://api.contextstream.io -e CONTEXTSTREAM_API_KEY=your_key{
"mcpServers": {
"contextstream": {
"command": "npx",
"args": ["--prefer-online", "-y", "@contextstream/mcp-server@latest"],
"env": {
"CONTEXTSTREAM_API_URL": "https://api.contextstream.io",
"CONTEXTSTREAM_API_KEY": "your_key"
}
}
}
}Speicherorte: ~/.cursor/mcp.json • ~/Library/Application Support/Claude/claude_desktop_config.json
Lokaler Server:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"contextstream": {
"type": "local",
"command": ["npx", "-y", "contextstream-mcp"],
"environment": {
"CONTEXTSTREAM_API_KEY": "{env:CONTEXTSTREAM_API_KEY}"
},
"enabled": true
}
}
}Remote-Server:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"contextstream": {
"type": "remote",
"url": "https://mcp.contextstream.com",
"enabled": true
}
}
}Für die lokale Variante exportieren Sie CONTEXTSTREAM_API_KEY, bevor Sie OpenCode starten.
Speicherorte: ./opencode.json • ~/.config/opencode/opencode.json
Der einfachste Weg ist das gehostete Remote-MCP mit integriertem OAuth – kein API-Schlüssel in der Konfigurationsdatei:
{
"servers": {
"contextstream": {
"type": "http",
"url": "https://mcp.contextstream.io/mcp?default_context_mode=fast"
}
}
}setup setzt VS Code/Copilot standardmäßig auf dieses gehostete Remote in der Produktions-Cloud. Um eine lokale Laufzeit zu erzwingen, führen Sie setup mit CONTEXTSTREAM_VSCODE_MCP_MODE=local aus oder verwenden Sie direkt stdio:
{
"servers": {
"contextstream": {
"type": "stdio",
"command": "npx",
"args": ["--prefer-online", "-y", "@contextstream/mcp-server@latest"],
"env": {
"CONTEXTSTREAM_API_URL": "https://api.contextstream.io",
"CONTEXTSTREAM_API_KEY": "your_key",
"CONTEXTSTREAM_TOOLSET": "complete"
}
}
}
}Halten Sie sowohl ~/.copilot/mcp-config.json (verwendet mcpServers) als auch .vscode/mcp.json (verwendet servers) synchron – setup schreibt beide.
Verwenden Sie /mcp add interaktiv oder fügen Sie es zu ~/.copilot/mcp-config.json hinzu:
{
"mcpServers": {
"contextstream": {
"command": "npx",
"args": ["--prefer-online", "-y", "@contextstream/mcp-server@latest"],
"env": {
"CONTEXTSTREAM_API_URL": "https://api.contextstream.io",
"CONTEXTSTREAM_API_KEY": "your_key",
"CONTEXTSTREAM_TOOLSET": "complete"
}
}
}
}Details finden Sie in der GitHub Copilot CLI-Dokumentation.
Installieren Sie das gehostete MCP als Gemini-CLI-Erweiterung (streamable-http):
gemini extensions install https://github.com/contextstream/mcp-serverDie Erweiterung fragt nach CONTEXTSTREAM_API_KEY und verbindet sich mit https://mcp.contextstream.io/mcp. Nach dem täglichen Galerie-Crawl erscheint sie auch unter https://geminicli.com/extensions/.
Ordner, die keinem Projekt zugeordnet sind (Ihr Home-Verzeichnis, Ad-hoc-Notizverzeichnisse), funktionieren weiterhin: init fällt auf einen versteckten Catch-all-Workspace im Workspace-only-Modus zurück, memory/session/context-Tools funktionieren weiterhin, und projektgebundene Aktionen geben geführte Abhilfe statt roher Fehler zurück. Sobald Sie einen zugeordneten Projektordner betreten, übernimmt der echte Workspace/das echte Projekt.
FAQ
Was ist ein MCP-Server?
Ein MCP-Server (Model Context Protocol) stellt KI-Assistenten über ein Standardprotokoll Tools und Kontext bereit. Claude Code, Cursor, VS Code Copilot, Windsurf und die meisten modernen KI-Codierungstools sind MCP-Clients – installieren Sie einen Server, und jeder Client, den Sie verwenden, erhält dieselben Fähigkeiten.
Funktioniert ContextStream mit Claude Code / Cursor / Copilot / Windsurf?
Ja – alle, plus Cline, Roo Code, Kilo Code, Codex CLI, OpenCode, Aider, Antigravity, Gemini CLI und Claude Desktop. Der Setup-Assistent konfiguriert die MCP-Konfiguration, verwalteten Regeln und (wo der Editor sie unterstützt) Lifecycle-Hooks jedes Editors automatisch.
Ist mein Code privat?
Ihr Code ist privat und sicher gespeichert, pro Workspace isoliert ohne mandantenübergreifenden Zugriff. Sie steuern Ausschlüsse mit .contextstream/ignore (gitignore-Syntax), und project(action="purge") de-indiziert ein Projekt auf Anfrage vollständig – ohne Ihre erfassten Erinnerungen zu berühren.
Was kostet es?
Es gibt eine kostenlose Stufe für den Einstieg. Größere Indizes, der vollständige Code-Graph und Teamfunktionen sind in kostenpflichtigen Plänen enthalten: siehe Preise.
Wie schneidet ContextStream bei Speicher-Benchmarks ab?
90,0 % auf der vollständigen 500-Instanzen-LongMemEval-S-Suite mit dem offiziellen GPT-4o-Judge (89,6 % Single-Shot) – schlägt supermemorys veröffentlichte 85,4 % mit statistischer Signifikanz und erreicht Zeps veröffentlichte 90,2 % innerhalb des Konfidenzintervalls. Bei Multi-Session-Abruf im Speziellen erreicht ContextStream 81,2 % gegenüber Zeps veröffentlichten 57,9 %. Methodik und Aufschlüsselungen nach Familie: contextstream.io/benchmarks.
Wie unterscheidet sich das von anderen KI-Speichertools?
Die meisten Tools speichern Notizen. ContextStream kombiniert Speicher (Entscheidungen, Lektionen, Pläne, Sitzungstranskripte), semantische Codesuche über Ihre indizierte Codebasis, einen Abhängigkeits-/Wissensgraphen, fundierte Fragen & Antworten mit Zitaten und Team-Integrationen (GitHub, Slack, Notion) hinter einem MCP-Server – und liefert proaktiv den relevanten Ausschnitt bei jeder Nachricht, statt darauf zu warten, gefragt zu werden.
Kann ich es in CI- oder skriptbasierten Umgebungen verwenden?
Ja: setup --yes führt den gesamten Assistenten ohne Eingabeaufforderungen aus (setzen Sie CONTEXTSTREAM_API_KEY in der Umgebung), --editors=<list> begrenzt ihn, und contextstream-mcp doctor liefert skriptbare ✓/✗-Diagnosen.
Muss ich auf die Indizierung warten?
Nein. Die Projektindizierung läuft im Hintergrund – die Stichwortsuche funktioniert sofort, und semantische Ergebnisse füllen sich, während der Index aufgebaut wird. Überprüfen Sie den Fortschritt jederzeit mit contextstream-mcp doctor.
Wie deinstalliere oder deaktiviere ich es?
Entfernen Sie den contextstream-Eintrag aus der MCP-Konfiguration Ihres Editors und setzen Sie CONTEXTSTREAM_HOOK_ENABLED=false (oder führen Sie setup erneut aus), um Hooks zu deaktivieren. project(action="forget_local") löst einen Ordner lokal, ohne serverseitige Daten zu berühren.
Fehlerbehebung
Beginnen Sie mit
contextstream-mcp doctor– es prüft Authentifizierung, API-Erreichbarkeit, Ordnerumfang, Indexzustand, Regeldateien und Hooks, mit einem Korrekturhinweis pro Fehler.Entfernen Sie doppelte ContextStream-Einträge über Workspace-/User-Konfigurationsbereiche hinweg.
Überprüfen Sie, dass
CONTEXTSTREAM_API_URLundCONTEXTSTREAM_API_KEYgesetzt sind; entfernen Sie veraltete Versions-Pins wie@contextstream/mcp-server@0.3.xx.Starten Sie Ihren Editor nach Konfigurationsänderungen neu.
Gehostetes HTTP-OAuth: Der OAuth-Fluss des Remote-Transports läuft über
vscode.dev; wo das blockiert ist (Unternehmensnetzwerke), verwenden Sie stattdessen stdio mit einem API-Schlüssel.SDK-Kompatibilität:
@modelcontextprotocol/sdk1.28.0+ führt bahnbrechende Änderungen ein; dieses Paket pinnt>=1.25.1 <1.28.0. Wenn Sie beim Start Zod-Schemafehler sehen, überprüfen Sie Ihre SDK-Auflösung.
Links
Website: https://contextstream.io • Dokumentation: https://contextstream.io/docs • Changelog: CHANGELOG.md
Available Tools
36 toolsbatch_operationsBatch operationsAInspect
Execute multiple independent read-only operations in one call. Rejects write or destructive operations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
capsuleContextCapsuleARead-onlyIdempotentInspect
ContextCapsule: portable, shareable, hydrate-on-demand snapshots of project context. Use capsule when the user pastes a /c/ link or capsule token, asks for a handoff/share/team/external-agent link, wants to bootstrap a fresh agent with project state, asks for a paste-ready handoff prompt (bootstrap prompt / prompt for another LLM), wants share-token graphs, or wants to list/audit capsules. Do not use capsule for normal turn-by-turn retrieval; use context instead. Team share links are authenticated and reusable by default; external_agent/public_link/support shares are token-gated and single-use by default.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ContextCapsule or AI Brain share URL | |
| mode | No | Capsule mode | |
| name | No | Capsule/share name | |
| graph | No | Graph kind for action=graph | |
| limit | No | Maximum audit events or list caps | |
| scope | No | Capsule scope | |
| action | Yes | Action to perform | |
| format | No | Output format | |
| offset | No | Audit result offset | |
| hydrate | No | Whether to fully hydrate the capsule | |
| purpose | No | Capsule purpose | |
| audience | No | Share audience. team creates an authenticated member link; external_agent/public_link/support create token-gated links. self is valid for capsule policy but does not mint share tokens. | |
| chunk_id | No | Chunk ID for chunk action | |
| max_uses | No | Burn-after-N-reads cap for action=share. Team links default to no max-use cap; token-gated single-use links default to max_uses=1 with a short grace window after first open. | |
| sections | No | Explicit sections to include | |
| share_id | No | ContextCapsule share UUID | |
| multi_use | No | Allow the share to be opened multiple times until expiry. Defaults to true for team links and false for token-gated links. | |
| capsule_id | No | ContextCapsule ID | |
| event_kind | No | Filter audit events by kind | |
| project_id | No | Project ID (UUID). | |
| permissions | No | Permissions for the capsule/share | |
| share_token | No | Existing brain_/capsule_ share token | |
| access_scope | No | Filter audit events by access scope | |
| include_code | No | Code inclusion mode | |
| workspace_id | No | Workspace ID (UUID). | |
| cursor_chunk_id | No | NDJSON stream cursor chunk ID | |
| expires_in_days | No | Share expiry in days (defaults: team=7, external_agent/public_link/support=1) | |
| redaction_level | No | Redaction level | |
| include_personal | No | Include personal artifacts | |
| refresh_if_stale | No | Force regenerate manifest if stale | |
| max_inline_tokens | No | Cap inline section tokens during action=create | |
| require_unlock_key | No | For action=share: require a one-time unlock key to open the share | |
| unlock_destinations | No | For action=share with require_unlock_key=true: destinations that receive the unlock key |
capture_planCapture planCInspect
Create a new implementation plan.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Input parameter: tags. | |
| goals | No | Input parameter: goals. | |
| steps | No | Input parameter: steps. | |
| title | Yes | Short descriptive title. | |
| due_at | No | Input parameter: due at. | |
| status | No | Input parameter: status. | |
| project_id | No | Project ID (UUID). | |
| description | No | Short description. | |
| is_personal | No | Input parameter: is personal. | |
| workspace_id | No | Workspace ID (UUID). |
contextGet smart context for user queryARead-onlyIdempotentInspect
CALL THIS BEFORE EVERY AI RESPONSE to get relevant context.
This is the KEY tool for token-efficient AI interactions. It:
Analyzes the user's message to understand what context is needed
Retrieves only relevant context in a minified, token-efficient format
Replaces the need to include full chat history in prompts
Format options:
'minified': Ultra-compact D:decision|P:preference|M:memory (default, ~200 tokens)
'readable': Line-separated with labels
'structured': JSON-like grouped format
Type codes: W=Workspace, P=Project, D=Decision, M=Memory, I=Insight, T=Task, L=Lesson
Context Pack:
mode='pack' adds code context + distillation (higher credit cost)
Example usage:
User asks "how should I implement auth?"
AI calls context(user_message="how should I implement auth?")
Gets: "W:Maker|P:contextstream|D:Use JWT for auth|D:No session cookies|M:Auth API at /auth/..."
AI responds with relevant context already loaded
This saves ~80% tokens compared to including full chat history.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Context mode: standard (default), pack (includes code context), fast (cached quick response) | |
| format | No | Context format (default: minified) | |
| distill | No | Use distillation for context pack (default: true) | |
| max_tokens | No | Maximum tokens for context (default: 800) | |
| project_id | No | Project ID (UUID). | |
| session_id | No | Session ID for transcript association (required if save_exchange is true) | |
| client_name | No | Client name for transcript metadata (e.g., 'claude', 'cursor') | |
| user_message | Yes | The user message to analyze and get context for | |
| workspace_id | No | Workspace ID (UUID). | |
| save_exchange | No | Save this exchange to the transcript for later search (background task) | |
| session_tokens | No | Cumulative session token count for context pressure calculation | |
| assistant_message | No | Previous assistant response to save along with user message (for complete exchange capture) | |
| context_threshold | No | Custom context window threshold (defaults to 70k) |
entityStructured Entity OperationsBRead-onlyIdempotentInspect
Unified CRUD across taxonomy expansion entities. Kinds: ticket, handoff, backlog_view, incident, release, experiment, goal, key_result, sprint, review, risk. Actions: list, get, create, update, delete. Body is free-form JSON forwarded to the API; workspace_id/project_id default to active scope when omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID (required for get / update / delete) | |
| body | No | JSON body for create / update | |
| kind | Yes | Entity kind | |
| query | No | Filter params for list | |
| action | Yes | Action to perform | |
| project_id | No | Project ID (UUID). | |
| workspace_id | No | Workspace ID (UUID). |
execute_operationExecute operationAInspect
Execute a hidden or deferred capability returned by tool_search.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
flashSession instructions (flash alias)CRead-onlyIdempotentInspect
Alias of instruct. Session-scoped instruction cache operations. Actions: bootstrap, get, push, ack, clear, stats, checkpoint, verify.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Entry IDs to acknowledge (for ack) | |
| limit | No | Maximum entries (for get) | |
| action | Yes | Action to perform | |
| entries | No | Entries to push (for push) | |
| session_id | Yes | Session identifier | |
| workspace_id | No | Workspace ID (UUID). | |
| increment_turn | No | Increment turn counter (for push) | |
| expected_version | No | Expected version for checkpoint verify | |
| force_version_bump | No | Force version bump even with no new entries (for push) |
generate_editor_rulesGenerate editor AI rulesBInspect
Generate AI rule files for editors (Cursor, Cline, Kilo Code, Roo Code, Claude Code, GitHub Copilot, Aider). These rules instruct the AI to automatically use ContextStream for memory and context. Supported editors: codex, opencode, cursor, windsurf, cline, kilo, roo, claude, aider, antigravity, copilot
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Rule verbosity mode (default: minimal) | |
| dry_run | No | If true, return content without writing files | |
| editors | No | Which editors to generate rules for. Defaults to all. | |
| folder_path | No | Absolute path to the project folder (defaults to IDE root/cwd) | |
| project_name | No | Project name to include in rules | |
| workspace_id | No | Workspace ID to include in rules | |
| workspace_name | No | Workspace name to include in rules | |
| additional_rules | No | Additional project-specific rules to append | |
| overwrite_existing | No | Allow overwriting existing rule files. ContextStream block updates preserve non-ContextStream content when supported. |
generate_rulesGenerate ContextStream rulesCInspect
Generate AI rule files for editors (Cursor, Cline, Kilo Code, Roo Code, Claude Code, GitHub Copilot, Aider). Defaults to the current project folder; no folder_path required when run from a project. Supported editors: codex, opencode, cursor, windsurf, cline, kilo, roo, claude, aider, antigravity, copilot
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Rule verbosity: bootstrap (~15 lines, recommended), minimal (~80 lines), full (~600 lines) | bootstrap |
| dry_run | No | If true, return content without writing files | |
| editors | No | Which editors to generate rules for. Defaults to all. | |
| folder_path | No | Absolute path to the project folder (defaults to IDE root/cwd) | |
| apply_global | No | Also write global rule files for supported editors | |
| project_name | No | Project name to include in rules | |
| workspace_id | No | Workspace ID to include in rules | |
| install_hooks | No | Install Claude Code hooks to enforce ContextStream-first search. Defaults to true for Claude users. Set to false to skip. | |
| workspace_name | No | Workspace name to include in rules | |
| additional_rules | No | Additional project-specific rules to append | |
| overwrite_existing | No | Overwrite existing rule files (default: true). User content outside the ContextStream block is preserved when block updates are supported. | |
| include_pre_compact | No | Include PreCompact hook for automatic state saving before context compaction. Defaults to true. |
graphGraphBRead-onlyIdempotentInspect
Code graph analysis. Actions: dependencies (module deps), impact (change impact), call_path (function call path), related (related nodes), path (path between nodes), decisions (decision history), ingest (build graph), circular_dependencies, unused_code, contradictions, usages (reverse deps).
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | For ingest: wait for completion | |
| limit | No | Maximum number of results to return. | |
| action | Yes | Action to perform | |
| source | No | For call_path | |
| target | No | For dependencies/impact | |
| node_id | No | For related/contradictions | |
| max_depth | No | Maximum traversal depth. | |
| source_id | No | For path | |
| target_id | No | For path | |
| project_id | No | Project ID (UUID). | |
| target_type | No | For usages: module|function|type|variable | |
| workspace_id | No | Workspace ID (UUID). | |
| include_transitive | No | Include transitive dependencies. |
helpHelpARead-onlyIdempotentInspect
Utility and help. Actions: tools (list available tools), auth (current user), version (server version), editor_rules (generate AI editor rules and install hooks for real-time file indexing), enable_bundle (enable tool bundle in progressive mode), team_status (team subscription info - team plans only).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Input parameter: mode. | |
| action | Yes | Action to perform | |
| bundle | No | Input parameter: bundle. | |
| format | No | Input parameter: format. | |
| dry_run | No | Input parameter: dry run. | |
| editors | No | Input parameter: editors. | |
| category | No | Input parameter: category. | |
| folder_path | No | Absolute path to the local folder. | |
| list_bundles | No | Input parameter: list bundles. | |
| project_name | No | Input parameter: project name. | |
| workspace_id | No | Workspace ID (UUID). | |
| install_hooks | No | Install Claude Code hooks (PreToolUse, UserPromptSubmit, PostToolUse). Default: true for Claude users. | |
| workspace_name | No | Input parameter: workspace name. | |
| additional_rules | No | Input parameter: additional rules. | |
| include_post_write | No | Include PostToolUse hook for real-time file indexing after Edit/Write operations. Default: true. | |
| include_pre_compact | No | Include PreCompact hook for auto-saving state before compaction. Default: true. |
initInitialize conversation sessionAInspect
Initialize a new conversation session and automatically retrieve relevant context. This is the FIRST tool AI assistants should call when starting a conversation. Returns: workspace info, project info, recent memory, recent decisions, relevant context, high-priority lessons, and ingest_recommendation.
The ingest_recommendation field indicates if the project needs indexing for code search:
If [INGEST_RECOMMENDED] appears, ask the user if they want to enable semantic code search
Benefits: AI-powered code understanding, dependency analysis, better context retrieval
If user agrees, run: project(action="ingest_local", path="<project_path>")
IMPORTANT: Pass the user's FIRST MESSAGE as context_hint to get semantically relevant context! Example: init(folder_path="/path/to/project", context_hint="how do I implement auth?")
This does semantic search on the first message. You only need context on subsequent messages.
| Name | Required | Description | Default |
|---|---|---|---|
| auto_index | No | Automatically create and index project from IDE workspace (default: true) | |
| project_id | No | Project to initialize context for (UUID, or a project name to look up) | |
| session_id | No | Custom session ID (auto-generated if not provided) | |
| folder_path | No | Current workspace/project folder path (absolute). Use this when IDE roots are not available. | |
| context_hint | No | RECOMMENDED: Pass the user's first message here for semantic search. This finds relevant context from ANY time, not just recent items. | |
| workspace_id | No | Workspace to initialize context for | |
| is_post_compact | No | Set true immediately after context compaction to restore snapshots/transcripts when hooks are unavailable. Can also be enabled by CONTEXTSTREAM_RESTORE_CONTEXT=true. | |
| include_decisions | No | Include recent decisions (default: true) | |
| allow_no_workspace | No | If true, allow session_init to return connected even if no workspace is resolved (workspace-level tools may not work). | |
| include_recent_memory | No | Include recent memory events (default: true) | |
| skip_project_creation | No | If true, skip automatic project creation/matching. Use for parent folders containing multiple projects where you want workspace-level context but no project-specific context. |
instructSession instructionsCRead-onlyIdempotentInspect
Session-scoped instruction cache operations. Actions: bootstrap, get, push, ack, clear, stats, checkpoint, verify.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Entry IDs to acknowledge (for ack) | |
| limit | No | Maximum entries (for get) | |
| action | Yes | Action to perform | |
| entries | No | Entries to push (for push) | |
| session_id | Yes | Session identifier | |
| workspace_id | No | Workspace ID (UUID). | |
| increment_turn | No | Increment turn counter (for push) | |
| expected_version | No | Expected version for checkpoint verify | |
| force_version_bump | No | Force version bump even with no new entries (for push) |
integrationIntegrationCRead-onlyIdempotentInspect
Integration operations for Slack, GitHub, and Notion. Provider: slack, github, notion, all. Actions: status, search, stats, activity, contributors, knowledge, summary, channels (slack), discussions (slack), repos (github), issues (github), create_page (notion), create_database (notion), list_databases (notion), search_pages (notion with smart type detection - filter by event_type, status, priority, has_due_date, tags), get_page (notion), query_database (notion), update_page (notion), team_activity (aggregated team activity - team plans only).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days for stats/summary (default: 7) | |
| tags | No | Filter by tags, comma-separated (for Notion search_pages) | |
| limit | No | Maximum number of results to return. | |
| query | No | Search query string. | |
| since | No | ISO 8601 timestamp to query changes since. | |
| sorts | No | Sort order (for Notion query_database) | |
| title | No | Page/database title (for Notion create_page/update_page/create_database) | |
| until | No | Input parameter: until. | |
| action | Yes | Action to perform | |
| filter | No | Query filter (for Notion query_database) | |
| status | No | Filter by status property, e.g. 'Done', 'In Progress' (for Notion search_pages) | |
| content | No | Page content in Markdown (for Notion create_page/update_page) | |
| page_id | No | Page ID (for Notion get_page/update_page) | |
| priority | No | Filter by priority property, e.g. 'High', 'Medium', 'Low' (for Notion search_pages) | |
| provider | Yes | Integration provider | |
| node_type | No | Filter knowledge by type (for Notion knowledge) | |
| event_type | No | Filter by detected content type (for Notion search_pages) | |
| project_id | No | Project ID (UUID). | |
| properties | No | Page properties (for Notion update_page) | |
| database_id | No | Database ID (for Notion query_database/search_pages/activity) | |
| description | No | Database description (for Notion create_database) | |
| has_due_date | No | Filter to pages with or without due dates (for Notion search_pages) | |
| workspace_id | No | Workspace ID (UUID). | |
| parent_page_id | No | Parent page ID (for Notion create_page/create_database) | |
| parent_database_id | No | Parent database ID (for Notion create_page). MUST call list_databases first - do NOT use IDs from memory |
mediaMediaARead-onlyIdempotentInspect
Media operations for video/audio/image assets. Enables AI agents to index, search, and retrieve media with semantic understanding - solving the "LLM as video editor has no context" problem for tools like Remotion.
Actions:
index: Index a local media file or external URL. Triggers ML processing (Whisper transcription, CLIP embeddings, keyframe extraction).
status: Check indexing progress for a content_id. Returns transcript_available, keyframe_count, duration.
search: Semantic search across indexed media. Returns timestamps, transcript excerpts, keyframe URLs.
get_clip: Get clip details for a time range. Supports output_format: remotion (frame-based props), ffmpeg (timecodes), raw.
list: List indexed media assets.
delete: Remove a media asset from the index.
Example workflow:
media(action="index", file_path="/path/to/video.mp4") → get content_id
media(action="status", content_id="...") → wait for indexed
media(action="search", query="where John explains authentication") → get timestamps
media(action="get_clip", content_id="...", start="1:34", end="2:15", output_format="remotion") → get Remotion props
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End time for clip. Formats: "2:15", "135s", or seconds as string | |
| fps | No | Frames per second for remotion format (default: 30) | |
| tags | No | Tags to associate with media | |
| limit | No | Maximum results to return | |
| query | No | Semantic search query for media content | |
| start | No | Start time for clip. Formats: "1:34", "94s", or seconds as string | |
| action | Yes | Action to perform | |
| file_path | No | Local path to media file for indexing | |
| content_id | No | Content ID from index operation | |
| project_id | No | Project ID (UUID). | |
| content_type | No | Type of media content. Use video, audio, image, or document; friendly aliases like photos/images and docs/PDFs/slides are accepted. | |
| external_url | No | External URL to media file for indexing | |
| workspace_id | No | Workspace ID (UUID). | |
| content_types | No | Filter search/list to content types: video, audio, image, document. Friendly aliases are accepted. | |
| output_format | No | Output format: remotion (frame-based props for Video component), ffmpeg (timecodes), raw (seconds) | |
| target_project | No | Target child project by folder name or project name |
memoryMemoryARead-onlyIdempotentInspect
Persistent memory — docs, runbooks, specs, ADRs, decisions, lessons, tasks, and todos live HERE, never on disk: when the user mentions "the doc on X", "our runbook for Y", or "why we decided Z", use action="search" or list_docs/get_doc — NOT filesystem tools. Tasks here are lightweight project-tracking items; for tickets, bugs, incidents, releases, or handoffs use the entity tool instead. Event actions: create_event, get_event, update_event, delete_event (accepts event_id UUID or exact title; delete_all=true bulk-removes exact-title matches), list_events, distill_event, import_batch (bulk import array of events). Node actions: create_node, get_node, update_node, delete_node (accepts node_id UUID or exact title; delete_all=true bulk-removes exact-title matches), list_nodes, supersede_node. Query actions: search, decisions, timeline, summary. Task actions: create_task (create task, optionally linked to plan), get_task, update_task (can link/unlink task to plan via plan_id), delete_task, list_tasks, reorder_tasks. Todo actions: create_todo, list_todos, get_todo, update_todo, delete_todo, complete_todo. Diagram actions: create_diagram, list_diagrams, get_diagram, update_diagram, delete_diagram. Doc actions: create_doc, list_docs, get_doc, update_doc, delete_doc, create_roadmap. Transcript actions: list_transcripts (list saved conversations), get_transcript (get full transcript by ID), search_transcripts (semantic search across conversations), search_archive (hosted archive tier; local npm returns unavailable), delete_transcript. Team actions (team plans only): team_tasks, team_todos, team_diagrams, team_docs.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode metadata (capture/create filters) and query filter. Matches both structured `mode` and `mode:<value>` tag fallback. | |
| tags | No | Tags for event or task categorization | |
| agent | No | Agent identity metadata (capture/create filters) and query filter. Matches both structured `agent` and `agent:<name>` tag fallback. | |
| limit | No | Maximum number of results to return. | |
| order | No | Task order within plan | |
| query | No | Search query string. | |
| scope | No | Archive collection scope for search_archive: transcripts, decisions, lessons, docs | |
| title | No | Short descriptive title. | |
| action | Yes | Action to perform | |
| doc_id | No | Doc ID for get_doc/update_doc/delete_doc. For get_doc, accepts UUID or title/query text. | |
| due_at | No | Due date (ISO 8601) for todo | |
| events | No | Array of events for import_batch action | |
| reason | No | For supersede_node: reason for the supersede | |
| status | No | Backward-compatible alias for task_status in task actions | |
| content | No | Full content/body. | |
| node_id | No | Node ID (UUID). | |
| plan_id | No | Plan ID (full 36-char UUID): for create_task (link to plan), update_task (set UUID to link, null to unlink), list_tasks (filter by plan) | |
| task_id | No | Task ID for get_task/update_task/delete_task (full 36-char UUID) | |
| todo_id | No | Todo ID for get_todo/update_todo/delete_todo (full 36-char UUID) | |
| category | No | Input parameter: category. | |
| doc_type | No | Document type | |
| event_id | No | Event ID (UUID). | |
| metadata | No | Input parameter: metadata. | |
| priority | No | Task priority | |
| task_ids | No | Task IDs for reorder_tasks | |
| code_refs | No | Input parameter: code refs. | |
| completed | No | Todo completion flag for update_todo | |
| node_type | No | Input parameter: node type. | |
| relations | No | Input parameter: relations. | |
| delete_all | No | For delete_node/delete_event with a non-UUID lookup: delete ALL exact-title matches in one call instead of erroring on ambiguity | |
| diagram_id | No | Diagram ID for get_diagram/update_diagram/delete_diagram (full 36-char UUID) | |
| event_type | No | Input parameter: event type. | |
| milestones | No | Milestones for create_roadmap action | |
| project_id | No | Project ID (UUID). | |
| provenance | No | Input parameter: provenance. | |
| session_id | No | Session ID filter for list_transcripts | |
| client_name | No | Client name filter for list_transcripts (e.g., 'claude', 'cursor') | |
| description | No | Description for task | |
| is_personal | No | Mark as personal (only visible to creator). For create/list actions on todos, diagrams, docs. | |
| new_content | No | For supersede_node: the new content to replace the node with | |
| task_status | No | Task status | |
| todo_status | No | Todo status filter for list_todos, or status update value for update_todo | |
| diagram_type | No | Mermaid diagram type | |
| plan_step_id | No | Which plan step this task implements | |
| workspace_id | No | Workspace ID (UUID). | |
| started_after | No | ISO timestamp - filter transcripts started after this time | |
| todo_priority | No | Todo priority | |
| transcript_id | No | Transcript ID for get_transcript/delete_transcript (full 36-char UUID) | |
| blocked_reason | No | Reason when task is blocked | |
| started_before | No | ISO timestamp - filter transcripts started before this time |
memory_complete_todoComplete todoBInspect
Mark a todo complete. Same handler as memory(action="complete_todo").
| Name | Required | Description | Default |
|---|---|---|---|
| todo_id | Yes | Todo ID or title lookup | |
| project_id | No | Project ID (UUID). | |
| workspace_id | No | Workspace ID (UUID). |
memory_create_docCreate docBInspect
Create a durable doc (spec, runbook, ADR, RFC, etc.). Same handler as memory(action="create_doc").
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Input parameter: tags. | |
| title | Yes | Doc title | |
| content | Yes | Doc body (markdown) | |
| doc_type | No | Doc type (spec, runbook, adr, rfc, general, ...) | |
| metadata | No | Input parameter: metadata. | |
| project_id | No | Project ID (UUID). | |
| is_personal | No | Input parameter: is personal. | |
| workspace_id | No | Workspace ID (UUID). |
memory_create_eventCreate memory eventCInspect
Create a memory event for a workspace/project
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short descriptive title. | |
| content | Yes | Full content/body. | |
| metadata | No | Input parameter: metadata. | |
| code_refs | No | Input parameter: code refs. | |
| event_type | Yes | Input parameter: event type. | |
| project_id | No | Project ID (UUID). | |
| provenance | No | Input parameter: provenance. | |
| workspace_id | No | Workspace ID (UUID). |
memory_create_taskCreate taskBInspect
Create a project-tracking task, optionally linked to a plan step. Same handler as memory(action="create_task").
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Input parameter: tags. | |
| order | No | Input parameter: order. | |
| title | Yes | Task title | |
| plan_id | No | Plan ID when the task belongs to a plan | |
| priority | No | Priority level. | |
| project_id | No | Project ID (UUID). | |
| description | No | Concrete work, acceptance criteria, verification | |
| task_status | No | Input parameter: task status. | |
| plan_step_id | No | Plan step ID (e.g. plan-step-1) | |
| workspace_id | No | Workspace ID (UUID). |
memory_create_todoCreate todoCInspect
Create a lightweight todo. Same handler as memory(action="create_todo").
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Input parameter: tags. | |
| title | No | Short descriptive title. | |
| due_at | No | Due date (ISO 8601) | |
| content | Yes | Todo content | |
| project_id | No | Project ID (UUID). | |
| is_personal | No | Input parameter: is personal. | |
| workspace_id | No | Workspace ID (UUID). | |
| todo_priority | No | low, medium, high, or urgent |
memory_delete_docDelete docBDestructiveInspect
Delete a doc. Same handler as memory(action="delete_doc").
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | Doc ID or title lookup | |
| project_id | No | Project ID (UUID). | |
| workspace_id | No | Workspace ID (UUID). |
memory_update_docUpdate docCInspect
Update an existing doc. Same handler as memory(action="update_doc").
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Input parameter: tags. | |
| title | No | Short descriptive title. | |
| doc_id | Yes | Doc ID or title lookup | |
| content | No | Full content/body. | |
| doc_type | No | Input parameter: doc type. | |
| metadata | No | Input parameter: metadata. | |
| project_id | No | Project ID (UUID). | |
| workspace_id | No | Workspace ID (UUID). |
memory_update_taskUpdate taskCInspect
Update a task (status, fields, plan linkage). Same handler as memory(action="update_task").
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Input parameter: order. | |
| title | No | Short descriptive title. | |
| plan_id | No | ID for the plan. | |
| task_id | Yes | Task ID or title lookup | |
| priority | No | Priority level. | |
| code_refs | No | Input parameter: code refs. | |
| project_id | No | Project ID (UUID). | |
| description | No | Short description. | |
| task_status | No | Input parameter: task status. | |
| plan_step_id | No | ID for the plan step. | |
| workspace_id | No | Workspace ID (UUID). | |
| blocked_reason | No | Input parameter: blocked reason. |
projectProjectCRead-onlyIdempotentInspect
Project management. Actions: list, get, create, update, delete, index (trigger indexing), purge (completely de-index a project — removes file indices, code chunks, and search vectors but keeps the project record), forget_local (stop this machine from re-binding a folder to its saved scope; server data untouched), remove_paths (de-index specific files by exact path — pass paths=[...]), merge (merge source_project_id into project_id), overview, statistics, files, index_status, index_history (audit trail of indexed files), ingest_local (index local folder), team_projects (list all team projects - team plans only), recent_changes (git log/diff for recent file changes).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resource. | |
| page | No | Page number for pagination. | |
| path | No | Local path to ingest | |
| force | No | Force re-index all files, bypassing version check logic | |
| limit | No | Maximum commits to return (for recent_changes, default: 10, max: 50) | |
| paths | No | Exact indexed file paths (relative to the project root) to de-index (for remove_paths) | |
| since | No | Filter files indexed after this timestamp (ISO 8601) | |
| until | No | Filter files indexed before this timestamp (ISO 8601) | |
| action | Yes | Action to perform | |
| branch | No | Filter by git branch | |
| sort_by | No | Sort field (default: indexed) | |
| overwrite | No | Allow overwriting existing files on disk. | |
| page_size | No | Results per page. | |
| machine_id | No | Filter by machine ID that indexed the files | |
| project_id | No | Project ID (UUID). | |
| sort_order | No | Sort order (default: desc) | |
| description | No | Short description. | |
| folder_path | No | Absolute path to the local folder. | |
| path_pattern | No | Filter by file path pattern (partial match) | |
| workspace_id | No | Workspace ID (UUID). | |
| write_to_disk | No | Write ingested files to disk before indexing. | |
| source_project_id | No | Source project ID to merge into project_id (for merge) | |
| generate_editor_rules | No | Input parameter: generate editor rules. |
qaAgent Q&AARead-onlyIdempotentInspect
ContextStream agent Q&A — ask the workspace/project knowledge base when you get stuck.
When to use:
You need workspace-specific knowledge you cannot derive from code: prior decisions ("why was X chosen over Y?"), conventions ("what's the file naming pattern in this repo?"), runbooks ("how does the team handle this kind of incident?"), guardrails ("what's off-limits in this workspace?").
You're about to make a non-trivial choice and the workspace probably has prior context that shapes it.
A teammate has likely answered this before and you'd rather reuse than re-derive.
When NOT to use:
General programming questions you can answer yourself or via web search ("how does Rust async work?").
Things you can determine by reading the code right in front of you — read it first.
Trivial syntax or single-line questions.
Not a reflex, not a last resort. If you're spending more than ~30 seconds stuck on something workspace-shaped, ask. If you can find the answer in 30 seconds yourself, do that.
Actions:
ask: submit a question, get a grounded answer with citations + confidence.
search: vector-similarity-free listing of prior Q&A — check before re-asking.
save_kb: store guidance/guardrail/faq/runbook/caveat for future asks to reference.
list_kb: browse stored knowledge.
get_kb / update_kb / delete_kb: manage individual KB items.
feedback: rate an answer (-1, 0, +1) so future retrievals weight it appropriately.
Answers come from ContextCode, ContextStream's grounded Q&A agent. Every claim cites the source ([id=decision:abc] / [id=lesson:xyz] / [id=qa_kb_item:def] etc.) so you can verify before acting on it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | KB item id (action=get_kb / update_kb / delete_kb) | |
| tag | No | Filter by tag (action=search, list_kb) | |
| kind | No | KB item kind (action=save_kb / update_kb) | |
| page | No | Page number (1-based) | |
| tags | No | Tags to attach to the persisted question (action=ask) | |
| query | No | Free-text filter against prior Q&A question text (action=search) or KB title/content (action=list_kb) | |
| score | No | Feedback score: -1, 0, or +1 (action=feedback) | |
| title | No | KB item title (action=save_kb / update_kb) | |
| action | Yes | Action to perform | |
| content | No | KB item body (action=save_kb / update_kb) | |
| metadata | No | Optional metadata (action=save_kb / update_kb) | |
| per_page | No | Page size | |
| question | No | Natural-language question (action=ask) | |
| answer_id | No | Answer id to rate (action=feedback) | |
| created_by | No | Filter KB items by creator user id (action=list_kb) | |
| max_tokens | No | Override max answer tokens (action=ask) | |
| project_id | No | Project ID (UUID). | |
| session_id | No | Optional MCP session id — links the question to the AI session that asked | |
| temperature | No | Override sampling temperature (action=ask, default 0.2) | |
| workspace_id | No | Workspace ID (UUID). | |
| scope_summary | No | Human-readable scope label fed into the prompt (e.g. 'workspace=Engineering, project=api') | |
| asked_by_user_id | No | Filter prior Q&A by who asked (action=search) |
reminderReminderCRead-onlyIdempotentInspect
Reminder management. Actions: list, active (pending/overdue), create, snooze, complete, dismiss.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return. | |
| title | No | Short descriptive title. | |
| until | No | ISO 8601 datetime | |
| action | Yes | Action to perform | |
| status | No | Input parameter: status. | |
| content | No | Full content/body. | |
| context | No | Context to match relevant reminders. | |
| keywords | No | Keywords for matching. | |
| priority | No | Priority level. | |
| remind_at | No | ISO 8601 datetime | |
| project_id | No | Project ID (UUID). | |
| recurrence | No | Recurrence pattern (daily, weekly, monthly). | |
| reminder_id | No | Reminder ID (UUID). | |
| workspace_id | No | Workspace ID (UUID). |
searchSearchARead-onlyIdempotentInspect
Search workspace memory and knowledge. Modes: auto (recommended), semantic (meaning-based), hybrid (legacy alias for auto), keyword (exact match), pattern (regex), exhaustive (all matches like grep), refactor (word-boundary matching for symbol renaming), team (cross-project team search - team plans only), crawl (deep multi-modal search).
Output formats: full (default, includes content), paths (file paths only - 80% token savings), minimal (compact - 60% savings), count (match counts only - 90% savings).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Search mode (auto recommended; hybrid is a backward-compatible alias; crawl is deep multi-modal search) | auto |
| limit | No | Max results to return (default: 3) | |
| query | Yes | Search query | |
| offset | No | Offset for pagination | |
| project_id | No | Project ID (UUID). | |
| workspace_id | No | Workspace ID (UUID). | |
| context_lines | No | Lines of context around matches (like grep -C) | |
| output_format | No | Response format: full (default), paths (80% savings), minimal (60% savings), count (90% savings) | |
| include_memory | No | Include memory/doc matches in search results (defaults to false for project-scoped and identifier-shaped searches) | |
| content_max_chars | No | Max chars per result content (default: 400) | |
| exact_match_boost | No | Boost factor for exact matches (default: 2.0) |
sessionSessionARead-onlyIdempotentInspect
Session and memory management — NOT for codebase/file search (use the 'search' tool for that). LESSONS LIVE HERE: when a mistake or correction happens, call action='capture_lesson' (NEVER write lessons to ~/.claude/.../memory/, .cursorrules, or other local markdown — local files are invisible to [LESSONS_WARNING] auto-surfacing on future turns and across sessions). PAST SESSIONS LIVE HERE: use action='recall' FIRST when the user references "last time", "previous", "yesterday", or is continuing prior work — full-text transcripts are indexed across every prior session. context() may surface [GROUNDING]; use action='ground' with user_message for a one-shot bundle (recall + docs + decisions + lessons + skills) outside context(). Actions: capture (save decision/insight), retro_capture (after-the-fact decision/note/snapshot capture from prior work with source provenance — title plus content and/or query/transcript_ids), capture_lesson (mistakes/corrections — title+trigger+impact+prevention), get_lessons (retrieve lessons), update_lesson / delete_lesson (maintain a saved lesson by lesson_id — UUID or lookup text), recall (retrieve past conversation context via ranked fusion of transcripts/snapshots/docs/decisions), ground (one-shot prior-work bundle), remember (quick save), user_context (get preferences), summary (workspace summary), compress (compress chat), delta (changes since timestamp), smart_search (searches MEMORY/conversation history only, not code), decision_trace (trace decision provenance), restore_context (restore state after compaction). Plan actions: capture_plan, get_plan, update_plan, list_plans. Suggested rules actions: list_suggested_rules, suggested_rule_action, suggested_rules_stats. Team actions: team_decisions, team_lessons, team_plans. Team/personal mode: set_account_mode (team|personal|auto).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode metadata for capture/search filtering (e.g., primary/subagent) | |
| tags | No | Input parameter: tags. | |
| agent | No | Agent name metadata for capture/search filtering | |
| goals | No | Goals for capture_plan | |
| limit | No | Maximum number of results to return. | |
| query | No | Query for recall/search/lessons/decision_trace | |
| since | No | ISO timestamp for delta | |
| steps | No | Implementation steps for capture_plan | |
| title | No | Title for capture/capture_lesson/capture_plan | |
| action | Yes | Action to perform | |
| due_at | No | Due date for plan (ISO timestamp) | |
| impact | No | What went wrong | |
| status | No | Plan status | |
| content | No | Content for capture/remember/compress | |
| node_id | No | Node ID (full 36-char UUID) | |
| plan_id | No | Plan ID (UUID) or plan title text for get_plan/update_plan; omit to resolve the latest actionable plan | |
| rule_id | No | Suggested rule ID for actions | |
| task_id | No | Task ID (full 36-char UUID) | |
| trigger | No | What caused the problem (for capture_lesson), or restore trigger for restore_context | |
| category | No | Input parameter: category. | |
| event_id | No | Event ID (full 36-char UUID) | |
| keywords | No | Keywords for matching. | |
| severity | No | Input parameter: severity. | |
| code_refs | No | Input parameter: code refs. | |
| lesson_id | No | Lesson ID (full 36-char UUID) | |
| event_type | No | Event type for capture | |
| importance | No | Input parameter: importance. | |
| max_tokens | No | Max tokens for summary | |
| prevention | No | How to prevent in future | |
| project_id | No | Project ID (UUID). | |
| provenance | No | Input parameter: provenance. | |
| session_id | No | Session identifier. | |
| description | No | Description for capture_plan | |
| is_personal | No | Mark plan as personal (only visible to creator). For capture_plan/list_plans. | |
| rule_action | No | Action to perform on suggested rule | |
| snapshot_id | No | Specific snapshot ID to restore (defaults to most recent) | |
| source_tool | No | Tool that generated this plan | |
| account_mode | No | Execution mode for set_account_mode | |
| user_message | No | Natural-language anchor for action=ground (falls back to query) | |
| workspace_id | No | Workspace ID (UUID). | |
| include_tasks | No | Include tasks when getting plan | |
| max_snapshots | No | Number of recent snapshots to consider (default: 1) | |
| suggestion_id | No | Suggestion ID (full 36-char UUID) | |
| transcript_id | No | Transcript ID to use as source evidence for retro_capture | |
| include_impact | No | Whether to include impact. | |
| min_confidence | No | Minimum confidence threshold for listing rules | |
| transcript_ids | No | Transcript IDs to use as source evidence for retro_capture | |
| include_related | No | Include related context. | |
| include_decisions | No | Include related decisions. | |
| modified_keywords | No | Modified keywords when action is modify | |
| modified_instruction | No | Modified instruction when action is modify | |
| include_durable_context | No | Include durable snapshots/transcripts/docs/decisions in restore payload (default true) |
session_captureCapture context to memoryBInspect
Automatically capture and store important context from the conversation. Use this to persist decisions, insights, preferences, or important information.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags for categorization | |
| title | Yes | Brief title for the captured context | |
| content | Yes | Full content/details to capture | |
| code_refs | No | Input parameter: code refs. | |
| event_type | Yes | Type of context being captured | |
| importance | No | Importance level | |
| project_id | No | Project ID (UUID). | |
| provenance | No | Input parameter: provenance. | |
| session_id | No | Session ID to associate with this capture | |
| workspace_id | No | Workspace ID (UUID). |
session_capture_lessonCapture a lesson learnedAInspect
Capture a lesson learned from a mistake or correction. Use this when the user corrects you, expresses frustration, or points out an error. These lessons are surfaced in future sessions to prevent repeating the same mistakes.
Example triggers:
User says "No, you should..." or "That's wrong"
User expresses frustration (caps, "COME ON", "WTF")
Code breaks due to a preventable mistake
The lesson will be tagged with 'lesson' and stored with structured metadata for easy retrieval.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Lesson title - what to remember (e.g., "Always verify assets in git before pushing") | |
| impact | Yes | What went wrong (e.g., "Production 404 errors - broken landing page") | |
| trigger | Yes | What action caused the problem (e.g., "Pushed code referencing images without committing them") | |
| category | Yes | Category of the lesson | |
| keywords | No | Keywords for matching in future contexts (e.g., ["git", "images", "assets", "push"]) | |
| severity | No | Severity: critical for production issues, high for breaking changes, medium for workflow, low for minor | medium |
| prevention | Yes | How to prevent in future (e.g., "Run git status to check untracked files before pushing") | |
| project_id | No | Project ID (UUID). | |
| workspace_id | No | Workspace ID (UUID). |
session_rememberRemember thisBInspect
Quick way to store something in memory. Use natural language. Example: "Remember that I prefer TypeScript strict mode" or "Remember we decided to use PostgreSQL"
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | What to remember (natural language) | |
| importance | No | Input parameter: importance. | |
| project_id | No | Project ID (UUID). | |
| workspace_id | No | Workspace ID (UUID). | |
| await_indexing | No | If true, wait for indexing to complete before returning. This ensures the content is immediately searchable. |
skillManage reusable skillsBRead-onlyIdempotentInspect
Manage and execute reusable skills (instruction + action bundles). Skills are portable across projects, sessions, and tools. Use 'supersede' to retire a stale skill (archives it so it stops surfacing).
Actions:
list: Browse skills (filter by scope, status, category)
get: Get skill details by ID or name
create: Define a new skill with name, instruction, and triggers
update: Modify an existing skill
run: Execute a skill (by ID or name)
delete: Remove a skill
import: Import skills from file or content (supports markdown, JSON, cursorrules, claude_md)
export: Export skills in various formats
share: Change skill visibility scope
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Skill name (slug, e.g. 'deploy-checker') | |
| limit | No | Max results to return | |
| query | No | Search query | |
| scope | No | Visibility scope | |
| title | No | Skill display title | |
| action | Yes | The action to perform | |
| format | No | Import/export format | |
| params | No | Parameters passed to skill execution | |
| status | No | Skill status | |
| actions | No | Action steps array [{type, tool, params, ...}] | |
| content | No | Content string for import | |
| dry_run | No | Preview execution without running | |
| category | No | Filter by category tag | |
| priority | No | Skill priority 0-100 (higher = matched first) | |
| skill_id | No | Skill ID (UUID) | |
| file_path | No | Local file path for import | |
| skill_ids | No | Skill IDs for export | |
| categories | No | Tags for discovery/filtering | |
| project_id | No | Project ID (UUID) | |
| description | No | Skill description | |
| is_personal | No | Whether skill is personal | |
| source_file | No | Source filename (for import provenance) | |
| source_tool | No | Source tool name (for import provenance) | |
| workspace_id | No | Workspace ID (UUID) | |
| superseded_by | No | Replacement skill (name or id), recorded when action='supersede' | |
| trigger_regex | No | Optional regex for advanced trigger matching | |
| change_summary | No | Summary of changes (for version history) | |
| instruction_body | No | Markdown instruction text (the prompt) | |
| trigger_patterns | No | Keywords/phrases for auto-activation |
tool_searchTool searchARead-onlyIdempotentInspect
Search available tools and hidden operations, then call direct tools or use execute_operation for deferred capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
vcsVersion ControlCRead-onlyIdempotentInspect
Git version control and remote repo operations.
Local git actions: status, diff, log, blame, branches, stash_list Remote API actions: list_repos, get_repo, sync_repo, list_pulls, get_pull, get_pull_diff, get_pull_comments, get_pull_commits, get_pull_checks, get_pull_summary, summarize_pull, review_pull, comment_pull, merge_pull, list_issues, get_issue, create_issue, update_issue, comment_issue, list_commits, get_commit, get_commit_diff, compare_refs, list_branches_remote, list_tags, get_tree, get_blob, search_code, search_vcs, get_activity, list_notifications, mark_notification_read, mark_all_notifications_read, list_links, create_link, delete_link, list_automations, create_automation, update_automation, delete_automation, register_webhook, unregister_webhook
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Git ref (branch, tag, commit) | |
| body | No | Body content | |
| data | No | Additional data for create/update operations | |
| page | No | Page number | |
| path | No | File path for diff/blame/tree/blob | |
| event | No | Review event (APPROVE/REQUEST_CHANGES/COMMENT) | |
| limit | No | Max entries (default: 20) | |
| query | No | Search query | |
| state | No | State filter (open/closed) | |
| title | No | Title for create_issue | |
| action | Yes | VCS action to perform | |
| labels | No | Labels for issues | |
| staged | No | Show staged changes only (for diff) | |
| link_id | No | Link ID | |
| repo_id | No | Repository ID for remote actions | |
| base_ref | No | Base ref for compare_refs | |
| per_page | No | Results per page | |
| provider | No | VCS provider (github/gitlab/bitbucket) | |
| repo_ref | No | Repository reference (owner/repo) for remote actions | |
| pull_number | No | Pull request number | |
| issue_number | No | Issue number | |
| workspace_id | No | Workspace ID for remote VCS actions | |
| automation_id | No | Automation ID | |
| notification_id | No | Notification ID |
workspaceWorkspaceCRead-onlyIdempotentInspect
Workspace management. Actions: list, get, create, delete, associate (link folder to workspace), bootstrap (create workspace and initialize), team_members (list members with access - team plans only), index_settings (get/update multi-machine sync settings - admin only).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resource. | |
| page | No | Page number for pagination. | |
| action | Yes | Action to perform | |
| page_size | No | Results per page. | |
| auto_index | No | Automatically index on creation. | |
| visibility | No | Input parameter: visibility. | |
| description | No | Short description. | |
| folder_path | No | Absolute path to the local folder. | |
| context_hint | No | User message used to fetch relevant context. | |
| max_machines | No | Maximum machines allowed to index (0 = unlimited) | |
| workspace_id | No | Workspace ID (UUID). | |
| branch_policy | No | Which branch takes priority: default_branch_wins (default), newest_wins, feature_branch_wins | |
| workspace_name | No | Input parameter: workspace name. | |
| allowed_machines | No | List of allowed machine IDs (empty = all allowed) | |
| auto_sync_enabled | No | Whether to auto-sync from all machines (default: true) | |
| conflict_resolution | No | How to resolve conflicts: newest_timestamp (default), default_branch, manual | |
| create_parent_mapping | No | Input parameter: create parent mapping. | |
| generate_editor_rules | No | Input parameter: generate editor rules. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
24 tool updates
v0.4.81- Changed
capsule3 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "open", - "get", - "list", - "create", - "share", - "chunk", - "stream", - "context_doc", - "bootstrap_prompt", - "graph", - "audit", - "list_shares", - "revoke_share", - "explain" -]New value: +[ + "open", + "get", + "list", + "create", + "share", + "chunk", + "stream", + "context_doc", + "bootstrap_prompt", + "graph", + "audit", + "list_shares", + "revoke_share", + "delete", + "explain" +] - added
Input schema / properties / require_unlock_keyAdded value: +{ + "description": "For action=share: require a one-time unlock key to open the share", + "type": "boolean" +} - added
Input schema / properties / unlock_destinationsAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "For action=share with require_unlock_key=true: destinations that receive the unlock key" +}
- Added
capture_plan - Changed
init2 fields changed- changed
Input schema / properties / project_id / descriptionPrevious value: -"Project to initialize context for"New value: +"Project to initialize context for (UUID, or a project name to look up)" - removed
Input schema / properties / project_id / formatRemoved value: -"uuid"
- Added
integration - Removed
mem - Changed
memory1 field changed- added
Input schema / properties / delete_allAdded value: +{ + "description": "For delete_node/delete_event with a non-UUID lookup: delete ALL exact-title matches in one call instead of erroring on ambiguity", + "type": "boolean" +}
- Added
memory_complete_todo - Added
memory_create_doc - Added
memory_create_event - Added
memory_create_task - Added
memory_create_todo - Added
memory_delete_doc - Added
memory_update_doc - Added
memory_update_task - Changed
project3 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "list", - "get", - "create", - "update", - "delete", - "index", - "overview", - "statistics", - "files", - "index_status", - "index_history", - "ingest_local", - "team_projects", - "recent_changes" -]New value: +[ + "list", + "get", + "create", + "update", + "delete", + "index", + "purge", + "forget_local", + "remove_paths", + "merge", + "overview", + "statistics", + "files", + "index_status", + "index_history", + "ingest_local", + "team_projects", + "recent_changes" +] - added
Input schema / properties / pathsAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Exact indexed file paths (relative to the project root) to de-index (for remove_paths)" +} - added
Input schema / properties / source_project_idAdded value: +{ + "description": "Source project ID to merge into project_id (for merge)", + "format": "uuid", + "type": "string" +}
- Added
qa - Removed
ram - Changed
search1 field changed- added
Input schema / properties / include_memoryAdded value: +{ + "description": "Include memory/doc matches in search results (defaults to false for project-scoped and identifier-shaped searches)", + "type": "boolean" +}
- Changed
session5 fields changed- added
Input schema / properties / account_modeAdded value: +{ + "description": "Execution mode for set_account_mode", + "enum": [ + "team", + "personal", + "auto" + ], + "type": "string" +} - changed
Input schema / properties / action / enumPrevious value: -[ - "capture", - "capture_lesson", - "get_lessons", - "recall", - "ground", - "remember", - "user_context", - "summary", - "compress", - "delta", - "smart_search", - "decision_trace", - "capture_plan", - "get_plan", - "update_plan", - "list_plans", - "restore_context", - "team_decisions", - "team_lessons", - "team_plans", - "list_suggested_rules", - "suggested_rule_action", - "suggested_rules_stats" -]New value: +[ + "capture", + "retro_capture", + "capture_lesson", + "get_lessons", + "update_lesson", + "delete_lesson", + "recall", + "ground", + "set_account_mode", + "remember", + "user_context", + "summary", + "compress", + "delta", + "smart_search", + "decision_trace", + "capture_plan", + "get_plan", + "update_plan", + "list_plans", + "restore_context", + "team_decisions", + "team_lessons", + "team_plans", + "list_suggested_rules", + "suggested_rule_action", + "suggested_rules_stats" +] - changed
Input schema / properties / plan_id / descriptionPrevious value: -"Plan ID (full 36-char UUID) for get_plan/update_plan"New value: +"Plan ID (UUID) or plan title text for get_plan/update_plan; omit to resolve the latest actionable plan" - added
Input schema / properties / transcript_idAdded value: +{ + "description": "Transcript ID to use as source evidence for retro_capture", + "type": "string" +} - added
Input schema / properties / transcript_idsAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Transcript IDs to use as source evidence for retro_capture" +}
- Added
session_capture - Added
session_capture_lesson - Added
session_remember - Added
skill - Added
vcs
22 tool updates
v0.4.74- Added
batch_operations - Added
capsule - Changed
context2 fields changed- changed
Input schema / properties / mode / descriptionPrevious value: -"Context pack mode (default: pack when enabled)"New value: +"Context mode: standard (default), pack (includes code context), fast (cached quick response)" - changed
Input schema / properties / mode / enumPrevious value: -[ - "standard", - "pack" -]New value: +[ + "standard", + "pack", + "fast" +]
- Added
entity - Added
execute_operation - Added
flash - Added
generate_editor_rules - Changed
generate_rules2 fields changed- changed
Input schema / properties / editors / items / enumPrevious value: -[ - "codex", - "cursor", - "cline", - "kilo", - "roo", - "claude", - "aider", - "all" -]New value: +[ + "codex", + "copilot", + "cursor", + "cline", + "kilo", + "roo", + "claude", + "aider", + "all" +] - changed
Input schema / properties / overwrite_existing / descriptionPrevious value: -"Overwrite ContextStream block in existing rule files (default: true). User content outside the block is preserved."New value: +"Overwrite existing rule files (default: true). User content outside the ContextStream block is preserved when block updates are supported."
- Changed
graph2 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "dependencies", - "impact", - "call_path", - "related", - "path", - "decisions", - "ingest", - "circular_dependencies", - "unused_code", - "contradictions" -]New value: +[ + "dependencies", + "impact", + "call_path", + "related", + "path", + "decisions", + "ingest", + "circular_dependencies", + "unused_code", + "contradictions", + "usages" +] - added
Input schema / properties / target_typeAdded value: +{ + "description": "For usages: module|function|type|variable", + "type": "string" +}
- Changed
help3 fields changed- added
Input schema / properties / editors / anyOfAdded value: +[ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } +] - removed
Input schema / properties / editors / itemsRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / editors / typeRemoved value: -"array"
- Changed
init1 field changed- changed
Input schema / properties / is_post_compact / descriptionPrevious value: -"Controls context restoration from recent snapshots. Defaults to true (always restores). Set to false to skip restoration. Can also be controlled via CONTEXTSTREAM_RESTORE_CONTEXT environment variable."New value: +"Set true immediately after context compaction to restore snapshots/transcripts when hooks are unavailable. Can also be enabled by CONTEXTSTREAM_RESTORE_CONTEXT=true."
- Added
instruct - Added
media - Added
mem - Changed
memory33 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "create_event", - "get_event", - "update_event", - "delete_event", - "list_events", - "distill_event", - "create_node", - "get_node", - "update_node", - "delete_node", - "list_nodes", - "supersede_node", - "search", - "decisions", - "timeline", - "summary", - "import_batch", - "create_task", - "get_task", - "update_task", - "delete_task", - "list_tasks", - "reorder_tasks", - "create_todo", - "list_todos", - "get_todo", - "update_todo", - "delete_todo", - "complete_todo", - "create_diagram", - "list_diagrams", - "get_diagram", - "update_diagram", - "delete_diagram", - "create_doc", - "list_docs", - "get_doc", - "update_doc", - "delete_doc", - "create_roadmap", - "list_transcripts", - "get_transcript", - "search_transcripts", - "delete_transcript", - "team_tasks", - "team_todos", - "team_diagrams", - "team_docs" -]New value: +[ + "create_event", + "get_event", + "update_event", + "delete_event", + "list_events", + "distill_event", + "create_node", + "get_node", + "update_node", + "delete_node", + "list_nodes", + "supersede_node", + "search", + "decisions", + "timeline", + "summary", + "import_batch", + "create_task", + "get_task", + "update_task", + "delete_task", + "list_tasks", + "reorder_tasks", + "create_todo", + "list_todos", + "get_todo", + "update_todo", + "delete_todo", + "complete_todo", + "create_diagram", + "list_diagrams", + "get_diagram", + "update_diagram", + "delete_diagram", + "create_doc", + "list_docs", + "get_doc", + "update_doc", + "delete_doc", + "create_roadmap", + "list_transcripts", + "get_transcript", + "search_transcripts", + "search_archive", + "delete_transcript", + "team_tasks", + "team_todos", + "team_diagrams", + "team_docs" +] - added
Input schema / properties / agentAdded value: +{ + "description": "Agent identity metadata (capture/create filters) and query filter. Matches both structured `agent` and `agent:<name>` tag fallback.", + "type": "string" +} - added
Input schema / properties / completedAdded value: +{ + "description": "Todo completion flag for update_todo", + "type": "boolean" +} - changed
Input schema / properties / diagram_id / descriptionPrevious value: -"Diagram ID for get_diagram/update_diagram/delete_diagram"New value: +"Diagram ID for get_diagram/update_diagram/delete_diagram (full 36-char UUID)" - removed
Input schema / properties / diagram_id / formatRemoved value: -"uuid" - changed
Input schema / properties / doc_id / descriptionPrevious value: -"Doc ID for get_doc/update_doc/delete_doc"New value: +"Doc ID for get_doc/update_doc/delete_doc. For get_doc, accepts UUID or title/query text." - removed
Input schema / properties / doc_id / formatRemoved value: -"uuid" - changed
Input schema / properties / doc_type / enumPrevious value: -[ - "roadmap", - "spec", - "general" -]New value: +[ + "roadmap", + "spec", + "runbook", + "adr", + "rfc", + "postmortem", + "retro", + "release_notes", + "playbook", + "prd", + "user_story", + "persona", + "interview", + "design_spec", + "critique", + "glossary", + "oncall_schedule", + "slo", + "q_and_a", + "changelog", + "style_guide", + "general" +] - removed
Input schema / properties / event_id / formatRemoved value: -"uuid" - added
Input schema / properties / events / items / properties / tags / anyOfAdded value: +[ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } +] - removed
Input schema / properties / events / items / properties / tags / itemsRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / events / items / properties / tags / typeRemoved value: -"array" - added
Input schema / properties / modeAdded value: +{ + "description": "Mode metadata (capture/create filters) and query filter. Matches both structured `mode` and `mode:<value>` tag fallback.", + "type": "string" +} - removed
Input schema / properties / node_id / formatRemoved value: -"uuid" - added
Input schema / properties / node_type / enumAdded value: +[ + "fact", + "decision", + "preference", + "constraint", + "habit", + "lesson", + "goal", + "risk", + "term" +] - removed
Input schema / properties / plan_id / anyOfRemoved value: -[ - { - "format": "uuid", - "type": "string" - }, - { - "type": "null" - } -] - changed
Input schema / properties / plan_id / descriptionPrevious value: -"Plan ID: for create_task (link to plan), update_task (set UUID to link, null to unlink), list_tasks (filter by plan)"New value: +"Plan ID (full 36-char UUID): for create_task (link to plan), update_task (set UUID to link, null to unlink), list_tasks (filter by plan)" - added
Input schema / properties / plan_id / typeAdded value: +[ + "string", + "null" +] - added
Input schema / properties / scopeAdded value: +{ + "description": "Archive collection scope for search_archive: transcripts, decisions, lessons, docs", + "type": "string" +} - added
Input schema / properties / tags / anyOfAdded value: +[ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } +] - changed
Input schema / properties / tags / descriptionPrevious value: -"Tags for task"New value: +"Tags for event or task categorization" - removed
Input schema / properties / tags / itemsRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / tags / typeRemoved value: -"array" - changed
Input schema / properties / task_id / descriptionPrevious value: -"Task ID for get_task/update_task/delete_task"New value: +"Task ID for get_task/update_task/delete_task (full 36-char UUID)" - removed
Input schema / properties / task_id / formatRemoved value: -"uuid" - added
Input schema / properties / task_ids / anyOfAdded value: +[ + { + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } +] - removed
Input schema / properties / task_ids / itemsRemoved value: -{ - "format": "uuid", - "type": "string" -} - removed
Input schema / properties / task_ids / typeRemoved value: -"array" - changed
Input schema / properties / todo_id / descriptionPrevious value: -"Todo ID for get_todo/update_todo/delete_todo"New value: +"Todo ID for get_todo/update_todo/delete_todo (full 36-char UUID)" - removed
Input schema / properties / todo_id / formatRemoved value: -"uuid" - changed
Input schema / properties / todo_status / descriptionPrevious value: -"Todo status filter for list_todos"New value: +"Todo status filter for list_todos, or status update value for update_todo" - changed
Input schema / properties / transcript_id / descriptionPrevious value: -"Transcript ID for get_transcript/delete_transcript"New value: +"Transcript ID for get_transcript/delete_transcript (full 36-char UUID)" - removed
Input schema / properties / transcript_id / formatRemoved value: -"uuid"
- Changed
project2 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "list", - "get", - "create", - "update", - "index", - "overview", - "statistics", - "files", - "index_status", - "index_history", - "ingest_local", - "team_projects" -]New value: +[ + "list", + "get", + "create", + "update", + "delete", + "index", + "overview", + "statistics", + "files", + "index_status", + "index_history", + "ingest_local", + "team_projects", + "recent_changes" +] - added
Input schema / properties / limitAdded value: +{ + "description": "Maximum commits to return (for recent_changes, default: 10, max: 50)", + "type": "number" +}
- Added
ram - Changed
reminder3 fields changed- added
Input schema / properties / keywords / anyOfAdded value: +[ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } +] - removed
Input schema / properties / keywords / itemsRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / keywords / typeRemoved value: -"array"
- Changed
search2 fields changed- changed
Input schema / properties / mode / descriptionPrevious value: -"Search mode (auto recommended; hybrid is a backward-compatible alias)"New value: +"Search mode (auto recommended; hybrid is a backward-compatible alias; crawl is deep multi-modal search)" - changed
Input schema / properties / mode / enumPrevious value: -[ - "auto", - "semantic", - "hybrid", - "keyword", - "pattern", - "exhaustive", - "refactor", - "team" -]New value: +[ + "auto", + "semantic", + "hybrid", + "keyword", + "pattern", + "exhaustive", + "refactor", + "team", + "crawl" +]
- Changed
session25 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "capture", - "capture_lesson", - "get_lessons", - "recall", - "remember", - "user_context", - "summary", - "compress", - "delta", - "smart_search", - "decision_trace", - "capture_plan", - "get_plan", - "update_plan", - "list_plans", - "restore_context", - "team_decisions", - "team_lessons", - "team_plans", - "list_suggested_rules", - "suggested_rule_action", - "suggested_rules_stats" -]New value: +[ + "capture", + "capture_lesson", + "get_lessons", + "recall", + "ground", + "remember", + "user_context", + "summary", + "compress", + "delta", + "smart_search", + "decision_trace", + "capture_plan", + "get_plan", + "update_plan", + "list_plans", + "restore_context", + "team_decisions", + "team_lessons", + "team_plans", + "list_suggested_rules", + "suggested_rule_action", + "suggested_rules_stats" +] - added
Input schema / properties / agentAdded value: +{ + "description": "Agent name metadata for capture/search filtering", + "type": "string" +} - added
Input schema / properties / event_idAdded value: +{ + "description": "Event ID (full 36-char UUID)", + "type": "string" +} - added
Input schema / properties / goals / anyOfAdded value: +[ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } +] - removed
Input schema / properties / goals / itemsRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / goals / typeRemoved value: -"array" - added
Input schema / properties / include_durable_contextAdded value: +{ + "description": "Include durable snapshots/transcripts/docs/decisions in restore payload (default true)", + "type": "boolean" +} - added
Input schema / properties / keywords / anyOfAdded value: +[ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } +] - removed
Input schema / properties / keywords / itemsRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / keywords / typeRemoved value: -"array" - added
Input schema / properties / lesson_idAdded value: +{ + "description": "Lesson ID (full 36-char UUID)", + "type": "string" +} - added
Input schema / properties / modeAdded value: +{ + "description": "Mode metadata for capture/search filtering (e.g., primary/subagent)", + "type": "string" +} - added
Input schema / properties / modified_keywords / anyOfAdded value: +[ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } +] - removed
Input schema / properties / modified_keywords / itemsRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / modified_keywords / typeRemoved value: -"array" - added
Input schema / properties / node_idAdded value: +{ + "description": "Node ID (full 36-char UUID)", + "type": "string" +} - changed
Input schema / properties / plan_id / descriptionPrevious value: -"Plan ID for get_plan/update_plan"New value: +"Plan ID (full 36-char UUID) for get_plan/update_plan" - removed
Input schema / properties / plan_id / formatRemoved value: -"uuid" - added
Input schema / properties / suggestion_idAdded value: +{ + "description": "Suggestion ID (full 36-char UUID)", + "type": "string" +} - added
Input schema / properties / tags / anyOfAdded value: +[ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } +] - removed
Input schema / properties / tags / itemsRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / tags / typeRemoved value: -"array" - added
Input schema / properties / task_idAdded value: +{ + "description": "Task ID (full 36-char UUID)", + "type": "string" +} - changed
Input schema / properties / trigger / descriptionPrevious value: -"What caused the problem"New value: +"What caused the problem (for capture_lesson), or restore trigger for restore_context" - added
Input schema / properties / user_messageAdded value: +{ + "description": "Natural-language anchor for action=ground (falls back to query)", + "type": "string" +}
- Added
tool_search - Changed
workspace5 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "list", - "get", - "associate", - "bootstrap", - "team_members", - "index_settings" -]New value: +[ + "list", + "get", + "create", + "delete", + "associate", + "bootstrap", + "team_members", + "index_settings" +] - added
Input schema / properties / allowed_machines / anyOfAdded value: +[ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } +] - removed
Input schema / properties / allowed_machines / itemsRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / allowed_machines / typeRemoved value: -"array" - added
Input schema / properties / nameAdded value: +{ + "description": "Name for the resource.", + "type": "string" +}
11 tool updates
v0.4.63- First observed
context - First observed
generate_rules - First observed
graph - First observed
help - First observed
init - First observed
memory - First observed
project - First observed
reminder - First observed
search - First observed
session - First observed
workspace
TDQS
Scored across 36 tools
Numerous tools have overlapping purposes, such as multiple memory shortcuts (memory_create_doc, memory_update_doc, etc.) and separate session capture tools (session_capture, session_remember) that duplicate session actions. The context and init tools also share similar goals, making it difficult for an agent to select the correct tool.
Tool names are a mix of single words (context, init), verb_noun (capture_plan, generate_editor_rules), and noun_verb patterns (memory_create_doc, session_capture_lesson). There is no consistent naming convention, which reduces predictability.
With 36 tools, the server is on the heavy side. While many features are covered, several tools are redundant shortcuts (e.g., memory_*). Trimming duplicates would improve focus without sacrificing functionality.
The server covers a wide range of operations: memory management, context retrieval, project management, version control, media processing, and integrations. Minor gaps exist (e.g., no explicit code search outside of context), but overall the surface is comprehensive.
Maintenance
Related MCP Connectors
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Related MCP Servers
- AlicenseBqualityCmaintenanceProvides AI assistants with persistent memory of your project architecture, development history, and technical decisions, allowing them to give context-aware coding help without needing repeated explanations.1661 npm2MIT

Doclea MCPofficial
AlicenseNot gradedqualityCmaintenanceProvides persistent memory for AI coding assistants, storing and retrieving architectural decisions, patterns, and solutions across sessions using semantic search, while also offering git integration for commit messages and code expertise mapping.MIT- AlicenseNot gradedqualityDmaintenanceProvides AI coding assistants with persistent, context-rich memory of a codebase, including documentation and git history, enabling recall across sessions.105Apache 2.0
- AlicenseAqualityCmaintenanceProvides persistent memory and a codebase knowledge graph for AI coding assistants, enabling shared context across multiple tools like Claude, Cursor, and ChatGPT, with significant token reduction.534 npmMIT