Skip to main content
Glama

GPT Commander: An LLM-Facing Software Engineering Substrate

CI License

GPT Commander is a security-first MCP server that gives LLMs a safe, structured way to operate on a developer environment. It provides filesystem, process, and search tools; opinionated build/test/lint primitives; optional IDE-native context via VS Code; and integrations for CLI runners and memory stores.

This repo is intentionally "LLM-native": the tool surface is constrained, named, and predictable so models can operate reliably without improvising shell commands.

Why this exists

  • LLMs are best when the action space is small, stable, and explicit.

  • Most existing "terminal helpers" are too permissive or too brittle.

  • The difference between "helper" and "pair programmer" is IDE context and safe primitives.

Related MCP server: mcp-devtools

Feature highlights (all the bells + whistles)

  • Security guardrails: path allowlist, command blocklist, read/write limits, binary file sniffing.

  • Process management: start, interact, read output, kill; TTL auto-prunes long-running sessions.

  • Search + edits: ripgrep-backed search + targeted block replacement.

  • Opinionated primitives: run_tests, lint, build, typecheck, dev_server_start, etc.

  • IDE bridge (VS Code): diagnostics, symbols, references, workspace edits, and unsaved buffers.

  • CLI wrappers: safe runners for Codex, Claude, and Gemini CLIs.

  • Memory MCP: a memory_note tool that stores ad hoc notes externally.

  • Telemetry: optional tool/command metrics + JSONL event log.

  • Onboarding gate: mandatory obstacle course to ensure the model is actually calling tools correctly.

  • HTTP/SSE or stdio: run as a local stdio MCP or as a URL-based SSE MCP.


Requirements

  • Node.js >= 18

  • ripgrep (rg) on PATH (recommended for start_search)

Install

npm install
npm run build

Run: Stdio MCP (local clients)

Add to your MCP config (e.g. GPT Desktop, Claude Desktop, Codex, etc.):

{
  "mcpServers": {
    "gpt-commander": {
      "command": "node",
      "args": ["/path/to/dist/index.js"],
      "env": {
        "GPT_DC_CONFIG": "/optional/custom/config.json"
      }
    }
  }
}

Run: HTTP/SSE MCP (URL clients)

npm run build
node dist/sse.js

Then point your MCP client at:

http://127.0.0.1:3333/mcp

If you are using a reverse proxy or tailnet URL, set an absolute endpoint:

GPT_DC_HOST=127.0.0.1 GPT_DC_PORT=3333 \
GPT_DC_ABSOLUTE_ENDPOINT="https://your-host.example/desktop" \
node dist/sse.js

Ollama MCP (optional)

This repo includes a standalone MCP server that exposes local Ollama via tools.

npm run build
OLLAMA_HOST="http://127.0.0.1:11434" node dist/ollama-mcp.js

Tools:

  • ollama_list_models

  • ollama_show_model

  • ollama_generate

  • ollama_chat

Optional env:

  • OLLAMA_HOST (default http://127.0.0.1:11434)

  • OLLAMA_TIMEOUT_MS (default 120000)


OpenWebUI tool (sparse + CLI)

OpenWebUI Function plugin that bridges to Commander MCP with a minimal tool list plus CLI wrappers.

  • File: openwebui/commander_mcp_bridge.py

  • Setup: openwebui/README.md


Configuration

Default config is created at ~/.gpt-desktop-commander/config.json.

{
  "allowedDirectories": ["$HOME"],
  "blockedCommands": ["rm", "shutdown", "reboot", "mkfs", "mount", "umount"],
  "fileReadLimitBytes": 10485760,
  "fileWriteLineLimit": 10000,
  "defaultShell": "$SHELL",
  "enableShell": true,
  "telemetryEnabled": false,
  "telemetryLogFile": "$HOME/.gpt-desktop-commander/telemetry.jsonl",
  "telemetryMaxEvents": 200,
  "processTtlMinutes": 480,
  "onboarding": {
    "enabled": true
  },
  "memoryMcp": {
    "enabled": false,
    "url": "",
    "defaultType": "note",
    "defaultScope": "",
    "defaultTags": [],
    "defaultTtlDays": 0
  },
  "ideBridge": {
    "enabled": false,
    "host": "127.0.0.1",
    "port": 7311,
    "token": "<generated>",
    "requestTimeoutMs": 15000,
    "originAllowlist": []
  }
}

Set GPT_DC_CONFIG to point at a specific config file. The config is loaded at server start, so restart the server to apply changes.


Onboarding gate (mandatory)

When onboarding.enabled is true, all tool calls are gated until onboarding completes. The tool list is still visible so the model can discover commander_onboard.

Onboarding steps:

  1. commander_onboard

  2. tools/list

  3. list_directory

  4. start_search

  5. commander_finish

This ensures the model has proven it can execute tools correctly before getting full capabilities.


IDE Bridge (VS Code)

The IDE bridge exposes LSP-grade context: diagnostics, symbols, references, workspace edits, and unsaved buffers.

  1. Enable in config:

{
  "ideBridge": {
    "enabled": true,
    "host": "127.0.0.1",
    "port": 7311,
    "token": "YOUR_TOKEN"
  }
}
  1. Install the VS Code extension from the vscode-extension/ folder.

  2. Set VS Code settings:

gptDesktopCommander.bridgeUrl = "ws://127.0.0.1:7311"
gptDesktopCommander.bridgeToken = "YOUR_TOKEN"
  1. Use ide_list_workspaces() to get the workspaceId, then call:

  • ide_get_diagnostics

  • ide_symbol_search

  • ide_find_references

  • ide_read_buffer

  • ide_apply_workspace_edit


Opinionated primitives (Node + Python)

The project_info tool detects project language and tooling. Primitives use the best available commands:

Node/TypeScript

Detection:

  • package.json, lockfiles for npm/yarn/pnpm

  • tsconfig*.json for typecheck Commands:

  • run_tests: npm run test or local vitest/jest/mocha/ava

  • lint: npm run lint or local eslint/biome

  • format: npm run format or local prettier/biome

  • typecheck: local tsc/vue-tsc --noEmit

  • dev_server_start: npm run dev or npm run start

Python

Detection:

  • pyproject.toml, requirements.txt, setup.py

  • uv, poetry, or pip Commands:

  • run_tests: pytest

  • lint: ruff check . ‑ format: ruff format . or black . ‑ typecheck: mypy .


CLI wrappers (Codex, Claude, Gemini)

Set the paths and the CLI wrappers become tools:

CODEX_PATH=/opt/homebrew/bin/codex
CLAUDE_PATH=$HOME/.local/bin/claude
GEMINI_PATH=/opt/homebrew/bin/gemini
GEMINI_WORKDIR=$HOME/gemini-work

Tools:

  • codex_run(args?, cwd?, env?, timeoutMs?, maxBufferBytes?, input?)

  • claude_run(args?, cwd?, env?, timeoutMs?, maxBufferBytes?, input?)

  • gemini_run(args?, cwd?, env?, timeoutMs?, maxBufferBytes?, input?)


Memory MCP integration

memory_note writes to a separate Memory MCP (e.g. memory.write).

Config:

{
  "memoryMcp": {
    "enabled": true,
    "url": "https://memory.example/mcp",
    "defaultType": "note"
  }
}

Tool:

memory_note { "content": "...", "type": "note", "tags": ["ops"] }

Telemetry

When enabled, get_metrics returns totals and recent events for:

  • tool calls

  • command exits

  • durations

  • error counts

Optional JSONL logging is written to telemetryLogFile.


Tool surface

Core tools:

  • commander_onboard

  • commander_finish

  • get_metrics

  • memory_note

  • list_directory, read_file, write_file, get_file_info

  • start_process, interact_with_process, read_process_output, list_sessions, kill_process

  • start_search (ripgrep)

  • edit_block

IDE tools:

  • ide_list_workspaces, ide_get_diagnostics, ide_symbol_search, ide_find_references

  • ide_read_buffer, ide_apply_workspace_edit

Primitives:

  • project_info

  • run_tests, run_unit_tests, run_integration_tests

  • lint, format, typecheck, build

  • dev_server_start, dev_server_stop

Dev helpers:

  • git_status, git_diff, git_commit_prepare

  • search_code, find_symbol, open_file_at_line


Environment variables

Server:

  • GPT_DC_CONFIG (config path override)

  • GPT_DC_HOST, GPT_DC_PORT (SSE bind)

  • GPT_DC_TAILNET_HOST (allowed host list)

  • GPT_DC_ABSOLUTE_ENDPOINT (absolute base for SSE rewrite)

  • GPT_DC_TLS_KEY, GPT_DC_TLS_CERT (optional HTTPS)

CLI wrappers:

  • CODEX_PATH, CLAUDE_PATH, GEMINI_PATH, GEMINI_WORKDIR


Security model

  • Path allowlist: every FS op is resolved inside allowedDirectories using realpath.

  • Command blocklist: hard-fails dangerous commands before spawn.

  • Read/write limits: prevents giant file operations.

  • Binary detection: rejects non-text reads by default.

  • Process TTL: prevents zombie processes from lingering.


Troubleshooting

  • Tool not found: ensure you are calling tools by name via tools/call, not /Commander/link_*.

  • Tool list stale: start a new chat to refresh the tool registry.

  • CLI tool missing: verify the *_PATH env var is set before server start.

  • IDE bridge offline: confirm VS Code extension is running and token matches.

  • SSE origin mismatch: set GPT_DC_ABSOLUTE_ENDPOINT for proxy/tailnet URLs.


Roadmap ideas

  • Append-only audit log

  • Rich search (glob + ignore support)

  • Safer structured edits (range-based)

  • Per-tool rate limits


License

PolyForm Noncommercial 1.0.0. See LICENSE.md.

Available Tools

40 tools
buildC

Run build with a detected command

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
targetNo

TDQS

C2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, but it only says a command is 'detected' and run. It does not disclose potential side effects, whether the build modifies the filesystem, what command is actually executed, whether it is safe, or what output or errors might occur. This is a significant gap for a tool that executes a command.

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

Conciseness2/5

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

The description is a single short sentence, which is efficient in length but severely under-specified. It omits essential information about command detection, parameter usage, and expected behavior, so the brevity reflects a lack of substance rather than well-structured conciseness.

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

Completeness1/5

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

This build tool has no annotations, no output schema, and two undocumented parameters, yet the description provides almost no context about how the command is detected, what environments are supported, or what a successful build looks like. Given the tool's likely side effects (running build commands), the description is wholly inadequate for an agent to invoke it safely and correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the parameters 'cwd' and 'target'. The parameters are completely undocumented, and the phrase 'detected command' does not clarify how either parameter influences the build. The description fails to compensate for the lack of schema-level parameter documentation.

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

Purpose3/5

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

The description states the action 'Run build' and mentions 'detected command', so it is not a tautology and does identify the tool's primary function. However, 'detected command' is vague and does not clarify what build entails or how detection works, making the purpose only minimally clear. It does not explicitly distinguish itself from related commands like run_tests or typecheck beyond naming 'build'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as run_tests, lint, format, or typecheck. The phrase 'detected command' suggests some auto-detection but gives no context about prerequisites or situations that warrant using build. There are no exclusions or explicit alternative references.

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

claude_runC

Run the Claude CLI with safe arguments

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
envNo
argsNo
inputNo
timeoutMsNo
maxBufferBytesNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'Safe arguments' implies some restrictive behavior but does not disclose execution semantics, potential side effects, or return behavior. A CLI runner without these details is a significant transparency gap.

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, front-loaded sentence with no waste. It is appropriately concise, though the brevity comes at the cost of important missing details, which is a trade-off but not a structural flaw.

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 six parameters, no output schema, and no annotations, the description is under-specified. It fails to explain what happens when the command runs, what output is returned, or what 'safe arguments' means, leaving significant uncertainty for an automated agent.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no information about the 6 parameters. 'Safe arguments' vaguely hints at the args parameter but doesn't specify constraints, defaults, or meaning. The description provides no additional value beyond the raw parameter names.

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 'Run' and the resource 'Claude CLI', making the primary action understandable. However, 'safe arguments' is ambiguous, and the description does not differentiate from sibling tools like codex_run or gemini_run beyond naming the specific CLI.

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 given on when to use this tool versus alternatives such as codex_run or gemini_run. The only clue is the tool name, which is insufficient for an agent to decide which CLI runner to invoke.

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

codex_runC

Run the Codex CLI with safe arguments

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
envNo
argsNo
inputNo
timeoutMsNo
maxBufferBytesNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden. It hints at 'safe arguments' but doesn't explain what that means, nor does it disclose any behavioral traits like process management, output formatting, or side effects.

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

Conciseness3/5

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

The description is a single sentence and front-loaded, but 'with safe arguments' is vague and arguably unnecessary. It is short but under-specified rather than efficiently informative.

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

Completeness1/5

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

For a tool with 6 parameters, no annotations, and no output schema, the description is grossly incomplete. It fails to explain prerequisites, argument syntax, safety restrictions, or expected results.

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

Parameters1/5

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

The schema has 0% description coverage and the description provides no additional meaning for the six parameters. Parameters like 'cwd', 'env', 'args', 'input', 'timeoutMs', and 'maxBufferBytes' are left entirely unexplained.

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 a specific verb ('Run') and resource ('Codex CLI'), distinguishing it from sibling tools like claude_run and gemini_run. The phrase 'with safe arguments' is vague but doesn't obscure the primary purpose.

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. It doesn't mention requirements, limitations, or context where other tools would be more appropriate.

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

commander_finishB

Complete onboarding after required steps

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only hints at a prerequisite ('after required steps') and does not mention side effects, state changes, idempotency, or error behavior, making the tool's runtime impact unclear.

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, front-loaded sentence with no redundancy or filler. It is appropriately brief for a zero-parameter tool, though the brevity contributes to under-specification in other dimensions.

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 no annotations, the description should compensate by explaining the tool's return behavior and prerequisites, but it only states a vague precondition. For a simple tool it is still incomplete, leaving the actual completion action and any consequences undisclosed.

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, so the input schema is trivially complete. Per the rubric, a baseline of 4 is appropriate when no parameter explanation is needed, and the description does not introduce any confusing parameter references.

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 'Complete onboarding after required steps' clearly identifies the action (complete) and the resource (onboarding), and it distinguishes itself from the sibling commander_onboard by implying a sequential relationship. However, it does not specify what 'completing' entails, so it lacks the full scope precision of a top-tier description.

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 phrase 'after required steps' provides some contextual timing, implying this should be used only after certain prerequisites are met. However, it does not explicitly name alternatives or state when not to use this tool, leaving the guidance implicit rather than explicit.

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

commander_onboardA

Start mandatory onboarding and return the one sheet + obstacle course

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states what it starts and what it returns, without revealing side effects, idempotency, or any state changes. This is a minimal disclosure.

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 with no unnecessary words. It is front-loaded with the action and mentions the return value, achieving maximum conciseness.

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 simplicity of the tool (no parameters, no output schema), the description provides the essential information: what it does and what it returns. The terms 'one sheet' and 'obstacle course' are slightly vague but acceptable in context.

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, so the schema already covers all parameters perfectly. The description is not required to add parameter details, meeting the baseline for 0-param tools.

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 starts mandatory onboarding and returns the one sheet and obstacle course. It uses a specific verb ('Start') and resource ('onboarding'), and is distinct from sibling 'commander_finish', which presumably ends the process.

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 phrase 'mandatory onboarding' implies it should be used when beginning the onboarding process, but it does not explicitly state when not to use it or mention alternatives. Since no related onboarding alternative exists among siblings, the guidance is sufficient but not explicit.

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

dev_server_startC

Start a detected dev server and return a process id

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
targetNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It mentions 'return a process id' but does not explain side effects (e.g., background process launch, resource cleanup, relationship to lifecycle tools), or what 'detected' entails. This is a significant gap for a process-starting tool.

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 directly states the action and output. Every word contributes value, with no redundant information.

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

Completeness2/5

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

Given the tool's complexity (process startup, two parameters, no output schema or annotations), this description is too sparse. It omits crucial operational details such as parameter roles, prerequisite conditions for 'detected', and how the returned process id should be used or cleaned up.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention the parameters 'cwd' or 'target' at all. The parameter names are only mildly suggestive, and the description fails to add any meaning or usage context beyond the bare schema.

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

Purpose4/5

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

The description uses a specific verb ('Start') and resource ('detected dev server'), and states the return value ('process id'). It is clear about the tool's core function, but does not explicitly distinguish it from the sibling 'start_process' beyond the 'detected' qualifier, which is somewhat vague.

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 like 'start_process' or how it relates to 'dev_server_stop'. The context is implied but not explicitly stated, leaving the agent to infer usage scenarios.

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

dev_server_stopA

Stop a dev server by process id

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Stop' and gives no details about side effects (e.g., whether the process is force-killed, what happens if the process does not exist), permissions, or reversibility.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every word adds value, making it highly concise and well-structured.

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 one-parameter tool, the description covers the core action and parameter meaning. However, it lacks contextual guidance on how this tool relates to sibling tools like kill_process or dev_server_start, and does not mention any return behavior or error handling, leaving some gaps for an agent selecting it.

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

Parameters4/5

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

The input schema has 0% description coverage for the 'id' parameter, but the description explicitly states it is a 'process id', which gives the parameter meaningful context. While it could specify how to obtain the process id, it sufficiently clarifies the single parameter's semantics.

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

Purpose5/5

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

The description clearly states the action ('Stop'), the resource ('a dev server'), and the method ('by process id'). This is a specific verb+resource construction that distinguishes it from generic process tools like kill_process.

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 like kill_process or dev_server_start. The description implies it applies to dev servers but does not explicitly state prerequisites, exclusions, or preferred contexts.

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

edit_blockB

Replace the Nth occurrence of text in a file

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
targetYes
occurrenceNo
replacementYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not specify behavior when the target text is absent, when fewer occurrences exist, or whether the replacement is exact-match. No error handling or side effects are mentioned, leaving significant ambiguity 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.

Conciseness5/5

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

The description is a single sentence that directly states the tool's purpose without any filler. It is front-loaded and every word earns its place.

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 has four parameters, no annotations, and no output schema. The description is too brief to cover important operational context such as error behavior, occurrence counting (e.g., 0- or 1-based), or how it differs from similar editing tools. This is minimal for an editing tool with multiple potential edge cases.

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 0%, so the description should add meaning to the parameters. It clarifies the 'Nth occurrence' concept, which maps to the 'occurrence' field, and implies that 'target' is the text to find and 'replacement' is the new text. However, it does not explicitly name parameters or explain edge cases like exact matching or regex support, so it only partially compensates for the lack of 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?

The description uses a specific verb ('Replace') and clearly identifies the resource ('the Nth occurrence of text in a file'). It distinguishes this from whole-file writes (write_file) or other editing operations by emphasizing the occurrence-based replacement, which sets it apart from sibling tools.

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 like write_file or apply_workspace_edit. The description implies a use case but gives no explicit context, prerequisites, or exclusions.

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

find_symbolC

Find symbols using IDE index (LSP)

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
workspaceIdYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states the basic operation. It does not mention whether the operation is read-only, what results are returned, any side effects, or constraints. This lack of detail leaves the agent guessing about behavior.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the core purpose without any unnecessary words. It is concise and well-structured for quick comprehension.

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

Completeness2/5

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

Given the absence of an output schema, the description should explain what the tool returns, but it does not. The ambiguity with 'ide_symbol_search' and the lack of usage guidance make the tool contextually incomplete for an agent to reliably select and invoke it.

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

Parameters2/5

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

The input schema has 2 parameters with 0% description coverage, and the description does not explain 'query' or 'workspaceId'. The names are somewhat self-explanatory given the tool's purpose, but the description adds no explicit meaning, so it fails to compensate for the schema gap.

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 'Find symbols using IDE index (LSP)' clearly identifies the action (find symbols) and the resource (IDE index/LSP), making the purpose unambiguous. However, it does not differentiate from the sibling tool 'ide_symbol_search', which appears to serve a similar function.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'ide_symbol_search', 'search_code', or 'ide_find_references'. It only implies usage through the phrase 'using IDE index (LSP)', but no explicit context or exclusions are given.

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

formatC

Run formatting with a detected command

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
targetNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'detected command' but does not state whether formatting modifies files, what command will be run, or any potential side effects. This lack of transparency is a significant gap for a tool that likely performs write operations.

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, front-loaded sentence with no filler, which is concise. However, it is under-specified rather than appropriately sized; for a tool with two parameters and no output schema, this brevity leaves critical details absent. It is not verbose, but it also does not fully earn its place as a standalone guide.

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

Completeness2/5

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

Given the low complexity (two optional params, no output schema), a slightly richer description would suffice, but this one is incomplete. It fails to explain the 'detected command' mechanism, parameter semantics, or how this tool differs from sibling tools like lint and typecheck. The agent lacks essential context for reliable invocation.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the 'cwd' or 'target' parameters at all. An agent cannot determine what values to provide or how these parameters affect the formatting operation. The description adds no semantic value beyond the schema's basic type information.

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 phrase 'Run formatting' clearly identifies a specific action (formatting code), and 'with a detected command' adds context about automatic tool detection. It is distinguishable from sibling tools like lint and build, though the meaning of 'formatting' could be more explicit in a development context.

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 such as lint, typecheck, or build. There is no mention of prerequisites, target selection, or typical scenarios, leaving the agent to infer usage from the tool name alone.

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

gemini_runC

Run the Gemini CLI with safe arguments

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
envNo
argsNo
inputNo
timeoutMsNo
maxBufferBytesNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It hints at a 'safe arguments' mechanism but does not explain how safety is enforced, what the output looks like, or whether it is interactive—critical gaps for a process-running tool.

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, front-loaded sentence with no fluff. It is concise but overly terse for a tool with six parameters, and 'safe arguments' is under-specified.

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

Completeness1/5

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

Given six parameters, no annotations, no output schema, and zero parameter descriptions, the one-sentence description is grossly inadequate. It fails to communicate side effects, the safety wrapper's behavior, or how it differs from numerous related tools in the sibling list.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not mention any of the six parameters. While names like cwd, env, and args are somewhat self-explanatory, the description adds no value in clarifying types, constraints, or the meaning of 'safe arguments' relative to the args parameter.

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

Purpose4/5

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

The description clearly identifies a specific resource (Gemini CLI) with the verb 'Run', and the name itself distinguishes it from sibling tools like codex_run and claude_run. The qualifier 'with safe arguments' adds intent but is vague, preventing a perfect score.

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 vs alternatives like start_process, codex_run, or claude_run. There is no mention of prerequisites, use cases, or exclusions, leaving the agent to guess.

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

get_file_infoD

Stat a file

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

D1.8/5.0
Behavior1/5

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

With no annotations, the description must disclose behavioral traits, but 'Stat a file' reveals nothing about return format, error handling, or whether the operation is read-only. The agent has zero insight into side effects or failure modes.

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

Conciseness2/5

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

While the description is extremely short, this is under-specification rather than conciseness. Two words cannot earn their place when the tool clearly requires more context to be safely invoked.

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

Completeness1/5

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

For a tool with a single parameter, no annotations, and no output schema, the description is wholly inadequate. It fails to explain what 'stat' produces, how the path is resolved, or any behavior. The agent would be operating blind.

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

Parameters1/5

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

The only parameter 'path' has no schema description and schema coverage is 0%. The description does not explain what kind of path is expected (absolute, relative, file-only), nor does it add any meaning beyond the parameter name.

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

Purpose3/5

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

The description 'Stat a file' is a terse, technical verb+resource. It conveys that the tool retrieves file metadata, but 'stat' is Unix jargon and may be unclear to some agents. It does not differentiate from siblings like read_file, which also accesses file data.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. No context is provided about typical use cases, prerequisites, or exclusions, leaving the agent to guess.

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

get_metricsC

Get telemetry metrics and recent events

ParametersJSON Schema
NameRequiredDescriptionDefault
maxEventsNo
includeEventsNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'Get' implies a read-only operation, but no details are given about side effects, permissions, rate limits, pagination, or the structure of the returned data. This is minimal transparency beyond the basic action.

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

Conciseness4/5

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

The description is a single, efficient sentence with no redundant phrasing. It is front-loaded and easily parsed. While it is very brief, that brevity is not a flaw in terms of structure; it is appropriately sized for the tool's apparent simplicity, though arguably too short to be fully informative.

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

Completeness2/5

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

For a tool with two optional parameters, no annotations, and no output schema, the description provides only a high-level purpose. It does not explain how parameters affect behavior, what the return value looks like, or any operational constraints. This is insufficient for an agent to invoke the tool correctly without additional assumptions.

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

Parameters1/5

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

The schema description coverage is 0%, and the description does not mention either parameter (maxEvents, includeEvents). The agent receives no explanation of what these parameters control or how they affect results. The names hint at their purpose, but the tool description fails to compensate for the missing schema descriptions, leaving parameter semantics poorly defined.

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 action: 'Get telemetry metrics and recent events' – a specific verb ('get') and resource ('telemetry metrics' and 'recent events'). It distinguishes itself from sibling tools like file/process/IDE commands, which are unrelated. However, it lacks detail on what constitutes telemetry metrics or how they are scoped.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives. No context is given about scenarios that would call for get_metrics, nor is there any mention of alternative tools or exclusions. The description simply states what it does, leaving the agent without directional usage information.

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

git_commit_prepareC

Stage changes (optional) and return a commit prep summary

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
pathsNo
stageAllNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It mentions optional staging, implying mutation, but does not disclose what the summary contains, whether the tool modifies the repository, what side effects staging has, or any permission requirements.

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 single sentence is concise and front-loaded, but it is under-specified. It earns its place but does not deliver enough information to be considered well-rounded for a tool with multiple parameters and no annotations.

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

Completeness2/5

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

Given the tool has 3 parameters, no annotations, and no output schema, the description is incomplete. It mentions staging and a summary but omits return value format, side effects, and parameter semantics, making it insufficient for safe and correct invocation.

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

Parameters1/5

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

Schema description coverage is 0% and the description provides no explanation of the three parameters (cwd, paths, stageAll). It does not clarify how paths and stageAll interact or that cwd sets the working directory, leaving the agent entirely dependent on the parameter names.

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 uses specific verbs ('stage', 'return a summary') and names the resource (commit prep summary). It distinguishes from sibling tools like git_status and git_diff by focusing on staging and preparing a commit, though 'commit prep summary' is somewhat vague.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as git_status or git_diff. The phrase 'Stage changes (optional)' implies flexibility but does not state explicit use cases or exclusions.

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

git_diffC

Get git diff (optionally staged)

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
stagedNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description bears the full transparency burden. It indicates the default unstaged behavior via 'optionally staged' but does not disclose whether it modifies state, requires a repository, or what error conditions exist.

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 entire description is a single sentence, front-loaded and free of filler. It earns its place but leaves many details unaddressed.

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 no output schema and no annotations, the description should explain return values, scope (working tree vs index vs HEAD), and error conditions. None are covered, making the tool under-specified for reliable use.

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

Parameters2/5

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

The description clarifies the 'staged' boolean parameter but says nothing about 'cwd'. With 0% schema property descriptions, the parameter semantics are largely unspecified, leaving the agent to guess at cwd's meaning.

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 uses a specific verb 'Get' and resource 'git diff', clearly identifying the operation. The qualifier 'optionally staged' adds a distinct mode, but it does not explicitly differentiate from sibling git tools like git_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 is provided on when to use this tool versus alternatives such as git_status or git_commit_prepare. The description only states what it does, not when to invoke it.

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

git_statusC

Get git status (short)

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. 'Get git status' implies a read-only operation but does not state whether it returns porcelain output, whether it requires any authentication, or how it handles errors. The description adds minimal behavioral context beyond what the name already suggests.

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 with no filler or redundant wording. It is front-loaded with the essential verb and resource, making it easy to parse. All words earn their place, though the ambiguity of 'short' slightly detracts from clarity, the structure is appropriately minimal for a simple tool.

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 has no annotations, no output schema, and a single undocumented parameter. The description does not explain the return format, the meaning of 'short', or how the `cwd` parameter affects execution. This incompleteness makes it insufficient for an agent to confidently invoke the tool without additional context or heuristics.

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

Parameters1/5

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

The input schema defines a single parameter, `cwd`, with no description (0% schema coverage). The description does not mention `cwd` or clarify its purpose (e.g., which directory to run git in). Since there is no parameter documentation in either the schema or description, the agent has no way to understand how to set or omit this parameter correctly.

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 'Get git status (short)' clearly identifies the action (get) and resource (git status), distinguishing it from sibling tools like git_diff and git_commit_prepare. However, the term 'short' is ambiguous—does it mean the `--short` flag or abbreviated output? This slight vagueness prevents a perfect score.

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 usage guidance is provided. The description does not state when to use this tool versus alternatives (e.g., git_diff for diff details, git_commit_prepare for committing). There are no explicit conditions, prerequisites, or exclusions, leaving the agent to infer the appropriate context from the tool name alone.

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

ide_apply_workspace_editC

Apply a VS Code WorkspaceEdit (atomic) with a preview summary

ParametersJSON Schema
NameRequiredDescriptionDefault
editYes
previewOnlyNo
workspaceIdYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral impact. It mentions 'atomic' and 'preview summary' which hint at transactional behavior and output, but it does not explain side effects, required workspace state, or error conditions. For a mutation tool, this is insufficient.

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 single sentence is front-loaded and contains no fluff. However, it is terse to the point of underspecification, though this is more a completeness concern than a style one. It earns its place but could be expanded in a structured way.

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?

This is a non-trivial tool with a nested object and multiple parameters, yet the description provides only a basic action statement. It lacks details about the edit format, the meaning of previewOnly, and what the preview summary contains. The absence of annotations and output schema makes this description insufficient for reliable use.

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

Parameters1/5

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

The input schema has 0% description coverage, and the description does not explain any of the three parameters (workspaceId, edit, previewOnly). The structure of the nested 'edit' object is entirely undocumented, so the agent cannot infer how to construct a valid edit request.

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 applies a VS Code WorkspaceEdit, with an atomic operation and preview summary. It distinguishes from general edit tools like edit_block by referencing the WorkspaceEdit type, though it could be more explicit about what that entails.

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 over alternatives such as edit_block or write_file. No context or exclusions are mentioned, leaving the agent without decision support.

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

ide_find_referencesC

Find references using the IDE index

ParametersJSON Schema
NameRequiredDescriptionDefault
lineYes
pathYes
characterYes
workspaceIdYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, what the return value contains, or any side effects. The phrase 'using the IDE index' implies a read, but that is insufficient for an agent to understand the tool's behavior.

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

Conciseness5/5

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

The description is a single concise sentence that directly states the tool's purpose. There is no wasted wording, and the sentence is front-loaded with the verb and object.

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

Completeness1/5

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

The tool has four required parameters, no output schema, and no annotation context. The one-sentence description is grossly inadequate for an agent to understand what the tool returns, how the coordinates work, or what constitutes a 'reference'. The description needs far more detail to be usable.

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

Parameters2/5

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

The input schema has 0% description coverage, and the tool description does not explain any of the four required parameters. While parameter names like path, line, and character are somewhat self-explanatory, the description adds no additional meaning, leaving the agent to guess the format or interpretation.

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 'Find references using the IDE index' clearly states the action (find references) and differentiates from sibling tools like symbol search or code search by specifying 'references'. It is a specific verb+resource, though it lacks details about the scope or return format.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention any preconditions, exclusions, or alternatives such as find_symbol or search_code, leaving the agent to infer the appropriate use case.

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

ide_get_diagnosticsB

Get IDE diagnostics (optionally filtered by file or severity)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
severityNo
workspaceIdYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It mentions filtering but does not describe the return format (e.g., structured diagnostics objects), whether it returns stale or live diagnostics, or any side effects. Key behavioral traits such as output shape and potential errors are omitted.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that communicates the core function and key optional filtering behavior without unnecessary detail. It is concise and easy to parse.

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 has no output schema and no annotation coverage, so the description needs to provide sufficient context for an agent to invoke it correctly. While the purpose is clear, the description lacks details on result format, error handling, and how the required workspace context is used. This is a minimal but not fully complete description for a tool with three parameters.

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

Parameters2/5

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

The input schema provides parameter names and types but no descriptions. The description mentions filtering by 'file' and 'severity', which maps to 'path' and 'severity', but it does not explain the required 'workspaceId' parameter or acceptable severity values. With schema coverage at 0%, the description only partially compensates.

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 function: getting IDE diagnostics, with optional filtering by file or severity. This distinguishes it from sibling IDE tools like ide_symbol_search or ide_read_buffer, 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?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, common use cases, or explicit exclusions. The purpose implies usage, but the description does not help an agent decide between this and similar diagnostic tools.

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

ide_list_workspacesA

List connected IDE workspaces

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states only 'List connected IDE workspaces' without revealing whether this is a safe read-only operation, whether any state affects the list, or what conditions make a workspace 'connected'. No side effects or error conditions are mentioned.

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 containing only essential information. It is front-loaded and there is no extraneous content.

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's simplicity (no parameters, no output schema), the description is nearly sufficient. However, without annotations or output details, it could briefly clarify what constitutes a 'connected workspace' or what the list will be used for, though this is not critical for such a straightforward operation.

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, so the schema already covers everything. The description does not need to add parameter meaning, and the baseline for zero parameters is 4.

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

Purpose5/5

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

The description uses a specific verb 'List' and a specific resource 'connected IDE workspaces', clearly distinguishing it from sibling IDE tools like ide_get_diagnostics or ide_symbol_search. It precisely states what the tool does.

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 any exclusions, prerequisites, or context where another tool would be more appropriate.

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

ide_read_bufferB

Read an IDE buffer (includes unsaved changes when available)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
workspaceIdYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It discloses the key trait that unsaved changes are included when available, which is valuable. However, it does not mention behavior when no buffer exists, error cases, or whether it falls back to saved file content, leaving some ambiguity.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It states the verb and resource immediately and adds a valuable qualifier in parentheses, earning 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?

The tool is relatively simple with two parameters and no output schema, but the description omits usage guidance and parameter clarification. It covers the core behavior and key nuance, but leaves gaps that could be filled with a sentence about when to use it versus read_file or a note about error handling.

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

Parameters1/5

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

Schema description coverage is 0% and the description provides no explanation of workspaceId or path beyond their names. While the names are somewhat self-explanatory, the description adds no detail about formats, requiredness, or their roles, failing to compensate for the lack of schema documentation.

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 reads an IDE buffer, which is a specific resource distinct from reading a file from disk. The parenthetical 'includes unsaved changes when available' differentiates it from sibling tools like read_file by highlighting the in-memory buffer behavior.

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 when to use this tool (when you need buffer content including unsaved changes) but does not explicitly name alternatives or state when not to use it. Context from siblings suggests read_file is for disk reads, but no explicit guidance is provided.

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

interact_with_processC

Send stdin to a process

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
inputYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states only the action ('send stdin') but does not mention side effects, error behavior (e.g., what happens if the process doesn't exist), or whether it blocks, making the tool's behavior opaque beyond the basic action.

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, front-loaded sentence with zero wasted words. However, while concise, it is under-specified; the conciseness is acceptable but not exemplary because a few more details (e.g., parameter roles) would make it more useful without bloating it.

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 its simple two-parameter schema and lack of output schema, the description is insufficiently complete. It omits any usage context (e.g., how to obtain the process id, when to send stdin), and does not describe return values or error conditions, leaving the agent with significant gaps in understanding.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no additional meaning for the 'id' or 'input' parameters. The parameter names are self-explanatory to some degree, but the description does nothing to clarify their types, formats, or constraints, failing to compensate for the lack of 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?

The description uses a specific verb 'send' and clearly names the resource 'stdin to a process.' It distinguishes itself from sibling tools like start_process, read_process_output, and kill_process, making the tool's purpose unambiguous.

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

Usage 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. It does not mention prerequisites (e.g., process must be running) or exclusions, leaving the appropriate usage context entirely to the agent's inference.

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

kill_processC

Kill a process

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose the destructive nature and consequences of the tool. 'Kill' implies termination, but it does not explain irreversible effects, process state, or session cleanup. This is minimal behavioral disclosure.

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 extremely short, which is concise but oversimplified. It does not waste words, but it also lacks enough content to be genuinely helpful. This is borderline under-specification rather than effective 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?

Given the tool's simplicity (one param), the description is still incomplete: it doesn't specify what the id represents, how to kill the process, or what side effects occur. The absence of annotations and output schema increases the need for descriptive coverage, which is not provided.

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

Parameters1/5

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

The single 'id' parameter is completely unexplained. The schema shows a required string, but the description does not clarify how to obtain the id, its format, or confirm it is a process ID. With 0% schema description coverage, the description fails to compensate for this gap.

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 'Kill a process' clearly states the tool's action (kill) and target (process), distinguishing it from siblings like start_process and interact_with_process. It is a specific verb+resource combination with no ambiguity.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool, what prerequisites exist, or how it relates to process management siblings. The description is purely declarative and provides no context for tool selection.

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

lintC

Run lint with a detected command

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
targetNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only says 'Run lint with a detected command' and does not clarify whether linting is read-only, whether it modifies files, what 'detected command' implies, or what happens on failure. This leaves major behavioral assumptions unstated.

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

Conciseness2/5

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

The description is a single short sentence, which is efficient in length but under-specified. It lacks essential context that should be included, so brevity here is closer to under-communication than effective 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?

Given the tool has two parameters, no output schema, and no annotations, the description is severely incomplete. It does not cover return values, side effects, or the meaning of 'detected command', leaving the agent without enough context to use the tool reliably.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the two parameters (cwd and target). There is no indication of what cwd or target represent or how they affect the linting process, forcing the agent to guess from parameter names alone.

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

Purpose4/5

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

The description clearly states it runs lint, which is a specific verb+resource. It distinguishes from sibling tools like format and typecheck by naming the lint operation. However, 'with a detected command' is vague and doesn't specify what detection entails, slightly reducing clarity.

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 format, typecheck, or run_tests. There is no mention of prerequisites, use cases, or exclusions, so the agent must infer usage 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.

list_directoryB

List directory entries

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states the basic action, but omits behavior like whether hidden files are included, sorting order, error handling for nonexistent paths, or return format.

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 directly states the purpose with no filler. Perfectly concise for a simple tool.

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 one parameter, the description is minimally adequate, but it lacks important context like whether the listing is recursive, includes hidden files, or what happens on error. It's sufficient for a basic list operation but not comprehensive.

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

Parameters2/5

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

The schema has one parameter 'path' with type string and 0% coverage. The description does not explain the parameter, leaving its meaning to be inferred from the tool name. It adds no semantic value 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 a specific verb ('List') and resource ('directory entries'), clearly distinguishing this from sibling tools like read_file and get_file_info.

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 given on when to use this tool vs alternatives, such as get_file_info for a single file or search_code for content search. The usage must be inferred 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.

list_sessionsB

List active processes

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states the core action and does not disclose what information is returned (e.g., process IDs, names), whether any parameters are needed (though there are none), or whether the operation is safe/read-only. The read-only nature is implied but not explicit.

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, front-loaded sentence: 'List active processes'. It is appropriately concise with no filler or redundant wording. It is not overly verbose, though it could arguably be expanded with useful context without becoming bloated.

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

Completeness2/5

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

The description is minimal and leaves significant gaps. There is no output schema, so the description should clarify what 'active processes' means and what shape the returned list takes. Given the many sibling tools, the ambiguity between 'sessions' (in the name) and 'processes' (in the description) is confusing and could lead an agent to misuse the tool.

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 the schema is empty (100% coverage). According to the rubric, 0 params earns a baseline of 4. There are no parameter semantics to explain, and the description does not introduce any irrelevant parameter information.

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 'List active processes' clearly states the action (list) and resource (active processes). It distinguishes itself from sibling tools like start_process, kill_process, and interact_with_process, though the name 'list_sessions' introduces minor ambiguity about whether 'sessions' and 'processes' are synonymous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description does not mention use cases, exclusions, or why an agent would prefer this over read_process_output or get_metrics.

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

memory_noteC

Store a note in the memory MCP

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
typeNo
scopeNo
contentYes
ttlDaysNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits, but it only says 'Store'. It does not mention whether the note is appended, overwrites existing notes, whether tags/type/scope affect storage, or what the return value indicates. The persistence and side effects are opaque.

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 extremely concise with a single sentence, which is structurally clean and front-loaded. However, it is under-specified: for a tool with five parameters, one sentence that names no parameters is arguably too terse, even if it is not bloated.

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

Completeness1/5

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

Given five parameters with zero schema descriptions, no output schema, and no usage guidance, this description leaves nearly all relevant context missing. A user or agent would not know how to fill the parameters, what the tool returns, or how to interpret success/failure. This is far below a minimal viable description.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no information about the five parameters. It only generically says 'a note' without explaining the roles of content, tags, type, scope, or ttlDays. The description fails to compensate for the schema's lack of descriptions.

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

Purpose4/5

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

The description uses a specific verb ('Store') and specifies the resource ('a note in the memory MCP'), clearly indicating the tool's core function. It is distinct from sibling tools like write_file or search tools. However, 'memory MCP' is somewhat vague without additional context about what 'memory' refers to.

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, or any prerequisites or exclusions. For instance, it does not say whether this is the preferred way to persist short-term reminders vs. using write_file. There is no mention of suitable scenarios 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.

open_file_at_lineC

Read a file snippet around a line number

ParametersJSON Schema
NameRequiredDescriptionDefault
lineYes
pathYes
contextNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so description carries full burden. It discloses only that it reads a snippet, implying read-only, but says nothing about snippet size, context parameter, error behavior, or return format.

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 verb and resource. Every word contributes to the core meaning; no filler.

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 three parameters, no annotations, and no output schema, the description is too sparse. It lacks parameter explanations, return value details, and edge-case behavior, making it incomplete for reliable tool invocation.

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

Parameters1/5

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

Schema has 0% description coverage, and the description does not explain any of the three parameters (path, line, context). 'Line number' is mentioned, but no parameter semantics are provided.

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

Purpose4/5

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

Description clearly states 'Read a file snippet around a line number', specifying a focused read operation. It distinguishes itself from likely sibling read_file by narrowing to a snippet around a line, though it doesn't explicitly name the alternative.

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?

No explicit guidance on when to use this tool versus read_file or search_code. The phrase 'around a line number' implies a use case, but 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.

project_infoC

Detect project tooling, package managers, scripts, and CI

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what is detected but not how, whether it is read-only, what filesystem operations it performs, or what the output format is. This is a significant gap for a tool that may scan a project directory.

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, compact sentence with no wasted words, which is appropriate for conciseness. However, it is under-specified and omits details such as the role of `cwd`, expected output, or behavioral notes, so it is concise at the expense of usefulness.

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?

There is no output schema, no annotations, and minimal parameter documentation. The description tells what the tool detects but not what it returns, how to interpret results, or what the `cwd` parameter does. For a discovery tool that likely returns structured information, this description is incomplete.

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

Parameters1/5

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

The input schema has one parameter (`cwd`) with no description, and schema description coverage is 0%. The description does not mention `cwd` or explain how it affects behavior, leaving the agent to guess that it specifies the working directory. The description adds no meaning beyond the raw schema type.

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 uses a specific verb ('Detect') and lists concrete resources ('project tooling, package managers, scripts, and CI'), making the purpose clear. It does not explicitly differentiate from siblings like list_directory or get_file_info, but those have different purposes, so the description is sufficiently distinct.

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 implies usage when project tooling or CI information is needed, but it provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or context. There is no mention of exclusions or fallback tools, so the agent is left to infer when to invoke it.

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

read_fileD

Read a text file with limits

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
limitNo
offsetNo

TDQS

D1.8/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to mention key behaviors such as input encoding handling, behavior on binary files, error outcomes for missing paths, or how pagination works. The phrase 'with limits' is insufficient.

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

Conciseness2/5

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

The description is a single short sentence, which is front-loaded with the verb, but it is under-specified rather than concise. It omits necessary information that would require only a few more words, making the brevity counterproductive.

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

Completeness1/5

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

With three parameters, no output schema, and no annotations, this description is severely incomplete. It does not explain return values, error cases, accepted path formats, or any interaction with the file system. The description is wholly inadequate for the tool's complexity.

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

Parameters2/5

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

The input schema has zero description coverage for parameters, so the description must compensate. It offers only the vague phrase 'with limits,' which hints at the limit/offset parameters but does not explain their meaning, relationship, or defaults. The path parameter is not described at all.

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

Purpose3/5

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

The description states a clear action ('Read') and resource ('text file'), so the core purpose is evident. However, 'with limits' is vague and does not specify what limits apply (likely the limit and offset parameters) or distinguish this read operation from sibling tools like search_code or open_file_at_line.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or exclusions, leaving the agent without direction for tool selection among the many file-related siblings.

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

read_process_outputC

Read buffered process output

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
maxLinesNo

TDQS

C2.1/5.0
Behavior1/5

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

The description is essentially a restatement of the tool name, adding only the word 'buffered'. It does not disclose behaviors such as whether reading consumes/clears the buffer, whether it blocks, how maxLines affects output, or permission requirements. With no annotations, this leaves the agent without crucial 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.

Conciseness2/5

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

The description is a single short phrase, which is concise in word count but constitutes under-specification rather than effective conciseness. It omits necessary details while offering no structural benefits (no headings, examples, or clarifications).

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

Completeness1/5

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

With no annotations, no output schema, and two undocumented parameters, the description fails to provide a complete picture of the tool's purpose, parameters, and behavior. It is barely sufficient even for a simple read operation.

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

Parameters1/5

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

The schema defines 'id' and 'maxLines' with no descriptions (0% coverage). The description does not explain what 'id' references (process ID, session ID) or how 'maxLines' caps the output. It provides no meaning beyond the parameter names.

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 uses the verb 'Read' with the resource 'buffered process output', clearly indicating a read operation on process output. However, it does not distinguish itself from sibling tools like interact_with_process or read_file, so it lacks explicit differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as interact_with_process or read_file. There is no mention of prerequisites, scenarios, or exclusions.

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

run_integration_testsC

Run integration tests with a detected command

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
targetNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are present, so the description must carry behavioral disclosure. It mentions 'detected command' but fails to explain how detection works, what commands are recognized, potential side effects, or prerequisites. This leaves the agent without critical operational 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 concise sentence with no redundant words. It is structurally acceptable, though its brevity contributes to underspecificity in other dimensions.

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

Completeness2/5

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

Given the tool has two optional parameters, no output schema, and no annotations, the description is inadequate to ensure correct invocation. It does not clarify how the detected command interacts with parameters, what results to expect, or any constraints.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention the parameters cwd or target at all. It provides no additional meaning beyond the bare schema, forcing the agent to guess parameter purposes.

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

Purpose4/5

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

The description clearly identifies the action (run) and resource (integration tests), and adds the detail 'with a detected command' which hints at auto-detection. It distinguishes from siblings by specifying integration tests as opposed to unit tests or general tests, though it does not explicitly contrast with them.

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 offers no explicit guidance on when to use this tool versus alternatives like run_unit_tests or run_tests. The name implies usage for integration tests, but no context or exclusions are provided, leaving the agent to infer the appropriate scenario.

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

run_testsC

Run project tests with a detected command

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
targetNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only mentions 'detected command' but does not explain how detection works, what happens on failure, or what output is produced. This is insufficient for a testing tool.

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, concise sentence with no fluff. It is to the point, though it sacrifices detail for brevity.

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

Completeness2/5

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

Given the lack of annotations, output schema, and parameter descriptions, the description is minimal and incomplete. It does not cover how the tool behaves, how to use it, or how it fits with sibling testing tools.

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

Parameters1/5

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

The input schema provides no descriptions for cwd or target, and the description does not clarify their meaning. Schema description coverage is 0%, so the description needed to compensate but did not.

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 runs project tests with a detected command, using a specific verb and resource. However, it does not distinguish itself from sibling tools like run_unit_tests or run_integration_tests, which are more specific.

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 that run_unit_tests or run_integration_tests might be more appropriate for specific test scopes, nor does it explain the auto-detection behavior.

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

run_unit_testsC

Run unit tests with a detected command

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
targetNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits but only mentions that the command is 'detected.' It fails to explain how detection works, what happens if detection fails, any permission requirements, or the output format. This is insufficient for an agent to predict side effects or error behavior.

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 sentence with no wasted words, but it is under-specified. It is more descriptive than a pure tautology but still too terse to be considered well-structured. It does not front-load any practical detail beyond the purpose.

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

Completeness1/5

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

The tool has two optional parameters, no output schema, and no annotations, yet the description provides minimal context. It omits parameter semantics, expected behavior, error conditions, and return format. For a test-running tool, this is severely inadequate for an AI agent to use it correctly.

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

Parameters1/5

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

The schema has a 0% description coverage, providing only parameter names (cwd and target) with no type descriptions. The tool description also does not explain these parameters, forcing the agent to guess their meaning. This does not add any value beyond the raw schema.

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

Purpose4/5

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

The description clearly states that the tool runs unit tests, using the specific verb 'run' and the resource 'unit tests'. However, it does not differentiate from sibling tools like run_tests or run_integration_tests, and the phrase 'with a detected command' is somewhat ambiguous.

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. There is no mention of scenarios where this tool is preferred over run_tests or run_integration_tests, nor any prerequisites or exclusions.

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

search_codeC

Search code using ripgrep with safe defaults

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
globNo
depthNo
queryYes
caseSensitiveNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'safe defaults' but does not specify what those defaults are, nor does it describe output format, limit handling, or whether the operation is read-only. The behavioral transparency is minimal.

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, front-loaded sentence that immediately conveys the core purpose. It is appropriately concise, though the vague phrase 'safe defaults' could be expanded without harming conciseness.

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

Completeness1/5

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

This tool has five parameters, no output schema, and no annotations. The description is far too thin to cover the essentials: parameter meaning, return structure, or operational behavior. It is inadequate 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.

Parameters1/5

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

Schema description coverage is 0%, yet the description provides no information about any of the five parameters (query, cwd, glob, depth, caseSensitive). The agent must rely on parameter names alone, which is insufficient for correct invocation.

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

Purpose4/5

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

The description clearly states the tool performs a code search using ripgrep, with a specific verb ('Search') and resource ('code'). It does not differentiate from sibling tools like start_search or find_symbol, but the reference to ripgrep and 'safe defaults' gives some distinguishing detail.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like start_search or ide_symbol_search. The description implies it is a general code search, but no explicit context, prerequisites, or exclusions are provided.

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

start_processC

Start a long-running process

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
envNo
argsNo
shellNo
commandYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It does not state whether the process blocks, returns a handle, requires shell setup, or how output is handled. This is a significant gap for a process-starting 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, front-loaded sentence, which is succinct. However, it is under-specified and lacks any structural breakdown, such as an overview, example, or parameter hints, making it minimally adequate.

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

Completeness1/5

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

Given the tool's complexity (5 parameters, nested objects), the absence of annotations, output schema, and parameter descriptions, this one-line description is wholly inadequate. It does not enable an agent to select or invoke the tool correctly.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no information about the five parameters (command, cwd, env, args, shell). The description fails to compensate for the schema's lack of parameter descriptions, leaving the agent without any guidance on how to properly populate them.

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 phrase 'Start a long-running process' clearly identifies the action (start) and the resource (process), and 'long-running' hints at a non-blocking or background operation. However, it does not explicitly distinguish this tool from sibling tools like 'start_search' or 'dev_server_start', so it lacks explicit sibling differentiation.

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 given on when to use this tool versus alternatives. There is no mention of prerequisites, scenarios, or complementary tools such as 'interact_with_process' or 'kill_process'. The only context is 'long-running', which vaguely implies use for background tasks but is insufficient.

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

typecheckC

Run typecheck with a detected command

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
targetNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It only mentions 'detected command', which hints at automatic command detection but does not explain output, side effects, errors, or prerequisites. This is insufficient for a tool with no structured safety metadata.

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 concise sentence that front-loads the action. However, 'detected command' is slightly vague and could have been clarified without sacrificing 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?

Given no annotations, no output schema, and a minimal description, the tool is under-specified. It does not explain what 'typecheck' entails, how the command is detected, or how cwd and target influence execution, leaving significant gaps for a tool with two parameters.

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

Parameters1/5

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

The input schema lists cwd and target with no descriptions, and the description does not mention either parameter. With 0% schema description coverage, the description fails to add any meaning to the parameters, making it impossible for the agent to infer their purpose.

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

Purpose4/5

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

The description clearly states the action (run) and resource (typecheck), distinguishing it from sibling tools like lint or build. The phrase 'with a detected command' adds a bit of ambiguity but still conveys a specific purpose.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. No exclusions or contextual hints are provided, leaving the agent without direction for selection.

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

write_fileC

Write a text file (line-limited)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
appendNo
contentYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only hints at a line limit but does not explain whether the file is overwritten or appended, permissions needed, behavior on existing files, or error conditions. The append parameter is not mentioned, leaving key behaviors undisclosed.

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 concise sentence with no unnecessary words. It is well-sized for a minimal description, though it sacrifices necessary detail for brevity.

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?

For a tool with 3 parameters, no annotations, and no output schema, the description is severely incomplete. It fails to explain return values, error handling, line-limit specifics, or interaction with file system state. The sibling list includes similar tools, but no differentiation is provided.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no parameter-specific meaning. Path, content, and append are all left unexplained. The only hint is 'text file' implying content is textual, but this is insufficient to understand formatting, required encoding, or the role of append.

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 uses a specific verb 'write' and resource 'text file', making the primary action clear. The parenthetical 'line-limited' adds a qualifier, though its exact meaning is ambiguous. It distinguishes itself from read_file, but not from other write/edit tools like edit_block or ide_apply_workspace_edit.

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 given on when to use this tool versus alternatives (e.g., edit_block for partial edits, append flag for appending). The description does not mention prerequisites, exclusions, or scenarios where a different tool would be preferred.

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. 40 tool updatesv0.1.0
    • First observedbuild
    • First observedclaude_run
    • First observedcodex_run
    • First observedcommander_finish
    • First observedcommander_onboard
    • First observeddev_server_start
    • First observeddev_server_stop
    • First observededit_block
    • First observedfind_symbol
    • First observedformat
    • First observedgemini_run
    • First observedget_file_info
    • First observedget_metrics
    • First observedgit_commit_prepare
    • First observedgit_diff
    • First observedgit_status
    • First observedide_apply_workspace_edit
    • First observedide_find_references
    • First observedide_get_diagnostics
    • First observedide_list_workspaces
    • First observedide_read_buffer
    • First observedide_symbol_search
    • First observedinteract_with_process
    • First observedkill_process
    • First observedlint
    • First observedlist_directory
    • First observedlist_sessions
    • First observedmemory_note
    • First observedopen_file_at_line
    • First observedproject_info
    • First observedread_file
    • First observedread_process_output
    • First observedrun_integration_tests
    • First observedrun_tests
    • First observedrun_unit_tests
    • First observedsearch_code
    • First observedstart_process
    • First observedstart_search
    • First observedtypecheck
    • First observedwrite_file

TDQS

C2.4/5.0
Disambiguation2/5

Several tools have overlapping purposes: start_search and search_code both use ripgrep, and ide_symbol_search and find_symbol both use the IDE/LSP symbol index. This creates ambiguity in tool selection, especially for agents trying to choose the right search or symbol tool.

Naming Consistency4/5

Most tools follow a verb_noun snake_case pattern (e.g., read_file, kill_process, list_sessions, dev_server_start). However, memory_note is a noun phrase rather than a verb, and a few tools are bare verbs (lint, format, build), creating minor inconsistency.

Tool Count2/5

At 40 tools, the surface is very large. While the server aims to cover many domains, there are redundant tools (e.g., start_search/search_code, ide_symbol_search/find_symbol) that inflate the count and could be consolidated, making the tool set feel heavy and less focused.

Completeness3/5

Core workflows such as file operations, process management, IDE integration, and project commands are well covered. However, there are notable gaps: no file delete/rename, no memory retrieval (only memory_note), and git tools stop short of an actual commit, leaving some workflows incomplete.

Maintenance

ActivityInactive
ResponsivenessNo issues

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
    C
    quality
    D
    maintenance
    A privacy-first MCP server that provides local LLM-enhanced tools for code analysis, security scanning, and automated task execution using backends like Ollama and LM Studio. It enables symbol-aware code reviews and workspace exploration while ensuring that all code and analysis remain strictly on your local machine.
    36
    ISC
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that provides AI coding agents with AST-accurate, context-budget-aware codebase querying, safety gates, and team policy integration via structured tools and a local plugin layer.
    562
    4
    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/PushPullCommitPush/GPT-Commander---An-LLM-facing-software-engineering-substrate'

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