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
Give your AI coding assistant brilliant memory, deep context, and superpowers it never had.
npx --prefer-online -y @contextstream/mcp-server@latest setup
curl -fsSL https://contextstream.io/scripts/mcp.sh | bash
irm https://contextstream.io/scripts/mcp.ps1 | iex
Then run:
contextstream-mcp setup
npx --prefer-online -y @contextstream/mcp-server@latest setup
After setup, restart VS Code/Copilot.
Works with: Claude Code • Cursor • VS Code • Claude Desktop • Codex CLI • OpenCode • Antigravity
Other tools give your AI a notepad. ContextStream gives it a brain.
Your AI doesn't just remember things—it understands your entire codebase, learns from every conversation, pulls knowledge from your team's GitHub, Slack, and Notion, and delivers exactly the right context at exactly the right moment.
One setup. Instant transformation.
| Before | After |
|---|---|
| AI searches files one-by-one, burning tokens | Semantic search finds code by meaning in milliseconds |
| Context lost when conversations get long | Smart compression preserves what matters before compaction |
| Team knowledge scattered across tools | Unified intelligence from GitHub, Slack, Notion—automatically |
| Same mistakes repeated across sessions | Lessons system ensures your AI learns from every failure |
| Generic responses, no project awareness | Deep context about your architecture, decisions, patterns |
Ask "where do we handle authentication?" and get the answer instantly. No grep chains. No reading 10 files. Your AI understands your code at a conceptual level.
Every message is analyzed. Risky refactor? Relevant lessons surface automatically. Making a decision? Your AI knows to capture it. The right context, every time, without you asking.
Connect GitHub, Slack, and Notion. Discussions from months ago? Surfaced when relevant. That architecture decision buried in a PR comment? Your AI knows about it.
"What depends on UserService?" "What's the impact of changing this function?" Your AI sees the connections across your entire codebase.
Long conversation? ContextStream tracks token usage, auto-saves critical state, and ensures nothing important is lost when context compacts.
init → Loads your workspace context instantly
context → Delivers relevant context every single message
search → Semantic, hybrid, keyword—find anything by meaning
session → Captures decisions, preferences, lessons automatically
memory → Builds a knowledge graph of your project
graph → Maps dependencies and analyzes impact
project → Indexes your codebase for semantic understanding
media → Index and search video, audio, images (great for Remotion)
integration → Queries GitHub, Slack, Notion directly
Your AI uses these automatically. You just code.
ContextStream now supports a catch-all mode for random folders (for example ~ or ad-hoc dirs) that are not associated with a project/workspace yet.
init(...) resolves normal folder mappings first (.contextstream/config.json, parent/global mappings)..contextstream-global) in workspace-only mode.project(action="ingest_local")) return guided remediation to create/select a project instead of failing with a raw project_id required error.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
For GitHub Copilot in VS Code, the easiest path is the hosted remote MCP with built-in OAuth. Marketplace installs should write this remote server definition automatically.
Hosted remote MCP (recommended)
{
"servers": {
"contextstream": {
"type": "http",
"url": "https://mcp.contextstream.io/mcp?default_context_mode=fast"
}
}
}
On first use, VS Code should prompt you to authorize ContextStream in the browser and then complete setup without an API key in the config file.
npx @contextstream/mcp-server@latest setup now defaults VS Code/Copilot to this hosted remote when you are using the production ContextStream cloud. To force a local runtime instead, run setup with CONTEXTSTREAM_VSCODE_MCP_MODE=local.
For self-hosted or non-default API deployments, local runtime remains the default:
Rust MCP (recommended)
{
"servers": {
"contextstream": {
"type": "stdio",
"command": "contextstream-mcp",
"args": [],
"env": {
"CONTEXTSTREAM_API_URL": "https://api.contextstream.io",
"CONTEXTSTREAM_API_KEY": "your_key",
"CONTEXTSTREAM_TOOLSET": "complete",
"CONTEXTSTREAM_TRANSCRIPTS_ENABLED": "true",
"CONTEXTSTREAM_HOOK_TRANSCRIPTS_ENABLED": "true",
"CONTEXTSTREAM_SEARCH_LIMIT": "15",
"CONTEXTSTREAM_SEARCH_MAX_CHARS": "2400"
}
}
}
}
Node MCP server
{
"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",
"CONTEXTSTREAM_TRANSCRIPTS_ENABLED": "true",
"CONTEXTSTREAM_HOOK_TRANSCRIPTS_ENABLED": "true",
"CONTEXTSTREAM_SEARCH_LIMIT": "15",
"CONTEXTSTREAM_SEARCH_MAX_CHARS": "2400"
}
}
}
}
Use the Copilot CLI to interactively add the MCP server:
/mcp add
Or add to ~/.copilot/mcp-config.json (pick one runtime):
Rust MCP (recommended)
{
"mcpServers": {
"contextstream": {
"command": "contextstream-mcp",
"args": [],
"env": {
"CONTEXTSTREAM_API_URL": "https://api.contextstream.io",
"CONTEXTSTREAM_API_KEY": "your_key",
"CONTEXTSTREAM_TOOLSET": "complete",
"CONTEXTSTREAM_TRANSCRIPTS_ENABLED": "true",
"CONTEXTSTREAM_HOOK_TRANSCRIPTS_ENABLED": "true",
"CONTEXTSTREAM_SEARCH_LIMIT": "15",
"CONTEXTSTREAM_SEARCH_MAX_CHARS": "2400"
}
}
}
}
Node MCP server
{
"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",
"CONTEXTSTREAM_TRANSCRIPTS_ENABLED": "true",
"CONTEXTSTREAM_HOOK_TRANSCRIPTS_ENABLED": "true",
"CONTEXTSTREAM_SEARCH_LIMIT": "15",
"CONTEXTSTREAM_SEARCH_MAX_CHARS": "2400"
}
}
}
}
For more information, see the GitHub Copilot CLI documentation.
~/.copilot/mcp-config.json.vscode/mcp.jsoncontextstream-mcp as the command.npx --prefer-online -y @contextstream/mcp-server@latest as the command.CONTEXTSTREAM_VSCODE_MCP_MODE=local.CONTEXTSTREAM_VSCODE_MCP_MODE=remote.mcpServers in Copilot CLI config and servers in VS Code config.CONTEXTSTREAM_API_URL and CONTEXTSTREAM_API_KEY are set.@contextstream/mcp-server@0.3.xx.The hosted HTTP MCP transport (https://mcp.contextstream.io/mcp) uses OAuth authentication that routes through vscode.dev for the redirect flow. This can fail in environments where vscode.dev is blocked (corporate networks, regional restrictions, CDN-level blocks).
Workaround: Use the stdio transport (Rust binary or Node.js) with API key authentication instead:
{
"contextstream": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@contextstream/mcp-server@latest"],
"env": {
"CONTEXTSTREAM_API_KEY": "your-api-key"
}
}
}
@modelcontextprotocol/sdk versions 1.28.0 and above introduce breaking changes. The package.json pins the SDK to >=1.25.1 <1.28.0 to prevent incompatible resolutions. If you experience Zod schema errors on startup, ensure your SDK version is below 1.28.0.
The MCP marketplace entry now targets the hosted remote MCP at https://mcp.contextstream.io/mcp?default_context_mode=fast so VS Code can use the native OAuth flow instead of writing a local npm-based stdio config.
Use the Rust or Node local runtime configs above only when you explicitly want local execution, custom/self-hosted endpoints, or editor environments that do not support the hosted remote flow.
Website: https://contextstream.io
Docs: https://contextstream.io/docs
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