Skip to main content
Glama
contextstream

ContextStream MCP Server


30초 만에 사용해 보기

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

이 명령 하나로 AI 에디터를 감지하고, MCP 설정과 규칙을 작성하며, 지원되는 곳에는 라이프사이클 훅을 설치하고, 백그라운드에서 프로젝트를 인덱싱한 다음, 방금 수행한 모든 작업을 검증합니다 — 그 후 에디터를 재시작하면 AI에 메모리가 생깁니다. 무료 티어 제공.

자동화하고 싶으신가요? 제로 프롬프트 모드는 모든 기본값을 사용합니다:

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

Related MCP server: Doclea MCP

메모리 벤치마크에서 승리 — 정직하게 측정했습니다

ContextStream은 전체 LongMemEval-S 벤치마크에서 90.0%를 기록했습니다. 이는 약 115k 토큰 규모의 다중 세션 대화 기록에 대한 표준 대화 메모리 테스트입니다. 공식 GPT-4o 평가자를 사용한 전체 500개 인스턴스 스위트 — 500개 중 450개 정답(단일 샷 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에게 정확히 필요한 정보 조각을 전달합니다.

모든 MCP 클라이언트에서 작동합니다: Claude Code, Cursor, VS Code + GitHub Copilot, Windsurf, Cline, Roo Code, Kilo Code, Codex CLI, OpenCode, Aider, Antigravity, Gemini CLI, Claude Desktop.


어떤 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 (독립적)

앱 내 업데이터와 공개 Desktop 버전 JSONrelease_notes 및 플랫폼별 다운로드 포함.

help(action="version")이 보고하는 version은 항상 해당 도구 호출을 처리하는 MCP 프로세스의 버전입니다. Desktop이 로컬 저장소를 추가하거나 인덱싱한 경우에도 Desktop의 버전은 별개입니다.


AI 코딩 어시스턴트는 왜 모든 것을 잊어버릴까요?

모든 대화가 제로에서 시작하기 때문입니다. AI는 같은 파일을 다시 읽고, 같은 아키텍처를 다시 유추하며, 지난주의 실수를 반복하고, 컨텍스트 창이 압축되는 순간 맥락을 잃습니다. ContextStream은 이 전체 문제 클래스를 해결합니다:

ContextStream 없음

ContextStream 사용 시

AI가 파일을 하나씩 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 — 이벤트, 결정, 문서, 런북, 작업, 할 일, 다이어그램, 대화 기록

  • 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가 이 모든 것을 자동으로 사용하므로 코드 작성에만 집중하면 됩니다.

Daily Recaps

Daily Recap은 구성된 시간대 기준 23:00경, 활동이 충분할 때 생성됩니다. 에디터를 닫거나, MCP session_id를 변경하거나, 새 채팅을 시작해도 트리거되지 않으므로, 오래 지속되는 VS Code/Copilot 연결이 야간 작업을 억제하지 않습니다.

  • session(action="list_recaps", workspace_id="<uuid>", limit=30)는 완료된 recap을 recap_dategenerated_at 타임스탬프와 함께 최신순으로 나열합니다.

  • session(action="trigger_recap", workspace_id="<uuid>")는 비동기 수동 recap을 대기열에 추가합니다. 완료를 확인하려면 이후에 list_recaps를 호출하세요.

이 작업들은 대시보드와 동일한 recap 기록 및 생성 서비스를 사용합니다.


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는 무엇이 잘못 구성되었는지와 해결 방법을 정확히 알려주며, 모든 setup이 끝날 때 자동으로 실행됩니다.


수동 구성

설정 마법사를 실행했다면 건너뛰세요.

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은 워크스페이스 전용 모드에서 숨겨진 포괄(catch-all) 워크스페이스로 폴백하며, memory/session/context 도구는 계속 작동하고, 프로젝트 바인딩 작업은 원시 오류 대신 안내된 해결 방법을 반환합니다. 매핑된 프로젝트 폴더에 들어가면 실제 워크스페이스/프로젝트가 적용됩니다.


FAQ

MCP 서버란 무엇인가요?

MCP(Model Context Protocol) 서버는 표준 프로토콜을 통해 AI 어시스턴트에 도구와 컨텍스트를 제공합니다. Claude Code, Cursor, VS Code Copilot, Windsurf 및 대부분의 최신 AI 코딩 도구는 MCP 클라이언트입니다. 서버 하나를 설치하면 사용하는 모든 클라이언트에서 동일한 기능을 사용할 수 있습니다.

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)을 하나의 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_URLCONTEXTSTREAM_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 해석(resolution)을 확인하세요.


링크

웹사이트: 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims read-only behavior, but annotations have readOnlyHint=false, creating a direct contradiction. Additionally, it does not explain how operations are specified or any error behaviors, leaving key behavioral aspects undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with only two sentences, no redundancy, and front-loaded with the core action. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema and no parameters, the description lacks details on how to specify the operations to batch, what happens on error, and any limits (e.g., max batch size). This leaves the agent with insufficient information to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters (0 params), and schema coverage is 100%. Per guidelines, 0 params yields a baseline of 4. The description adds no parameter information because none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes multiple independent read-only operations in one call, which is a specific verb+resource. It further distinguishes itself from siblings by explicitly rejecting write or destructive operations, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states when to use the tool (for multiple independent read-only operations) and what it rejects (writes/destructive operations). However, it does not explicitly name alternative tools or provide guidance on when not to use it beyond the rejection statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
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

TDQS

A3.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations declare readOnlyHint=true and destructiveHint=false, but the description includes mutating actions like create, share, delete, revoke_share, which contradict the read-only hint. This is a serious inconsistency that could mislead the agent. The description itself is detailed but contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long but front-loaded with the core purpose and usage guidelines. It uses a list of use cases which is easy to scan. Some redundancy exists (e.g., explaining share behavior multiple times), but overall it is well-structured for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 33 parameters and 15 actions, the description covers intended usage scenarios and defaults. However, it lacks explanation of return values (no output schema) and does not fully detail all actions. It relies on the schema for parameter details but provides enough context for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the per-parameter descriptions in the schema, though it provides some context on defaults (e.g., max_uses, expires_in_days). The description does not repeat parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'portable, shareable, hydrate-on-demand snapshots of project context.' It lists specific use cases (pasting /c/<token> link, handoff requests, etc.) and explicitly distinguishes from the sibling tool 'context' (normal turn-by-turn retrieval).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use scenarios (e.g., user pastes a capsule token, asks for handoff/share link, wants to bootstrap a fresh agent) and an explicit when-not-to-use (normal retrieval should use context). It also details behavior of different share types (authenticated team links vs token-gated single-use public/external links).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

capture_planCapture planCInspect

Create a new implementation plan.

ParametersJSON Schema
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).

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal (no readOnly, destructive, etc.). The description only says 'Create' without disclosing side effects, required permissions, or behavior beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence. However, it could be expanded to include essential context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and many siblings, the description is severely incomplete. It fails to explain what an implementation plan is, required relationships (e.g., project_id?), or post-creation behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters, but they are generic ('Input parameter: tags.'). The description adds no extra meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Create a new implementation plan' - a clear verb+resource pair. However, it does not explain what an 'implementation plan' is or differentiate from sibling tools like 'memory_create_doc' or 'capsule'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives is provided. The description lacks any context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
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)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds value by explaining token savings, format details, and background task for saving exchanges. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullet points and an example, but it is somewhat lengthy. It front-loads the key instruction, which is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 13 parameters and no output schema, the description covers usage, formats, and modes thoroughly. The example provides a concrete workflow, making it complete enough for most use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description goes beyond by explaining format options, type codes, and the role of parameters like user_message, session_tokens, and mode. This adds significant context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to analyze user messages and retrieve token-efficient context before every AI response. It distinguishes itself from siblings by emphasizing its role in replacing full chat history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly directs 'CALL THIS BEFORE EVERY AI RESPONSE', providing a clear usage guideline. It also explains format and mode options, and gives an example workflow, though it doesn't mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
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).

TDQS

B3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations declare readOnlyHint=true, indicating the tool is read-only, but the description explicitly supports write actions (create, update, delete). This is a direct contradiction. Additionally, idempotentHint=true conflicts with the non-idempotent nature of delete. The description fails to disclose behavioral traits beyond the annotations, and the contradiction severely impairs the agent's ability to use the tool correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using a single sentence with embedded lists for kinds and actions. Every word serves a purpose, and the structure is front-loaded with the core purpose ('Unified CRUD across taxonomy expansion entities'). No unnecessary information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 7 parameters, multiple kinds and actions, and no output schema, the description provides basic purpose and parameter default behavior but lacks details on return values, error handling, pagination (for list), or idempotency guarantees. The annotation contradiction further undermines completeness, making it only minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The description adds value by stating that workspace_id and project_id default to the active scope when omitted, and that the body is free-form JSON forwarded to the API. This provides useful behavioral context not present in the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs CRUD operations on taxonomy expansion entities, listing all supported kinds (ticket, handoff, etc.) and actions (list, get, create, update, delete). This provides a specific verb-resource mapping. However, the term 'taxonomy expansion entities' is somewhat vague and does not distinguish this tool from sibling tools like 'batch_operations' or 'capsule'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it, any prerequisites, or suggest sibling tools for different scenarios. The purpose is implied only through the listed actions and entities, leaving the agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_operationExecute operationAInspect

Execute a hidden or deferred capability returned by tool_search.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are present and consistent with 'execute' implying mutation. The description adds context about the origin of capabilities but does not disclose additional behavioral traits beyond what annotations already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description is sufficient for the tool's simplicity, though it could explicitly note the lack of return data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so schema description coverage is 100%. The description does not add parameter information, but none is needed; baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear verb ('execute') and resource ('hidden or deferred capability returned by tool_search'), which distinguishes it from sibling tools that perform other operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when a capability is obtained via tool_search, but does not provide explicit guidance on when not to use it or mention alternative tools for similar scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
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)

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lists mutating actions like 'push', 'ack', and 'clear', but annotations declare readOnlyHint=true, indicating read-only operations. This is a direct contradiction. Additionally, despite destructiveHint=false, operations like 'clear' are destructive. The tool's behavioral traits are inconsistent with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two short sentences that front-load the key fact (alias of instruct) and then list actions. Every sentence adds value, but the structure could be improved with clearer formatting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the schema covering parameter details, the description lacks essential context about what the instruction cache is, how the actions work, and the relationship to the 'instruct' tool. For a tool with 9 parameters and multiple actions, this leaves significant gaps for an AI agent to understand correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all 9 parameters. The description does not add any additional meaning beyond the schema, so a baseline score of 3 is appropriate. No parameter-specific elaboration is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it is an alias of 'instruct' and specifies 'session-scoped instruction cache operations', listing 8 actions. This clearly identifies the tool's purpose and distinguishes it from sibling tools like 'instruct', though the exact distinction is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. While it is marked as an alias of 'instruct', there is no explanation of when to prefer 'flash' over 'instruct' or other siblings, nor any mention of prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

ParametersJSON Schema
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.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies file generation but does not explicitly state that files are written to disk or the overwrite behavior. Annotations are all false, and the description does not contradict them. Basic behavioral context is present, but more detail about side effects would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, front-loading the core purpose. The list of editors is relevant but somewhat lengthy. No superfluous text, though it could be slightly tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should explain return values or success behavior, but it does not. It covers parameter purposes well via schema, but missing output details makes it less complete for a tool with 9 parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema, only listing editors which are already in the enum. It does not elaborate on parameter usage or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates AI rule files for specific editors, listing supported editors explicitly. The verb 'generate' and resource 'editor AI rules' are specific and distinguish it from the sibling 'generate_rules' tool by focusing on editors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'generate_rules'. It lacks explicit context for when or when not to use it, leaving the agent to infer usage from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

ParametersJSON Schema
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.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are unhelpful (all false). The description does not explicitly state that the tool writes files to disk, which is implied by the name but not confirmed. It mentions 'dry_run' parameter that returns content without writing, but does not disclose the default behavior of overwriting existing files (overwrite_existing parameter).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences, front-loading the main purpose. However, the second sentence includes a long list of editors that is somewhat redundant with the schema, though still acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters and no output schema, the description lacks details on output format, side effects (file creation/overwrite), and comparison to sibling tools. The tool is relatively complex but the description is too brief to fully inform the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameter descriptions are already present. The description adds some context (e.g., editor list, default behavior) but lists editors inconsistently (includes opencode, windsurf, antigravity not in enum). This adds marginal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate AI rule files for editors', and the title adds 'ContextStream rules', making the purpose clear. However, it does not distinguish from the sibling tool 'generate_editor_rules', which likely serves a similar function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance: 'Defaults to the current project folder; no folder_path required when run from a project.' It does not specify when to use this tool over the similar 'generate_editor_rules', nor does it mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
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.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, but the description includes 'ingest (build graph)', which suggests a write operation. This contradiction undermines transparency. The description adds some behavioral context (e.g., action names) but fails to resolve the inconsistency with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (single line) and front-loads the core purpose. However, the list of actions is run-on; using bullet points or better separation would improve structure. Still efficient with no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 actions, 13 parameters, no output schema), the description is too terse. It does not explain when to use each action, what the return values look like, or how parameters interact. The schema fills many gaps, but the description leaves the agent with insufficient context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all 13 parameters. The description adds minimal value beyond the schema by providing glosses for actions (e.g., 'module deps'), which helps interpret the 'action' parameter. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is for 'Code graph analysis' and lists 11 distinct actions, each with a brief gloss (e.g., 'dependencies (module deps)'). This makes the purpose specific and differentiates it from sibling tools like 'search' or 'entity'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description enumerates the available actions but provides no guidance on when to use this tool over alternatives, nor does it specify prerequisites or when not to use it. The list implies usage contexts, but explicit when-when-not instructions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
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.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains the behavioral context of each action beyond the annotations (readOnlyHint, destructiveHint, idempotentHint). It discloses that actions like 'editor_rules' generate files and install hooks, and 'enable_bundle' modifies tool state, aligning with the idempotent and non-destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that starts with the core purpose and lists actions. It is front-loaded but could benefit from breaking down actions for better readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 16 parameters and multiple actions, the description is insufficient. It lacks details on which parameters apply to which actions, expected outputs, and usage examples. The absence of an output schema further limits completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for parameters, so the baseline is 3. The description does not add additional meaning beyond the schema; it only lists actions without detailing parameter usage for each.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Utility and help' and enumerates distinct actions (tools, auth, version, etc.), making the tool's purpose clear and differentiating it from sibling tools that are more specialized.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists actions with brief explanations, implying when to use each (e.g., 'tools' for listing available tools, 'auth' for current user). However, it does not explicitly state when not to use this tool or provide alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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="")

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.

ParametersJSON Schema
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.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes the tool's behavior: initiates a session, retrieves context, suggests code ingestion. Annotations (readOnlyHint=false) do not contradict; description adds details about semantic search and output fields beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured with clear sections, but slightly verbose. Could trim redundant details about ingest_recommendation benefits. Good use of examples and emphasis on important points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters and no output schema, the description covers the main workflow, output contents, and edge cases like context compaction. Lacks information about authentication or error conditions, but overall comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented. Description adds value by explaining context_hint in depth with an example, and clarifies is_post_compact and skip_project_creation usage. Slightly redundant but helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Initialize a new conversation session' and specifies it's the first tool to call. The verb 'initialize' and resource 'conversation session' are specific and distinguishable from siblings like 'session'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'This is the FIRST tool AI assistants should call when starting a conversation.' Provides guidance on using context_hint with the first message and handling ingest_recommendation. Also notes that subsequent messages don't need context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

instructSession instructionsC
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
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)

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations declare readOnlyHint=true, implying read-only operations, but the description lists actions like push, clear, ack, and checkpoint, which modify state. This contradiction undermines transparency. Additionally, the description does not disclose important behavioral traits such as persistence, versioning, or concurrency handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise but lacks structure. It efficiently lists actions but does not organize them meaningfully or separate the summary from details. A bulleted list or grouping by operation type would improve clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 actions, 9 parameters, no output schema), the description is insufficient. It fails to explain the purpose of each action, the nature of the instruction cache, error conditions, or return values. This leaves the agent with significant gaps in understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the description does not need to repeat parameter details. However, it adds no extra context about parameter usage interdependencies (e.g., which parameters apply to which actions).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's domain ('Session-scoped instruction cache operations') and lists specific actions, making its purpose understandable. However, it could be more precise by stating what the tool achieves overall (e.g., manage instructions) rather than just listing actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'session' or 'context.' It does not specify when not to use it, such as when direct modifications are not needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
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

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Contradiction between annotations (readOnlyHint=true) and description (includes create, update actions). Description doesn't reconcile this or add behavioral context beyond listing actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single paragraph that is front-loaded with purpose but becomes a dense list of actions and parameters. Some structure via parentheses and commas, but could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple providers, many actions), the description is incomplete. It omits details like the 'all' provider meaning, conditions for team_activity, and which actions apply to which providers. Schema fills gaps but description lacks completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all 25 parameters with descriptions (100% coverage). The description adds context for some actions (e.g., search_pages filtering), but overall parameter semantics are adequately covered by schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is for integration operations with Slack, GitHub, and Notion, listing providers and actions. It distinguishes from siblings which are not integration-focused. However, it bundles many actions into one tool, making it broad.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description merely lists actions without providing context-specific usage criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

ParametersJSON Schema
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

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description contradicts annotations: readOnlyHint=true is inconsistent with index and delete actions which modify data. The description itself discloses ML processing and output formats, but the contradiction undermines trust.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with action list and workflow example, but slightly verbose. Front-loads core purpose. Could be trimmed without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count (16) and no output schema, the description covers main use cases and provides workflow. However, missing details on error handling, rate limits, and authentication. Adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. The description adds meaningful context beyond schema, e.g., explaining output_format options in detail and accepting friendly aliases for content_type. The example workflow illustrates parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the tool as handling media operations (video/audio/image) with specific actions listed. It distinguishes from sibling tools by focusing on semantic understanding for media, solving a specific problem for tools like Remotion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a detailed example workflow showing the sequence of actions (index, status, search, get_clip). Clearly indicates when to use each action, but does not explicitly state when NOT to use or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
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

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, etc. The description adds context about the persistence model and mentions deletion behavior (delete_all) and batch operations. It does not contradict annotations and adds value beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely long and enumerates every action in a run-on list. While front-loaded with purpose, the bulk lacks structure and could be more concise. Many sentences are just action lists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high complexity (50 parameters, many actions, no output schema), the description covers a lot: action categories, parameter purposes, and usage hints. However, it lacks guidance on return values and edge cases, which holds it back from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description provides some additional context for parameters like delete_all and plan_id, but mostly it groups actions rather than deeply explaining parameter semantics. No major gaps, but also no significant extra meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence clearly defines the tool as persistent memory for docs, runbooks, specs, etc., and explicitly distinguishes it from filesystem tools. The verb+resource is specific and the scope is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives, e.g., 'use action=search or list_docs/get_doc — NOT filesystem tools' and 'for tickets, bugs... use the entity tool instead'. This differentiates from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_complete_todoComplete todoBInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
todo_idYesTodo ID or title lookup
project_idNoProject ID (UUID).
workspace_idNoWorkspace ID (UUID).

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate it's not read-only, not idempotent, and not destructive, but the description adds no behavioral context beyond that. It doesn't mention consequences like whether the action is irreversible or if it triggers side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and to the point, with no unnecessary words. It could arguably be too brief, but it earns its place by being efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and only a single line, the description lacks completeness. It does not explain return values, error conditions, or how the optional parameters affect behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented. The description does not add any additional meaning beyond the schema, but baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Mark a todo complete') and identifies the resource (todo). It also provides a cross-reference to the handler, which helps disambiguate from other tools like 'memory_create_todo' or 'memory_update_task'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., when to use 'memory_update_task' instead), nor any prerequisites or exclusions provided. The description only states the basic action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_create_docCreate docBInspect

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

ParametersJSON Schema
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).

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false, so the description must disclose behavioral traits. It only states 'Create', indicating a write operation, but omits details like idempotency, side effects, or required permissions. Minimal behavioral insight provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise—one sentence plus a brief note. It front-loads the main purpose without unnecessary words. While it could be more informative, it is efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters, no output schema, and complex metadata, the description is insufficient. It lacks details on return values, creation behavior, error conditions, and idempotency, leaving gaps for an AI agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description mentions doc type examples, which are already in the schema's doc_type description. It adds no additional meaning beyond what's already documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Create' and the resource 'durable doc' with concrete examples (spec, runbook, ADR, RFC). It distinguishes from sibling tools like memory_update_doc and memory_create_task by specifying the action and resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage ('Create a durable doc') but provides no explicit guidance on when to use this tool versus alternatives or context about prerequisites. The note about the same handler adds minimal direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_create_eventCreate memory eventCInspect

Create a memory event for a workspace/project

ParametersJSON Schema
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).

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a mutation (readOnlyHint=false) and non-destructive. Description adds no extra behavioral context (e.g., persistence, visibility). Does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise, but given 8 parameters and nested objects, it is too brief to be effective. Lacks detail needed for a tool with this complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and a vague description. With many siblings and complex parameters, the description fails to explain what a memory event is or what the creation entails, leaving agents underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states verb+resource: 'Create a memory event'. It's clear at a high level but does not differentiate from sibling memory tools (e.g., memory_create_doc, memory_create_task), lacking specificity about what constitutes a 'memory event'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. With many sibling tools, the description fails to specify use cases or exclusions, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_create_taskCreate taskBInspect

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

ParametersJSON Schema
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).

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate non-read-only and non-destructive, consistent with creation. The description adds no extra behavioral details beyond stating creation, which is already implied. No contradictions, but no additional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences; first is clear and concise. The second sentence about the internal handler is unnecessary and detracts from conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and no output schema, the description is too brief. It does not explain required fields beyond title, or how the task integrates with projects/workspaces, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description mentions optional linking to a plan step, which aligns with plan_step_id and plan_id parameters, but adds minimal meaning beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a project-tracking task and optionally links it to a plan step. It uses a specific verb and resource, though it does not explicitly differentiate from siblings like memory_create_todo.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description lacks context on when a task vs todo or event should be created, and provides no exclusions or comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_create_todoCreate todoCInspect

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

ParametersJSON Schema
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

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds no behavioral context beyond 'Create', leaving the agent unaware of side effects, required authentication, or what happens to existing data. Since annotations are present, the bar is lower, but the description fails to add value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. However, the second sentence is a technical note that may confuse rather than clarify. It is concise but could be more helpful by front-loading a clearer purpose instead of the handler detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite high schema coverage, this is a creation tool with 8 parameters and no output schema. The description does not explain what happens after creation (e.g., return value, success indication, or side effects). The agent needs more context to understand the tool's behavior fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter already has a description. The tool description adds no additional parameter-level meaning. Baseline score is 3, as the description does not compensate for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a lightweight todo', which identifies the verb (create) and resource (todo). However, it does not differentiate from sibling tools like 'memory_create_task', which likely creates a similar entity, missing an opportunity to clarify when to use this specific tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description only states what it does, without any contextual hints about prerequisites, exclusions, or preferred scenarios. The mention of 'Same handler as memory(action="create_todo")' is a technical implementation detail, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_delete_docDelete docB
Destructive
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesDoc ID or title lookup
project_idNoProject ID (UUID).
workspace_idNoWorkspace ID (UUID).

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, so the description's 'Delete a doc' is consistent but adds no further behavioral details (e.g., irreversibility, permissions needed). It meets the minimum standard given annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, consisting of two short sentences. It is front-loaded with the action. No extraneous words, though it could be slightly more informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks important context such as whether deletion is permanent, error handling (e.g., if doc does not exist), or any prerequisites (project/workspace context). Given the destructive nature, more completeness is expected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter having clear descriptions. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a doc,' indicating the verb and resource. It is specific but does not differentiate from sibling tools like memory_update_doc; however, the verb 'delete' is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as memory_create_doc or memory_update_doc. The mention of an alternative handler ('Same handler as memory(action="delete_doc")') does not provide usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_update_docUpdate docCInspect

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

ParametersJSON Schema
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).

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint=false) and not destructive (destructiveHint=false). The description only says 'Update' without adding behavioral details such as whether updates are partial or full replacements, or what happens if the doc does not exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short with one sentence and a parenthetical. While it earns its place, it could be more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and a mutation operation, the description is insufficient. It does not explain update semantics (e.g., partial vs full overwrite) or provide usage context for the parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update an existing doc', which is a specific verb and resource. It distinguishes from creation and deletion siblings, but does not differentiate from other update tools like memory_update_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No mention of prerequisites (e.g., doc must exist) or context for choosing between update, create, or delete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_update_taskUpdate taskCInspect

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

ParametersJSON Schema
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.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations convey behavioral traits, so the description must compensate. It only states the update action but does not disclose any side effects, permissions, or whether changes are irreversible. The 'destructiveHint' annotation is false, but the description does not clarify this.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence without extraneous words. It is appropriately concise, though it could be structured with bullet points for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters and no output schema or annotations, the description is insufficient. It does not explain the return value, how required fields are determined (only task_id is required per schema), or that task_id can be a title lookup. More context is needed for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond what the schema already provides; each parameter's description in the schema is minimal but present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update a task') and specifies the aspects that can be updated ('status, fields, plan linkage'). However, it does not differentiate from sibling tools like memory_create_task or memory_complete_todo beyond the verb 'update'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as memory_create_task for creating tasks or memory_complete_todo for completing todos. The mention of 'Same handler...' is an implementation detail, not usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
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.

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, destructiveHint=false, but the description includes destructive actions like 'delete', 'purge', 'merge', and 'remove_paths' which modify or remove data. This is a clear contradiction. The description does add some detail for purge and forget_local, but fails to reconcile the overall destructive nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long and unstructured, consisting of a bullet list of 18 actions with only some inline explanations. It lacks clear front-loading of essential information. Could be organized into categories or brief descriptions for each action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (23 parameters, many actions, no output schema) and the contradictory annotations, the description fails to provide complete context. It doesn't explain row-level details like action dependencies, parameter relevance per action, or return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema provides parameter descriptions. The tool description does not add any extra semantic meaning beyond listing actions. No parameter usage context is given. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Project management' and enumerates 18 specific actions. It's obvious what the tool does, but it's a catch-all for many sub-operations, lacking a single focused verb+resource. However, it distinguishes itself from siblings by covering many project-related actions under one tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There are no guidelines on when to use this tool vs alternatives like workspace, entity, or vcs. For example, it doesn't explain when to use 'merge' vs 'update' or 'purge' vs 'delete'. No when-not-to-use or context is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
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)

TDQS

A3.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description lists write actions (save_kb, update_kb, delete_kb) but annotations declare readOnlyHint=true, a direct contradiction. Despite other useful details (citations, confidence, feedback), the contradiction severely undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections for intro, usage guidelines, heuristic, actions list, and answer explanation. Front-loaded with purpose. Slightly verbose but each part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all actions, explains knowledge base concept, answer generation, citation format, feedback mechanism. Without output schema, description still provides enough context for the agent to understand return values (grounded answer with citations).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so baseline is 3. Description adds value by explaining each action's purpose (e.g., 'search: vector-similarity-free listing of prior Q&A'), enhancing understanding of parameter usage beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it's for asking the workspace/project knowledge base. It distinguishes from sibling tools like 'search' and 'session' by explicitly saying it's for workspace-specific knowledge, not general programming or code-reading.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Extensive when-to-use (workspace-specific knowledge, prior decisions, conventions, runbooks) and when-not-to-use (general programming, things in code, trivial syntax) guidance. Includes a heuristic (~30 seconds stuck) and explicitly says it's not a reflex or last resort.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reminderReminderC
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
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).

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description includes mutation actions like 'create' and 'complete', contradicting the readOnlyHint annotation set to true; no additional behavioral traits disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (one sentence), but lacks essential details such as action-parameter relationships, making it insufficiently informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 14 parameters, six actions, no output schema, and no guidance, the description is woefully incomplete for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions, but the tool's description adds no extra meaning or contextual grouping, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages reminders and lists specific actions, but does not differentiate between the tools' purpose from siblings beyond the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use each action or how to choose between this tool and alternatives; the description merely enumerates actions without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
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)

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description contradicts annotations: readOnlyHint=true but the tool includes write actions (capture, capture_lesson, remember, etc.), and destructiveHint=false despite delete_lesson and other destructive actions. The description itself is detailed about behaviors, but the contradiction with annotations is severe, reducing transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very long and front-loaded with key distinctions, but it could be more concise by separating action lists into structured bullet points. It is moderately well-structured but verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 52 parameters and many actions, the description covers usage context well (when to use recall, ground, etc.) and explains key concepts. However, it lacks details on return values and error handling, which would be beneficial for such a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context for some parameters (e.g., user_message for ground) but mostly lists actions without deeper parameter details. It does not substantially enhance understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that this tool is for 'Session and memory management' and explicitly distinguishes it from 'search' tool for codebase/file search. It lists many specific actions, making the purpose very clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use actions like 'recall' for past sessions and 'capture_lesson' for mistakes. It warns against writing lessons to local files and explains how to use 'ground' for one-shot bundles. This is thorough and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

session_captureCapture context to memoryBInspect

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

ParametersJSON Schema
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).

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says 'capture and store' implying persistence, but lacks details on side effects (e.g., overwriting, limits, retrieval). Annotations are minimal (readOnlyHint=false, destructiveHint=false) and the description adds little beyond the basic write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise at two sentences, with the core action front-loaded. It avoids unnecessary words, but could be slightly more structured (e.g., separating purpose from usage guidance).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (10 parameters, nested objects, no output schema) and lack of annotations, the description is insufficient. It does not explain what 'capture' entails for retrieval, how required fields work, or any behavioral nuances. The agent lacks guidance on how the stored context can be accessed later.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage with descriptions for all parameters. The tool description does not add new information beyond the schema, but it provides context on event_type (by listing examples like 'decisions, insights, preferences') which aligns with the enum values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool captures and stores context from conversations. The title reinforces this. It distinguishes from siblings like memory_create_doc and session_remember by focusing on persisting general context, though it could be more specific about 'context' meaning conversation content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides examples of when to use it (persist decisions, insights, preferences, or important information) but does not explicitly state when not to use it or how it compares to alternatives like session_capture_lesson or memory_create_doc.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
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).

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, so the description correctly implies a write operation. It adds that the lesson is tagged 'lesson' and stored for future retrieval, which is helpful. However, it does not disclose permission requirements or confirm idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with bullet points. It front-loads the purpose, followed by usage guidance and examples, with no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple capture tool, the description covers purpose, triggers, and storage behavior. However, it lacks output specification (no output schema) and does not mention what the tool returns, leaving some gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all parameters with descriptions (100% coverage). The description does not add additional meaning beyond the schema; thus baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool captures a lesson from a mistake or correction, with specific trigger examples. However, it does not explicitly differentiate from sibling tools like session_capture or session_remember, which may have overlapping purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use this tool (user corrections, frustration, errors) but does not mention when not to use it or suggest alternative tools among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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"

ParametersJSON Schema
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.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false (write operation) and destructiveHint=false (non-destructive). The description adds minimal context beyond 'store something in memory', without disclosing whether it overwrites or appends, or any side effects. For a write tool, more behavioral detail is needed given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is extremely concise: one sentence plus two examples. Every sentence adds value by explaining the tool's purpose and usage pattern. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, yet the description does not mention what the tool returns after storing (e.g., confirmation, memory ID). For a tool that writes data, this is a significant gap. Parameter descriptions are complete, but the overall behavioral outcome is unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds natural language guidance for the 'content' parameter but does not elaborate on other parameters like 'importance', 'await_indexing', etc. Baseline of 3 is appropriate as schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states the tool stores something in memory using natural language, with examples. It clearly identifies the verb 'store' and resource 'memory', distinguishing it from siblings like 'memory_create_doc' by emphasizing quick, natural language input. However, no explicit sibling differentiation is provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage when you want to quickly store something using natural language (e.g., 'Quick way to store something in memory'). It provides examples but no explicit when-not-to-use or alternative tools. Lacks exclusions or guidance on when to choose this over siblings like 'memory_create_doc' or 'reminder'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

ParametersJSON Schema
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

TDQS

B3.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, but the description includes write actions (create, update, delete, import). This is a direct contradiction, causing confusion about the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a brief intro and bullet-pointed actions. It is of appropriate length and front-loads key information, though it could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (29 parameters, multiple actions), the description covers the tool's capabilities adequately. However, the annotation contradiction undermines completeness, and lack of output schema information is acceptable. Score penalized due to contradiction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds some context for actions (e.g., supersede archives skills), but does not provide additional meaning for individual parameters beyond what's in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages and executes reusable skills, and lists all specific actions (list, get, create, update, run, etc.). It distinguishes from sibling tools by specifying its focus on skills.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions skills are portable and gives a specific note about 'supersede' to retire stale skills. However, it does not explicitly state when to use this tool versus alternatives, but the purpose is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

ParametersJSON Schema
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

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint: true and destructiveHint: false, but the description includes many mutating actions (create_issue, update_issue, merge_pull, etc.), creating a direct contradiction. Beyond that, the description does not disclose any behavioral traits such as authentication needs, rate limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long due to an exhaustive list of actions, which could be condensed or grouped. It starts with a clear purpose statement, but the bulk is a repetitive list that adds little value. It is not concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 24 parameters and many sub-actions, the description is severely lacking. It does not explain what each action does, when to use them, or what the return values are. The annotations contradict, and no output schema exists. The description is inadequate for effective tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any additional meaning to parameters beyond what the schema already provides; it merely lists action names. The schema's parameter descriptions are minimal but present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Git version control and remote repo operations' and lists specific actions, clearly indicating the tool's broad scope. It distinguishes from sibling tools by focusing on VCS operations, though it doesn't explicitly differentiate from potentially overlapping tools like 'execute_operation'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It simply lists actions without any context on prerequisites, limitations, or when to prefer other tools. No 'when not to use' or alternative tool references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
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.

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and destructiveHint=false, but the description includes create, delete, and bootstrap actions, which are clearly not read-only. This is an annotation contradiction. The description does not address side effects or mutation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a long run-on list of actions with minor qualifiers. It lacks structured breakdown (e.g., grouping by read vs write) and is not front-loaded with essential info. Each sentence earns its place but poorly organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 18 parameters and multiple actions, the description does not explain how parameters relate to actions, nor does it describe return values (no output schema). It fails to provide enough context for correct invocation, especially for write actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no new meaning beyond listing actions; parameters are not linked to specific actions. No additional semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it's for 'Workspace management' and enumerates distinct actions (list, get, create, etc.), which distinguishes it from sibling tools like 'project' or 'entity'. However, it lacks a concise verb+resource summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Only two actions have usage constraints ('team plans only' for team_members, 'admin only' for index_settings). No guidance on when to use this tool versus alternatives, nor when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  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
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
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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
    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.
    104
    Apache 2.0
  • A
    license
    A
    quality
    A
    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
    25
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/contextstream/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server