Skip to main content
Glama

30秒で試す

npx --prefer-online -y @contextstream/mcp-server@latest setup

この1コマンドで、AIエディタを検出し、MCP設定とルールを書き込み、サポートされていればライフサイクルフックをインストールし、バックグラウンドでプロジェクトをインデックスし、実行したすべてを検証します。その後エディタを再起動すれば、AIにメモリが備わります。無料枠あり。

自動化する? ゼロプロンプトモードはすべてのデフォルトを採用します:

npx --prefer-online -y @contextstream/mcp-server@latest setup --yes

Related MCP server: Doclea MCP

メモリベンチマークで勝利 — 正直に測定

ContextStreamは、約115kトークンのマルチセッション履歴にわたる会話メモリの標準テストであるLongMemEval-Sベンチマーク全体で90.0%を記録しました。 これは公式GPT-4oジャッジによる完全な500インスタンスのスイートで、450/500が正解です(シングルショット89.6%、自己無撞着性k=3で90.0%、Wilson 95% CI [87.1%, 92.3%])。2026年6月14日公開。

システム

LongMemEval-S

備考

ContextStream

90.0%

完全な500インスタンス、公式GPT-4oジャッジ

Zep

90.2%

ベンダー公表 — 統計的に引き分け(0.2ptは測定誤差の範囲内)

supermemory

85.4%

ベンダー公表 — ContextStreamが統計的に有意に勝利

マルチセッション想起(数日にわたるセッションで作業するコーディングエージェントにとって実際に重要なメモリ)では、ファミリーごとの比較でContextStreamは**81.2%を記録し、Zepの公表値57.9%を上回りました。また、エージェント型プロジェクトメモリのベンチマークでは、同じメモリによってエージェントのタスク成功率が58%から96%**に向上します。

完全な方法論、ファミリー別の内訳、ジャッジの比較可能性に関する注記(競合他社の数値は各ベンダーの公表資料からの引用)はこちら: contextstream.io/benchmarks


ContextStreamとは?

ContextStreamは、AIコーディングアシスタントに長期的なメモリと深いコードベース理解をもたらすModel Context Protocol(MCP)サーバーです。 セマンティック検索用にコードをインデックスし、セッションをまたいで意思決定、教訓、計画を記録し、依存関係グラフをマッピングし、GitHub、Slack、Notionからチームの知識を取り込み、毎回のメッセージでAIにそのすべてのうちの適切な断片を正確に配信します。

Claude Code、Cursor、VS Code + GitHub Copilot、Windsurf、Cline、Roo Code、Kilo Code、Codex CLI、OpenCode、Aider、Antigravity、Gemini CLI、Claude Desktopなど、あらゆるMCPクライアントで動作します。


どのContextStreamランタイムを使っていますか?

ContextStreamには独立したリリースラインがあります。0.5.xのホスト版と0.4.xのnpm版は別のランタイムであり、どちらかのアップデータが壊れていることを示すものではありません。

ランタイム

識別方法

バージョンライン

正規のリリースメタデータと注記

ホスト型MCP

エディタの設定がhttps://mcp.contextstream.io/mcpを使用している。help(action="version")がruntime_type: rust-mcpを報告する。

Rust MCP 0.5.x

help(action="version")は、公開時にはリリースノートをインラインで返し、機械可読なR2マニフェストにリンクする。

インストール済みRust MCP

エディタがhttps://contextstream.io/scripts/mcp.shでインストールされたcontextstream-mcpバイナリを起動する。contextstream-mcp --versionを実行する。

Rust MCP 0.5.x

同じ機械可読なR2マニフェスト。help(action="version")はこのランタイムをそのマニフェストにマッピングする。

レガシーnpm MCP(このリポジトリ)

エディタがnpx ... @contextstream/mcp-serverまたはグローバルなnpmインストールを起動する。help(action="version")がruntime_type: legacy-typescript-mcpを報告する。npm list -g @contextstream/mcp-serverでインストール済みパッケージが表示される。

TypeScript MCP 0.4.x

GitHubリリースとこのリポジトリのCHANGELOG.md。

ContextStream Desktop

アプリのバージョン情報/更新UIを確認する。Desktopはローカル同期ブリッジを実行する場合があるが、エディタで設定されたMCPランタイムは変更されない。

Desktop 0.3.x(独立)

アプリ内アップデータと、release_notesとプラットフォーム別ダウンロードを含む公開DesktopバージョンJSON。

help(action="version")が報告するversionは、常にそのツールコールを処理しているMCPプロセスのものです。Desktopがローカルリポジトリを追加またはインデックスした場合でも、Desktopのバージョンは別です。


なぜAIコーディングアシスタントはすべてを忘れてしまうのか?

なぜなら、すべての会話はゼロから始まるからです。AIは同じファイルを読み直し、同じアーキテクチャを再導出し、先週の失敗を繰り返し、コンテキストウィンドウが圧縮された瞬間に文脈を見失います。ContextStreamはこの種の問題全体を解決します:

ContextStreamなし

ContextStreamあり

AIがファイルを1つずつgrepし、トークンを消費

セマンティックコード検索が意味でコードをミリ秒で検索

会話が長くなるとコンテキストが失われる

圧縮前キャプチャが失われる前に重要な状態を保存し、後で復元

セッションをまたいで同じ失敗を繰り返す

レッスンシステムがAIが繰り返す前に過去の失敗を表示

「なぜXを選んだのか?」— 誰も覚えていない

意思決定と計画が永続化され、関連するときに再表示

ツール全体に散在するチーム知識

GitHub、Slack、Notionの知識を自動的に照会

プロジェクト認識のない一般的な回答

すべてのメッセージにワークスペースコンテキスト


セットアップ後にAIができること

🔍 キーワードではなく意味でコードを見つける

*「認証はどこで処理している?」*と尋ねると、ランク付けされたスニペットレベルの回答が即座に得られます。正確なトークン融合を備えたハイブリッドなセマンティック+キーワード検索により、resolveWriteScopeのようなシンボル検索は、似たようなものではなく定義にたどり着きます。検索はセットアップが完了した瞬間に機能します。バックグラウンドでセマンティックインデックスが構築されている間も、キーワード結果は即座に返されます。

🧠 重要なことをすべて記憶する

意思決定、教訓、好み、計画、タスク、ドキュメント、ランブック — 作業中にキャプチャされ、後続のターンや後続のセッション、コンテキスト圧縮後でも自動的に表示されます。過去のすべてのセッションのトランスクリプトがインデックス化され、クエリ可能です:*「先週、ID形式について何を決めた?」*がそのまま機能します。

💬 行き詰まったらワークスペースに尋ねる

組み込みのAgent Q&Aツールを使用すると、AIがワークスペースのナレッジベース(過去の意思決定、規約、ランブック、ガードレール)に質問し、すべての主張に引用付きの根拠のある回答を得られます。

🕸️ グラフ全体を見る

「UserServiceに依存しているものは?」「この関数を変更したら何が壊れる?」 コードベース全体にわたる依存関係マッピング、影響分析、循環依存とデッドコードの検出。

📦 エージェント間でコンテキストを引き継ぐ

ContextCapsuleはプロジェクトの状態をポータブルで共有可能なスナップショットにパッケージ化します。新しいエージェントのブートストラップ、チームメイトへの引き継ぎ、外部エージェントとのトークン制限付きリンクの共有が可能です。

🛡️ 長いセッションを生き延びる

トークン使用量は継続的に追跡されます(モデルのコンテキストウィンドウに合わせたしきい値付き)。圧縮が発生する前に重要な状態がチェックポイントされ、その後コンテキストが復元されます。


対応しているAIエディタとエージェントは?

エディタ / エージェント

管理ルール

MCP 設定

ライフサイクルフック

Claude Code

✅

✅

✅

Cursor

✅ (.cursor/rules/*.mdc)

✅

✅

Windsurf

✅

✅

✅

Cline

✅

✅

✅

Roo Code

✅

✅

✅

Kilo Code

✅

✅

ルールベース

VS Code + GitHub Copilot

✅

✅ (ホスト型 OAuth 含む)

ルールベース

Codex CLI

✅

✅

ルールベース

OpenCode

✅

✅

ルールベース

Aider

✅

✅

ルールベース

Antigravity

✅

✅

ルールベース

Claude Desktop

—

✅

—

Model Context Protocol に対応しているものはすべて接続できます。この表は、セットアップウィザードが自動的に設定する内容を示したものです。


ツール

デフォルトのサーフェスには 36 個のツールがあり、統合されたドメインとして整理されているため、個別登録よりも約 75% 少ないトークンで利用できます。AI が利用できるツールは以下のとおりです。

  • init / context — ワークスペースの状態と、すべてのメッセージに対する適切なコンテキスト

  • search — セマンティック、ハイブリッド、キーワード、パターン、網羅的、リファクタリングモード

  • memory — イベント、決定事項、ドキュメント、ランブック、タスク、TODO、図、トランスクリプト

  • session — 決定事項と教訓の記録、過去のセッションの想起、計画、遡及的キャプチャ

  • qa — 引用付きの、ワークスペースのナレッジベースに基づく Q&A

  • graph — 依存関係、影響分析、循環依存、未使用コード

  • capsule — エージェント間の引き継ぎ用の、移植可能で共有可能なコンテキストスナップショット

  • entity — チケット、インシデント、リリース、スプリント、OKR、リスク

  • project / workspace — プロジェクトのインデックス作成、スコープ、ワークスペース管理

  • skill — 再利用可能な指示とアクションのバンドル。ツール間で移植可能

  • media — 画像、動画、音声、ドキュメントのインデックス作成と検索

  • vcs / reminder / integration / help — リポジトリリンク、リマインダー、統合、診断

さらに、フォーカスされた書き込みツール(capture_plan、memory_create_doc、session_capture_lesson など)もあり、ツール名を表示するエージェントは何を行っているかを示せます。AI はこれらすべてを自動的に使用します。あなたはコードを書くだけです。

デイリーリキャップ

デイリーリキャップは、十分なアクティビティがある場合、設定されたタイムゾーンの 23:00 頃に生成されます。エディタを閉じたり、MCP の session_id を変更したり、新しいチャットを開始したりしてもトリガーされないため、長時間接続の VS Code/Copilot 接続でも夜間ジョブが抑制されることはありません。

  • session(action="list_recaps", workspace_id="<uuid>", limit=30) は、完了したリキャップを新しい順に recap_date と generated_at のタイムスタンプ付きで一覧表示します。

  • session(action="trigger_recap", workspace_id="<uuid>") は、非同期の手動リキャップをキューに入れます。完了を確認するには、その後 list_recaps を呼び出してください。

これらのアクションは、ダッシュボードと同じリキャップ履歴および生成サービスを使用します。


CLI コマンド

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 は設定を特定のエディタに限定します。doctor は、何が誤設定されているか、そしてそれをどう修正するかを正確に教えてくれます。これはすべてのセットアップの最後に自動的に実行されます。


手動設定

セットアップウィザードを実行した場合は、これをスキップしてください。

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"
      }
    }
  }
}

場所: ~/.cursor/mcp.json • ~/Library/Application Support/Claude/claude_desktop_config.json

ローカルサーバー:

{
  "$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
    }
  }
}

リモートサーバー:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "contextstream": {
      "type": "remote",
      "url": "https://mcp.contextstream.com",
      "enabled": true
    }
  }
}

ローカル版の場合、OpenCode を起動する前に CONTEXTSTREAM_API_KEY をエクスポートしてください。

場所: ./opencode.json • ~/.config/opencode/opencode.json

最も簡単な方法は、組み込みの OAuth を備えたホスト型リモート MCP を使用することです。設定ファイルに API キーは不要です:

{
  "servers": {
    "contextstream": {
      "type": "http",
      "url": "https://mcp.contextstream.io/mcp?default_context_mode=fast"
    }
  }
}

setup は VS Code/Copilot をデフォルトで本番クラウド上のこのホスト型リモートに設定します。ローカルランタイムを強制するには、CONTEXTSTREAM_VSCODE_MCP_MODE=local を指定して setup を実行するか、stdio を直接使用してください:

{
  "servers": {
    "contextstream": {
      "type": "stdio",
      "command": "npx",
      "args": ["--prefer-online", "-y", "@contextstream/mcp-server@latest"],
      "env": {
        "CONTEXTSTREAM_API_URL": "https://api.contextstream.io",
        "CONTEXTSTREAM_API_KEY": "your_key",
        "CONTEXTSTREAM_TOOLSET": "complete"
      }
    }
  }
}

~/.copilot/mcp-config.json(mcpServers を使用)と .vscode/mcp.json(servers を使用)の両方を同期させてください。setup は両方に書き込みます。

対話的に /mcp add を使用するか、~/.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"
      }
    }
  }
}

詳細については、GitHub Copilot CLI ドキュメント を参照してください。

ホスト型 MCP を Gemini CLI 拡張機能(streamable-http)としてインストールします:

gemini extensions install https://github.com/contextstream/mcp-server

拡張機能は CONTEXTSTREAM_API_KEY を要求し、https://mcp.contextstream.io/mcp に接続します。毎日のギャラリークロール後、https://geminicli.com/extensions/ にも表示されます。

どのプロジェクトにも関連付けられていないフォルダ(ホームディレクトリ、アドホックなスクラッチディレクトリなど)でも機能します。init はワークスペースのみのモードで非表示のキャッチオールワークスペースにフォールバックし、memory/session/context ツールは機能し続け、プロジェクトにバインドされたアクションは生のエラーではなくガイド付きの修正を返します。マッピングされたプロジェクトフォルダに入ると、実際のワークスペース/プロジェクトが引き継ぎます。


FAQ

MCP サーバーとは何ですか?

MCP(Model Context Protocol)サーバーは、標準プロトコルを介して AI アシスタントにツールとコンテキストを公開します。Claude Code、Cursor、VS Code Copilot、Windsurf、およびほとんどの最新の AI コーディングツールは MCP クライアントです。1 つのサーバーをインストールすれば、使用するすべてのクライアントで同じ機能を利用できます。

ContextStream は Claude Code / Cursor / Copilot / Windsurf で動作しますか?

はい、すべてで動作します。さらに Cline、Roo Code、Kilo Code、Codex CLI、OpenCode、Aider、Antigravity、Gemini CLI、Claude Desktop でも動作します。セットアップウィザードは、各エディタの MCP 設定、管理ルール、および(エディタがサポートしている場合)ライフサイクルフックを自動的に設定します。

私のコードはプライベートですか?

あなたのコードはプライベートで安全に保存され、ワークスペースごとに分離され、クロステナントアクセスはありません。.contextstream/ignore(gitignore 構文)で除外を制御でき、project(action="purge") はキャプチャされたメモリに触れることなく、オンデマンドでプロジェクトのインデックスを完全に削除します。

費用はいくらですか?

無料ティアから始められます。大規模なインデックス、完全なコードグラフ、チーム機能は有料プランです。価格 を参照してください。

ContextStream はメモリベンチマークでどのようなスコアですか?

公式 GPT-4o ジャッジによる完全な 500 インスタンスの LongMemEval-S スイートで 90.0%(シングルショットで 89.6%)を達成し、supermemory の公表値 85.4% を統計的に有意に上回り、Zep の公表値 90.2% とは信頼区間内で一致しています。マルチセッション想起に特化すると、ContextStream は 81.2% で、Zep の公表値 57.9% を上回ります。方法論とファミリー別の内訳: contextstream.io/benchmarks

他の AI メモリツールとはどう違うのですか?

ほとんどのツールはメモを保存します。ContextStream は、メモリ(決定事項、教訓、計画、セッショントランスクリプト)、インデックス化されたコードベースに対するセマンティックコード検索、依存関係/ナレッジグラフ、引用付きの根拠に基づく Q&A、チーム統合(GitHub、Slack、Notion)を 1 つの MCP サーバーで組み合わせ、求められるのを待つのではなく、すべてのメッセージで関連するスライスをプロアクティブに配信します。

CI やスクリプト環境で使用できますか?

はい。setup --yes はプロンプトなしでウィザード全体を実行し(環境に CONTEXTSTREAM_API_KEY を設定)、--editors=<list> でスコープを限定し、contextstream-mcp doctor はスクリプト可能な ✓/✗ 診断を提供します。

インデックス作成を待つ必要がありますか?

いいえ。プロジェクトのインデックス作成はバックグラウンドで実行されます。キーワード検索は即座に機能し、インデックスが構築されるにつれてセマンティック結果が埋まっていきます。進行状況はいつでも contextstream-mcp doctor で確認できます。

アンインストールまたは無効化するにはどうすればよいですか?

エディタの MCP 設定から contextstream エントリを削除し、CONTEXTSTREAM_HOOK_ENABLED=false を設定するか(または setup を再実行)、フックを無効にします。project(action="forget_local") は、サーバー側のデータに触れることなく、フォルダをローカルでバインド解除します。


トラブルシューティング

  • まず contextstream-mcp doctor から始めてください — 認証、API 到達可能性、フォルダスコープ、インデックスの健全性、ルールファイル、フックをチェックし、失敗ごとに修正のヒントを提供します。

  • Workspace/User 設定スコープ全体で重複する ContextStream エントリを削除してください。

  • CONTEXTSTREAM_API_URL と CONTEXTSTREAM_API_KEY が設定されていることを確認し、@contextstream/mcp-server@0.3.xx のような古いバージョンピンを削除してください。

  • 設定変更後はエディタを再起動してください。

  • ホスト型 HTTP OAuth: リモートトランスポートの OAuth フローは vscode.dev を経由します。これがブロックされている環境(企業ネットワーク)では、代わりに API キー付きの stdio を使用してください。

  • SDK 互換性: @modelcontextprotocol/sdk 1.28.0+ には破壊的な変更が導入されています。このパッケージは >=1.25.1 <1.28.0 に固定されています。起動時に Zod スキーマエラーが表示される場合は、SDK の解決を確認してください。


リンク

ウェブサイト: https://contextstream.io • ドキュメント: https://contextstream.io/docs • チェンジログ: CHANGELOG.md


Available Tools

36 tools
batch_operationsBatch operationsAInspect

Execute multiple independent read-only operations in one call. Rejects write or destructive operations.

NameRequiredDescriptionDefault

No parameters

capsuleContextCapsuleA
Read-onlyIdempotent
Inspect

ContextCapsule: portable, shareable, hydrate-on-demand snapshots of project context. Use capsule when the user pastes a /c/ link or capsule token, asks for a handoff/share/team/external-agent link, wants to bootstrap a fresh agent with project state, asks for a paste-ready handoff prompt (bootstrap prompt / prompt for another LLM), wants share-token graphs, or wants to list/audit capsules. Do not use capsule for normal turn-by-turn retrieval; use context instead. Team share links are authenticated and reusable by default; external_agent/public_link/support shares are token-gated and single-use by default.

NameRequiredDescriptionDefault
urlNoContextCapsule or AI Brain share URL
modeNoCapsule mode
nameNoCapsule/share name
graphNoGraph kind for action=graph
limitNoMaximum audit events or list caps
scopeNoCapsule scope
actionYesAction to perform
formatNoOutput format
offsetNoAudit result offset
hydrateNoWhether to fully hydrate the capsule
purposeNoCapsule purpose
audienceNoShare audience. team creates an authenticated member link; external_agent/public_link/support create token-gated links. self is valid for capsule policy but does not mint share tokens.
chunk_idNoChunk ID for chunk action
max_usesNoBurn-after-N-reads cap for action=share. Team links default to no max-use cap; token-gated single-use links default to max_uses=1 with a short grace window after first open.
sectionsNoExplicit sections to include
share_idNoContextCapsule share UUID
multi_useNoAllow the share to be opened multiple times until expiry. Defaults to true for team links and false for token-gated links.
capsule_idNoContextCapsule ID
event_kindNoFilter audit events by kind
project_idNoProject ID (UUID).
permissionsNoPermissions for the capsule/share
share_tokenNoExisting brain_/capsule_ share token
access_scopeNoFilter audit events by access scope
include_codeNoCode inclusion mode
workspace_idNoWorkspace ID (UUID).
cursor_chunk_idNoNDJSON stream cursor chunk ID
expires_in_daysNoShare expiry in days (defaults: team=7, external_agent/public_link/support=1)
redaction_levelNoRedaction level
include_personalNoInclude personal artifacts
refresh_if_staleNoForce regenerate manifest if stale
max_inline_tokensNoCap inline section tokens during action=create
require_unlock_keyNoFor action=share: require a one-time unlock key to open the share
unlock_destinationsNoFor action=share with require_unlock_key=true: destinations that receive the unlock key
capture_planCapture planCInspect

Create a new implementation plan.

NameRequiredDescriptionDefault
tagsNoInput parameter: tags.
goalsNoInput parameter: goals.
stepsNoInput parameter: steps.
titleYesShort descriptive title.
due_atNoInput parameter: due at.
statusNoInput parameter: status.
project_idNoProject ID (UUID).
descriptionNoShort description.
is_personalNoInput parameter: is personal.
workspace_idNoWorkspace ID (UUID).
contextGet smart context for user queryA
Read-onlyIdempotent
Inspect

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. Replaces the need to include full chat history in prompts

Format options:

  • 'minified': Ultra-compact D:decision|P:preference|M:memory (default, ~200 tokens)

  • 'readable': Line-separated with labels

  • 'structured': JSON-like grouped format

Type codes: W=Workspace, P=Project, D=Decision, M=Memory, I=Insight, T=Task, L=Lesson

Context Pack:

  • mode='pack' adds code context + distillation (higher credit cost)

Example usage:

  1. User asks "how should I implement auth?"

  2. AI calls context(user_message="how should I implement auth?")

  3. Gets: "W:Maker|P:contextstream|D:Use JWT for auth|D:No session cookies|M:Auth API at /auth/..."

  4. AI responds with relevant context already loaded

This saves ~80% tokens compared to including full chat history.

NameRequiredDescriptionDefault
modeNoContext mode: standard (default), pack (includes code context), fast (cached quick response)
formatNoContext format (default: minified)
distillNoUse distillation for context pack (default: true)
max_tokensNoMaximum tokens for context (default: 800)
project_idNoProject ID (UUID).
session_idNoSession ID for transcript association (required if save_exchange is true)
client_nameNoClient name for transcript metadata (e.g., 'claude', 'cursor')
user_messageYesThe user message to analyze and get context for
workspace_idNoWorkspace ID (UUID).
save_exchangeNoSave this exchange to the transcript for later search (background task)
session_tokensNoCumulative session token count for context pressure calculation
assistant_messageNoPrevious assistant response to save along with user message (for complete exchange capture)
context_thresholdNoCustom context window threshold (defaults to 70k)
entityStructured Entity OperationsB
Read-onlyIdempotent
Inspect

Unified CRUD across taxonomy expansion entities. Kinds: ticket, handoff, backlog_view, incident, release, experiment, goal, key_result, sprint, review, risk. Actions: list, get, create, update, delete. Body is free-form JSON forwarded to the API; workspace_id/project_id default to active scope when omitted.

NameRequiredDescriptionDefault
idNoEntity ID (required for get / update / delete)
bodyNoJSON body for create / update
kindYesEntity kind
queryNoFilter params for list
actionYesAction to perform
project_idNoProject ID (UUID).
workspace_idNoWorkspace ID (UUID).
execute_operationExecute operationAInspect

Execute a hidden or deferred capability returned by tool_search.

NameRequiredDescriptionDefault

No parameters

flashSession instructions (flash alias)C
Read-onlyIdempotent
Inspect

Alias of instruct. Session-scoped instruction cache operations. Actions: bootstrap, get, push, ack, clear, stats, checkpoint, verify.

NameRequiredDescriptionDefault
idsNoEntry IDs to acknowledge (for ack)
limitNoMaximum entries (for get)
actionYesAction to perform
entriesNoEntries to push (for push)
session_idYesSession identifier
workspace_idNoWorkspace ID (UUID).
increment_turnNoIncrement turn counter (for push)
expected_versionNoExpected version for checkpoint verify
force_version_bumpNoForce version bump even with no new entries (for push)
generate_editor_rulesGenerate editor AI rulesBInspect

Generate AI rule files for editors (Cursor, Cline, Kilo Code, Roo Code, Claude Code, GitHub Copilot, Aider). These rules instruct the AI to automatically use ContextStream for memory and context. Supported editors: codex, opencode, cursor, windsurf, cline, kilo, roo, claude, aider, antigravity, copilot

NameRequiredDescriptionDefault
modeNoRule verbosity mode (default: minimal)
dry_runNoIf true, return content without writing files
editorsNoWhich editors to generate rules for. Defaults to all.
folder_pathNoAbsolute path to the project folder (defaults to IDE root/cwd)
project_nameNoProject name to include in rules
workspace_idNoWorkspace ID to include in rules
workspace_nameNoWorkspace name to include in rules
additional_rulesNoAdditional project-specific rules to append
overwrite_existingNoAllow overwriting existing rule files. ContextStream block updates preserve non-ContextStream content when supported.
generate_rulesGenerate ContextStream rulesCInspect

Generate AI rule files for editors (Cursor, Cline, Kilo Code, Roo Code, Claude Code, GitHub Copilot, Aider). Defaults to the current project folder; no folder_path required when run from a project. Supported editors: codex, opencode, cursor, windsurf, cline, kilo, roo, claude, aider, antigravity, copilot

NameRequiredDescriptionDefault
modeNoRule verbosity: bootstrap (~15 lines, recommended), minimal (~80 lines), full (~600 lines)bootstrap
dry_runNoIf true, return content without writing files
editorsNoWhich editors to generate rules for. Defaults to all.
folder_pathNoAbsolute path to the project folder (defaults to IDE root/cwd)
apply_globalNoAlso write global rule files for supported editors
project_nameNoProject name to include in rules
workspace_idNoWorkspace ID to include in rules
install_hooksNoInstall Claude Code hooks to enforce ContextStream-first search. Defaults to true for Claude users. Set to false to skip.
workspace_nameNoWorkspace name to include in rules
additional_rulesNoAdditional project-specific rules to append
overwrite_existingNoOverwrite existing rule files (default: true). User content outside the ContextStream block is preserved when block updates are supported.
include_pre_compactNoInclude PreCompact hook for automatic state saving before context compaction. Defaults to true.
graphGraphB
Read-onlyIdempotent
Inspect

Code graph analysis. Actions: dependencies (module deps), impact (change impact), call_path (function call path), related (related nodes), path (path between nodes), decisions (decision history), ingest (build graph), circular_dependencies, unused_code, contradictions, usages (reverse deps).

NameRequiredDescriptionDefault
waitNoFor ingest: wait for completion
limitNoMaximum number of results to return.
actionYesAction to perform
sourceNoFor call_path
targetNoFor dependencies/impact
node_idNoFor related/contradictions
max_depthNoMaximum traversal depth.
source_idNoFor path
target_idNoFor path
project_idNoProject ID (UUID).
target_typeNoFor usages: module|function|type|variable
workspace_idNoWorkspace ID (UUID).
include_transitiveNoInclude transitive dependencies.
helpHelpA
Read-onlyIdempotent
Inspect

Utility and help. Actions: tools (list available tools), auth (current user), version (server version), editor_rules (generate AI editor rules and install hooks for real-time file indexing), enable_bundle (enable tool bundle in progressive mode), team_status (team subscription info - team plans only).

NameRequiredDescriptionDefault
modeNoInput parameter: mode.
actionYesAction to perform
bundleNoInput parameter: bundle.
formatNoInput parameter: format.
dry_runNoInput parameter: dry run.
editorsNoInput parameter: editors.
categoryNoInput parameter: category.
folder_pathNoAbsolute path to the local folder.
list_bundlesNoInput parameter: list bundles.
project_nameNoInput parameter: project name.
workspace_idNoWorkspace ID (UUID).
install_hooksNoInstall Claude Code hooks (PreToolUse, UserPromptSubmit, PostToolUse). Default: true for Claude users.
workspace_nameNoInput parameter: workspace name.
additional_rulesNoInput parameter: additional rules.
include_post_writeNoInclude PostToolUse hook for real-time file indexing after Edit/Write operations. Default: true.
include_pre_compactNoInclude PreCompact hook for auto-saving state before compaction. Default: true.
initInitialize conversation sessionAInspect

Initialize a new conversation session and automatically retrieve relevant context. This is the FIRST tool AI assistants should call when starting a conversation. Returns: workspace info, project info, recent memory, recent decisions, relevant context, high-priority lessons, and ingest_recommendation.

The ingest_recommendation field indicates if the project needs indexing for code search:

  • If [INGEST_RECOMMENDED] appears, ask the user if they want to enable semantic code search

  • Benefits: AI-powered code understanding, dependency analysis, better context retrieval

  • If user agrees, run: project(action="ingest_local", path="<project_path>")

IMPORTANT: Pass the user's FIRST MESSAGE as context_hint to get semantically relevant context! Example: init(folder_path="/path/to/project", context_hint="how do I implement auth?")

This does semantic search on the first message. You only need context on subsequent messages.

NameRequiredDescriptionDefault
auto_indexNoAutomatically create and index project from IDE workspace (default: true)
project_idNoProject to initialize context for (UUID, or a project name to look up)
session_idNoCustom session ID (auto-generated if not provided)
folder_pathNoCurrent workspace/project folder path (absolute). Use this when IDE roots are not available.
context_hintNoRECOMMENDED: Pass the user's first message here for semantic search. This finds relevant context from ANY time, not just recent items.
workspace_idNoWorkspace to initialize context for
is_post_compactNoSet true immediately after context compaction to restore snapshots/transcripts when hooks are unavailable. Can also be enabled by CONTEXTSTREAM_RESTORE_CONTEXT=true.
include_decisionsNoInclude recent decisions (default: true)
allow_no_workspaceNoIf true, allow session_init to return connected even if no workspace is resolved (workspace-level tools may not work).
include_recent_memoryNoInclude recent memory events (default: true)
skip_project_creationNoIf true, skip automatic project creation/matching. Use for parent folders containing multiple projects where you want workspace-level context but no project-specific context.
instructSession instructionsC
Read-onlyIdempotent
Inspect

Session-scoped instruction cache operations. Actions: bootstrap, get, push, ack, clear, stats, checkpoint, verify.

NameRequiredDescriptionDefault
idsNoEntry IDs to acknowledge (for ack)
limitNoMaximum entries (for get)
actionYesAction to perform
entriesNoEntries to push (for push)
session_idYesSession identifier
workspace_idNoWorkspace ID (UUID).
increment_turnNoIncrement turn counter (for push)
expected_versionNoExpected version for checkpoint verify
force_version_bumpNoForce version bump even with no new entries (for push)
integrationIntegrationC
Read-onlyIdempotent
Inspect

Integration operations for Slack, GitHub, and Notion. Provider: slack, github, notion, all. Actions: status, search, stats, activity, contributors, knowledge, summary, channels (slack), discussions (slack), repos (github), issues (github), create_page (notion), create_database (notion), list_databases (notion), search_pages (notion with smart type detection - filter by event_type, status, priority, has_due_date, tags), get_page (notion), query_database (notion), update_page (notion), team_activity (aggregated team activity - team plans only).

NameRequiredDescriptionDefault
daysNoNumber of days for stats/summary (default: 7)
tagsNoFilter by tags, comma-separated (for Notion search_pages)
limitNoMaximum number of results to return.
queryNoSearch query string.
sinceNoISO 8601 timestamp to query changes since.
sortsNoSort order (for Notion query_database)
titleNoPage/database title (for Notion create_page/update_page/create_database)
untilNoInput parameter: until.
actionYesAction to perform
filterNoQuery filter (for Notion query_database)
statusNoFilter by status property, e.g. 'Done', 'In Progress' (for Notion search_pages)
contentNoPage content in Markdown (for Notion create_page/update_page)
page_idNoPage ID (for Notion get_page/update_page)
priorityNoFilter by priority property, e.g. 'High', 'Medium', 'Low' (for Notion search_pages)
providerYesIntegration provider
node_typeNoFilter knowledge by type (for Notion knowledge)
event_typeNoFilter by detected content type (for Notion search_pages)
project_idNoProject ID (UUID).
propertiesNoPage properties (for Notion update_page)
database_idNoDatabase ID (for Notion query_database/search_pages/activity)
descriptionNoDatabase description (for Notion create_database)
has_due_dateNoFilter to pages with or without due dates (for Notion search_pages)
workspace_idNoWorkspace ID (UUID).
parent_page_idNoParent page ID (for Notion create_page/create_database)
parent_database_idNoParent database ID (for Notion create_page). MUST call list_databases first - do NOT use IDs from memory
mediaMediaA
Read-onlyIdempotent
Inspect

Media operations for video/audio/image assets. Enables AI agents to index, search, and retrieve media with semantic understanding - solving the "LLM as video editor has no context" problem for tools like Remotion.

Actions:

  • index: Index a local media file or external URL. Triggers ML processing (Whisper transcription, CLIP embeddings, keyframe extraction).

  • status: Check indexing progress for a content_id. Returns transcript_available, keyframe_count, duration.

  • search: Semantic search across indexed media. Returns timestamps, transcript excerpts, keyframe URLs.

  • get_clip: Get clip details for a time range. Supports output_format: remotion (frame-based props), ffmpeg (timecodes), raw.

  • list: List indexed media assets.

  • delete: Remove a media asset from the index.

Example workflow:

  1. media(action="index", file_path="/path/to/video.mp4") → get content_id

  2. media(action="status", content_id="...") → wait for indexed

  3. media(action="search", query="where John explains authentication") → get timestamps

  4. media(action="get_clip", content_id="...", start="1:34", end="2:15", output_format="remotion") → get Remotion props

NameRequiredDescriptionDefault
endNoEnd time for clip. Formats: "2:15", "135s", or seconds as string
fpsNoFrames per second for remotion format (default: 30)
tagsNoTags to associate with media
limitNoMaximum results to return
queryNoSemantic search query for media content
startNoStart time for clip. Formats: "1:34", "94s", or seconds as string
actionYesAction to perform
file_pathNoLocal path to media file for indexing
content_idNoContent ID from index operation
project_idNoProject ID (UUID).
content_typeNoType of media content. Use video, audio, image, or document; friendly aliases like photos/images and docs/PDFs/slides are accepted.
external_urlNoExternal URL to media file for indexing
workspace_idNoWorkspace ID (UUID).
content_typesNoFilter search/list to content types: video, audio, image, document. Friendly aliases are accepted.
output_formatNoOutput format: remotion (frame-based props for Video component), ffmpeg (timecodes), raw (seconds)
target_projectNoTarget child project by folder name or project name
memoryMemoryA
Read-onlyIdempotent
Inspect

Persistent memory — docs, runbooks, specs, ADRs, decisions, lessons, tasks, and todos live HERE, never on disk: when the user mentions "the doc on X", "our runbook for Y", or "why we decided Z", use action="search" or list_docs/get_doc — NOT filesystem tools. Tasks here are lightweight project-tracking items; for tickets, bugs, incidents, releases, or handoffs use the entity tool instead. Event actions: create_event, get_event, update_event, delete_event (accepts event_id UUID or exact title; delete_all=true bulk-removes exact-title matches), list_events, distill_event, import_batch (bulk import array of events). Node actions: create_node, get_node, update_node, delete_node (accepts node_id UUID or exact title; delete_all=true bulk-removes exact-title matches), list_nodes, supersede_node. Query actions: search, decisions, timeline, summary. Task actions: create_task (create task, optionally linked to plan), get_task, update_task (can link/unlink task to plan via plan_id), delete_task, list_tasks, reorder_tasks. Todo actions: create_todo, list_todos, get_todo, update_todo, delete_todo, complete_todo. Diagram actions: create_diagram, list_diagrams, get_diagram, update_diagram, delete_diagram. Doc actions: create_doc, list_docs, get_doc, update_doc, delete_doc, create_roadmap. Transcript actions: list_transcripts (list saved conversations), get_transcript (get full transcript by ID), search_transcripts (semantic search across conversations), search_archive (hosted archive tier; local npm returns unavailable), delete_transcript. Team actions (team plans only): team_tasks, team_todos, team_diagrams, team_docs.

NameRequiredDescriptionDefault
modeNoMode metadata (capture/create filters) and query filter. Matches both structured `mode` and `mode:<value>` tag fallback.
tagsNoTags for event or task categorization
agentNoAgent identity metadata (capture/create filters) and query filter. Matches both structured `agent` and `agent:<name>` tag fallback.
limitNoMaximum number of results to return.
orderNoTask order within plan
queryNoSearch query string.
scopeNoArchive collection scope for search_archive: transcripts, decisions, lessons, docs
titleNoShort descriptive title.
actionYesAction to perform
doc_idNoDoc ID for get_doc/update_doc/delete_doc. For get_doc, accepts UUID or title/query text.
due_atNoDue date (ISO 8601) for todo
eventsNoArray of events for import_batch action
reasonNoFor supersede_node: reason for the supersede
statusNoBackward-compatible alias for task_status in task actions
contentNoFull content/body.
node_idNoNode ID (UUID).
plan_idNoPlan ID (full 36-char UUID): for create_task (link to plan), update_task (set UUID to link, null to unlink), list_tasks (filter by plan)
task_idNoTask ID for get_task/update_task/delete_task (full 36-char UUID)
todo_idNoTodo ID for get_todo/update_todo/delete_todo (full 36-char UUID)
categoryNoInput parameter: category.
doc_typeNoDocument type
event_idNoEvent ID (UUID).
metadataNoInput parameter: metadata.
priorityNoTask priority
task_idsNoTask IDs for reorder_tasks
code_refsNoInput parameter: code refs.
completedNoTodo completion flag for update_todo
node_typeNoInput parameter: node type.
relationsNoInput parameter: relations.
delete_allNoFor delete_node/delete_event with a non-UUID lookup: delete ALL exact-title matches in one call instead of erroring on ambiguity
diagram_idNoDiagram ID for get_diagram/update_diagram/delete_diagram (full 36-char UUID)
event_typeNoInput parameter: event type.
milestonesNoMilestones for create_roadmap action
project_idNoProject ID (UUID).
provenanceNoInput parameter: provenance.
session_idNoSession ID filter for list_transcripts
client_nameNoClient name filter for list_transcripts (e.g., 'claude', 'cursor')
descriptionNoDescription for task
is_personalNoMark as personal (only visible to creator). For create/list actions on todos, diagrams, docs.
new_contentNoFor supersede_node: the new content to replace the node with
task_statusNoTask status
todo_statusNoTodo status filter for list_todos, or status update value for update_todo
diagram_typeNoMermaid diagram type
plan_step_idNoWhich plan step this task implements
workspace_idNoWorkspace ID (UUID).
started_afterNoISO timestamp - filter transcripts started after this time
todo_priorityNoTodo priority
transcript_idNoTranscript ID for get_transcript/delete_transcript (full 36-char UUID)
blocked_reasonNoReason when task is blocked
started_beforeNoISO timestamp - filter transcripts started before this time
memory_complete_todoComplete todoBInspect

Mark a todo complete. Same handler as memory(action="complete_todo").

NameRequiredDescriptionDefault
todo_idYesTodo ID or title lookup
project_idNoProject ID (UUID).
workspace_idNoWorkspace ID (UUID).
memory_create_docCreate docBInspect

Create a durable doc (spec, runbook, ADR, RFC, etc.). Same handler as memory(action="create_doc").

NameRequiredDescriptionDefault
tagsNoInput parameter: tags.
titleYesDoc title
contentYesDoc body (markdown)
doc_typeNoDoc type (spec, runbook, adr, rfc, general, ...)
metadataNoInput parameter: metadata.
project_idNoProject ID (UUID).
is_personalNoInput parameter: is personal.
workspace_idNoWorkspace ID (UUID).
memory_create_eventCreate memory eventCInspect

Create a memory event for a workspace/project

NameRequiredDescriptionDefault
titleYesShort descriptive title.
contentYesFull content/body.
metadataNoInput parameter: metadata.
code_refsNoInput parameter: code refs.
event_typeYesInput parameter: event type.
project_idNoProject ID (UUID).
provenanceNoInput parameter: provenance.
workspace_idNoWorkspace ID (UUID).
memory_create_taskCreate taskBInspect

Create a project-tracking task, optionally linked to a plan step. Same handler as memory(action="create_task").

NameRequiredDescriptionDefault
tagsNoInput parameter: tags.
orderNoInput parameter: order.
titleYesTask title
plan_idNoPlan ID when the task belongs to a plan
priorityNoPriority level.
project_idNoProject ID (UUID).
descriptionNoConcrete work, acceptance criteria, verification
task_statusNoInput parameter: task status.
plan_step_idNoPlan step ID (e.g. plan-step-1)
workspace_idNoWorkspace ID (UUID).
memory_create_todoCreate todoCInspect

Create a lightweight todo. Same handler as memory(action="create_todo").

NameRequiredDescriptionDefault
tagsNoInput parameter: tags.
titleNoShort descriptive title.
due_atNoDue date (ISO 8601)
contentYesTodo content
project_idNoProject ID (UUID).
is_personalNoInput parameter: is personal.
workspace_idNoWorkspace ID (UUID).
todo_priorityNolow, medium, high, or urgent
memory_delete_docDelete docB
Destructive
Inspect

Delete a doc. Same handler as memory(action="delete_doc").

NameRequiredDescriptionDefault
doc_idYesDoc ID or title lookup
project_idNoProject ID (UUID).
workspace_idNoWorkspace ID (UUID).
memory_update_docUpdate docCInspect

Update an existing doc. Same handler as memory(action="update_doc").

NameRequiredDescriptionDefault
tagsNoInput parameter: tags.
titleNoShort descriptive title.
doc_idYesDoc ID or title lookup
contentNoFull content/body.
doc_typeNoInput parameter: doc type.
metadataNoInput parameter: metadata.
project_idNoProject ID (UUID).
workspace_idNoWorkspace ID (UUID).
memory_update_taskUpdate taskCInspect

Update a task (status, fields, plan linkage). Same handler as memory(action="update_task").

NameRequiredDescriptionDefault
orderNoInput parameter: order.
titleNoShort descriptive title.
plan_idNoID for the plan.
task_idYesTask ID or title lookup
priorityNoPriority level.
code_refsNoInput parameter: code refs.
project_idNoProject ID (UUID).
descriptionNoShort description.
task_statusNoInput parameter: task status.
plan_step_idNoID for the plan step.
workspace_idNoWorkspace ID (UUID).
blocked_reasonNoInput parameter: blocked reason.
projectProjectC
Read-onlyIdempotent
Inspect

Project management. Actions: list, get, create, update, delete, index (trigger indexing), purge (completely de-index a project — removes file indices, code chunks, and search vectors but keeps the project record), forget_local (stop this machine from re-binding a folder to its saved scope; server data untouched), remove_paths (de-index specific files by exact path — pass paths=[...]), merge (merge source_project_id into project_id), overview, statistics, files, index_status, index_history (audit trail of indexed files), ingest_local (index local folder), team_projects (list all team projects - team plans only), recent_changes (git log/diff for recent file changes).

NameRequiredDescriptionDefault
nameNoName for the resource.
pageNoPage number for pagination.
pathNoLocal path to ingest
forceNoForce re-index all files, bypassing version check logic
limitNoMaximum commits to return (for recent_changes, default: 10, max: 50)
pathsNoExact indexed file paths (relative to the project root) to de-index (for remove_paths)
sinceNoFilter files indexed after this timestamp (ISO 8601)
untilNoFilter files indexed before this timestamp (ISO 8601)
actionYesAction to perform
branchNoFilter by git branch
sort_byNoSort field (default: indexed)
overwriteNoAllow overwriting existing files on disk.
page_sizeNoResults per page.
machine_idNoFilter by machine ID that indexed the files
project_idNoProject ID (UUID).
sort_orderNoSort order (default: desc)
descriptionNoShort description.
folder_pathNoAbsolute path to the local folder.
path_patternNoFilter by file path pattern (partial match)
workspace_idNoWorkspace ID (UUID).
write_to_diskNoWrite ingested files to disk before indexing.
source_project_idNoSource project ID to merge into project_id (for merge)
generate_editor_rulesNoInput parameter: generate editor rules.
qaAgent Q&AA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
idNoKB item id (action=get_kb / update_kb / delete_kb)
tagNoFilter by tag (action=search, list_kb)
kindNoKB item kind (action=save_kb / update_kb)
pageNoPage number (1-based)
tagsNoTags to attach to the persisted question (action=ask)
queryNoFree-text filter against prior Q&A question text (action=search) or KB title/content (action=list_kb)
scoreNoFeedback score: -1, 0, or +1 (action=feedback)
titleNoKB item title (action=save_kb / update_kb)
actionYesAction to perform
contentNoKB item body (action=save_kb / update_kb)
metadataNoOptional metadata (action=save_kb / update_kb)
per_pageNoPage size
questionNoNatural-language question (action=ask)
answer_idNoAnswer id to rate (action=feedback)
created_byNoFilter KB items by creator user id (action=list_kb)
max_tokensNoOverride max answer tokens (action=ask)
project_idNoProject ID (UUID).
session_idNoOptional MCP session id — links the question to the AI session that asked
temperatureNoOverride sampling temperature (action=ask, default 0.2)
workspace_idNoWorkspace ID (UUID).
scope_summaryNoHuman-readable scope label fed into the prompt (e.g. 'workspace=Engineering, project=api')
asked_by_user_idNoFilter prior Q&A by who asked (action=search)
reminderReminderC
Read-onlyIdempotent
Inspect

Reminder management. Actions: list, active (pending/overdue), create, snooze, complete, dismiss.

NameRequiredDescriptionDefault
limitNoMaximum number of results to return.
titleNoShort descriptive title.
untilNoISO 8601 datetime
actionYesAction to perform
statusNoInput parameter: status.
contentNoFull content/body.
contextNoContext to match relevant reminders.
keywordsNoKeywords for matching.
priorityNoPriority level.
remind_atNoISO 8601 datetime
project_idNoProject ID (UUID).
recurrenceNoRecurrence pattern (daily, weekly, monthly).
reminder_idNoReminder ID (UUID).
workspace_idNoWorkspace ID (UUID).
sessionSessionA
Read-onlyIdempotent
Inspect

Session and memory management — NOT for codebase/file search (use the 'search' tool for that). LESSONS LIVE HERE: when a mistake or correction happens, call action='capture_lesson' (NEVER write lessons to ~/.claude/.../memory/, .cursorrules, or other local markdown — local files are invisible to [LESSONS_WARNING] auto-surfacing on future turns and across sessions). PAST SESSIONS LIVE HERE: use action='recall' FIRST when the user references "last time", "previous", "yesterday", or is continuing prior work — full-text transcripts are indexed across every prior session. context() may surface [GROUNDING]; use action='ground' with user_message for a one-shot bundle (recall + docs + decisions + lessons + skills) outside context(). Actions: capture (save decision/insight), retro_capture (after-the-fact decision/note/snapshot capture from prior work with source provenance — title plus content and/or query/transcript_ids), capture_lesson (mistakes/corrections — title+trigger+impact+prevention), get_lessons (retrieve lessons), update_lesson / delete_lesson (maintain a saved lesson by lesson_id — UUID or lookup text), recall (retrieve past conversation context via ranked fusion of transcripts/snapshots/docs/decisions), ground (one-shot prior-work bundle), remember (quick save), user_context (get preferences), summary (workspace summary), compress (compress chat), delta (changes since timestamp), smart_search (searches MEMORY/conversation history only, not code), decision_trace (trace decision provenance), restore_context (restore state after compaction). Plan actions: capture_plan, get_plan, update_plan, list_plans. Suggested rules actions: list_suggested_rules, suggested_rule_action, suggested_rules_stats. Team actions: team_decisions, team_lessons, team_plans. Team/personal mode: set_account_mode (team|personal|auto).

NameRequiredDescriptionDefault
modeNoMode metadata for capture/search filtering (e.g., primary/subagent)
tagsNoInput parameter: tags.
agentNoAgent name metadata for capture/search filtering
goalsNoGoals for capture_plan
limitNoMaximum number of results to return.
queryNoQuery for recall/search/lessons/decision_trace
sinceNoISO timestamp for delta
stepsNoImplementation steps for capture_plan
titleNoTitle for capture/capture_lesson/capture_plan
actionYesAction to perform
due_atNoDue date for plan (ISO timestamp)
impactNoWhat went wrong
statusNoPlan status
contentNoContent for capture/remember/compress
node_idNoNode ID (full 36-char UUID)
plan_idNoPlan ID (UUID) or plan title text for get_plan/update_plan; omit to resolve the latest actionable plan
rule_idNoSuggested rule ID for actions
task_idNoTask ID (full 36-char UUID)
triggerNoWhat caused the problem (for capture_lesson), or restore trigger for restore_context
categoryNoInput parameter: category.
event_idNoEvent ID (full 36-char UUID)
keywordsNoKeywords for matching.
severityNoInput parameter: severity.
code_refsNoInput parameter: code refs.
lesson_idNoLesson ID (full 36-char UUID)
event_typeNoEvent type for capture
importanceNoInput parameter: importance.
max_tokensNoMax tokens for summary
preventionNoHow to prevent in future
project_idNoProject ID (UUID).
provenanceNoInput parameter: provenance.
session_idNoSession identifier.
descriptionNoDescription for capture_plan
is_personalNoMark plan as personal (only visible to creator). For capture_plan/list_plans.
rule_actionNoAction to perform on suggested rule
snapshot_idNoSpecific snapshot ID to restore (defaults to most recent)
source_toolNoTool that generated this plan
account_modeNoExecution mode for set_account_mode
user_messageNoNatural-language anchor for action=ground (falls back to query)
workspace_idNoWorkspace ID (UUID).
include_tasksNoInclude tasks when getting plan
max_snapshotsNoNumber of recent snapshots to consider (default: 1)
suggestion_idNoSuggestion ID (full 36-char UUID)
transcript_idNoTranscript ID to use as source evidence for retro_capture
include_impactNoWhether to include impact.
min_confidenceNoMinimum confidence threshold for listing rules
transcript_idsNoTranscript IDs to use as source evidence for retro_capture
include_relatedNoInclude related context.
include_decisionsNoInclude related decisions.
modified_keywordsNoModified keywords when action is modify
modified_instructionNoModified instruction when action is modify
include_durable_contextNoInclude durable snapshots/transcripts/docs/decisions in restore payload (default true)
session_captureCapture context to memoryBInspect

Automatically capture and store important context from the conversation. Use this to persist decisions, insights, preferences, or important information.

NameRequiredDescriptionDefault
tagsNoTags for categorization
titleYesBrief title for the captured context
contentYesFull content/details to capture
code_refsNoInput parameter: code refs.
event_typeYesType of context being captured
importanceNoImportance level
project_idNoProject ID (UUID).
provenanceNoInput parameter: provenance.
session_idNoSession ID to associate with this capture
workspace_idNoWorkspace ID (UUID).
session_capture_lessonCapture a lesson learnedAInspect

Capture a lesson learned from a mistake or correction. Use this when the user corrects you, expresses frustration, or points out an error. These lessons are surfaced in future sessions to prevent repeating the same mistakes.

Example triggers:

  • User says "No, you should..." or "That's wrong"

  • User expresses frustration (caps, "COME ON", "WTF")

  • Code breaks due to a preventable mistake

The lesson will be tagged with 'lesson' and stored with structured metadata for easy retrieval.

NameRequiredDescriptionDefault
titleYesLesson title - what to remember (e.g., "Always verify assets in git before pushing")
impactYesWhat went wrong (e.g., "Production 404 errors - broken landing page")
triggerYesWhat action caused the problem (e.g., "Pushed code referencing images without committing them")
categoryYesCategory of the lesson
keywordsNoKeywords for matching in future contexts (e.g., ["git", "images", "assets", "push"])
severityNoSeverity: critical for production issues, high for breaking changes, medium for workflow, low for minormedium
preventionYesHow to prevent in future (e.g., "Run git status to check untracked files before pushing")
project_idNoProject ID (UUID).
workspace_idNoWorkspace ID (UUID).
session_rememberRemember thisBInspect

Quick way to store something in memory. Use natural language. Example: "Remember that I prefer TypeScript strict mode" or "Remember we decided to use PostgreSQL"

NameRequiredDescriptionDefault
contentYesWhat to remember (natural language)
importanceNoInput parameter: importance.
project_idNoProject ID (UUID).
workspace_idNoWorkspace ID (UUID).
await_indexingNoIf true, wait for indexing to complete before returning. This ensures the content is immediately searchable.
skillManage reusable skillsB
Read-onlyIdempotent
Inspect

Manage and execute reusable skills (instruction + action bundles). Skills are portable across projects, sessions, and tools. Use 'supersede' to retire a stale skill (archives it so it stops surfacing).

Actions:

  • list: Browse skills (filter by scope, status, category)

  • get: Get skill details by ID or name

  • create: Define a new skill with name, instruction, and triggers

  • update: Modify an existing skill

  • run: Execute a skill (by ID or name)

  • delete: Remove a skill

  • import: Import skills from file or content (supports markdown, JSON, cursorrules, claude_md)

  • export: Export skills in various formats

  • share: Change skill visibility scope

NameRequiredDescriptionDefault
nameNoSkill name (slug, e.g. 'deploy-checker')
limitNoMax results to return
queryNoSearch query
scopeNoVisibility scope
titleNoSkill display title
actionYesThe action to perform
formatNoImport/export format
paramsNoParameters passed to skill execution
statusNoSkill status
actionsNoAction steps array [{type, tool, params, ...}]
contentNoContent string for import
dry_runNoPreview execution without running
categoryNoFilter by category tag
priorityNoSkill priority 0-100 (higher = matched first)
skill_idNoSkill ID (UUID)
file_pathNoLocal file path for import
skill_idsNoSkill IDs for export
categoriesNoTags for discovery/filtering
project_idNoProject ID (UUID)
descriptionNoSkill description
is_personalNoWhether skill is personal
source_fileNoSource filename (for import provenance)
source_toolNoSource tool name (for import provenance)
workspace_idNoWorkspace ID (UUID)
superseded_byNoReplacement skill (name or id), recorded when action='supersede'
trigger_regexNoOptional regex for advanced trigger matching
change_summaryNoSummary of changes (for version history)
instruction_bodyNoMarkdown instruction text (the prompt)
trigger_patternsNoKeywords/phrases for auto-activation
vcsVersion ControlC
Read-onlyIdempotent
Inspect

Git version control and remote repo operations.

Local git actions: status, diff, log, blame, branches, stash_list Remote API actions: list_repos, get_repo, sync_repo, list_pulls, get_pull, get_pull_diff, get_pull_comments, get_pull_commits, get_pull_checks, get_pull_summary, summarize_pull, review_pull, comment_pull, merge_pull, list_issues, get_issue, create_issue, update_issue, comment_issue, list_commits, get_commit, get_commit_diff, compare_refs, list_branches_remote, list_tags, get_tree, get_blob, search_code, search_vcs, get_activity, list_notifications, mark_notification_read, mark_all_notifications_read, list_links, create_link, delete_link, list_automations, create_automation, update_automation, delete_automation, register_webhook, unregister_webhook

NameRequiredDescriptionDefault
refNoGit ref (branch, tag, commit)
bodyNoBody content
dataNoAdditional data for create/update operations
pageNoPage number
pathNoFile path for diff/blame/tree/blob
eventNoReview event (APPROVE/REQUEST_CHANGES/COMMENT)
limitNoMax entries (default: 20)
queryNoSearch query
stateNoState filter (open/closed)
titleNoTitle for create_issue
actionYesVCS action to perform
labelsNoLabels for issues
stagedNoShow staged changes only (for diff)
link_idNoLink ID
repo_idNoRepository ID for remote actions
base_refNoBase ref for compare_refs
per_pageNoResults per page
providerNoVCS provider (github/gitlab/bitbucket)
repo_refNoRepository reference (owner/repo) for remote actions
pull_numberNoPull request number
issue_numberNoIssue number
workspace_idNoWorkspace ID for remote VCS actions
automation_idNoAutomation ID
notification_idNoNotification ID
workspaceWorkspaceC
Read-onlyIdempotent
Inspect

Workspace management. Actions: list, get, create, delete, associate (link folder to workspace), bootstrap (create workspace and initialize), team_members (list members with access - team plans only), index_settings (get/update multi-machine sync settings - admin only).

NameRequiredDescriptionDefault
nameNoName for the resource.
pageNoPage number for pagination.
actionYesAction to perform
page_sizeNoResults per page.
auto_indexNoAutomatically index on creation.
visibilityNoInput parameter: visibility.
descriptionNoShort description.
folder_pathNoAbsolute path to the local folder.
context_hintNoUser message used to fetch relevant context.
max_machinesNoMaximum machines allowed to index (0 = unlimited)
workspace_idNoWorkspace ID (UUID).
branch_policyNoWhich branch takes priority: default_branch_wins (default), newest_wins, feature_branch_wins
workspace_nameNoInput parameter: workspace name.
allowed_machinesNoList of allowed machine IDs (empty = all allowed)
auto_sync_enabledNoWhether to auto-sync from all machines (default: true)
conflict_resolutionNoHow to resolve conflicts: newest_timestamp (default), default_branch, manual
create_parent_mappingNoInput parameter: create parent mapping.
generate_editor_rulesNoInput parameter: generate editor rules.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 24 tool updatesv0.4.81
    • Changedcapsule3 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "open",
        -  "get",
        -  "list",
        -  "create",
        -  "share",
        -  "chunk",
        -  "stream",
        -  "context_doc",
        -  "bootstrap_prompt",
        -  "graph",
        -  "audit",
        -  "list_shares",
        -  "revoke_share",
        -  "explain"
        -]New value: +[
        +  "open",
        +  "get",
        +  "list",
        +  "create",
        +  "share",
        +  "chunk",
        +  "stream",
        +  "context_doc",
        +  "bootstrap_prompt",
        +  "graph",
        +  "audit",
        +  "list_shares",
        +  "revoke_share",
        +  "delete",
        +  "explain"
        +]
      • addedInput schema / properties / require_unlock_key
        Added value: +{
        +  "description": "For action=share: require a one-time unlock key to open the share",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / unlock_destinations
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "string"
        +    }
        +  ],
        +  "description": "For action=share with require_unlock_key=true: destinations that receive the unlock key"
        +}
    • Addedcapture_plan
    • Changedinit2 fields changed
      • changedInput schema / properties / project_id / description
        Previous value: -"Project to initialize context for"New value: +"Project to initialize context for (UUID, or a project name to look up)"
      • removedInput schema / properties / project_id / format
        Removed value: -"uuid"
    • Addedintegration
    • Removedmem
    • Changedmemory1 field changed
      • addedInput schema / properties / delete_all
        Added value: +{
        +  "description": "For delete_node/delete_event with a non-UUID lookup: delete ALL exact-title matches in one call instead of erroring on ambiguity",
        +  "type": "boolean"
        +}
    • Addedmemory_complete_todo
    • Addedmemory_create_doc
    • Addedmemory_create_event
    • Addedmemory_create_task
    • Addedmemory_create_todo
    • Addedmemory_delete_doc
    • Addedmemory_update_doc
    • Addedmemory_update_task
    • Changedproject3 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "list",
        -  "get",
        -  "create",
        -  "update",
        -  "delete",
        -  "index",
        -  "overview",
        -  "statistics",
        -  "files",
        -  "index_status",
        -  "index_history",
        -  "ingest_local",
        -  "team_projects",
        -  "recent_changes"
        -]New value: +[
        +  "list",
        +  "get",
        +  "create",
        +  "update",
        +  "delete",
        +  "index",
        +  "purge",
        +  "forget_local",
        +  "remove_paths",
        +  "merge",
        +  "overview",
        +  "statistics",
        +  "files",
        +  "index_status",
        +  "index_history",
        +  "ingest_local",
        +  "team_projects",
        +  "recent_changes"
        +]
      • addedInput schema / properties / paths
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "string"
        +    }
        +  ],
        +  "description": "Exact indexed file paths (relative to the project root) to de-index (for remove_paths)"
        +}
      • addedInput schema / properties / source_project_id
        Added value: +{
        +  "description": "Source project ID to merge into project_id (for merge)",
        +  "format": "uuid",
        +  "type": "string"
        +}
    • Addedqa
    • Removedram
    • Changedsearch1 field changed
      • addedInput schema / properties / include_memory
        Added value: +{
        +  "description": "Include memory/doc matches in search results (defaults to false for project-scoped and identifier-shaped searches)",
        +  "type": "boolean"
        +}
    • Changedsession5 fields changed
      • addedInput schema / properties / account_mode
        Added value: +{
        +  "description": "Execution mode for set_account_mode",
        +  "enum": [
        +    "team",
        +    "personal",
        +    "auto"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "capture",
        -  "capture_lesson",
        -  "get_lessons",
        -  "recall",
        -  "ground",
        -  "remember",
        -  "user_context",
        -  "summary",
        -  "compress",
        -  "delta",
        -  "smart_search",
        -  "decision_trace",
        -  "capture_plan",
        -  "get_plan",
        -  "update_plan",
        -  "list_plans",
        -  "restore_context",
        -  "team_decisions",
        -  "team_lessons",
        -  "team_plans",
        -  "list_suggested_rules",
        -  "suggested_rule_action",
        -  "suggested_rules_stats"
        -]New value: +[
        +  "capture",
        +  "retro_capture",
        +  "capture_lesson",
        +  "get_lessons",
        +  "update_lesson",
        +  "delete_lesson",
        +  "recall",
        +  "ground",
        +  "set_account_mode",
        +  "remember",
        +  "user_context",
        +  "summary",
        +  "compress",
        +  "delta",
        +  "smart_search",
        +  "decision_trace",
        +  "capture_plan",
        +  "get_plan",
        +  "update_plan",
        +  "list_plans",
        +  "restore_context",
        +  "team_decisions",
        +  "team_lessons",
        +  "team_plans",
        +  "list_suggested_rules",
        +  "suggested_rule_action",
        +  "suggested_rules_stats"
        +]
      • changedInput schema / properties / plan_id / description
        Previous value: -"Plan ID (full 36-char UUID) for get_plan/update_plan"New value: +"Plan ID (UUID) or plan title text for get_plan/update_plan; omit to resolve the latest actionable plan"
      • addedInput schema / properties / transcript_id
        Added value: +{
        +  "description": "Transcript ID to use as source evidence for retro_capture",
        +  "type": "string"
        +}
      • addedInput schema / properties / transcript_ids
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "string"
        +    }
        +  ],
        +  "description": "Transcript IDs to use as source evidence for retro_capture"
        +}
    • Addedsession_capture
    • Addedsession_capture_lesson
    • Addedsession_remember
    • Addedskill
    • Addedvcs
  2. 22 tool updatesv0.4.74
    • Addedbatch_operations
    • Addedcapsule
    • Changedcontext2 fields changed
      • changedInput schema / properties / mode / description
        Previous value: -"Context pack mode (default: pack when enabled)"New value: +"Context mode: standard (default), pack (includes code context), fast (cached quick response)"
      • changedInput schema / properties / mode / enum
        Previous value: -[
        -  "standard",
        -  "pack"
        -]New value: +[
        +  "standard",
        +  "pack",
        +  "fast"
        +]
    • Addedentity
    • Addedexecute_operation
    • Addedflash
    • Addedgenerate_editor_rules
    • Changedgenerate_rules2 fields changed
      • changedInput schema / properties / editors / items / enum
        Previous value: -[
        -  "codex",
        -  "cursor",
        -  "cline",
        -  "kilo",
        -  "roo",
        -  "claude",
        -  "aider",
        -  "all"
        -]New value: +[
        +  "codex",
        +  "copilot",
        +  "cursor",
        +  "cline",
        +  "kilo",
        +  "roo",
        +  "claude",
        +  "aider",
        +  "all"
        +]
      • changedInput schema / properties / overwrite_existing / description
        Previous value: -"Overwrite ContextStream block in existing rule files (default: true). User content outside the block is preserved."New value: +"Overwrite existing rule files (default: true). User content outside the ContextStream block is preserved when block updates are supported."
    • Changedgraph2 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "dependencies",
        -  "impact",
        -  "call_path",
        -  "related",
        -  "path",
        -  "decisions",
        -  "ingest",
        -  "circular_dependencies",
        -  "unused_code",
        -  "contradictions"
        -]New value: +[
        +  "dependencies",
        +  "impact",
        +  "call_path",
        +  "related",
        +  "path",
        +  "decisions",
        +  "ingest",
        +  "circular_dependencies",
        +  "unused_code",
        +  "contradictions",
        +  "usages"
        +]
      • addedInput schema / properties / target_type
        Added value: +{
        +  "description": "For usages: module|function|type|variable",
        +  "type": "string"
        +}
    • Changedhelp3 fields changed
      • addedInput schema / properties / editors / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / editors / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / editors / type
        Removed value: -"array"
    • Changedinit1 field changed
      • changedInput schema / properties / is_post_compact / description
        Previous value: -"Controls context restoration from recent snapshots. Defaults to true (always restores). Set to false to skip restoration. Can also be controlled via CONTEXTSTREAM_RESTORE_CONTEXT environment variable."New value: +"Set true immediately after context compaction to restore snapshots/transcripts when hooks are unavailable. Can also be enabled by CONTEXTSTREAM_RESTORE_CONTEXT=true."
    • Addedinstruct
    • Addedmedia
    • Addedmem
    • Changedmemory33 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "create_event",
        -  "get_event",
        -  "update_event",
        -  "delete_event",
        -  "list_events",
        -  "distill_event",
        -  "create_node",
        -  "get_node",
        -  "update_node",
        -  "delete_node",
        -  "list_nodes",
        -  "supersede_node",
        -  "search",
        -  "decisions",
        -  "timeline",
        -  "summary",
        -  "import_batch",
        -  "create_task",
        -  "get_task",
        -  "update_task",
        -  "delete_task",
        -  "list_tasks",
        -  "reorder_tasks",
        -  "create_todo",
        -  "list_todos",
        -  "get_todo",
        -  "update_todo",
        -  "delete_todo",
        -  "complete_todo",
        -  "create_diagram",
        -  "list_diagrams",
        -  "get_diagram",
        -  "update_diagram",
        -  "delete_diagram",
        -  "create_doc",
        -  "list_docs",
        -  "get_doc",
        -  "update_doc",
        -  "delete_doc",
        -  "create_roadmap",
        -  "list_transcripts",
        -  "get_transcript",
        -  "search_transcripts",
        -  "delete_transcript",
        -  "team_tasks",
        -  "team_todos",
        -  "team_diagrams",
        -  "team_docs"
        -]New value: +[
        +  "create_event",
        +  "get_event",
        +  "update_event",
        +  "delete_event",
        +  "list_events",
        +  "distill_event",
        +  "create_node",
        +  "get_node",
        +  "update_node",
        +  "delete_node",
        +  "list_nodes",
        +  "supersede_node",
        +  "search",
        +  "decisions",
        +  "timeline",
        +  "summary",
        +  "import_batch",
        +  "create_task",
        +  "get_task",
        +  "update_task",
        +  "delete_task",
        +  "list_tasks",
        +  "reorder_tasks",
        +  "create_todo",
        +  "list_todos",
        +  "get_todo",
        +  "update_todo",
        +  "delete_todo",
        +  "complete_todo",
        +  "create_diagram",
        +  "list_diagrams",
        +  "get_diagram",
        +  "update_diagram",
        +  "delete_diagram",
        +  "create_doc",
        +  "list_docs",
        +  "get_doc",
        +  "update_doc",
        +  "delete_doc",
        +  "create_roadmap",
        +  "list_transcripts",
        +  "get_transcript",
        +  "search_transcripts",
        +  "search_archive",
        +  "delete_transcript",
        +  "team_tasks",
        +  "team_todos",
        +  "team_diagrams",
        +  "team_docs"
        +]
      • addedInput schema / properties / agent
        Added value: +{
        +  "description": "Agent identity metadata (capture/create filters) and query filter. Matches both structured `agent` and `agent:<name>` tag fallback.",
        +  "type": "string"
        +}
      • addedInput schema / properties / completed
        Added value: +{
        +  "description": "Todo completion flag for update_todo",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / diagram_id / description
        Previous value: -"Diagram ID for get_diagram/update_diagram/delete_diagram"New value: +"Diagram ID for get_diagram/update_diagram/delete_diagram (full 36-char UUID)"
      • removedInput schema / properties / diagram_id / format
        Removed value: -"uuid"
      • changedInput schema / properties / doc_id / description
        Previous value: -"Doc ID for get_doc/update_doc/delete_doc"New value: +"Doc ID for get_doc/update_doc/delete_doc. For get_doc, accepts UUID or title/query text."
      • removedInput schema / properties / doc_id / format
        Removed value: -"uuid"
      • changedInput schema / properties / doc_type / enum
        Previous value: -[
        -  "roadmap",
        -  "spec",
        -  "general"
        -]New value: +[
        +  "roadmap",
        +  "spec",
        +  "runbook",
        +  "adr",
        +  "rfc",
        +  "postmortem",
        +  "retro",
        +  "release_notes",
        +  "playbook",
        +  "prd",
        +  "user_story",
        +  "persona",
        +  "interview",
        +  "design_spec",
        +  "critique",
        +  "glossary",
        +  "oncall_schedule",
        +  "slo",
        +  "q_and_a",
        +  "changelog",
        +  "style_guide",
        +  "general"
        +]
      • removedInput schema / properties / event_id / format
        Removed value: -"uuid"
      • addedInput schema / properties / events / items / properties / tags / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / events / items / properties / tags / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / events / items / properties / tags / type
        Removed value: -"array"
      • addedInput schema / properties / mode
        Added value: +{
        +  "description": "Mode metadata (capture/create filters) and query filter. Matches both structured `mode` and `mode:<value>` tag fallback.",
        +  "type": "string"
        +}
      • removedInput schema / properties / node_id / format
        Removed value: -"uuid"
      • addedInput schema / properties / node_type / enum
        Added value: +[
        +  "fact",
        +  "decision",
        +  "preference",
        +  "constraint",
        +  "habit",
        +  "lesson",
        +  "goal",
        +  "risk",
        +  "term"
        +]
      • removedInput schema / properties / plan_id / anyOf
        Removed value: -[
        -  {
        -    "format": "uuid",
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / plan_id / description
        Previous value: -"Plan ID: for create_task (link to plan), update_task (set UUID to link, null to unlink), list_tasks (filter by plan)"New value: +"Plan ID (full 36-char UUID): for create_task (link to plan), update_task (set UUID to link, null to unlink), list_tasks (filter by plan)"
      • addedInput schema / properties / plan_id / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • addedInput schema / properties / scope
        Added value: +{
        +  "description": "Archive collection scope for search_archive: transcripts, decisions, lessons, docs",
        +  "type": "string"
        +}
      • addedInput schema / properties / tags / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / tags / description
        Previous value: -"Tags for task"New value: +"Tags for event or task categorization"
      • removedInput schema / properties / tags / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / tags / type
        Removed value: -"array"
      • changedInput schema / properties / task_id / description
        Previous value: -"Task ID for get_task/update_task/delete_task"New value: +"Task ID for get_task/update_task/delete_task (full 36-char UUID)"
      • removedInput schema / properties / task_id / format
        Removed value: -"uuid"
      • addedInput schema / properties / task_ids / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "format": "uuid",
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / task_ids / items
        Removed value: -{
        -  "format": "uuid",
        -  "type": "string"
        -}
      • removedInput schema / properties / task_ids / type
        Removed value: -"array"
      • changedInput schema / properties / todo_id / description
        Previous value: -"Todo ID for get_todo/update_todo/delete_todo"New value: +"Todo ID for get_todo/update_todo/delete_todo (full 36-char UUID)"
      • removedInput schema / properties / todo_id / format
        Removed value: -"uuid"
      • changedInput schema / properties / todo_status / description
        Previous value: -"Todo status filter for list_todos"New value: +"Todo status filter for list_todos, or status update value for update_todo"
      • changedInput schema / properties / transcript_id / description
        Previous value: -"Transcript ID for get_transcript/delete_transcript"New value: +"Transcript ID for get_transcript/delete_transcript (full 36-char UUID)"
      • removedInput schema / properties / transcript_id / format
        Removed value: -"uuid"
    • Changedproject2 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "list",
        -  "get",
        -  "create",
        -  "update",
        -  "index",
        -  "overview",
        -  "statistics",
        -  "files",
        -  "index_status",
        -  "index_history",
        -  "ingest_local",
        -  "team_projects"
        -]New value: +[
        +  "list",
        +  "get",
        +  "create",
        +  "update",
        +  "delete",
        +  "index",
        +  "overview",
        +  "statistics",
        +  "files",
        +  "index_status",
        +  "index_history",
        +  "ingest_local",
        +  "team_projects",
        +  "recent_changes"
        +]
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Maximum commits to return (for recent_changes, default: 10, max: 50)",
        +  "type": "number"
        +}
    • Addedram
    • Changedreminder3 fields changed
      • addedInput schema / properties / keywords / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / keywords / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / keywords / type
        Removed value: -"array"
    • Changedsearch2 fields changed
      • changedInput schema / properties / mode / description
        Previous value: -"Search mode (auto recommended; hybrid is a backward-compatible alias)"New value: +"Search mode (auto recommended; hybrid is a backward-compatible alias; crawl is deep multi-modal search)"
      • changedInput schema / properties / mode / enum
        Previous value: -[
        -  "auto",
        -  "semantic",
        -  "hybrid",
        -  "keyword",
        -  "pattern",
        -  "exhaustive",
        -  "refactor",
        -  "team"
        -]New value: +[
        +  "auto",
        +  "semantic",
        +  "hybrid",
        +  "keyword",
        +  "pattern",
        +  "exhaustive",
        +  "refactor",
        +  "team",
        +  "crawl"
        +]
    • Changedsession25 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "capture",
        -  "capture_lesson",
        -  "get_lessons",
        -  "recall",
        -  "remember",
        -  "user_context",
        -  "summary",
        -  "compress",
        -  "delta",
        -  "smart_search",
        -  "decision_trace",
        -  "capture_plan",
        -  "get_plan",
        -  "update_plan",
        -  "list_plans",
        -  "restore_context",
        -  "team_decisions",
        -  "team_lessons",
        -  "team_plans",
        -  "list_suggested_rules",
        -  "suggested_rule_action",
        -  "suggested_rules_stats"
        -]New value: +[
        +  "capture",
        +  "capture_lesson",
        +  "get_lessons",
        +  "recall",
        +  "ground",
        +  "remember",
        +  "user_context",
        +  "summary",
        +  "compress",
        +  "delta",
        +  "smart_search",
        +  "decision_trace",
        +  "capture_plan",
        +  "get_plan",
        +  "update_plan",
        +  "list_plans",
        +  "restore_context",
        +  "team_decisions",
        +  "team_lessons",
        +  "team_plans",
        +  "list_suggested_rules",
        +  "suggested_rule_action",
        +  "suggested_rules_stats"
        +]
      • addedInput schema / properties / agent
        Added value: +{
        +  "description": "Agent name metadata for capture/search filtering",
        +  "type": "string"
        +}
      • addedInput schema / properties / event_id
        Added value: +{
        +  "description": "Event ID (full 36-char UUID)",
        +  "type": "string"
        +}
      • addedInput schema / properties / goals / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / goals / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / goals / type
        Removed value: -"array"
      • addedInput schema / properties / include_durable_context
        Added value: +{
        +  "description": "Include durable snapshots/transcripts/docs/decisions in restore payload (default true)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / keywords / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / keywords / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / keywords / type
        Removed value: -"array"
      • addedInput schema / properties / lesson_id
        Added value: +{
        +  "description": "Lesson ID (full 36-char UUID)",
        +  "type": "string"
        +}
      • addedInput schema / properties / mode
        Added value: +{
        +  "description": "Mode metadata for capture/search filtering (e.g., primary/subagent)",
        +  "type": "string"
        +}
      • addedInput schema / properties / modified_keywords / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / modified_keywords / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / modified_keywords / type
        Removed value: -"array"
      • addedInput schema / properties / node_id
        Added value: +{
        +  "description": "Node ID (full 36-char UUID)",
        +  "type": "string"
        +}
      • changedInput schema / properties / plan_id / description
        Previous value: -"Plan ID for get_plan/update_plan"New value: +"Plan ID (full 36-char UUID) for get_plan/update_plan"
      • removedInput schema / properties / plan_id / format
        Removed value: -"uuid"
      • addedInput schema / properties / suggestion_id
        Added value: +{
        +  "description": "Suggestion ID (full 36-char UUID)",
        +  "type": "string"
        +}
      • addedInput schema / properties / tags / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / tags / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / tags / type
        Removed value: -"array"
      • addedInput schema / properties / task_id
        Added value: +{
        +  "description": "Task ID (full 36-char UUID)",
        +  "type": "string"
        +}
      • changedInput schema / properties / trigger / description
        Previous value: -"What caused the problem"New value: +"What caused the problem (for capture_lesson), or restore trigger for restore_context"
      • addedInput schema / properties / user_message
        Added value: +{
        +  "description": "Natural-language anchor for action=ground (falls back to query)",
        +  "type": "string"
        +}
    • Addedtool_search
    • Changedworkspace5 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "list",
        -  "get",
        -  "associate",
        -  "bootstrap",
        -  "team_members",
        -  "index_settings"
        -]New value: +[
        +  "list",
        +  "get",
        +  "create",
        +  "delete",
        +  "associate",
        +  "bootstrap",
        +  "team_members",
        +  "index_settings"
        +]
      • addedInput schema / properties / allowed_machines / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / allowed_machines / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / allowed_machines / type
        Removed value: -"array"
      • addedInput schema / properties / name
        Added value: +{
        +  "description": "Name for the resource.",
        +  "type": "string"
        +}
  3. 11 tool updatesv0.4.63
    • First observedcontext
    • First observedgenerate_rules
    • First observedgraph
    • First observedhelp
    • First observedinit
    • First observedmemory
    • First observedproject
    • First observedreminder
    • First observedsearch
    • First observedsession
    • First observedworkspace

TDQS

C2.9/5.0

Scored across 36 tools

Disambiguation2/5

Numerous tools have overlapping purposes, such as multiple memory shortcuts (memory_create_doc, memory_update_doc, etc.) and separate session capture tools (session_capture, session_remember) that duplicate session actions. The context and init tools also share similar goals, making it difficult for an agent to select the correct tool.

Naming Consistency2/5

Tool names are a mix of single words (context, init), verb_noun (capture_plan, generate_editor_rules), and noun_verb patterns (memory_create_doc, session_capture_lesson). There is no consistent naming convention, which reduces predictability.

Tool Count3/5

With 36 tools, the server is on the heavy side. While many features are covered, several tools are redundant shortcuts (e.g., memory_*). Trimming duplicates would improve focus without sacrificing functionality.

Completeness4/5

The server covers a wide range of operations: memory management, context retrieval, project management, version control, media processing, and integrations. Minor gaps exist (e.g., no explicit code search outside of context), but overall the surface is comprehensive.

Maintenance

ActivityActive
ResponsivenessUsually handled

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Provides AI assistants with persistent memory of your project architecture, development history, and technical decisions, allowing them to give context-aware coding help without needing repeated explanations.
    16
    61 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides persistent memory for AI coding assistants, storing and retrieving architectural decisions, patterns, and solutions across sessions using semantic search, while also offering git integration for commit messages and code expertise mapping.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI coding assistants with persistent, context-rich memory of a codebase, including documentation and git history, enabling recall across sessions.
    105
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Provides persistent memory and a codebase knowledge graph for AI coding assistants, enabling shared context across multiple tools like Claude, Cursor, and ChatGPT, with significant token reduction.
    5
    34 npm
    MIT