Skip to main content
Glama
Kirachon

Context Engine MCP Server

by Kirachon

Context Engine MCP Server

A local-first, agent-agnostic Model Context Protocol (MCP) server for workspace indexing, retrieval, planning, and review workflows, with a setup path that works well for Codex and other OpenAI-powered agents.

New here? Start with the beginner quick start below.

If you want client-specific setup help, see docs/MCP_CLIENT_SETUP.md.

If you are on Windows, see docs/WINDOWS_DEPLOYMENT_GUIDE.md.

Historical docs live in docs/archive/INDEX.md if you need the old planning and migration notes.

OpenAI / Codex Showcase

If you want to see what this project demonstrates for OpenAI-style agent workflows, start here:

  • Local workspace indexing and retrieval

  • Review and planning workflows layered on top of the same MCP server

  • Beginner-friendly install and client setup

  • Windows support and copy-paste setup examples

  • AI-agent-friendly instructions for self-setup

Why This Matters

  • It shows how an OpenAI-powered agent can connect to a real workspace and start using tools right away.

  • It combines retrieval, review, and planning in one MCP server instead of relying on one-off scripts.

  • It gives both humans and AI agents a simple, repeatable setup path, which makes demos and onboarding easier.

Fastest demo path:

npm install
npm run build
codex mcp add context-engine -- node dist/index.js

Then in Codex, confirm the tools are visible and try:

use semantic_search to find authentication logic

Related MCP server: LLM Memory MCP Server

Beginner Quick Start

If you just want to get Context Engine running locally, follow these steps:

  1. Install Node.js 18+.

  2. Clone this repository and open it in a terminal at the repo root.

  3. Install dependencies:

npm install
  1. Build the server:

npm run build
  1. Run the verification checks:

npm run verify
  1. Start the MCP server:

node dist/index.js

By default, Context Engine now resolves the workspace like this:

  • explicit --workspace wins

  • otherwise it uses the current folder

  • if you launched from a nested folder inside a git repo, it falls back to the nearest git root

  • if no git root exists, it stays on the current folder and logs a warning

On first run, if the index is missing or stale, startup can kick off background indexing automatically. The server still starts first, but the first query may be slower until indexing finishes.

Connect It To Your MCP Client

The server speaks MCP over stdio, so most clients can launch it with the same command.

First-Time Setup vs Daily Use

Use this mental model:

  1. First-time setup: Register the MCP server once in your client.

  2. Daily use: Open any repo and let the server resolve the workspace automatically.

  3. Override only when needed: Pass --workspace <absolute-path> if the client launches from the wrong folder or you want a different repo on purpose.

Codex CLI

codex mcp add context-engine -- node dist/index.js

Windows example

codex mcp add context-engine -- node "D:\GitProjects\context-engine\dist\index.js"

Claude Code, Claude Desktop, Cursor, Antigravity

See docs/MCP_CLIENT_SETUP.md for copy-paste config examples for each client.

Ready-to-use sample config files live in examples/mcp-clients/. Optional skill packages for AI workflows live in examples/skills/.

If an AI agent is setting this up

Paste this into the agent if you want it to do the setup for you:

Set up Context Engine MCP for this workspace.

  1. Run npm install and npm run build.

  2. Register the MCP server once with node dist/index.js.

  3. Confirm the client launches the MCP server from the repo I am working in.

  4. If the client launches from the wrong folder, add --workspace <absolute-path-to-workspace> as an override.

  5. Confirm the server appears in the client and that tool_manifest() or an equivalent tool list works.

  6. Run one quick retrieval test, for example semantic_search, to confirm the connection is working.

  7. If startup says the workspace is unindexed or stale, let the background indexing finish or run index_workspace manually.

If the client is Codex CLI, use:

codex mcp add context-engine -- node dist/index.js

Startup Behavior

When the server starts without --workspace, it tries to be repo-aware:

  • repo root launch: uses that repo

  • nested repo folder launch: upgrades to the nearest git root

  • non-git folder launch: stays on the current folder and warns clearly

If startup auto-index is enabled, missing or stale workspaces start background indexing automatically.

Operator override:

  • disable startup auto-index with CE_AUTO_INDEX_ON_STARTUP=false

  • force a specific workspace with --workspace "D:\path\to\repo"

Architecture

This implementation follows a clean 5-layer architecture:

┌────────────────────────────┐
│ Coding Agents (Clients)    │  Layer 4: Codex, Claude, Cursor, etc.
│ Codex | Claude | Cursor    │
└────────────▲───────────────┘
             │ MCP (tools)
┌────────────┴───────────────┐
│ MCP Interface Layer        │  Layer 3: server.ts, tools/
│ (standardized tool API)    │
└────────────▲───────────────┘
             │ internal API
┌────────────┴───────────────┐
│ Context Service Layer      │  Layer 2: serviceClient.ts
│ (query orchestration)      │
└────────────▲───────────────┘
             │ domain calls
┌────────────┴───────────────┐
│ Retrieval + Review Engine  │  Layer 1: local-native runtime
│ (indexing, retrieval)      │
└────────────▲───────────────┘
             │ storage/state
┌────────────┴───────────────┐
│ Local State / Artifacts    │  Layer 5: workspace state + evidence
│ (index, cache, receipts)   │
└────────────────────────────┘

Layer Responsibilities

  • Layer 1: local-native indexing, retrieval, review support, and provider orchestration

  • Layer 2: context assembly, snippet formatting, deduplication, limits, and caching

  • Layer 3: MCP tools, validation, and request/response contracts

  • Layer 4: coding agents and MCP clients that consume the tools

  • Layer 5: persisted index state, caches, rollout receipts, and generated artifacts

Features

MCP Tools

The server exposes tools across these areas:

  • Core context and retrieval

  • Memory

  • Planning and execution

  • Plan management

  • Code review

  • Reactive review

Use tool_manifest() in the MCP server to inspect the current tool inventory directly.

Key Characteristics

  • Local-first runtime for indexing and retrieval, with OpenAI-backed planning/review workflows layered on top

  • Agent-agnostic MCP interface

  • Local-native retrieval provider as the active runtime

  • Thin context-engine-mcp launcher for convenience; it starts the same server and does not add features

  • Persistent state and evidence artifacts for rollout-proof workflows

  • Planning, review, and validation workflows built into the server

  • Optional benchmarking, parity, and governance gates for safer changes

Quick Start

npm install
npm run build
npm run verify
node dist/index.js

Optional validation commands:

npm run ci:check:no-legacy-provider
npm run ci:check:legacy-capability-parity
npm run ci:check:legacy-capability-parity:strict

Current Status

  • Retrieval is local-native and index-backed

  • Planning and review use the OpenAI session path

  • Legacy-provider references that remain are historical docs, tests, or migration guardrails

  • Current hardening focuses on fast paths, cancellation, and prompt efficiency rather than provider replacement

Available Tools

28 tools
add_memoryAdd MemoryA

Store a memory for future sessions. Memories are persisted as markdown files and automatically retrieved via semantic search when relevant.

Categories:

  • preferences: Coding style, tool preferences, personal workflow choices

  • decisions: Architecture decisions, technology choices, design rationale

  • facts: Project facts, environment info, codebase structure

Examples:

  • Add preference: "Prefers TypeScript strict mode"

  • Add decision: "Chose JWT for authentication because..."

  • Add fact: "API runs on port 3000"

Optional metadata fields improve ranking and traceability across sessions:

  • subtype: finer-grained label such as review_finding or failed_attempt

  • priority: critical, helpful, or archive

  • tags, source, linked_files, linked_plans, evidence, owner, timestamps

Memories are stored in .memories/ directory and indexed for semantic retrieval.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoOptional tags to support filtering and ranking
ownerNoOptional owner for memory maintenance
titleNoOptional title for the memory (useful for decisions)
sourceNoOptional source path or identifier
contentYesThe memory content to store (max 5000 characters)
subtypeNoOptional subtype label (for example: review_finding, failed_attempt, incident)
categoryYesCategory of memory: preferences (coding style), decisions (architecture), or facts (project info)
evidenceNoOptional evidence reference (commands, receipts, or docs)
priorityNoOptional priority used for memory ranking
created_atNoOptional ISO timestamp for when this memory was first created
updated_atNoOptional ISO timestamp for the most recent update
linked_filesNoOptional file paths related to this memory
linked_plansNoOptional plan identifiers related to this memory

TDQS

A4.5/5.0
Behavior5/5

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

Discloses persistence as markdown files, automatic semantic retrieval, storage directory '.memories/', indexing, and maximum content length (5000 chars). Annotations are minimal, so description carries full burden and does so excellently.

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 (purpose, categories, examples, optional metadata, storage). Front-loaded with core action. Slightly verbose but every section adds value for a parameter-rich tool.

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 purpose, usage, categories, examples, metadata fields, storage behavior. No output schema, but return type is not critical for a write tool. Could mention success confirmation, but overall complete.

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?

Input schema has 100% coverage, but description adds value by grouping optional metadata fields and explaining their purpose (ranking, traceability). Examples illustrate content and category usage, exceeding baseline of 3.

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?

Description clearly states 'Store a memory for future sessions' with specific verb and resource. Categories and examples further clarify purpose. Distinguishes from sibling 'list_memories' (store vs. list).

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 categories and examples guiding appropriate usage. Does not explicitly state when not to use or name alternatives, but context is clear enough for an AI agent.

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

call_relationshipsCall RelationshipsA
Read-onlyIdempotent

Return deterministic local callers and/or callees of a known function or method symbol.

Use this tool when you need to:

  • See which functions invoke a given symbol (callers) and where

  • Inspect which identifiers a function invokes inside its own body (callees)

  • Complement symbol_definition (single declaration site) and symbol_references (non-declaration usages)

Caller heuristic: lines containing ( that are not declaration-like; the nearest enclosing declaration is reported as callerSymbol when detectable. Callee heuristic: locates the symbol's definition and scans the brace-delimited body for identifiers followed by '('. Brace-language only in v1; non-brace bodies (e.g., Python) yield empty callees.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_kNoMaximum entries per side (1-100). Defaults to 20.
symbolYesFunction or method identifier whose call relationships you want to inspect.
directionNoWhich side of the call graph to compute. Defaults to both.both
bypass_cacheNoWhen true, bypass caches for this call.
exclude_pathsNoOptional workspace-relative glob filters to exclude matching paths after include filtering.
include_pathsNoOptional workspace-relative glob filters to include matching paths only.
language_hintNoOptional language hint (currently advisory; reserved for future use).
workspacePathNoOptional workspace path. Defaults to the current workspace.

Output Schema

ParametersJSON Schema
NameRequiredDescription
symbolYes
calleesYes
callersYes
metadataYes
directionYes
schema_versionYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds valuable behavioral details: the heuristic for callers and callees, brace-language limitation for callees, and that non-brace bodies yield empty callees. No contradiction.

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 front-loads the main action. It is slightly lengthy but every sentence earns its place by providing essential heuristic details.

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?

The tool has an output schema (not shown but indicated), so return values are documented externally. The description explains heuristic limitations and complements siblings, providing sufficient context for a complex call-graph 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?

Input schema has 8 parameters with 100% description coverage. The tool description does not add significant meaning beyond the schema, except for contextualizing the 'symbol' parameter via the heuristic explanation. 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 it returns 'deterministic local callers and/or callees of a known function or method symbol.' It uses specific verbs (Return, See, Inspect) and distinguishes from siblings symbol_definition and symbol_references by noting they are complementary.

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 explicitly lists when to use (e.g., 'when you need to see which functions invoke a given symbol') and mentions complementing sibling tools. It does not explicitly state when not to use, but the context is sufficient for an agent to decide.

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

clear_indexClear IndexA
Destructive

Remove saved index state and clear caches without rebuilding.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations include destructiveHint=true, but the description adds specific behavioral context: it clears caches and does not rebuild. This provides more detail than annotations alone.

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?

Single clear sentence with no unnecessary words, front-loaded with the key action.

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?

For a zero-parameter tool with no output schema, the description is sufficient, but could mention that the action does not affect other data (e.g., memories) for full completeness.

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?

No parameters exist, and schema coverage is 100%, so baseline is 4. Description does not need to add 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 uses a specific verb 'Remove' and clearly identifies the resource ('saved index state') and action ('clear caches without rebuilding'), effectively distinguishing it from tools like reindex_workspace.

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 when clearing is needed without rebuilding, but lacks explicit guidance on when to use versus alternatives (e.g., reindex_workspace) or prerequisites.

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

complete_stepComplete StepC

Mark a step as completed with optional notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoCompletion notes
plan_idYesPlan ID
step_numberYesStep number to complete
files_modifiedNoList of files actually modified

TDQS

C2.8/5.0
Behavior2/5

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

No annotations for readOnlyHint or destructiveHint, so the description must disclose behavior. It only states 'mark as completed' which implies a state change but does not mention reversibility, triggers, permissions, or side effects. This is insufficient for a mutation tool.

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 a single short sentence, which is concise but lacks structure. It covers the basic function but could include more detail without becoming verbose. Not all necessary information is front-loaded; it's minimal.

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 4 parameters, no output schema, and no annotations, the description fails to provide adequate context. It does not mention return values, side effects, or prerequisites. A mutation tool like this needs more thorough description to be complete.

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 schema documents each parameter. The description adds 'optional notes' which correlates to the notes parameter, but does not explain other parameters like files_modified beyond what schema provides. 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 the tool marks a step as completed with optional notes, using a specific verb and resource. However, it does not differentiate from sibling tools like fail_step or start_step, but the purpose is still evident.

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 such as fail_step. There are no explicit conditions, prerequisites, or when-not-to-use information. The usage context is entirely implied.

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

delete_planDelete PlanB
Destructive

Delete a saved plan from storage.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesPlan ID to delete

TDQS

B3.3/5.0
Behavior2/5

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

The description confirms the destructive nature of the tool ('Delete'), which aligns with the 'destructiveHint' annotation. However, it adds minimal behavioral context beyond the annotation, such as whether the deletion is permanent or reversible, or if it affects related data.

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, concise sentence that immediately conveys the action and resource. No extraneous information is present, and the purpose is front-loaded.

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 delete operation with one parameter and a destructive annotation, the description is adequate. However, it could be more complete by noting that the deletion is permanent and irreversible, which would help the agent assess risk.

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 covers 100% of the single parameter 'plan_id' with a description. The tool description adds no additional semantics beyond what the schema already provides, so a baseline score of 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 uses the specific verb 'Delete' and clearly identifies the resource as 'a saved plan from storage'. This distinguishes it from sibling tools like 'load_plan' and 'refine_plan', which have different verbs.

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 does not mention prerequisites, consequences, or situations where deletion is appropriate, leaving the agent to infer usage solely 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.

fail_stepFail StepB

Mark a step as failed with error details.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoSkip this step and continue
errorYesError message
retryNoWhether to retry the step
plan_idYesPlan ID
step_numberYesStep number that failed
skip_dependentsNoSkip all steps that depend on this one

TDQS

B3.1/5.0
Behavior2/5

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

With minimal annotations (only title), the description should disclose behavioral traits like side effects on the plan, retry logic, or skip behavior. It only states the basic action without additional context.

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 with 7 words, very concise and front-loaded. While efficient, it could benefit from slightly more context without becoming verbose.

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 6 parameters (3 required), no output schema, and sparse annotations, the description is too minimal. It does not explain the overall effect (e.g., plan termination, retry, dependency skipping) or interaction with sibling tools.

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 description does not need to add parameter details. However, it adds no value beyond the schema; 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 verb 'Mark' and the resource 'a step as failed with error details', which is specific and distinguishes it from siblings like 'complete_step' and 'start_step'.

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, nor any conditions or prerequisites. The user is left to infer usage from the name and description alone.

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

find_callersFind CallersA
Read-onlyIdempotent

Return deterministic callers of a known function or method symbol.

This tool prefers persisted graph call edges and falls back explicitly when graph coverage is unavailable or incomplete.

Use when you want call sites for one symbol without the broader combined output of call_relationships.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_kNoMaximum callers to return (1-100). Defaults to 20.
symbolYesFunction or method identifier whose callers you want to inspect.
bypass_cacheNoWhen true, bypass caches for this call.
exclude_pathsNoOptional workspace-relative glob filters to exclude matching paths after include filtering.
include_pathsNoOptional workspace-relative glob filters to include matching paths only.
language_hintNoOptional language hint (currently advisory).
workspacePathNoOptional workspace path hint. Present for parity with other navigation tools.

Output Schema

ParametersJSON Schema
NameRequiredDescription
symbolYes
callersYes
metadataYes

TDQS

A4.7/5.0
Behavior5/5

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

The description adds behavioral detail beyond the annotations (readOnlyHint, idempotentHint) by stating it prefers persisted graph call edges and falls back when coverage is unavailable, which is useful context for the agent.

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?

Three sentences, each serving a distinct purpose: stating the function, describing behavior, and providing usage guidance. No extraneous information.

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

Completeness5/5

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

Given the presence of an output schema, the description adequately covers purpose, behavior, and usage context. It leaves no major gaps for a tool with this complexity.

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 significant new meaning to parameters beyond what the schema already provides, though it does mention the fallback behavior in a general sense.

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 returns deterministic callers of a known function or method symbol, and it distinguishes itself from the sibling tool 'call_relationships' by specifying it returns call sites for a single symbol without the broader combined output.

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 says to use this tool when wanting call sites for one symbol without the combined output of call_relationships, providing clear guidance on when to use it versus the alternative.

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

get_review_telemetryGet Review TelemetryA
Read-onlyIdempotent

Get detailed telemetry data for a review session.

Returns:

  • Token usage statistics

  • Cache hit/miss rates

  • Execution timing per step

  • Reactive configuration in use

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesThe session ID to get telemetry for

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description's disclosure of returned data categories adds some value. However, it does not detail any potential limitations, error conditions, or performance implications.

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 a clear one-line purpose followed by a compact bulleted list of return items. Every sentence serves a purpose.

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 simple read-only nature, annotations, and complete schema coverage, the description provides adequate context. It could mention that results are for a single session and note any pagination or size limits, but it is largely complete.

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 single parameter 'session_id' is fully described in the input schema (100% coverage). The description does not add additional meaning beyond the schema, so baseline score of 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 verb 'Get' and the resource 'review telemetry', with a bulleted list of return categories. It distinguishes from sibling tools like review_changes or review_diff, which focus on code changes rather than telemetry.

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 does not mention context, prerequisites, or exclusions, leaving the agent to infer from the name alone.

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

index_statusIndex StatusA
Read-onlyIdempotent

Retrieve current index health metadata (status, last indexed time, file count, staleness).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
guidanceYes
compositeNo
freshnessYes
componentsNo
schema_versionYes
embeddingRuntimeYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and idempotentHint=true. Description adds value by detailing the specific metadata fields returned, enhancing understanding 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.

Conciseness5/5

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

Single sentence with no waste, front-loaded with verb and resource. Every word earns its place.

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

Completeness5/5

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

With no parameters, comprehensive annotations, and an output schema presumably defining return values, the description provides sufficient context for agent understanding.

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?

No parameters in schema; baseline 4. Description does not need to add parameter information, and it correctly avoids redundant 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?

Description uses specific verb 'retrieve' and resource 'index health metadata', listing concrete attributes (status, last indexed time, file count, staleness). Clearly distinguishes from sibling tools like clear_index or reindex_workspace.

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 vs alternatives, no exclusions or context provided. The description only states what the tool does without explaining appropriate usage scenarios.

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

list_memoriesList MemoriesA
Read-onlyIdempotent

List all stored memories, optionally filtered by category.

Shows file stats, entry counts, and content preview for each memory category.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional: Filter to a specific category

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnly and idempotent behavior. The description adds value by detailing that it shows file stats, entry counts, and content preview per category, going 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.

Conciseness5/5

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

Two sentences, front-loaded with purpose, followed by concise behavioral detail. No wasted words.

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

Completeness5/5

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

Despite no output schema, the description sufficiently explains what the tool returns (file stats, entry counts, content preview), making it complete for a simple list 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% with a single parameter that has enum and description. The description simply reiterates 'optionally filtered by category', adding no new meaning 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 the tool lists all stored memories with optional filtering, using a specific verb and resource. It distinguishes from the sibling 'add_memory' which is a write operation.

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 implies usage for viewing memories, optionally filtered. While no explicit alternatives or when-not-to-use are given, the context of being the only list tool for memories makes it adequate.

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

load_planLoad PlanB
Read-onlyIdempotent

Load a previously saved plan by ID or name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoPlan name to load (alternative to plan_id)
plan_idNoPlan ID to load

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds minimal context (identification by ID or name), but does not disclose what happens when both parameters are provided, error behavior, or retrieval scope.

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, well-formed sentence with no redundant words. It is front-loaded and 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?

The tool lacks an output schema, so the description should indicate what 'loading' returns (e.g., plan data). Without this, the agent cannot determine the tool's effect. The description is too sparse given the absence of output schema.

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 schema already documents both parameters. The description merely paraphrases 'by ID or name', adding no new meaning 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 uses specific verb 'load' and resource 'plan', and identifies the lookup keys (ID or name). It clearly distinguishes from sibling tools like view_history or visualize_plan, which have different purposes.

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, nor any prerequisites or exclusions. Given the large set of sibling tools, this is a significant gap.

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

reactive_review_prReactive Review PRA

Start a reactive PR code review session.

This tool initiates an AI-powered code review with advanced features:

  • Commit-aware caching: Caches context by commit hash for efficiency

  • Parallel execution: Reviews multiple files concurrently

  • Session management: Pause, resume, and track progress

  • Telemetry: Token usage, cache hit rates, execution timing

Environment Variables:

  • REACTIVE_ENABLED=true: Master switch for reactive features

  • REACTIVE_PARALLEL_EXEC=true: Enable parallel execution

  • REACTIVE_MAX_WORKERS=3: Maximum concurrent workers

Returns: Session ID for tracking. Use get_review_status to monitor progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoPR title for context
authorNoPR author for context
base_refYesBase branch reference (e.g., "main", "develop")
additionsNoNumber of line additions in the PR
deletionsNoNumber of line deletions in the PR
commit_hashYesGit commit hash for the PR head
max_workersNoMaximum number of parallel workers for this review session
changed_filesYesChanged files as comma-separated list or JSON array

TDQS

A3.5/5.0
Behavior4/5

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

Annotations are minimal (only title), so the description carries full burden. It discloses key behaviors: commit-aware caching, parallel execution, session management, telemetry, and return of a session ID. It also references get_review_status for follow-up. However, it does not mention potential side effects like resource creation or cleanup.

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 moderately concise with bullet points and clear sections. It front-loads the purpose in the first sentence. However, it includes environment variables and a list of features that, while useful, add length. Could be trimmed slightly without losing clarity.

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 8 parameters (3 required) and no output schema, the description covers the return value (session ID) and directs to get_review_status for progress. It explains advanced features and environment configuration. However, it lacks preconditions such as needing an existing PR or valid git repository.

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 schema; it reiterates that parameters like 'changed_files' can be a CSV or JSON array, which is already in the schema. No additional format or usage constraints are explained.

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's purpose: 'Start a reactive PR code review session.' It is a specific verb+resource combination. However, it does not differentiate from sibling tools like review_auto or review_changes, which may perform similar functions without reactive features.

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. The description mentions advanced features and environment variables but does not specify scenarios where this tool is preferred over others, nor does it give prerequisites or 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.

refine_planRefine PlanA

Refine an existing implementation plan based on feedback or clarifications.

Use this tool to iterate on a plan after reviewing it or answering clarifying questions.

When to use this tool:

  • After reviewing a plan and wanting adjustments

  • To answer questions the plan raised

  • To add more detail to specific steps

  • To change the approach based on new information

Input:

  • The current plan (JSON from a previous create_plan call)

  • Your feedback or clarifications

  • Optionally, specific steps to focus on

ParametersJSON Schema
NameRequiredDescriptionDefault
feedbackNoYour feedback on the current plan - what to change, add, or remove
focus_stepsNoSpecific step numbers to focus refinement on
current_planYesThe current plan as a JSON string (from the Full Plan JSON output of create_plan)
clarificationsNoAnswers to clarifying questions as JSON object (e.g., {"question1": "answer1"})

TDQS

A3.9/5.0
Behavior3/5

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

Annotations are minimal (only title), so the description must disclose behavioral traits. It mentions inputs and purpose but does not specify whether the tool mutates the plan or returns a new one, nor any side effects or safety concerns.

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 well-organized with a brief definition, a 'When to use' list, and an 'Input' list. Every sentence is substantive and front-loaded.

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 no output schema, the description should explain what the tool returns. It does not mention return value or behavior when refinement succeeds or fails. The tool also assumes a pre-existing plan but doesn't explicitly state prerequisites.

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 some context (e.g., 'JSON from previous create_plan call') but largely mirrors 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 explicitly states the tool refines an implementation plan based on feedback or clarifications. It provides specific use cases, distinguishing it from other plan tools like delete_plan or load_plan.

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 tool clearly enumerates when to use it (after reviewing, to answer questions, add detail, change approach). It doesn't explicitly say when not to use it, but the context is sufficient for an AI agent.

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

reindex_workspaceReindex WorkspaceA

Clear current index state and rebuild it from scratch.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoReturn a task ID and track reindexing progress without blocking the tool call
backgroundNoRun reindexing in the background without blocking the tool call

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses that the tool clears and rebuilds the index, which implies a destructive action. However, it does not detail side effects (e.g., temporary unavailability, performance impact), required permissions, or whether the operation is reversible. Annotations provide no behavioral hints (no readOnlyHint or destructiveHint), so the description carries the burden but provides only minimal transparency.

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 sentence that is concise and front-loaded. Every word is necessary and adds value. No redundancy or filler.

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 a reindex operation (potentially heavy, long-running), the description is minimal. It does not mention what 'current index state' means, what triggers reindexing, or what happens to in-flight searches. The output schema is absent, so return values are not explained. However, with sibling tools like index_status, basic context is available. The description is adequate but not comprehensive.

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; both parameters (task, background) are clearly documented with default values and behavior (return task ID or run in background). The description adds no additional meaning beyond the schema, so a baseline score of 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's action: clearing the current index state and rebuilding from scratch. It uses a specific verb ('clear', 'rebuild') and identifies the resource (index state of workspace). This distinguishes it from sibling tools like clear_index, which likely only clears without rebuilding.

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 clear_index or index_status. There is no mention of prerequisites, use cases, or when to avoid using it (e.g., during peak hours). The agent is left to infer from the name and description alone.

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

request_approvalRequest ApprovalB

Create an approval request for a plan or specific steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesPlan ID to request approval for
step_numbersNoOptional specific step numbers to approve

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description only states action without disclosing side effects, permissions, or consequences. Minimal behavioral context.

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?

Single sentence, very concise. However, it may be too minimal given the operation's 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?

With no output schema and minimal annotations, description lacks details about workflow, return value, or how the approval request is processed.

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. Description does not add significant meaning beyond schema descriptions.

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?

Description clearly states verb ('Create') and resource ('approval request'), and distinguishes from sibling 'respond_approval'. Also mentions 'plan or specific steps' which matches schema parameters.

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?

Implied usage (when approval is needed) but no explicit when/when-not guidance or mention of alternatives like 'respond_approval'.

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

respond_approvalRespond ApprovalA

Respond to a pending approval request (approve, reject, or request modifications).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to take
commentNoOptional comment
request_idYesApproval request ID
modificationsNoRequested modifications (if action is request_modification)

TDQS

A3.8/5.0
Behavior3/5

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

The description indicates mutation (respond) but lacks detail on side effects, permissions, or result format. Annotations provide minimal info, so description carries moderate burden.

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?

Single sentence is concise and front-loaded with purpose, containing no unnecessary words.

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 core action and parameters, but missing return value info (no output schema) and behavioral context for mutation 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 description coverage is 100%, so the description adds little beyond listing actions, which the schema already covers.

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 verb 'respond', the resource 'approval request', and lists the possible actions (approve, reject, request modifications), distinguishing it from the sibling 'request_approval'.

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 for pending approval requests but does not explicitly state when to use versus alternatives (e.g., request_approval) or when not to use.

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

review_autoReview AutoA
Read-onlyIdempotent

Smart wrapper that chooses review_diff when a diff is provided; otherwise chooses review_git_diff for the current git workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase ref for git comparisons (review_git_diff only)
diffNoUnified diff content (selects review_diff in auto mode)
taskNoReturn a task ID and track review progress without blocking (default: false)
toolNoForce tool selection. One of: 'auto', 'review_diff', 'review_git_diff'. Default: auto.auto
targetNoGit target to review (review_git_diff only). Default: 'staged'.
backgroundNoRun review without blocking the tool call (default: false)
changed_filesNoOptional list of changed files (review_diff only)
include_patternsNoFile globs to include (review_git_diff only)
response_versionNoResponse shape version. Default is v1.v1
review_diff_optionsNoOptions passed through to review_diff (advanced/CI-oriented)
review_git_diff_optionsNoOptions passed through to review_git_diff (same as review_changes options)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds the routing behavior and does not contradict annotations. It provides transparency about the auto-selection logic beyond what annotations cover.

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 a single, clear sentence that immediately communicates the core behavior. No wasted words.

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 is a wrapper with no output schema and rich parameter descriptions, the description sufficiently covers the main logic. It could optionally mention it's for code review, but the sibling names imply that.

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 has 100% description coverage. Description adds value by explaining how 'diff' and 'tool' parameters relate to the routing logic, enhancing 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?

Description clearly states the tool is a smart wrapper that automatically selects between review_diff and review_git_diff based on input. It distinguishes from siblings by describing the routing logic.

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?

Explicitly explains when each sub-tool is selected (diff provided vs current workspace). Implicitly guides when to force a specific tool via the 'tool' parameter. No explicit when-not-to-use, but the automatic selection covers common cases.

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

review_changesReview ChangesA
Read-onlyIdempotent

Review code changes from a diff using AI-powered analysis.

This tool performs a structured code review on a unified diff, identifying issues across correctness, security, performance, maintainability, style, and documentation.

Key Features:

  • Structured output with findings, priority levels (P0-P3), and confidence scores

  • Changed lines filter: focuses on modified code (can be toggled)

  • Confidence scoring: each finding has a 0-1 confidence score

  • Actionable suggestions: includes fix suggestions where applicable

Priority Levels:

  • P0 (Critical): Must fix before merge - bugs, security vulnerabilities

  • P1 (High): Should fix before merge - likely bugs, significant issues

  • P2 (Medium): Consider fixing - code smells, minor issues

  • P3 (Low): Nice to have - style issues, minor improvements

Categories:

  • correctness: Bugs, logic errors, edge cases

  • security: Vulnerabilities, injection risks, auth issues

  • performance: Inefficiencies, memory leaks, N+1 queries

  • maintainability: Code clarity, modularity, complexity

  • style: Formatting, naming conventions

  • documentation: Comments, docstrings, API docs

Output Schema: Returns JSON with: findings[], overall_correctness, overall_explanation, overall_confidence_score, changes_summary, and metadata.

Usage Examples:

  1. Basic review: Provide diff content

  2. Focused review: Set categories="security,correctness"

  3. Strict review: Set confidence_threshold=0.8

  4. Include context lines: Set changed_lines_only=false

ParametersJSON Schema
NameRequiredDescriptionDefault
diffYesThe unified diff content to review (from git diff, etc.)
base_refNoOptional base branch or commit reference for context
categoriesNoComma-separated categories to focus on. Options: correctness, security, performance, maintainability, style, documentation
max_findingsNoMaximum number of findings to return. Default: 20
file_contextsNoOptional JSON object mapping file paths to file contents for additional context
llm_timeout_msNoOptional AI timeout override in milliseconds for this review call (1000-1800000).
exclude_patternsNoComma-separated glob patterns for files to exclude (e.g., "*.test.ts,*.spec.js")
changed_lines_onlyNoOnly report issues on changed lines. Default: true
custom_instructionsNoCustom instructions for the reviewer (e.g., "Focus on React best practices")
confidence_thresholdNoMinimum confidence score (0-1) to include findings. Default: 0.7

TDQS

A4.4/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond annotations: it explains the structured output with findings, priority levels (P0-P3), confidence scores, categories, and features like changed_lines_only. No contradiction with annotations (readOnlyHint=true, idempotentHint=true).

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 well-structured with headers, bullet points, and examples. Every section serves a purpose: purpose, key features, priority levels, categories, output schema reference, and usage examples. No unnecessary content, clear and scannable.

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?

The description covers usage, parameters, and output comprehensively for a complex tool with 10 parameters. It mentions output schema in text (though context indicates no formal output schema). Minor gaps: no mention of prerequisites (e.g., needing git diff) or rate limits, but overall it's thorough.

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?

With 100% schema description coverage, the description could rest on the schema. However, it adds significant meaning by explaining categories, priority levels, and default values (e.g., confidence_threshold=0.7) that go beyond the schema. It enriches understanding but some parameters (base_ref, file_contexts) rely mainly on 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's purpose: 'Review code changes from a diff using AI-powered analysis.' It specifies the verb (review), resource (code changes/diff), and provides structured details on output, categories, and priority levels. This differentiates it from sibling tools like review_diff and review_auto.

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 usage examples and context on when to use the tool (e.g., basic review, focused review). However, it does not explicitly state when not to use this tool or compare it to alternatives like review_diff or reactive_review_pr, leaving the agent without guidance on choosing among sibling tools.

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

review_diffReview DiffB
Read-onlyIdempotent

Enterprise-grade diff-first review with deterministic preflight and structured JSON output.

ParametersJSON Schema
NameRequiredDescriptionDefault
diffYesUnified diff content
taskNoReturn a task ID and track review progress without blocking (default: false)
optionsNo
base_shaNoOptional base commit SHA
head_shaNoOptional head commit SHA
backgroundNoRun review without blocking the tool call (default: false)
changed_filesNoOptional list of changed file paths

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds 'deterministic preflight and structured JSON output,' which provides some behavioral context but does not elaborate on auth needs, rate limits, or other 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.

Conciseness5/5

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

Single sentence, front-loaded with the core purpose, no redundant words. Highly 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?

Despite complex nested parameters and no output schema, the description only gives a vague 'structured JSON output.' It omits details about the multi-phase process (LLM, static analysis, etc.) that are hinted at in the schema descriptions. Incomplete for the tool's complexity.

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 86%, so the schema already documents most parameters. The description adds no parameter-specific details beyond the high-level 'diff-first review.' At high coverage, 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 it's a diff-first review tool with deterministic preflight and structured JSON output. It gives a specific verb and resource, but does not explicitly distinguish from sibling tools like review_auto or review_changes.

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 such as review_auto or review_changes. The description lacks context for choosing among siblings.

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

run_static_analysisRun Static AnalysisA
Read-onlyIdempotent

Run local static analyzers (tsc and optional semgrep) and return structured findings.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoReturn a task ID and track analysis progress without blocking (default: false)
optionsNo
backgroundNoRun static analysis without blocking the tool call (default: false)
changed_filesNoOptional list of file paths to analyze

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, making the tool's nondestructive nature clear. The description adds context that it runs specific analyzers and returns findings, which is consistent and slightly enriches transparency.

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?

A single sentence that is front-loaded with the verb and main purpose, containing no fluff. Every word adds value.

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?

No output schema is provided, and the description only vaguely mentions 'structured findings'. For a tool with many sibling tools, more context on return format or when to use vs. alternatives would improve 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?

Schema description coverage is 75%, so the description does not need to add much. However, it adds no extra meaning beyond listing 'tsc and optional semgrep'; parameter details are left to the schema. Baseline of 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 verb 'run' and the resource 'local static analyzers (tsc and optional semgrep)', and specifies the action 'return structured findings'. This distinguishes it from sibling tools which are unrelated or focus on reviews/visualization.

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 for static analysis but lacks explicit guidance on when to use this tool over sibling review tools like 'review_auto' or 'reactive_review_pr'. No alternatives or exclusions are mentioned.

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

scrub_secretsScrub SecretsA
Read-onlyIdempotent

Scrub secrets from content before sending to LLM.

Detects and masks 15+ types of secrets:

  • AWS keys, OpenAI/Anthropic API keys

  • GitHub tokens, Stripe keys, Firebase/Supabase keys

  • Private keys (PEM), JWTs, connection strings

  • Generic API keys and passwords

Use this before including user content in prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesContent to scrub secrets from
show_endNoCharacters to show at end of masked secret (default: 0)
show_startNoCharacters to show at start of masked secret (default: 4)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating no side effects. The description adds value by detailing the types of secrets detected and masked, enhancing transparency 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.

Conciseness5/5

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

The description is concise and well-structured: a primary sentence, a bulleted list of secret types, and a usage instruction. It is front-loaded with the core purpose, with no wasted sentences.

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 3 parameters (1 required), high schema coverage, and annotations, the description is sufficiently complete. It explains purpose, usage, and secret types, although it does not describe return values (acceptable without output schema).

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 schema already documents all parameters. The description lists secret types but does not add parameter-specific semantics beyond the schema, meeting the baseline.

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: 'Scrub secrets from content before sending to LLM.' It lists specific secret types, distinguishing it from sibling tools like add_memory or clear_index which have no secret-scrubbing functionality.

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 explicitly recommends using this tool 'before including user content in prompts,' providing clear usage guidance. It does not mention alternatives or exclusions, but the context is sufficient for this purpose.

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

start_stepStart StepB

Mark a step as in-progress to begin execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesPlan ID
step_numberYesStep number to start

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations beyond title, the description carries the full burden but only states 'begin execution', omitting side effects, permission requirements, or state implications.

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?

A single, clear sentence with no unnecessary words, earning its place efficiently.

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 simplicity and absence of output schema, the description is minimal but covers the basic action; however, it lacks state machine context (e.g., prerequisites, reversibility).

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% and descriptions are adequate; the description adds no extra meaning beyond what is already 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 uses a specific verb ('mark as in-progress') and identifies the resource ('step'), clearly distinguishing it from sibling tools like complete_step and fail_step.

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 (e.g., complete_step, fail_step), nor are there any prerequisites or context for its use.

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

symbol_definitionSymbol DefinitionA
Read-onlyIdempotent

Return the single best deterministic declaration site for a known identifier.

Use this tool when you need to:

  • Jump straight to the canonical declaration of a function, class, type, interface, or constant

  • Get one definitive answer (file, line, kind, snippet) rather than a ranked list

  • Complement symbol_search (ranked) and symbol_references (non-declaration usages)

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesIdentifier whose declaration site you want to locate.
bypass_cacheNoWhen true, bypass caches for this call.
exclude_pathsNoOptional workspace-relative glob filters to exclude matching paths after include filtering.
include_pathsNoOptional workspace-relative glob filters to include matching paths only.
language_hintNoOptional language hint (currently advisory; reserved for future use).
workspacePathNoOptional workspace path. Defaults to the current workspace.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileNo
kindNo
lineNo
foundYes
scoreNo
columnNo
symbolYes
snippetNo
diagnosticsYes
schema_versionYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds behavioral context: the tool returns a single deterministic declaration site (file, line, kind, snippet), and mentions caching via the bypass_cache parameter. This covers the main behavioral traits without contradiction.

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 concise: a single introductory sentence followed by three bullet points. It front-loads the core purpose and uses structured bullets for clarity. No extraneous information.

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

Completeness5/5

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

Given an output schema exists, the description adequately covers the tool's purpose, behavior, and use cases without requiring return value details. It mentions the output components (file, line, kind, snippet) and references sibling tools, providing sufficient context 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 the baseline is 3. The description does not add significant new semantics beyond the schema descriptions for individual parameters. The overall context helps understand parameter usage (e.g., path filters), but no specific parameter details are enhanced.

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 'Return the single best deterministic declaration site for a known identifier.' It uses a specific verb ('Return') and resource ('declaration site'), and distinguishes from siblings by contrasting with symbol_search (ranked) and symbol_references (non-declaration usages).

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 lists three bullet-pointed use cases, including 'Jump straight to the canonical declaration' and 'Get one definitive answer rather than a ranked list.' It also explicitly mentions complementing sibling tools symbol_search and symbol_references, providing clear when-to-use guidance.

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

tool_manifestTool ManifestA
Read-onlyIdempotent

Discover available tools and capabilities exposed by the server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolsYes
versionYes
featuresYes
capabilitiesYes
discoverabilityYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already provide readOnlyHint and idempotentHint as true, so the description carries minimal burden. The description accurately conveys a safe, read-only discovery operation with no side effects, fully consistent 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.

Conciseness5/5

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

The description is a single, well-formed sentence with no unnecessary words. It is front-loaded with the key action and resource, and every word earns its place.

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

Completeness5/5

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

Given the tool has no input parameters, annotations covering safety, and an output schema (as indicated in context), the description is completely adequate. It tells the agent exactly what the tool does without needing further elaboration.

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 tool has zero parameters and 100% schema coverage, so the description needs to add no parameter information. According to the rubric, baseline for 0 params is 4, which is appropriate here.

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 'Discover available tools and capabilities exposed by the server' clearly states the verb (Discover) and resource (tools and capabilities). It distinguishes from siblings, which are specific functional tools, by indicating this is a meta-tool for listing available capabilities.

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 implies usage context: an agent should use this tool to learn what other tools are available. While it does not explicitly state when not to use or provide alternatives, the simplicity of the tool makes the context clear. No exclusion guidance is needed given the tool's purpose.

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

validate_contentValidate ContentA
Read-onlyIdempotent

Run multi-tier validation on content.

Tier 1 (Deterministic):

  • Balanced brackets/braces

  • Valid JSON structure

  • Non-empty content

Tier 2 (Heuristic):

  • TODO/FIXME detection in code

  • Console statement detection

  • Hardcoded URL detection

  • Line length checks

Also scrubs secrets automatically (can be disabled).

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesContent to validate
file_pathNoOptional file path for context
content_typeNoType of content for context-aware validationraw_text
scrub_secretsNoEnable secret scrubbing (default: true)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds that secret scrubbing is automatic and can be disabled, which is a behavioral trait. However, there is a potential contradiction: scrubbing secrets may imply modification, conflicting with readOnlyHint, but it could be interpreted as a pure transformation.

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 concise and well-structured with bullet points for the two tiers. Every sentence is informative and earns its place.

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?

While the description thoroughly explains the tool's functionality, it does not mention what the tool returns (e.g., a validation report or success status). Given no output schema, this is a gap for 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?

Schema coverage is 100%, so each parameter already has a description. The description adds no additional meaning beyond listing the validation tiers, which do not map directly to parameters.

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 starts with 'Run multi-tier validation on content', specifying a clear verb and resource. It then details two tiers of checks, distinguishing it from sibling tools like 'run_static_analysis' or 'scrub_secrets' which focus on specific aspects.

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 general validation usage but does not explicitly state when to use this tool versus alternatives like 'run_static_analysis' or 'scrub_secrets'. No exclusions or context for selection are provided.

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

view_historyView HistoryB
Read-onlyIdempotent

View version history for a plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of versions to retrieve
plan_idYesPlan ID
include_plansNoInclude full plan content in each version

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description's value is limited. It adds that the tool retrieves version history, but does not disclose other behaviors like pagination, error handling, or response format. Given annotations, the description is adequate but not rich.

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 of 6 words, extremely concise with no wasted text. However, it could benefit from slightly more structure or elaboration without becoming verbose.

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 simplicity, the description is minimally sufficient. However, it lacks details about the output format (e.g., ordering, limits) and does not mention any edge cases. With no output schema, the description should provide more context.

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% and the input schema already describes all three parameters with descriptions. The description does not add any additional meaning beyond what the schema provides, so 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 the tool views version history for a plan. It uses a specific verb and resource, and while it doesn't explicitly differentiate from siblings, the action is distinct from other tools like load_plan or view_progress.

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 about prerequisites, exclusions, or when other tools might be more appropriate.

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

view_progressView ProgressB
Read-onlyIdempotent

View execution progress for a plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesPlan ID

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety profile is covered. The description adds no extra behavioral context beyond that.

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?

Single, straightforward sentence with no fluff. Could be more detailed without harming 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?

No output schema, yet the description does not hint at what 'progress' information is returned. Lacks necessary context for a complete 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?

Schema description coverage is 100%, and the description adds no additional meaning beyond the schema's 'Plan ID'.

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 verb 'View' and resource 'execution progress for a plan'. It is specific enough to distinguish from sibling tools like view_history or index_status.

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 requisite context or limitations.

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

visualize_planVisualize PlanA
Read-onlyIdempotent

Generate diagrams from an implementation plan.

Use this to visualize the plan's structure in different ways.

Diagram types:

  • dependencies: Shows step dependencies as a DAG (who blocks whom)

  • architecture: Shows the architecture diagram if one was generated

  • gantt: Shows steps as a Gantt chart timeline

Returns Mermaid diagram code that can be rendered.

ParametersJSON Schema
NameRequiredDescriptionDefault
planYesThe plan as a JSON string
diagram_typeNoType of diagram to generate (default: dependencies)dependencies

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safety. The description adds important behavioral detail: 'Returns Mermaid diagram code that can be rendered,' which is non-obvious and beyond what annotations 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 concise and well-structured: a one-sentence purpose, a usage line, a bullet list of diagram types, and a closing sentence about output. Every sentence adds value without redundancy.

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

Completeness5/5

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

With only two parameters, no output schema, and annotations covering safety, the description fully explains the tool's purpose, parameter semantics, and output format. No gaps remain.

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?

The input schema already provides good descriptions (100% coverage), but the description adds meaningful context by explaining each diagram type in detail, noting the default value, and clarifying the format of the 'plan' parameter (JSON string).

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 'Generate diagrams from an implementation plan' and lists three specific diagram types (dependencies, architecture, gantt), distinguishing it from sibling tools which are not visualization-related.

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 a clear use case ('visualize the plan's structure') and explains each diagram type, implicitly guiding when to use which. However, it does not explicitly state when not to use this tool or mention alternatives.

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. 29 tool updatesv1.9.1
    • Addedadd_memory
    • Removedcompare_plan_versions
    • Removedcreate_plan
    • Addeddelete_plan
    • Addedfail_step
    • Removedfind_callees
    • Removedget_file
    • Removedget_review_status
    • Removedimpact_analysis
    • Addedindex_status
    • Addedlist_memories
    • Removedlist_plans
    • Addedload_plan
    • Removedpause_review
    • Addedrefine_plan
    • Addedrequest_approval
    • Removedresume_review
    • Addedreview_auto
    • Addedreview_changes
    • Removedreview_git_diff
    • Removedreview_memory_suggestions
    • Removedrollback_plan
    • Removedsave_plan
    • Addedsymbol_definition
    • Removedtrace_symbol
    • Addedvalidate_content
    • Addedview_history
    • Addedvisualize_plan
    • Removedwhy_this_context
  2. 34 tool updatesv1.9.1
    • Removedadd_memory
    • Addedcall_relationships
    • Removedcheck_invariants
    • Removedcodebase_retrieval
    • Changedcreate_plan10 fields changed
      • addedInput schema / properties / auto_scope
        Added value: +{
        +  "default": true,
        +  "description": "Automatically infer likely include paths when no explicit scope is provided (default: true)",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / context_token_budget / default
        Previous value: -12000New value: +8000
      • changedInput schema / properties / context_token_budget / description
        Previous value: -"Token budget for context retrieval (default: 12000)"New value: +"Token budget for context retrieval (default: 8000)"
      • addedInput schema / properties / depth
        Added value: +{
        +  "default": "auto",
        +  "description": "Explicit planning depth/budget mode (default: \"auto\"). \"auto\" infers depth from task breadth (architecture/migration/multi-step signals) and from requested context limits; broad requests are never silently downgraded to a compact outline. \"compact\" forces a lightweight local outline. \"deep\" forces full AI-backed planning regardless of task brevity.",
        +  "enum": [
        +    "auto",
        +    "compact",
        +    "deep"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / exclude_paths
        Added value: +{
        +  "description": "Optional workspace-relative glob filters to exclude matching paths after include filtering.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / generate_diagrams / default
        Previous value: -trueNew value: +false
      • changedInput schema / properties / generate_diagrams / description
        Previous value: -"Generate architecture diagrams in the plan (default: true)"New value: +"Generate architecture diagrams in the plan when requested (default: false)"
      • addedInput schema / properties / include_paths
        Added value: +{
        +  "description": "Optional workspace-relative glob filters to include matching paths only.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / max_context_files / default
        Previous value: -10New value: +8
      • changedInput schema / properties / max_context_files / description
        Previous value: -"Maximum number of files to include in context analysis (default: 10)"New value: +"Maximum number of files to include in context analysis (default: 8)"
    • Removeddelete_plan
    • Removedenhance_prompt
    • Removedexecute_plan
    • Removedfail_step
    • Addedfind_callees
    • Addedfind_callers
    • Removedget_context_for_prompt
    • Addedimpact_analysis
    • Removedindex_status
    • Removedindex_workspace
    • Removedlist_memories
    • Removedload_plan
    • Changedreactive_review_pr1 field changed
      • addedInput schema / properties / max_workers
        Added value: +{
        +  "description": "Maximum number of parallel workers for this review session",
        +  "type": "number"
        +}
    • Removedrefine_plan
    • Changedreindex_workspace2 fields changed
      • addedInput schema / properties / background
        Added value: +{
        +  "default": false,
        +  "description": "Run reindexing in the background without blocking the tool call",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / task
        Added value: +{
        +  "default": false,
        +  "description": "Return a task ID and track reindexing progress without blocking the tool call",
        +  "type": "boolean"
        +}
    • Removedrequest_approval
    • Removedreview_auto
    • Removedreview_changes
    • Changedreview_diff3 fields changed
      • addedInput schema / properties / background
        Added value: +{
        +  "default": false,
        +  "description": "Run review without blocking the tool call (default: false)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / options / properties / llm_timeout_ms
        Added value: +{
        +  "description": "Optional AI timeout override in milliseconds for this review call (1000-1800000).",
        +  "maximum": 1800000,
        +  "minimum": 1000,
        +  "type": "number"
        +}
      • addedInput schema / properties / task
        Added value: +{
        +  "default": false,
        +  "description": "Return a task ID and track review progress without blocking (default: false)",
        +  "type": "boolean"
        +}
    • Changedreview_git_diff1 field changed
      • addedInput schema / properties / options / properties / llm_timeout_ms
        Added value: +{
        +  "description": "Optional AI timeout override in milliseconds for this review call (1000-1800000).",
        +  "maximum": 1800000,
        +  "minimum": 1000,
        +  "type": "number"
        +}
    • Addedreview_memory_suggestions
    • Changedrun_static_analysis2 fields changed
      • addedInput schema / properties / background
        Added value: +{
        +  "default": false,
        +  "description": "Run static analysis without blocking the tool call (default: false)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / task
        Added value: +{
        +  "default": false,
        +  "description": "Return a task ID and track analysis progress without blocking (default: false)",
        +  "type": "boolean"
        +}
    • Removedsemantic_search
    • Changedtool_manifest1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "capabilities": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "discoverability": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "features": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "tools": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "version",
        +    "capabilities",
        +    "tools",
        +    "discoverability",
        +    "features"
        +  ],
        +  "type": "object"
        +}
    • Addedtrace_symbol
    • Removedvalidate_content
    • Removedview_history
    • Removedvisualize_plan
    • Addedwhy_this_context
  3. 42 tool updatesv1.9.0
    • First observedadd_memory
    • First observedcheck_invariants
    • First observedclear_index
    • First observedcodebase_retrieval
    • First observedcompare_plan_versions
    • First observedcomplete_step
    • First observedcreate_plan
    • First observeddelete_plan
    • First observedenhance_prompt
    • First observedexecute_plan
    • First observedfail_step
    • First observedget_context_for_prompt
    • First observedget_file
    • First observedget_review_status
    • First observedget_review_telemetry
    • First observedindex_status
    • First observedindex_workspace
    • First observedlist_memories
    • First observedlist_plans
    • First observedload_plan
    • First observedpause_review
    • First observedreactive_review_pr
    • First observedrefine_plan
    • First observedreindex_workspace
    • First observedrequest_approval
    • First observedrespond_approval
    • First observedresume_review
    • First observedreview_auto
    • First observedreview_changes
    • First observedreview_diff
    • First observedreview_git_diff
    • First observedrollback_plan
    • First observedrun_static_analysis
    • First observedsave_plan
    • First observedscrub_secrets
    • First observedsemantic_search
    • First observedstart_step
    • First observedtool_manifest
    • First observedvalidate_content
    • First observedview_history
    • First observedview_progress
    • First observedvisualize_plan

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes, but pairs like call_relationships/find_callers and clear_index/reindex_workspace are closely related, potentially causing confusion. Overall descriptions help differentiate, but minor overlaps exist.

Naming Consistency4/5

The majority use verb_noun snake_case (e.g., add_memory, complete_step), but a few use noun_noun (index_status, symbol_definition) or adjective_noun (reactive_review_pr), creating slight inconsistency. The pattern is largely predictable.

Tool Count3/5

At 28 tools, the server is borderline heavy for a single purpose. The broad 'context engine' scope partially justifies the count, but it feels overloaded compared to well-scoped servers.

Completeness2/5

Notable gaps exist: no create_plan tool despite load/delete/refine, and get_review_status is referenced in reactive_review_pr but not provided. Missing lifecycle operations hinder agent workflows.

Maintenance

ActivityMaintained
ResponsivenessResponsive

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
    A local-first MCP server that provides AI agents with safe codebase access through file discovery, hybrid lexical-semantic search, and project introspection. It features durable local memory and semantic indexing while keeping all data and processing entirely on your local machine.
    74
    29
    6
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for local-first code intelligence, providing structural code graph, semantic search, and impact analysis to AI agents.
    2
    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/Kirachon/context-engine'

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