ContextStream wires your AI assistant into a persistent memory and knowledge layer across your codebase, conversations, and team tools. It exposes semantic search over code, a lessons system that captures failures and decisions, session memory that survives context window pressure, and direct integrations with GitHub, Slack, and Notion. The server indexes your project locally and syncs with a hosted service, then surfaces relevant context automatically through a SmartRouter that analyzes each message. You get dependency graph queries, multi-modal media indexing, and hybrid search without manually feeding files into prompts. Setup drops an MCP config into Claude Desktop, Cursor, VS Code with Copilot, or OpenCode, and the tools hook in transparently from there.
Public tool metadata for what this MCP can expose to an agent.
mcp_server_versionReturn the running ContextStream MCP server package version Access: FreeReturn the running ContextStream MCP server package version Access: Free
No parameter schema in public metadata yet.
auth_meFetch authenticated user profile Access: FreeFetch authenticated user profile Access: Free
No parameter schema in public metadata yet.
workspaces_listList accessible workspaces (paginated list: items, total, page, per_page, has_next, has_prev). Access: Free2 paramsList accessible workspaces (paginated list: items, total, page, per_page, has_next, has_prev). Access: Free
pagenumberpage_sizenumberprojects_listList projects (optionally by workspace; paginated list: items, total, page, per_page, has_next, has_prev). Access: Free3 paramsList projects (optionally by workspace; paginated list: items, total, page, per_page, has_next, has_prev). Access: Free
pagenumberpage_sizenumberworkspace_idstringprojects_createCreate a new project within a workspace. Use this when you need to create a project for a specific folder/codebase. If workspace_id is not provided, uses the current session's workspace. Optionally associates a local folder and generates AI editor rules. Access: Free Access: Free5 paramsCreate a new project within a workspace. Use this when you need to create a project for a specific folder/codebase. If workspace_id is not provided, uses the current session's workspace. Optionally associates a local folder and generates AI editor rules. Access: Free Access: Free
namestringdescriptionstringfolder_pathstringworkspace_idstringgenerate_editor_rulesbooleanprojects_updateUpdate a project (rename or change description) Access: Free3 paramsUpdate a project (rename or change description) Access: Free
namestringproject_idstringdescriptionstringprojects_indexTrigger indexing for a project Access: Free1 paramsTrigger indexing for a project Access: Free
project_idstringsearch_semanticSemantic vector search Access: Free4 paramsSemantic vector search Access: Free
limitnumberquerystringproject_idstringworkspace_idstringsearch_hybridHybrid search (semantic + keyword) Access: Free4 paramsHybrid search (semantic + keyword) Access: Free
limitnumberquerystringproject_idstringworkspace_idstringsearch_keywordKeyword search Access: Free4 paramsKeyword search Access: Free
limitnumberquerystringproject_idstringworkspace_idstringmemory_create_eventCreate a memory event for a workspace/project Access: Free6 paramsCreate a memory event for a workspace/project Access: Free
titlestringcontentstringmetadataobjectevent_typestringproject_idstringworkspace_idstringmemory_list_eventsList memory events (optionally scoped) Access: Free3 paramsList memory events (optionally scoped) Access: Free
limitnumberproject_idstringworkspace_idstringmemory_create_nodeCreate a knowledge node with optional relations Access: Free6 paramsCreate a knowledge node with optional relations Access: Free
titlestringcontentstringnode_typestringrelationsarrayproject_idstringworkspace_idstringmemory_list_nodesList knowledge graph nodes Access: Free3 paramsList knowledge graph nodes Access: Free
limitnumberproject_idstringworkspace_idstringmemory_searchSearch memory events/notes Access: Free4 paramsSearch memory events/notes Access: Free
limitnumberquerystringproject_idstringworkspace_idstringmemory_decisionsList decision summaries from workspace memory Access: Free4 paramsList decision summaries from workspace memory Access: Free
limitnumbercategorystringproject_idstringworkspace_idstringgraph_relatedFind related nodes in the knowledge graph Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)4 paramsFind related nodes in the knowledge graph Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)
limitnumbernode_idstringproject_idstringworkspace_idstringgraph_pathFind path between two nodes Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)4 paramsFind path between two nodes Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)
source_idstringtarget_idstringproject_idstringworkspace_idstringgraph_decisionsDecision history in the knowledge graph Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)3 paramsDecision history in the knowledge graph Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)
limitnumberproject_idstringworkspace_idstringgraph_dependenciesDependency graph query Access: Pro (Graph-Lite) (upgrade: https://contextstream.io/pricing)3 paramsDependency graph query Access: Pro (Graph-Lite) (upgrade: https://contextstream.io/pricing)
targetobjectmax_depthnumberinclude_transitivebooleangraph_call_pathFind call path between two targets Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)3 paramsFind call path between two targets Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)
sourceobjecttargetobjectmax_depthnumbergraph_impactAnalyze impact of a target node Access: Pro (Graph-Lite) (upgrade: https://contextstream.io/pricing)2 paramsAnalyze impact of a target node Access: Pro (Graph-Lite) (upgrade: https://contextstream.io/pricing)
targetobjectmax_depthnumbergraph_ingestBuild and persist the dependency graph for a project. Runs async by default (wait=false) and can take a few minutes for larger repos. Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)2 paramsBuild and persist the dependency graph for a project. Runs async by default (wait=false) and can take a few minutes for larger repos. Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)
waitbooleanproject_idstringprojects_getGet project details by ID Access: Free1 paramsGet project details by ID Access: Free
project_idstringprojects_overviewGet project overview with summary information Access: Free1 paramsGet project overview with summary information Access: Free
project_idstringprojects_statisticsGet project statistics (files, lines, complexity) Access: Free1 paramsGet project statistics (files, lines, complexity) Access: Free
project_idstringprojects_filesList all indexed files in a project Access: Free1 paramsList all indexed files in a project Access: Free
project_idstringprojects_index_statusGet project indexing status Access: Free1 paramsGet project indexing status Access: Free
project_idstringprojects_ingest_localRead ALL files from a local directory and ingest them for indexing. This indexes your entire project by reading files in batches. Automatically detects code files and skips ignored directories like node_modules, target, dist, etc. Access: Free4 paramsRead ALL files from a local directory and ingest them for indexing. This indexes your entire project by reading files in batches. Automatically detects code files and skips ignored directories like node_modules, target, dist, etc. Access: Free
pathstringoverwritebooleanproject_idstringwrite_to_diskbooleanworkspaces_getGet workspace details by ID Access: Free1 paramsGet workspace details by ID Access: Free
workspace_idstringmemory_get_eventGet a specific memory event by ID with FULL content (not truncated). Use this when you need the complete content of a memory event, not just the preview returned by search/recall. Access: Free1 paramsGet a specific memory event by ID with FULL content (not truncated). Use this when you need the complete content of a memory event, not just the preview returned by search/recall. Access: Free
event_idstringmemory_update_eventUpdate a memory event Access: Free4 paramsUpdate a memory event Access: Free
titlestringcontentstringevent_idstringmetadataobjectmemory_delete_eventDelete a memory event Access: Free1 paramsDelete a memory event Access: Free
event_idstringmemory_timelineGet chronological timeline of memory events for a workspace Access: Free1 paramsGet chronological timeline of memory events for a workspace Access: Free
workspace_idstringmemory_summaryGet condensed summary of workspace memory Access: Free1 paramsGet condensed summary of workspace memory Access: Free
workspace_idstringgraph_circular_dependenciesDetect circular dependencies in project code Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)1 paramsDetect circular dependencies in project code Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)
project_idstringgraph_unused_codeDetect unused code in project Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)1 paramsDetect unused code in project Access: Elite/Team (Full Graph) (upgrade: https://contextstream.io/pricing)
project_idstringsession_initInitialize 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, and high-priority lessons...9 paramsInitialize 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, and high-priority lessons...
auto_indexbooleanproject_idstringsession_idstringfolder_pathstringcontext_hintstringworkspace_idstringinclude_decisionsbooleanallow_no_workspacebooleaninclude_recent_memorybooleansession_toolsGet an ultra-compact list of all available ContextStream MCP tools. Use this when you need to know what tools are available without reading full descriptions. Returns a token-efficient tool catalog (~120 tokens) organized by category. Format options: - 'grouped' (default): Cat...2 paramsGet an ultra-compact list of all available ContextStream MCP tools. Use this when you need to know what tools are available without reading full descriptions. Returns a token-efficient tool catalog (~120 tokens) organized by category. Format options: - 'grouped' (default): Cat...
formatstringgrouped · minimal · fulldefault: groupedcategorystringsession_get_user_contextRetrieve user preferences, coding style, and persona from memory. Use this to understand how the user likes to work and adapt your responses accordingly. Access: Free1 paramsRetrieve user preferences, coding style, and persona from memory. Use this to understand how the user likes to work and adapt your responses accordingly. Access: Free
workspace_idstringworkspace_associateAssociate a folder/repo with a workspace after user selection. Call this after session_init returns status='requires_workspace_selection' and the user has chosen a workspace. This persists the selection to .contextstream/config.json so future sessions auto-connect. Optionally...5 paramsAssociate a folder/repo with a workspace after user selection. Call this after session_init returns status='requires_workspace_selection' and the user has chosen a workspace. This persists the selection to .contextstream/config.json so future sessions auto-connect. Optionally...
folder_pathstringworkspace_idstringworkspace_namestringcreate_parent_mappingbooleangenerate_editor_rulesbooleanworkspace_bootstrapCreate a new workspace (user-provided name) and onboard the current folder as a project. This is useful when session_init returns status='requires_workspace_name' (no workspaces exist yet) or when you want to create a new workspace for a repo. Behavior: - Creates a workspace w...8 paramsCreate a new workspace (user-provided name) and onboard the current folder as a project. This is useful when session_init returns status='requires_workspace_name' (no workspaces exist yet) or when you want to create a new workspace for a repo. Behavior: - Creates a workspace w...
auto_indexbooleanvisibilitystringprivate · publicdescriptionstringfolder_pathstringcontext_hintstringworkspace_namestringcreate_parent_mappingbooleangenerate_editor_rulesbooleansession_captureAutomatically capture and store important context from the conversation. Use this to persist decisions, insights, preferences, or important information. Access: Free8 paramsAutomatically capture and store important context from the conversation. Use this to persist decisions, insights, preferences, or important information. Access: Free
tagsarraytitlestringcontentstringevent_typestringconversation · decision · insight · preference · task · bugimportancestringlow · medium · high · criticalproject_idstringsession_idstringworkspace_idstringsession_capture_lessonCapture 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...9 paramsCapture 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...
titlestringimpactstringtriggerstringcategorystringworkflow · code_quality · verification · communication · project_specifickeywordsarrayseveritystringlow · medium · high · criticaldefault: mediumpreventionstringproject_idstringworkspace_idstringsession_get_lessonsRetrieve lessons learned from past mistakes and corrections. Use this to check for relevant warnings before taking actions that have caused problems before. Returns lessons filtered by: - Query: semantic search for relevant lessons - Category: workflow, code_quality, verificat...6 paramsRetrieve lessons learned from past mistakes and corrections. Use this to check for relevant warnings before taking actions that have caused problems before. Returns lessons filtered by: - Query: semantic search for relevant lessons - Category: workflow, code_quality, verificat...
limitnumberquerystringcategorystringworkflow · code_quality · verification · communication · project_specificseveritystringlow · medium · high · criticalproject_idstringworkspace_idstringsession_smart_searchSearch memory with automatic context enrichment. Returns memory matches, relevant code, and related decisions in one call. Access: Free5 paramsSearch memory with automatic context enrichment. Returns memory matches, relevant code, and related decisions in one call. Access: Free
querystringproject_idstringworkspace_idstringinclude_relatedbooleaninclude_decisionsbooleansession_rememberQuick way to store something in memory. Use natural language. Example: "Remember that I prefer TypeScript strict mode" or "Remember we decided to use PostgreSQL" Access: Free5 paramsQuick way to store something in memory. Use natural language. Example: "Remember that I prefer TypeScript strict mode" or "Remember we decided to use PostgreSQL" Access: Free
contentstringimportancestringlow · medium · highproject_idstringworkspace_idstringawait_indexingbooleansession_recallQuick way to recall relevant context. Use natural language. Example: "What were the auth decisions?" or "What are my TypeScript preferences?" Access: Free3 paramsQuick way to recall relevant context. Use natural language. Example: "What were the auth decisions?" or "What are my TypeScript preferences?" Access: Free
querystringproject_idstringworkspace_idstringgenerate_editor_rulesGenerate AI rule files for editors (Windsurf, Cursor, Cline, Kilo Code, Roo Code, Claude Code, Aider). These rules instruct the AI to automatically use ContextStream for memory and context. Supported editors: codex, windsurf, cursor, cline, kilo, roo, claude, aider Access: Free8 paramsGenerate AI rule files for editors (Windsurf, Cursor, Cline, Kilo Code, Roo Code, Claude Code, Aider). These rules instruct the AI to automatically use ContextStream for memory and context. Supported editors: codex, windsurf, cursor, cline, kilo, roo, claude, aider Access: Free
modestringminimal · fulldry_runbooleaneditorsarrayfolder_pathstringproject_namestringworkspace_idstringworkspace_namestringadditional_rulesstringsession_summaryGet a compact, token-efficient summary of workspace context (~500 tokens). This is designed to replace loading full chat history in AI prompts. Returns: workspace/project info, top decisions (titles only), preferences, memory count. Use this at conversation start instead of lo...3 paramsGet a compact, token-efficient summary of workspace context (~500 tokens). This is designed to replace loading full chat history in AI prompts. Returns: workspace/project info, top decisions (titles only), preferences, memory count. Use this at conversation start instead of lo...
max_tokensnumberproject_idstringworkspace_idstringsession_compressExtract and store key information from chat history as memory events. This allows clearing chat history while preserving important context. Use at conversation end or when context window is getting full. Extracts: - Decisions made - User preferences learned - Insights discover...4 paramsExtract and store key information from chat history as memory events. This allows clearing chat history while preserving important context. Use at conversation end or when context window is getting full. Extracts: - Decisions made - User preferences learned - Insights discover...
project_idstringchat_historystringworkspace_idstringextract_typesarraysession_deltaGet new context added since a specific timestamp. Useful for efficient context synchronization without reloading everything. Returns: - Count of new decisions and memory events - List of new items with titles and timestamps Use case: AI can track what's new since last session_...4 paramsGet new context added since a specific timestamp. Useful for efficient context synchronization without reloading everything. Returns: - Count of new decisions and memory events - List of new items with titles and timestamps Use case: AI can track what's new since last session_...
limitnumbersincestringproject_idstringworkspace_idstringcontext_smart**CALL THIS BEFORE EVERY AI RESPONSE** to get relevant context. This is the KEY tool for token-efficient AI interactions. It: 1. Analyzes the user's message to understand what context is needed 2. Retrieves only relevant context in a minified, token-efficient format 3. Replace...5 params**CALL THIS BEFORE EVERY AI RESPONSE** to get relevant context. This is the KEY tool for token-efficient AI interactions. It: 1. Analyzes the user's message to understand what context is needed 2. Retrieves only relevant context in a minified, token-efficient format 3. Replace...
formatstringminified · readable · structuredmax_tokensnumberproject_idstringuser_messagestringworkspace_idstringreminders_listList all reminders for the current user. Returns: reminders with title, content, remind_at, priority, status, and keywords. Can filter by status (pending, completed, dismissed, snoozed) and priority (low, normal, high, urgent). Use this to see what reminders you have set. Acce...5 paramsList all reminders for the current user. Returns: reminders with title, content, remind_at, priority, status, and keywords. Can filter by status (pending, completed, dismissed, snoozed) and priority (low, normal, high, urgent). Use this to see what reminders you have set. Acce...
limitnumberstatusstringpending · completed · dismissed · snoozedprioritystringlow · normal · high · urgentproject_idstringworkspace_idstringreminders_activeGet active reminders that are pending, overdue, or due soon. Returns: reminders with urgency levels (overdue, due_soon, today, upcoming). Optionally provide context (e.g., current task description) to get contextually relevant reminders. Use this to see what reminders need att...4 paramsGet active reminders that are pending, overdue, or due soon. Returns: reminders with urgency levels (overdue, due_soon, today, upcoming). Optionally provide context (e.g., current task description) to get contextually relevant reminders. Use this to see what reminders need att...
limitnumbercontextstringproject_idstringworkspace_idstringreminders_createCreate a new reminder for a specific date/time. Set reminders to be notified about tasks, follow-ups, or important dates. Priority levels: low, normal, high, urgent Recurrence: daily, weekly, monthly (optional) Example: Create a reminder to "Review PR #123" for tomorrow at 10a...8 paramsCreate a new reminder for a specific date/time. Set reminders to be notified about tasks, follow-ups, or important dates. Priority levels: low, normal, high, urgent Recurrence: daily, weekly, monthly (optional) Example: Create a reminder to "Review PR #123" for tomorrow at 10a...
titlestringcontentstringkeywordsarrayprioritystringlow · normal · high · urgentremind_atstringproject_idstringrecurrencestringdaily · weekly · monthlyworkspace_idstringreminders_snoozeSnooze a reminder until a later time. Use this to postpone a reminder without dismissing it. Common snooze durations: - 1 hour: add 1 hour to current time - 4 hours: add 4 hours - Tomorrow: next day at 9am - Next week: 7 days from now Access: Free2 paramsSnooze a reminder until a later time. Use this to postpone a reminder without dismissing it. Common snooze durations: - 1 hour: add 1 hour to current time - 4 hours: add 4 hours - Tomorrow: next day at 9am - Next week: 7 days from now Access: Free
untilstringreminder_idstringreminders_completeMark a reminder as completed. Use this when the task or action associated with the reminder is done. Access: Free1 paramsMark a reminder as completed. Use this when the task or action associated with the reminder is done. Access: Free
reminder_idstringreminders_dismissDismiss a reminder without completing it. Use this to remove a reminder that is no longer relevant. Access: Free1 paramsDismiss a reminder without completing it. Use this to remove a reminder that is no longer relevant. Access: Free
reminder_idstring
Persistent memory, semantic code search, and team context for Claude Code, Cursor, VS Code Copilot, Windsurf — and every MCP-compatible AI coding assistant.
🏆 90.0% on LongMemEval-S — the full 500-instance suite with the official judge.
Beats supermemory with statistical significance; matches Zep. See the benchmarks →
Documentation • Pricing • FAQ
npx --prefer-online -y @contextstream/mcp-server@latest setup
That one command detects your AI editors, writes their MCP configs and rules, installs lifecycle hooks where supported, indexes your project in the background, and verifies everything it just did — then you restart your editor and your AI has memory. Free tier available.
Automating it? Zero-prompt mode takes every default:
npx --prefer-online -y @contextstream/mcp-server@latest setup --yes
ContextStream scores 90.0% on the full LongMemEval-S benchmark, the standard test of conversational memory over ~115k-token multi-session histories. That's the complete 500-instance suite with the official GPT-4o judge — 450/500 correct (89.6% single-shot, 90.0% with self-consistency k=3; Wilson 95% CI [87.1%, 92.3%]). Published June 14, 2026.
| System | LongMemEval-S | Notes |
|---|---|---|
| ContextStream | 90.0% | Full 500 instances, official GPT-4o judge |
| Zep | 90.2% | Vendor-published — a statistical tie (0.2 pt is inside measurement noise) |
| supermemory | 85.4% | Vendor-published — ContextStream wins with statistical significance |
On multi-session recall — the memory that actually matters for a coding agent working across days of sessions — ContextStream scores 81.2% vs Zep's published 57.9% in the per-family comparison. And on the agentic project-memory benchmark, the same memory raises agent task success from 58% to 96%.
Full methodology, per-family breakdowns, and judge-comparability notes (competitor numbers are cited from each vendor's own publications): contextstream.io/benchmarks
ContextStream is a Model Context Protocol (MCP) server that gives AI coding assistants long-term memory and deep codebase understanding. It indexes your code for semantic search, records your decisions, lessons, and plans across sessions, maps your dependency graph, and pulls in team knowledge from GitHub, Slack, and Notion — then delivers exactly the right slice of all that to your AI on every message.
It works with any MCP client: Claude Code, Cursor, VS Code + GitHub Copilot, Windsurf, Cline, Roo Code, Kilo Code, Codex CLI, OpenCode, Aider, Antigravity, and Claude Desktop.
Because every conversation starts from zero. Your AI re-reads the same files, re-derives the same architecture, repeats last week's mistake, and loses the thread the moment the context window compacts. ContextStream fixes the whole class of problem:
| Without ContextStream | With ContextStream |
|---|---|
| AI greps files one-by-one, burning tokens | Semantic code search finds code by meaning in milliseconds |
| Context lost when conversations get long | Pre-compaction capture saves critical state before it's gone — and restores it after |
| Same mistakes repeated across sessions | Lessons system surfaces past failures before your AI repeats them |
| "Why did we choose X?" — nobody remembers | Decisions and plans persist and resurface when relevant |
| Team knowledge scattered across tools | GitHub, Slack, and Notion knowledge, queried automatically |
| Generic answers with no project awareness | Workspace context on every single message |
Ask "where do we handle authentication?" and get ranked, snippet-level answers instantly. Hybrid semantic + keyword search with exact-token fusion, so a symbol lookup like resolveWriteScope lands the definition — not lookalikes. Search works the moment setup finishes: keyword results come back immediately while the semantic index builds in the background.
Decisions, lessons, preferences, plans, tasks, docs, runbooks — captured during work and surfaced automatically on later turns, in later sessions, even after context compaction. Every prior session's transcript is indexed and queryable: "what did we decide about the id format last week?" just works.
The built-in Agent Q&A tool lets your AI ask your workspace's knowledge base — prior decisions, conventions, runbooks, guardrails — and get a grounded answer with citations for every claim.
"What depends on UserService?" "What breaks if I change this function?" Dependency mapping, impact analysis, circular-dependency and dead-code detection over your whole codebase.
ContextCapsule packages project state into a portable, shareable snapshot — bootstrap a fresh agent, hand off to a teammate, or share a token-gated link with an external agent.
Token pressure is tracked continuously (with thresholds sized to your model's context window). Before compaction hits, critical state is checkpointed; after it, context restores.
| Editor / Agent | Managed rules | MCP config | Lifecycle hooks |
|---|---|---|---|
| Claude Code | ✅ | ✅ | ✅ |
| Cursor | ✅ (.cursor/rules/*.mdc) | ✅ | ✅ |
| Windsurf | ✅ | ✅ | ✅ |
| Cline | ✅ | ✅ | ✅ |
| Roo Code | ✅ | ✅ | ✅ |
| Kilo Code | ✅ | ✅ | rules-based |
| VS Code + GitHub Copilot | ✅ | ✅ (incl. hosted OAuth) | rules-based |
| Codex CLI | ✅ | ✅ | rules-based |
| OpenCode | ✅ | ✅ | rules-based |
| Aider | ✅ | ✅ | rules-based |
| Antigravity | ✅ | ✅ | rules-based |
| Claude Desktop | — | ✅ | — |
Anything that speaks the Model Context Protocol can connect — the table just shows what the setup wizard configures automatically.
36 tools in the default surface, organized as consolidated domains so they cost ~75% fewer tokens than individual registrations. The tools your AI gets:
Plus focused write tools (capture_plan, memory_create_doc, session_capture_lesson, …) so agents that display tool names show what they're doing. Your AI uses all of this automatically — you just code.
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 demand
setup --editors=claude,cursor limits configuration to specific editors; doctor tells you exactly what's misconfigured and how to fix it — it runs automatically at the end of every setup.
Skip this if you ran the setup wizard.
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"
}
}
}
}
Locations: ~/.cursor/mcp.json • ~/Library/Application Support/Claude/claude_desktop_config.json
Local 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
}
}
}
For the local variant, export CONTEXTSTREAM_API_KEY before launching OpenCode.
Locations: ./opencode.json • ~/.config/opencode/opencode.json
The easiest path is the hosted remote MCP with built-in OAuth — no API key in the config file:
{
"servers": {
"contextstream": {
"type": "http",
"url": "https://mcp.contextstream.io/mcp?default_context_mode=fast"
}
}
}
setup defaults VS Code/Copilot to this hosted remote on the production cloud. To force a local runtime, run setup with CONTEXTSTREAM_VSCODE_MCP_MODE=local, or use stdio directly:
{
"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"
}
}
}
}
Keep both ~/.copilot/mcp-config.json (uses mcpServers) and .vscode/mcp.json (uses servers) in sync — setup writes both.
Use /mcp add interactively, or add to ~/.copilot/mcp-config.json:
{
"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"
}
}
}
}
See the GitHub Copilot CLI documentation for details.
Folders that aren't associated with any project (your home directory, ad-hoc scratch dirs) still work: init falls back to a hidden catch-all workspace in workspace-only mode, memory/session/context tools keep functioning, and project-bound actions return guided remediation instead of raw errors. The moment you enter a mapped project folder, the real workspace/project takes over.
An MCP (Model Context Protocol) server exposes tools and context to AI assistants over a standard protocol. Claude Code, Cursor, VS Code Copilot, Windsurf, and most modern AI coding tools are MCP clients — install one server, and every client you use gets the same capabilities.
Yes — all of them, plus Cline, Roo Code, Kilo Code, Codex CLI, OpenCode, Aider, Antigravity, and Claude Desktop. The setup wizard configures each editor's MCP config, managed rules, and (where the editor supports them) lifecycle hooks automatically.
Your code is private and securely stored, isolated per workspace with no cross-tenant access. You control exclusions with .contextstream/ignore (gitignore syntax), and project(action="purge") completely de-indexes a project on demand — without touching your captured memory.
There's a free tier to start with. Larger indexes, the full code graph, and team features are on paid plans: see pricing.
90.0% on the full 500-instance LongMemEval-S suite with the official GPT-4o judge (89.6% single-shot) — beating supermemory's published 85.4% with statistical significance and matching Zep's published 90.2% within the confidence interval. On multi-session recall specifically, ContextStream scores 81.2% vs Zep's published 57.9%. Methodology and per-family breakdowns: contextstream.io/benchmarks.
Most tools store notes. ContextStream combines memory (decisions, lessons, plans, session transcripts), semantic code search over your indexed codebase, a dependency/knowledge graph, grounded Q&A with citations, and team integrations (GitHub, Slack, Notion) behind one MCP server — and proactively delivers the relevant slice on every message instead of waiting to be asked.
Yes: setup --yes runs the entire wizard with zero prompts (set CONTEXTSTREAM_API_KEY in the environment), --editors=<list> scopes it, and contextstream-mcp doctor gives scriptable ✓/✗ diagnostics.
No. Project indexing runs in the background — keyword search works immediately, and semantic results fill in as the index builds. Check progress anytime with contextstream-mcp doctor.
Remove the contextstream entry from your editor's MCP config, and set CONTEXTSTREAM_HOOK_ENABLED=false (or re-run setup) to disable hooks. project(action="forget_local") unbinds a folder locally without touching server-side data.
contextstream-mcp doctor — it checks auth, API reachability, folder scope, index health, rule files, and hooks, with a fix hint per failure.CONTEXTSTREAM_API_URL and CONTEXTSTREAM_API_KEY are set; remove stale version pins like @contextstream/mcp-server@0.3.xx.vscode.dev; where that's blocked (corporate networks), use stdio with an API key instead.@modelcontextprotocol/sdk 1.28.0+ introduces breaking changes; this package pins >=1.25.1 <1.28.0. If you see Zod schema errors on startup, check your SDK resolution.Website: https://contextstream.io • Docs: https://contextstream.io/docs • Changelog: CHANGELOG.md
Stop teaching your AI the same things over and over.
ContextStream makes it brilliant from the first message.
io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage
io.github.mikerawsonnz/llm-orchestration-agent
io.github.mikerawsonnz/authenticated-llm-agent
labforgedev/copilot-memory-mcp
csoai-org/agent-prompt-injection-firewall-mcp
io.github.mikerawsonnz/authenticated-multi-llm-agent