Reference

MCP tool reference

The complete public ContextStream tool map, including lifecycle, scope, availability, pagination, and the boundaries between similar records.

This page is the wire-level map for people building an agent, debugging a connection, or checking exactly where a kind of work belongs. The task guides elsewhere use plain language on purpose.

The current complete surface has 20 consolidated domains. A connection may show fewer when its configured toolset is smaller, an account feature is unavailable, or disconnected integrations are hidden. Ask help for the live catalog and use the MCP tools/list response as the authority for the exact JSON schema your client received.

Required lifecycle

For a coding session, use this order:

  1. Call init(folder_path="…") once. Keep the returned workspace, project, and session scope.
  2. Call context(user_message="…", session_id="…") before acting on each user turn. If instruct is exposed, get pending entries first and acknowledge the ones you applied.
  3. Search the ContextStream code index before broad local discovery.
  4. Use the domain that owns the record. Plans, lessons, documents, tickets, and capsules are not interchangeable generic notes.
  5. After local file changes, request a project index refresh. A hosted gateway may report requires_local_ingest; that is a handoff to the installed machine-local sync path, not an error to retry in a loop.

context can return grounding, lessons, preferences, decisions, matched skills, routing notices, and version notices. These are operational instructions for the current turn, not decorative metadata.

Complete domain catalog

DomainOwnsReader guide
initSession initialization, folder resolution, current workspace/project scope, and index stateConnect your assistant
contextTurn-specific grounding: relevant history, rules, lessons, preferences, decisions, skills, and routingWhat to say
searchIndexed source and file search, including exact, semantic, pattern, refactor, exhaustive, team, guided, and crawl modesSearch
instructSession-scoped dynamic instructions and their acknowledgement stateInstruction files
sessionRecall, snapshots, decisions, lessons, plans, context restoration, account mode, and session summariesPast sessions
memoryNodes, events, tasks, todos, documents, diagrams, transcripts, decisions, timelines, and team viewsWhat gets remembered
graphDependencies, circular imports, unused code, complexity, quality history/trends/freshness, and saved quality snapshotsCode health
projectProject records, file listings, index/ingest state, de-indexing, local mappings, statistics, and recent changesWorkspaces and projects
workspaceWorkspace listing, lookup, creation, and workspace-level scopeWorkspaces and projects
reminderReminder listing, active reminders, creation, snoozing, completion, and dismissalReminders
integrationUnified Slack, GitHub, Notion, Linear, Jira, and Figma search/knowledge operationsIntegrations
mediaImages, video, audio, and documents: indexing, search, status, metadata, and clip extractionMedia and PDFs
skillReusable instruction/action bundles: create, update, run, import, export, share, supersede, and deleteReusable skills
capsulePortable context bundles: create, share, open, hydrate by chunk, inspect, diff, audit, schedule, and revokeCapsules
qaGrounded questions plus curation of the workspace knowledge baseQuestions and answers
entityStructured workflow records: tickets, handoffs, backlog views, incidents, releases, experiments, goals, key results, sprints, reviews, risks, and discussionsOperational tracking
vcsGitHub, GitLab, and Bitbucket repositories, pull requests, issues, commits, trees, search, notifications, links, automations, webhooks, and ingestRepository workflows

Hosted and runtime domains

These last domains report on the running product or handle jobs that are available only through the hosted layer.

DomainOwnsReader guide
chartWorkspace dashboard chart queries; hosted/remote deployments onlyAnalytics and exports
async_jobLong-running memory exports and aggregates with submit, poll, and paged results; hosted/remote deployments onlyAnalytics and exports
helpLive tools, auth, billing, version, workflow, rule previews, bundles, and team subscription statusTroubleshooting

The catalog names are stable public domains. Individual actions and fields can grow. Generate clients from tools/list; do not freeze a copied schema from a documentation page.

Session and instruction actions

init, context, and search are request-shaped domains rather than action routers. Their behavior is selected by fields such as folder_path, context mode, and search mode.

The action-routed session surfaces are:

DomainGroupPublic actions
instructInstruction lifecyclebootstrap, get, push, ack, clear, stats, checkpoint, verify
sessionCapture and lessonscapture, retro_capture, capture_lesson, get_lessons, update_lesson, delete_lesson
sessionRecall and contextrecall, ground, set_account_mode, remember, user_context, summary, compress, delta, smart_search, decision_trace, restore_context
sessionPlanscapture_plan, get_plan, update_plan, list_plans
sessionSuggested ruleslist_suggested_rules, suggested_rule_action, suggested_rules_stats

Use retro_capture when saving a decision, note, or snapshot after the fact from transcript evidence. smart_search searches memory and conversation history; it is not a substitute for source-code search.

Memory and reusable-context actions

DomainGroupPublic actions
memoryNodes and queriessearch, create_node, get_node, update_node, delete_node, list_nodes, supersede_node, decisions, timeline, summary
memoryEventscreate_event, get_event, update_event, delete_event, distill_event, list_events, import_batch
memoryTaskscreate_task, get_task, update_task, delete_task, list_tasks, reorder_tasks
memoryTodoscreate_todo, list_todos, get_todo, update_todo, delete_todo, complete_todo
memoryDiagramscreate_diagram, list_diagrams, get_diagram, update_diagram, delete_diagram
memoryDocumentscreate_doc, list_docs, get_doc, update_doc, delete_doc, create_roadmap
memoryTranscriptslist_transcripts, get_transcript, search_transcripts, search_archive, delete_transcript
memoryTeam viewsteam_tasks, team_todos, team_diagrams, team_docs, team_discussions, team_transcript_topics
reminderReminderslist, active, create, snooze, complete, dismiss
skillSkillslist, get, create, update, supersede, run, delete, import, export, share
qaQuestions and knowledge baseask, search, save_kb, list_kb, get_kb, update_kb, delete_kb, feedback, explain

Capsules have their own larger lifecycle:

DomainGroupPublic actions
capsuleCoreopen, get, delete, list, create, share
capsuleHydration and handoffchunk, stream, context_doc, bootstrap_prompt, graph, audit, list_shares, revoke_share, ack, primer, diff
capsuleScheduled refreshschedule, schedule_list, schedule_delete
capsuleExplanationexplain

Scope and analysis actions

DomainGroupPublic actions
workspaceWorkspace recordslist, get, create, delete, associate, bootstrap, team_members, index_settings
projectProject and index lifecyclelist, get, create, update, merge, combine, index, delete, purge, forget_local, remove_paths, overview, statistics, files, index_status, index_history, ingest_local, team_projects, recent_changes
graphRelationships and healthrelated, dependencies, impact, ingest, outbox_status, outbox_canary, call_path, path, circular_dependencies, unused_code, complexity_metrics, quality_trends, quality_history, quality_freshness, quality_snapshot, contradictions, code_drift, decisions, usages
entityStructured recordslist, get, create, update, delete

workspace.delete, project deletion/de-indexing, graph ingestion/outbox operations, and entity writes are not read-only merely because they share a consolidated domain with reads. Use the live annotations and obtain user authorization appropriate to the operation.

External and hosted utility actions

The full integration and vcs action lists and provider-specific contracts are on the integration action reference and repository action reference.

DomainGroupPublic actions
mediaAssetsindex, status, search, get_clip, list, delete
chartHosted analyticsrender, list
async_jobHosted long-running jobssubmit_export, submit_aggregate, poll, result
helpRuntime informationtools, auth, billing, version, workflow, editor_rules, enable_bundle, team_status

chart.render uses an allowlisted chart identifier. Async submissions require a collection (transcripts, decisions, lessons, or docs), return a job_id, and must be polled before paging results.

Search and graph

Use search for source code, symbols, paths, and file content. Its modes are:

ModeUse it for
autoNormal default; chooses a suitable strategy
hybridKeyword plus semantic retrieval
semanticConceptual questions
keywordExact text or quoted symbols
patternGlobs and regular expressions
exhaustiveEvery occurrence in the selected scope
refactorSymbol usage and rename-safe navigation
teamCross-project team search
crawlA deeper multi-modal investigation
guidedRaw evidence plus bounded navigation for an implementation intent

Use output_format="paths" for a file set, count for totals, minimal for compact evidence, and full when snippets and metadata matter. limit and offset page ordinary results; refactor searches can return an opaque cursor, which must be passed back unchanged.

Use graph after search when the question is relational: dependency blast radius, cycles, unused elements, complexity, or quality trends. Graph results may be cached scans. Check quality freshness before treating a dashboard count as a current source fact.

Memory, sessions, and structured work

These boundaries prevent the most common data-model mistakes:

NeedCorrect home
A durable multi-step implementation plansession plan actions; capture structured steps and linked tasks
A mistake that should warn future worksession lesson actions with trigger, impact, prevention, and severity
A decision or session checkpointsession capture with the matching event type
A runbook, ADR, RFC, postmortem, PRD, glossary, or other versioned documentmemory document actions
A lightweight task tied to a planmemory task actions with plan and step IDs
A personal reminderreminder
A bug, incident, release, sprint, review, risk, or other lifecycle recordentity
A portable or shareable context bundlecapsule
A handoff workflow record plus a portable payloadAn entity handoff paired with a capsule

The 12 entity kinds are ticket, handoff, backlog_view, incident, release, experiment, goal, key_result, sprint, review, risk, and discussion. A ticket can represent a bug, feature, task, chore, or epic; use the dedicated incident entity when severity and an incident status timeline matter.

Transcript reads live under memory; ranked continuation and snapshots live under session. Capture is client/configuration dependent. The presence of a transcript search action does not mean every client conversation was saved.

Supported content and record values

These are the current exact wire values for the record families that the task-oriented guides describe in plain language.

FamilySupported values
nodefact, decision, preference, constraint, habit, lesson, goal, risk, term
eventdecision, preference, insight, uncategorized, note, general, manual_note, implementation, operation, command_execution, file_operation, task, bug, feature, correction, lesson, warning, frustration, conversation, session_snapshot, standup, status_update, question, approval, feedback, discovery, achievement
documentroadmap, 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
diagramflowchart, sequence, class, er, gantt, mindmap, pie, other
entity_kindticket, handoff, backlog_view, incident, release, experiment, goal, key_result, sprint, review, risk, discussion
media_typevideo, audio, image, document
media_outputremotion, ffmpeg, raw
qa_knowledge_kindguidance, guardrail, faq, runbook, caveat
reminder_statuspending, completed, dismissed, snoozed
reminder_prioritylow, normal, high, urgent
reminder_recurrencedaily, weekly, monthly

Capsule inputs have their own policy vocabulary:

FamilySupported values
capsule_scopeworkspace, project, session
capsule_modelive, snapshot
capsule_audienceself, team, external_agent, public_link, support, bootstrap_link
capsule_purposebootstrap, handoff, snapshot, debug, review, onboarding, external_agent, custom
capsule_codenone, lazy, inline
capsule_redactionnone, standard, strict
capsule_graphexplorer, knowledge, code
capsule_formatsummary, markdown, text, ndjson

The live schema remains authoritative. In particular, entity body and query objects are forwarded to the corresponding API resource and can grow independently from this value table.

Scope and account mode

Reuse the workspace_id and project_id returned by init or context. Pass them explicitly for writes and for reads where ambiguity would be dangerous. folder_path resolves a local checkout; target_project is for a known child project after initialization from a multi-project parent.

Team and personal records can coexist. account_mode chooses team, personal, or auto; it does not bypass membership or record-level access. If a response contains a project-routing warning, resolve it before a project-scoped write.

List APIs do not share one pagination vocabulary. Depending on the domain, the live schema may use limit/offset, page/page_size, or an opaque cursor. Preserve cursors exactly and keep all original filters on the next request.

External systems and availability

Use integration to search and summarize connected product data through one provider-aware surface. Use vcs for repository-native operations such as pull diffs, checks, reviews, issue writes, branches, blobs, notifications, and webhooks. The integration action reference lists every supported provider/action combination.

chart and async_job require the hosted/remote product layer. Integration actions require the corresponding account connection. Some managed clients hide disconnected domains to keep their tool list small; absence can therefore mean configuration or entitlement, not an old server.

Results, notices, and failures

Tool results can contain both readable text and structured content. Preserve the structured payload when another program consumes the result, but show the human text when explaining it to a person.

Treat these cases distinctly:

  • A transport or schema error means the call did not run as requested.
  • An in-band routing, archive, stale-index, or requires_local_ingest notice is a successful response with a required next step.
  • A partial result with has_more, a next offset, or a cursor is not an empty result.
  • A stale index can still answer about existing indexed code. Refresh before concluding that a newly edited symbol is absent.
  • A missing hosted-only or integration action is an availability issue, not a reason to invent a similarly named call.

For the exact server build and currently exposed catalog, call help(action="version") and help(action="tools", format="full").