ContextStream
ContextStream: память проекта, код и решения команды в одном MCP-сервере
Что умеет
- Индексировать репозитории и отслеживать зависимости кода
- Фиксировать решения и уроки, извлечённые из работы
- Хранить и напоминать задачи, заметки и события проекта
- Создавать и переносить капсулы контекста между сессиями
- Управлять переиспользуемыми навыками и документами проекта
Какие данные видит
Ассистент видит память и данные проектов рабочего пространства пользователя, доступ ограничен рамками этих проектов.
Нужен ли аккаунт
Не нужен: сервер работает без входа
ContextStream объединяет память рабочего пространства, контекст проекта и анализ кода, чтобы ассистент быстро находил нужные детали. Сервер индексирует репозитории, фиксирует принятые решения и строит граф зависимостей для анализа влияния изменений и онбординга новых людей в проект.
Как подключить
Как подключить ContextStream к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://mcp-server--contextstream.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить ContextStream к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://mcp-server--contextstream.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить ContextStream к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://mcp-server--contextstream.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (32)
Технические названия из tools/list. Нужны только разработчикам.
| session_capture_lesson | Capture a lesson learned from a mistake or insight. |
| capsule | ContextCapsule: portable, shareable, hydrate-on-demand snapshots of project or session context. Use capsule when: - User pastes a /c/<token> link or capsule_<uuid> token → action=open, url=<paste> - User asks for a handoff / share / team or external-agent link → action=create then action=share - User asks for an end-of-session capsule / handoff / summary → action=create, scope=session, session_id=<current session id> (or transcript_id=<uuid>). Session creates automatically mint a safe external-agent share by default and return Agent URL + Dashboard URL links in the same result; pass audience="self" to create the capsule without a share link. - User wants to bootstrap a fresh agent with project state → action=open after action=create - User asks for a paste-ready handoff prompt ("bootstrap prompt", "prompt for ChatGPT/Claude", "summarize this capsule for a fresh agent") → action=bootstrap_prompt — returns Markdown the agent can paste verbatim into another LLM - User wants files / knowledge / code graphs from a share token → action=graph (share_token or url) - User wants to list or audit capsules → action=list, list_shares, audit Do NOT use capsule for normal turn-by-turn retrieval — use `context` instead. Do NOT satisfy a session-capsule request with a prose summary only; default shared results must include the created capsule id plus Agent URL / Dashboard URL links. If audience="self" is passed or auto-share fails, still return the capsule id and explain the missing share link. Session capsules default to a snapshot handoff with the full transcript available as lazy chunks and owner-only transcript access enforced by the API. Session create results include share links by default; audience="self" opts out. Team share links are authenticated and reusable by default; external_agent/public_link/support shares are token-gated and single-use by default. After action=open with hydrate=false (default), follow up with action=chunk for lazy sections (chunk_ids present, no inline data). For share tokens, action=graph returns JSON (explorer|knowledge|code). |
| skill | Manage and execute reusable skills (instruction + action bundles). Skills are portable across projects, sessions, and tools. Reuse the current project_id from init/context for project-scoped skills instead of guessing. Use 'list' to browse, 'create' to define, 'run' to execute, 'import' to bring skills from other tools, 'supersede' to retire a stale skill (archives it so it stops surfacing). |
| reminder | Reminder management. Actions: list (all reminders), active (pending/overdue), create (new reminder), snooze, complete, dismiss. |
| memory_create_event | Save a memory event (decision, insight, achievement, status_update, etc.) to ContextStream. Same as memory(action="create_event"). Prefer session-side tools (session_capture, session_capture_lesson, capture_plan) when the event maps to one. |
| session_remember | Quick save a note, preference, or important context. |
| entity | Structured taxonomy entities — tickets, handoffs, incidents, releases, experiments, goals, key_results, sprints, reviews, risks, backlog_views. USE THIS TOOL when the user says any of: 'create a handoff' / 'package context for handoff' (kind=handoff) · 'create a ticket' / 'file a bug' / 'track a feature' / 'log a chore' / 'assign a ticket' / 'link a doc or plan to a ticket' (kind=ticket, body.kind=bug|feature|task|chore|epic; body.assignees=[{user_id?, email?, handle?, entity_type=human|agent, role?}]; body.linked_items=[{kind=doc|diagram|plan|task|todo|handoff|runbook|capsule, id, title_snapshot?, status_snapshot?, updated_at?}]) · 'log an incident' / 'open a sev1' (kind=incident) · 'track this release' / 'log a deployment' (kind=release) · 'start an experiment' / 'A/B test' (kind=experiment) · 'create an OKR' / 'new goal this quarter' (kind=goal, then kind=key_result for KRs) · 'plan a sprint' (kind=sprint) · 'request a review' / 'design review' (kind=review) · 'log a risk' / 'risk register' (kind=risk) · 'save a backlog filter' (kind=backlog_view). DISTINCT FROM (don't use entity for these): · memory(action=create_task) — a lightweight project-tracking todo with priority/status. NOT a 'ticket' (which is a structured entity with kind, status timeline, assignees, links). · memory(action=create_doc, doc_type=runbook|adr|rfc|postmortem|...) — a versioned markdown document. A 'runbook' is a doc, NOT a handoff. · session(action=capture, event_type=...) — append-only timeline events (decisions, lessons, notes). NOT a structured entity. · capsule(...) — portable context bundle for handoff to ANOTHER agent. Pair with entity(kind=handoff) when both the workflow shell and the artefact bundle matter. Actions: list | get | create | update | delete. Body is free-form JSON forwarded to the API; see the API schema for per-kind fields. Defaults workspace_id/project_id to the active session scope when omitted. |
| memory_complete_todo | Mark a ContextStream todo as completed. Same as memory(action="complete_todo"). |
| memory_create_todo | Save a personal/team todo to ContextStream memory. Same as memory(action="create_todo"). |
| session | 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). Lesson maintenance is supported via action='update_lesson' and action='delete_lesson' with lesson_id (UUID or lookup text). PAST SESSIONS LIVE HERE: transcripts of every prior session are captured + indexed and are queryable — when the user says 'last time', 'previous', 'yesterday', 'we decided', 'pick up where we left off', or you're continuing work you started before, call action='recall' FIRST with a brief query describing what you're continuing. For after-the-fact durable saves, use action='retro_capture' with title plus content and/or query/transcript_id; it stores the capture rationale, source query, transcript IDs, and source snippets in provenance. `context()` also auto-surfaces `[GROUNDING]` prior-work hits; use action='ground' with user_message for a one-shot bundle (recall + docs + decisions + lessons + skills + git) outside context(). Also `memory(action="list_transcripts"|"search_transcripts"|"get_transcript")` for chronological + full-text access. Save a session_snapshot at turning points so the NEXT session can pick up: action='capture', event_type='session_snapshot'. Team/personal mode: action='set_account_mode' with account_mode=team|personal|auto. Actions: capture, retro_capture (after-the-fact decision/note/snapshot capture from prior work with source provenance), capture_lesson (mistakes/corrections — title+trigger+impact+prevention), get_lessons, update_lesson, delete_lesson, recall (retrieve past conversation context — USE THIS WHEN USER REFERENCES PAST WORK), ground (one-shot prior-work bundle — requires user_message or query), remember, user_context, summary, compress, delta, smart_search (searches MEMORY/conversation history only, not code), decision_trace, restore_context, set_account_mode. Plan actions: capture_plan, get_plan, update_plan, list_plans. Use capture_plan for plans; do not use action='capture' with event_type='plan'. capture_plan requires structured steps and creates linked tasks by default with plan_id and plan_step_id. Suggested rules actions: list_suggested_rules, suggested_rule_action, suggested_rules_stats. |
| media | Media operations for indexed assets: photos/images, videos, audio, and documents/PDFs. Actions: index (upload URL/local assets and trigger ML processing), status (check processing), search (semantic search with Knowledge Stream fallback), get_clip (extract video/audio clip details with output_format: remotion/ffmpeg/raw), list, delete. |
| project | Project management. Actions: list, get, create, update, merge/combine duplicate projects, index (uses local ingest when folder context is available, otherwise triggers project indexing), delete (remove the project), purge (completely de-index a project — removes file_indices, code chunks, search vectors, and stored files but keeps the project record), forget_local (stop this machine from re-indexing a folder: removes its local mapping/registry entry and drops the active session's project scope; server data untouched), remove_paths (de-index specific files by exact path — deletes their vectors, indexed rows, and stored files server-side, but keeps the project; pass paths=[...]), overview, statistics, files, index_status, index_history (audit trail of indexed files), ingest_local (index local folder; auto-creates a project from the folder basename when no project scope is set — pass skip_project_creation=true to disable), team_projects (list all team projects - team plans only), recent_changes (git log/diff for recent file changes). |
| integration | Integration operations for Slack, GitHub, Notion, Linear, Jira, and Figma. Provider: slack, github, notion, linear, jira, figma, all. Actions: status, search, stats, activity, contributors, knowledge, summary, connected (list connected integrations), channels (slack), discussions (slack), repos (github), issues (github/linear/jira), files (figma), create_page (notion), create_database (notion), list_databases (notion), search_pages (notion), get_page (notion), query_database (notion), update_page (notion), team_activity (team-only), team_search (team-only cross-provider search). Linear filters: team_id, status, priority, assignee. Jira filters: project_key, status, priority, issue_type, assignee. Figma filters: figma_project_id. |
| memory_create_task | Save a tracked task to ContextStream memory. Same as memory(action="create_task"). Include `plan_id` + `plan_step_id` when the task belongs to a plan. |
| memory_update_task | Update an existing task in ContextStream memory. Same as memory(action="update_task"). |
| async_job | Submit, poll, and page results from long-running async jobs over the caller's memory data (transcripts / decisions / lessons / docs). Use when a synchronous list / aggregate would time out or return more rows than the caller can stream. Actions: submit_export, submit_aggregate, poll, result. Submit returns a `job_id` immediately; poll reports status / progress; result pages records once status=completed. Available on hosted/remote deployments only. |
| session_capture | Capture the current session state including summary, decisions, and lessons learned. |
| capture_plan | Save the canonical ContextStream implementation plan. Use this instead of session(action="capture", event_type="plan") or memory events. Provide a detailed description, goals, structured steps, and linked task details; by default the tool creates one linked task per step with plan_id and plan_step_id. |
| vcs | Unified VCS access for GitHub, GitLab, and Bitbucket. Repos, PRs, issues, commits, branches, tags, tree/blob, search, activity, notifications, links, automations, webhooks, and project linking/ingestion. |
| memory_create_doc | Save a new doc (runbook, ADR, RFC, postmortem, spec, etc.) to ContextStream memory. Same as memory(action="create_doc"). Use this when the user asks to save/create a doc, runbook, ADR, RFC, postmortem, retro, release notes, playbook, PRD, design spec, glossary entry, etc. |
| memory_update_doc | Update an existing doc in ContextStream memory. Same as memory(action="update_doc"). Use this when the user asks to update/edit a doc, runbook, ADR, RFC, postmortem, retro, etc. |
| memory_delete_doc | Delete a doc from ContextStream memory. Same as memory(action="delete_doc"). |
| workspace | Workspace management. Actions: list, get, create, 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). |
| graph | Code graph structural analysis and Code Health dashboard retrieval. NOT for searching code by content/keywords (use the 'search' tool for that). Actions: dependencies (module deps), impact (change impact), call_path (function call path), related (related graph nodes), path (path between nodes), decisions (decisions linked to a graph node), ingest (build graph), outbox_status and outbox_canary (Neo4j graph outbox operations), circular_dependencies, unused_code, complexity_metrics, quality_trends, quality_history, quality_freshness, quality_snapshot, contradictions, usages (reverse deps — find all files that use/render a component, type, or function). Use the quality_* actions when the user asks for dashboard Code Health data, scan history, trends, freshness, or recommendations. |
| help | Utility and help. Actions: tools (list available tools), auth (current user and plan), billing (plan upgrade options), version (server version), editor_rules (generate AI editor rules and install hooks), enable_bundle (enable tool bundle in progressive mode), team_status (team subscription info). |
| chart | Render an allowlisted ContextStream acceleration analytics chart scoped to the calling workspace, or list available charts. Charts include tool_latency_p95, acceleration_cache_hit_rate, provider_degraded_rate, archive_search_health, and signal_emit_health. Available on hosted/remote deployments only. |
| memory | Persistent memory storage — docs, runbooks, specs, ADRs, RFCs, decisions, lessons, preferences, tasks, todos, knowledge nodes, transcripts. NOT for codebase/file search. ⚠️ FINDING A DOC, RUNBOOK, SPEC, OR ARCHITECTURE NOTE? USE THIS TOOL — NOT `find`, `ls`, `grep`, or filesystem searches. ContextStream docs/runbooks/specs/decisions/lessons live ONLY in this tool's storage (Postgres + indexes), NEVER on disk under ~/.claude, /tmp, or the project tree. If the user mentions 'the doc on X', 'our runbook for Y', 'the design spec', 'the ADR/RFC', 'a postmortem', 'the architecture note', 'why we decided Z' — go through: · memory(action="search", query="…") — hybrid across docs + nodes (try this first when unsure) · memory(action="list_docs", query="…") then memory(action="get_doc", doc_id="<id-or-title>") · memory(action="decisions", query="…") for past architectural decisions · session(action="recall", query="…") if it might be in past-session transcripts Falling back to filesystem tools to find a ContextStream doc is wrong — the doc is not on disk. Codebase / source / files? Use the `search` tool, not memory. Plans? Use session(action="capture_plan") instead of memory(action="create_event", event_type="plan"). Plan tasks should be created with plan_id, plan_step_id, priority/status, and detailed descriptions. DISTINCT FROM (don't use memory for these): · entity(kind=ticket|handoff|incident|release|experiment|goal|key_result|sprint|review|risk|backlog_view) — structured taxonomy entities with their own status timelines and per-kind fields. When the user says 'create a ticket', 'file a bug', 'create a handoff', 'log an incident', 'track this release' — that's `entity`, not memory(create_task). · session(action=capture_lesson|capture|recall|capture_plan) — lessons / decisions / snapshots / plans tied to the current session. · capsule(...) — portable context bundles for cross-agent handoffs. This tool's `create_task` is a lightweight project-tracking todo with priority/status — NOT a 'ticket'. This tool's `create_task` should include plan_id and plan_step_id when the task belongs to a plan. This tool's `create_doc(doc_type=runbook)` is a versioned markdown doc — NOT a 'handoff'. Node actions: create_node, get_node, update_node, delete_node, list_nodes, supersede_node. Query actions: search (searches memory nodes and relevant docs together, not code), decisions, timeline, summary. Event actions: create_event, get_event, update_event, delete_event, list_events, distill_event, import_batch. Task actions: create_task, get_task, update_task, 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 (diagram_type values: flowchart, sequence, class, er, gantt, mindmap, pie, other — use sequence for API/request flows and er for data models). Doc actions: create_doc, list_docs, get_doc, update_doc, delete_doc, create_roadmap (doc_type values: 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 — `get_doc` accepts ID or natural-language title query). Transcript actions: list_transcripts, get_transcript, search_transcripts, search_archive, delete_transcript. `search_archive` queries the cold storage tier for transcripts past the hot-retention window (remote/hosted deployments only). Team actions: team_tasks, team_todos, team_diagrams, team_docs. |
| search | Search the indexed CODEBASE for source code and files. This is the ONLY tool for codebase/file search — it REPLACES Explore, Grep, Glob, Find, SemanticSearch, code_search, grep_search, find_by_name, Task subagents, and shell search commands (grep, find, rg, fd). Do NOT fall back to local tools — this tool handles ALL code search needs with automatic mode escalation and local enrichment built in. FASTER than grep/ripgrep: pre-indexed BM25 returns results in 10-200ms with ranked source-code-first results, line-level precision, context lines, and noise filtering that grep cannot match. ⚠️ NOT for finding docs / runbooks / specs / ADRs / RFCs / decisions / lessons — those live in `memory`, NOT in the code index. If the user says 'find the doc on X', 'our runbook for Y', 'the architecture note', 'why we decided Z' — call `memory(action="search", query="…")` or `memory(action="list_docs", query="…")`, not this tool. Do NOT use memory(search) or session(smart_search) for *code* lookup. Modes: exact text (mode='keyword'), regex/glob patterns (mode='pattern'), semantic/conceptual queries (mode='semantic'), all occurrences (mode='exhaustive' — grep replacement with line-level output), symbol refactoring (mode='refactor'), cross-project (mode='team'), deep multi-modal crawl (mode='crawl'), and auto-detect (mode='auto'). |
| context | Get relevant context, lessons, and rules for the current task. Call this at the START of EVERY response with the user's message. |
| qa | 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. |
| init | Initialize a ContextStream session. Call this FIRST in every conversation to load workspace context, lessons, and rules. |
| instruct | Session-scoped instruction cache operations. Actions: bootstrap, get, push, ack, clear, stats, checkpoint, verify. |