MCP Local LLM Server
Utilizes Ollama as a local LLM backend to power intelligent code analysis, privacy-preserving code reviews, security vulnerability detection, and autonomous task execution.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Local LLM Serverscan this folder for security vulnerabilities and leaked secrets"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Local LLM Server
A privacy-first MCP (Model Context Protocol) server that provides unique LLM-enhanced tools for VS Code Copilot. All analysis uses your local LLM - code never leaves your machine.
Key Features
Privacy-First: All LLM analysis runs locally - your code never leaves your machine
VS Code Copilot Optimized: Designed to complement (not duplicate) VS Code's built-in tools
LLM-Enhanced Tools: Every tool adds intelligent analysis, not just raw data
Symbol-Aware: Understands code structure, not just text patterns
Security Scanning: Automatic detection of secrets, API keys, and vulnerabilities
Multiple Backends: Ollama, LM Studio, OpenRouter support
Related MCP server: mcp-ollama-code-analyzer
Documentation Map
docs/API_REFERENCE.md- full tool schemas and usagedocs/TOOL_VISIBILITY_TIERS.md- tool surfacing strategy (core/discoverable/hidden)docs/examples/client-configuration-guide.md- IDE/client setup patternsdocs/operations/scripts-guide.md- operational scripts and maintenancedocs/operations/test-utils.md- test harness utilitiesdocs/prompts/- curated prompt suites for QA/regression workflows
Prerequisites
Node.js 20+ and npm
One local LLM backend running (LM Studio or Ollama)
Python 3.10+ (only required for
run_all_tests_ALL.py)
Quick Start
Windows Users - Automated Setup
# Start the server (auto-installs dependencies if needed)
start.bat
# Stop the server
stop.batManual Installation
# Install dependencies from the project root
npm install
npm run build
# Configure (optional)
cp env.settings.example env.settings
# Start
npm startVS Code Integration
There are several ways to configure MCP Local LLM with VS Code. Choose the method that best fits your workflow.
Option 1: Environment Variable (Recommended for Distribution)
Step 1: Set an environment variable pointing to your mcpLocalLLM installation:
Windows (PowerShell - add to profile for persistence):
$env:MCP_LOCAL_LLM_PATH = "C:\path\to\mcpLocalLLM"
[Environment]::SetEnvironmentVariable("MCP_LOCAL_LLM_PATH", "C:\path\to\mcpLocalLLM", "User")macOS/Linux:
# Add to ~/.bashrc or ~/.zshrc
export MCP_LOCAL_LLM_PATH="/path/to/mcpLocalLLM"Step 2: Create .vscode/mcp.json in any project:
{
"mcp": {
"servers": {
"mcp-local-llm": {
"command": "node",
"args": [
"${env:MCP_LOCAL_LLM_PATH}/dist/index.js",
"--settings",
"${env:MCP_LOCAL_LLM_PATH}/env.settings"
]
}
}
}
}This same configuration works across all projects without modification.
Option 2: Absolute Path (Simple, Project-Specific)
Create .vscode/mcp.json with the full path:
{
"mcp": {
"servers": {
"mcp-local-llm": {
"command": "node",
"args": [
"C:/Users/yourname/mcpLocalLLM/dist/index.js",
"--settings",
"C:/Users/yourname/mcpLocalLLM/env.settings"
]
}
}
}
}Note: Pass
--settings <path>to ensure the server uses the intended settings file (especially when you have multiple installs).
Option 3: Per-Project Configuration with Custom Workspace
For projects that need custom workspace settings, create a project-local env.settings:
Step 1: Copy env.settings.example to your project as env.settings
Step 2: Configure workspace roots + allowlist via the Web UI (http://127.0.0.1:3000/) or by editing [config] CONFIG_JSON in env.settings.
Step 3: Point your .vscode/mcp.json to this settings file:
{
"mcp": {
"servers": {
"mcp-local-llm": {
"command": "node",
"args": [
"${env:MCP_LOCAL_LLM_PATH}/dist/index.js",
"--settings",
"${workspaceFolder}/env.settings"
]
}
}
}
}Optional: OpenRouter for Testing
If you want to test with an external SOTA backend (not needed for normal use):
{
"mcp": {
"servers": {
"mcp-local-llm": {
"command": "node",
"args": [
"${env:MCP_LOCAL_LLM_PATH}/dist/index.js",
"--settings",
"${env:MCP_LOCAL_LLM_PATH}/env.settings"
],
"env": {
"TESTING_MODE_ENABLED": "true",
"OPENROUTER_API_KEY": "sk-or-v1-your-key-here"
}
}
}
}
}Other IDEs
Cursor
Create .cursor/mcp.json:
{
"mcpServers": {
"mcp-local-llm": {
"command": "node",
"args": ["${env:MCP_LOCAL_LLM_PATH}/dist/index.js"],
"env": {
"WORKSPACE_ROOT": "${workspaceFolder}"
}
}
}
}Windsurf
Create .windsurf/mcp.json:
{
"mcpServers": {
"mcp-local-llm": {
"command": "node",
"args": ["${env:MCP_LOCAL_LLM_PATH}/dist/index.js"],
"env": {
"WORKSPACE_ROOT": "${workspaceFolder}"
}
}
}
}Claude Desktop
Add to claude_desktop_config.json:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-local-llm": {
"command": "node",
"args": ["C:/path/to/mcpLocalLLM/dist/index.js"],
"env": {
"WORKSPACE_ROOT": "C:/path/to/your/project"
}
}
}
}Important: Set
WORKSPACE_ROOTto your project for proper path resolution.
Roo Code / Kilo Code
{
"mcpServers": {
"mcp-local-llm": {
"command": "node",
"args": ["C:/path/to/mcpLocalLLM/dist/index.js"],
"env": {
"WORKSPACE_ROOT": "C:/path/to/your/project"
}
}
}
}Zed
{
"mcpServers": {
"mcp-local-llm": {
"command": "node",
"args": ["/path/to/mcpLocalLLM/dist/index.js"],
"env": {
"WORKSPACE_ROOT": "/path/to/your/project"
}
}
}
}Available Tools (48 registered; 47 enabled by default)
The tool surface is consolidated into three tiers to keep ListTools small while preserving full capability.
Core Tools (always exposed via ListTools)
Tool | Description |
| Autonomous multi-step task execution |
| Server health and diagnostics |
| Unified search (intelligent/structured/gather/filenames) |
| LLM-powered file analysis |
| LLM-powered edit suggestions |
| Privacy-preserving code review |
| Secret scanning, risk analysis, redaction, and fixes |
| File/directory/repo summaries |
| Workspace metadata, snapshots, and exploration |
| Find additional tools by category or capability |
Discoverable Tools (via discover_tools)
Categories:
code_analysis- find_duplicates, code_quality_analyzer, analyze_file, code_helper, mcp_analyze_complexitysecurity- security, local_code_review, analyze_impacttesting- analyze_test_gapsdocumentation- generate_docs, mcp_diff_summarizer, summarize, generate_agents_mdrefactoring- suggest_refactoring, refactor_helper, suggest_edit, draft_file, find_and_fixplanning- agent_task, mcp_plan_implementation, cli_orchestratesearch- search, codebase_qa, todos, index_symbols, cross_file_linksllm_assistance- code_helper, regex_helper, refactor_helper, mcp_error_explainer, mcp_translate_code, mcp_summarize_logsexecution- linter, formatterworkspace- workspace, analyze_filesystem- mcp_health
Agent-Only Tools (hidden from ListTools)
Hidden by default but callable by name (or via agent_task):
llm_chat, agent_task_result, agent_queue_status, mcp_server, mcp_ask, system_profile, model_info, mcp_debug, mcp_terminal_command, refine_prompt, read_file, verify_plan
For complete schemas and usage examples, see docs/API_REFERENCE.md.
MCP Prompts (Guided Workflows)
Invoke these prompts to run multi-tool workflows:
Prompt | Description |
| Comprehensive security analysis |
| Find and prioritize technical debt |
| Privacy-preserving code review |
| Detailed code explanation |
| Generate comprehensive tests |
| Get refactoring suggestions |
Automated Prompt-Based QA
This repository uses a second QA layer in addition to unit/integration/e2e tests:
prompt-driven black-box evaluations stored in docs/prompts/.
Why This Exists
Deterministic tests catch functional regressions quickly.
Prompt-based QA catches behavior quality issues that static assertions miss: prompt interpretation quality, report usefulness, orchestration behavior, and real-world operator ergonomics.
Prompt Catalog (docs/prompts/)
Prompt File | Primary Use |
| Fast smoke validation |
| Regression checks for historical feedback batches 4/5 |
| Regression checks for historical feedback batch 6 |
| Edge-case behavior and failure-mode validation |
| Production-readiness checklist run |
| Compact black-box evaluation for small local models |
| Standard black-box evaluation |
| Compact black-box evaluation v2 |
| Comprehensive black-box evaluation v2 |
| Compact critical bug hunt |
| Standard critical-component validation |
| Single comprehensive final validation prompt |
| End-to-end agent-oriented tool testing prompt |
| Turn accumulated QA reports into a focused fix pass |
| Template for recording findings in a consistent format |
Recommended QA Workflow
Run deterministic baseline tests first:
python run_all_tests_ALL.pynpm test
Execute prompt suites against target backends/models (local and/or CLI backends).
Save each run report using the
QA_feedback_empty.mdstructure into a reports folder (for exampleTEST_PROMPTS/REPORTS/QA_feedback_01.md,QA_feedback_02.md, etc.).For each finding, explicitly classify:
real repository issue, or
evaluator/model mistake (false positive or prompt misunderstanding).
Use
docs/prompts/DEBUG-FIX-PROMPT.mdwith the reports folder to drive an implementation pass.Re-run deterministic tests and at least one black-box prompt before publishing.
Automation vs Manual Testing Effectiveness
Dimension | Prompt-Based QA | Manual Testing |
Breadth per run | High (many behaviors covered quickly) | Medium |
Repeatability | High when prompts + config are versioned | Medium/Low |
Speed to first signal | High | Medium/Low |
False-positive risk | Medium (model/evaluator noise exists) | Low/Medium |
UX/intent nuance detection | Medium/High | High |
Best use | Continuous regression sweeps | Final human sign-off and edge judgment |
Practical guidance:
Do not replace manual testing with prompt automation.
Use prompt-based QA for scale and regression detection, then use manual testing for final adjudication and release confidence.
Why These Tools?
VS Code Copilot Bypass Strategy
VS Code Copilot 1.106+ automatically disables MCP tools that duplicate built-in functionality. This server provides unique value that VS Code cannot replicate:
Local LLM Intelligence: Every tool is enhanced with local LLM analysis
Privacy Preservation: Code analysis never leaves your machine
Automatic Redaction: Secrets and sensitive data automatically removed
Symbol Awareness: Understands code structure, not just text
Security Scanning: Built-in vulnerability detection
Tools NOT Included (VS Code Has Better Versions)
These tools were intentionally removed because VS Code Copilot has superior built-in equivalents:
read_file(hidden alias ofanalyze_file, not exposed via ListTools) -> Use VS Code's#readFileedit_file-> Use VS Code's#editFilescreate_file-> Use VS Code's#createFilelist_dir-> Use VS Code's#listDirectorygit_status/diff/log/commit-> Use VS Code's Source Controlexecute_script-> Use VS Code's#runInTerminalrun_tests-> Use VS Code's#runTests
Configuration
Initial Setup
# Copy the example settings
cp env.settings.example env.settings
# Edit to match your setup (optional - defaults work for most users)
# The example file is well-commented and explains all optionsNote: The repository env.settings.example is the canonical source of defaults. When building the npm package the build process copies this file into dist_package/env.settings.example (via node scripts/generate_package_files.js) so the package uses the same example. A parity test (tests/config.settings-parity.test.ts) runs in CI to ensure the packaged example always matches the repository file, preventing accidental drift.
Backend Configuration (env.settings)
Backends/defaults live in [config] CONFIG_JSON inside env.settings (or configure via the Web UI at http://127.0.0.1:3000/).
Workspace Configuration
Workspace roots + allowlist live in [config] CONFIG_JSON inside env.settings.
Tip: Relative paths in
env.settingsare resolved relative to the settings file's directory, not the current working directory.
Dynamic Workspace Detection
The MCP server automatically detects your workspace using this priority:
MCP Client Roots (if supported): The server requests workspace roots from the client via the MCP protocol (
roots/list). This happens automatically on connection.WORKSPACE_ROOTEnvironment Variable: Fallback for explicit control.Global Install Auto-Detection: When config is in a global location (
~/.mcp-local-llm, npm global), the current working directory is used as workspace automatically.Project Auto-Detection: If launched from a directory containing
package.json,pyproject.toml,.git, etc., that directory is used.Settings File Default: Falls back to
workspace.rootsfromenv.settings
Global npm install users: Workspace is now detected automatically from your project's working directory. No configuration needed.
Troubleshooting: If tools report "Outside workspace" errors, check the startup logs for
[Config] Workspace from cwd...messages.
Tool Groups
Tools are organized into groups that can be enabled/disabled (examples only; see docs/API_REFERENCE.md for the full list):
Group | Example Tools | Purpose |
| summarize | LLM summarization |
| llm_chat | Direct LLM access |
| discover_tools | Tool discovery |
| agent_task, verify_plan, cli_orchestrate | Planning and delegation |
| workspace, todos, codebase_qa, analyze_test_gaps, analyze_impact | Codebase analysis |
| security | Security tools |
| analyze_file, search, local_code_review, generate_docs, suggest_refactoring, suggest_edit, find_and_fix | LLM-enhanced tools |
| find_duplicates, code_quality_analyzer | Code quality |
| code_helper, regex_helper, refactor_helper, mcp_error_explainer, mcp_translate_code | LLM assistance |
| linter, formatter | Code quality automation |
| mcp_health, system_profile, model_info, mcp_debug | System diagnostics |
| mcp_server, mcp_ask | External MCP integration |
Privacy & Security
Offline by Default: Only local backends unless explicitly configured
Content Redaction: Automatic removal of secrets, API keys, sensitive data
Path Restrictions: Directory allowlist prevents unauthorized access
Size Limits: Prevents large file transfers
Agent Scenarios Testing
The project includes comprehensive agent scenarios tests that validate complex workflows and integration with external MCP servers.
Running Agent Scenarios Tests
Basic Tests (No External Services Required)
# Run configuration and structure validation tests
npx vitest run tests/agent_tasks/agent.scenarios.basic.test.ts
# Run all basic tests together
npx vitest run tests/agent_tasks/agent.scenarios.basic.test.tsFull End-to-End Tests (Requires External Services)
# Run complete agent scenarios (requires LM Studio, local server, MCP servers)
npx vitest run tests/agent_tasks/agent.scenarios.e2e.test.ts
# Run specific test suites
npx vitest run tests/agent_tasks/agent.scenarios.e2e.test.ts -t "Read-Only Operations"
npx vitest run tests/agent_tasks/agent.scenarios.e2e.test.ts -t "Chrome DevTools"
npx vitest run tests/agent_tasks/agent.scenarios.e2e.test.ts -t "Context7"Test Requirements
Test Suite | Requirements | Description |
Basic Tests | None | Configuration loading and structure validation |
Read-Only Operations | LM Studio backend | Repo audits, security analysis |
Chrome DevTools | Chrome DevTools MCP | Browser automation, screenshots |
Context7 | Context7 MCP | Library documentation validation |
Local Server | Local MCP server | API integration, server management |
Configuration
The test runner uses centralized automated settings (via run_all_tests_ALL.py):
Canonical Settings File:
config/env-automated-tests.settingsCompatibility Fallback:
env-automated-tests.settings(root)Primary Backend: configured in
[config] CONFIG_JSON(defaults)MCP Servers: configured under
mcpServers(optional)Workspace: configured under
workspace/policy.allowlistPathsTool Groups: configured under
toolGroups/[advanced] TOOL_GROUP_MODERunner Usage:
Full suite:
python run_all_tests_ALL.pyForce Copilot CLI:
python run_all_tests_ALL.py --backend copilot-cliForce OpenCode CLI:
python run_all_tests_ALL.py --backend opencode-cliAll backends:
python run_all_tests_ALL.py --all-backendsBenchmark backends:
python run_all_tests_ALL.py --benchmarking
Test Output
Configuration Tests: 11 tests validating all configuration aspects
Structure Tests: 5 tests validating test framework structure
E2E Tests: 27 comprehensive scenarios covering all major workflows
Output Location:
tests/.mcp_cache/agent_scenarios/
Development Mode
# Run tests with UI for development
npx vitest tests/agent_tasks/agent.scenarios.*
# Run specific test with debugging
npx vitest run tests/agent_tasks/agent.scenarios.basic.test.ts --reporter=verboseDevelopment
npm run dev # Development mode with auto-reload
npm test # Run tests (auto-prepares + auto-cleans transient test artifacts)
npm run build # Build for production
npm run cleanup:runtime # Prune runtime artifact dirs (.mcp-backups, .orchestration-plans)Runtime Artifact Cleanup
The server can accumulate local runtime artifacts over time:
.mcp-backups/from edit/auto-fix backup snapshots.orchestration-plans/from persisted CLI orchestration plans
Use:
npm run cleanup:runtimeDefault pruning behavior:
Removes
.mcp-backups/tests/(test-only backup artifacts)Removes backup files older than 14 days
Caps remaining backups to the newest 1000 files
Removes orchestration plans older than 14 days
Caps remaining plans to the newest 200 directories
Removes orphan
*.tmpfiles under.orchestration-plans/
Optional dry-run:
node scripts/cleanup-runtime-artifacts.js --dry-runArchitecture
+-----------------------------+
| VS Code Copilot |
+--------------+--------------+
|
v
MCP Protocol (stdio)
|
v
+-----------------------------+
| MCP Local LLM Server |
| - LLM-Enhanced Tools |
| - Privacy Tools |
| - Analysis Tools |
+--------------+--------------+
|
v
Backend Adapters: Ollama | LM Studio | OpenRouter | Generic OpenAI
|
v
Local LLM Backend
(Ollama, LM Studio, etc.)License
ISC
Available Tools
36 toolsagent_taskA
Autonomous multi-step task runner. Use readOnly for analysis. Defaults: maxSteps=50, maxActionsPerStep=100; use async for long tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | High-level task to execute. Required unless "prompt" is provided. | |
| prompt | No | Alias for "task". Use either task or prompt (task takes precedence). | |
| options | No | Optional execution controls. Top-level aliases (contextRoot, readOnly, async, etc.) also supported for backward compatibility. ⚠️ Higher values = longer execution time. Default timeout is 5 minutes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Documents key defaults (maxSteps=50, maxActionsPerStep=100) and async behavior. However, with no annotations provided, it omits critical behavioral context: return values (taskId vs results), default mutability (can modify files unless readOnly=true), and what subsystems/actions the agent can invoke.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise and front-loaded (purpose first, then guidance). Three fragments efficiently convey distinct concepts. However, brevity underserves the tool's high complexity (15+ effective parameters).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given high complexity (nested options object, numerous controls) and absence of annotations or output schema, the description covers basics but should clarify return behavior, error handling, and safety boundaries for a powerful agent tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaningful semantic guidance beyond the schema: explicitly mapping readOnly to 'analysis' use case and async to 'long tasks'. Also surfaces default values for tuning parameters that the schema only describes mechanically.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('runner') and resource ('multi-step task'), establishing it as the general-purpose autonomous agent. Distinguishes from single-purpose siblings like search or analyze_file, though doesn't explicitly differentiate from similar orchestration tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implicit guidance via option hints ('Use readOnly for analysis', 'use async for long tasks'), but lacks explicit criteria for when to select this tool over siblings like orchestration, code_helper, or mcp_plan_implementation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_fileC
LLM analysis for one file. If path is a directory, returns candidate-file hints. includeContent defaults to false.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path to analyze. If a directory is provided, the error includes candidate file hints. | |
| analysisType | No | Type of analysis (default: full) | |
| question | No | Specific question about the file | |
| maxBytes | No | Maximum bytes to read | |
| includeContent | No | Include raw file content in response (default: false to save context) | |
| format | No | Output format: compact (paths only), dense (minimal), detailed (full), json (raw) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full behavioral burden. It mentions the directory handling behavior and includeContent default, but fails to disclose critical LLM-specific traits: whether results are cached, approximate cost/token usage, timeout behavior, or what the analysis output structure looks like. 'LLM analysis' is vague regarding actual computational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. Front-loaded with primary purpose. However, the third sentence merely restates schema information, and the second sentence about directories could be more sharply integrated. Efficient but not optimally structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 100% schema coverage, the description adequately covers the input contract without redundancy. However, with no output schema and many sibling alternatives, the description should explain return value structure or analysis scope to be minimally complete. Missing explanation of format enum implications and analysisType differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. The description adds minimal semantic value beyond the schema— it repeats the includeContent default (already in schema) and restates directory behavior (also in path description). It does not add syntax examples, valid path formats, or clarify the distinction between analysisType enum values (quality vs security vs full).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource ('LLM analysis for one file') and specifies the singular file scope, which distinguishes it from multi-file or codebase-wide analysis siblings like analyze_impact. However, it does not differentiate from similar analysis tools (analyze_test_gaps, code_quality_analyzer) or explain what 'LLM analysis' specifically entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides specific behavior guidance for directory inputs ('returns candidate-file hints'), but lacks any guidance on when to select this tool versus siblings like analyze_impact, codebase_qa, or code_quality_analyzer. No mention of prerequisites, file size limits, or when to use specific analysisType values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_impactB
Estimate ripple effects of changed files across dependencies, imports, and tests.
| Name | Required | Description | Default |
|---|---|---|---|
| changedFiles | Yes | List of changed file paths | |
| checkDependencies | No | Check dependency impacts | |
| checkTests | No | Find affected tests | |
| checkImports | No | Trace import relationships |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden. It qualifies the analysis as an 'estimate' (suggesting approximate rather than exact results) and scopes the behavioral domains checked, but lacks disclosure of output format, computational cost, or whether results include transitive dependency chains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single 11-word sentence with no redundancy. Efficiently front-loads the action ('Estimate ripple effects') before detailing scope. Slight abstraction in 'ripple effects' terminology prevents a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With complete input schema documentation (100% coverage), the description adequately covers intent. However, lacking an output schema, it omits what the impact analysis returns (e.g., affected file lists, confidence scores, dependency graphs), leaving agents uncertain about result structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. The description adds semantic value by grouping the three boolean flags (checkDependencies, checkImports, checkTests) into the conceptual categories mentioned ('dependencies, imports, and tests'), helping agents understand the relationship between parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Estimate' and resource 'ripple effects' with clear scope covering 'dependencies, imports, and tests'. It distinguishes from sibling tools like analyze_file (single-file analysis) and cross_file_links (link discovery) by focusing on impact propagation across the codebase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives like analyze_file, cross_file_links, or analyze_test_gaps. No mention of prerequisites or conditions where this analysis is most valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_test_gapsA
Estimate missing tests from source/test patterns (requires root). Supports relative-path globs; defaults include TS/JS/PY. Guidance only.
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory to analyze | |
| testPatterns | No | Glob patterns for test files (matched against relative paths and file names) | |
| sourcePatterns | No | Glob patterns for source files (matched against relative paths and file names) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden. It discloses that the tool is 'guidance only' (non-destructive) and requires a root path, but omits details about output format, performance characteristics, or whether it modifies files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three information-dense sentences with no waste. Main purpose is front-loaded ('Estimate missing tests...'). Parenthetical and trailing fragments efficiently pack constraints (requires root, guidance only) without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage but no output schema or annotations, the description adequately covers inputs but only hints at output via 'guidance only'. For a file analysis tool, it should describe what the guidance/estimates look like or what format results take.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). The description adds valuable context: 'requires root' reinforces the required parameter, 'relative-path globs' clarifies path handling, and 'defaults include TS/JS/PY' documents implicit behavior not visible in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool estimates missing tests using source/test patterns. 'Guidance only' clarifies the output nature. However, it doesn't explicitly distinguish from sibling analysis tools like analyze_file or analyze_impact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides constraints like 'requires root' and 'Guidance only', and mentions supported patterns (relative-path globs) and default languages (TS/JS/PY). Lacks explicit guidance on when to use versus siblings like code_quality_analyzer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cli_orchestrateC
Execute tasks via OpenCode/Copilot orchestration. Requires orchestration enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | The task to execute via CLI orchestration | |
| contextRoot | No | Workspace root for file operations (default: current workspace) | |
| forceBackend | No | Force use of a specific CLI backend (optional) |
TDQS
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 the orchestration prerequisite but omits critical safety information: whether execution is destructive, modifies files, runs asynchronously, or what output format to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief at two sentences. While not verbose, the first sentence ('Execute tasks...') is information-poor and front-loaded with vague wording rather than specific actionable detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is an execution tool with mutation potential and zero annotations, the description is dangerously incomplete. It lacks safety warnings, output schema documentation, error condition details, and differentiation from the similarly-named 'orchestration' sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3. The description mentions 'OpenCode/Copilot', which adds semantic context mapping to the forceBackend enum values, but does not elaborate on valid task formats or contextRoot implications beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it executes tasks via OpenCode/Copilot orchestration, which identifies the mechanism but leaves 'tasks' undefined. Crucially, it fails to distinguish from the sibling tool 'orchestration', leaving agents unclear which to choose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides one explicit prerequisite ('Requires orchestration enabled'), indicating when not to use the tool. However, it entirely lacks guidance on when to choose this over the sibling 'orchestration' tool or how to select between OpenCode and Copilot backends.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codebase_qaC
Answer repo-level questions using indexed context and local LLM.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | Question about the codebase | |
| searchScope | No | Directories to search | |
| maxSources | No | Maximum source files (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full disclosure burden. Mentions 'indexed context' and 'local LLM' but omits critical behavioral details: read-only status (implied but not stated), output format, whether answers are streamed or batched, and dependencies on indexing state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single 9-word sentence with zero redundancy. Front-loaded with action ('Answer') and properly structured with mechanism following purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero annotations, 3 parameters, no output schema, and 20+ sibling tools, the description is insufficiently rich. It lacks guidance on prerequisites (index availability), output structure, and differentiation from analytical siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. Description mentions 'indexed context' which loosely contextualizes the 'searchScope' parameter, but provides no additional semantics for 'maxSources' or parameter interrelationships beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific action (answer questions) about resource (repo-level) and mechanism (indexed context, local LLM). However, it does not explicitly differentiate from sibling tools like 'search' or 'summarize' which may also use indexed context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives like 'search', 'analyze_file', or 'summarize'. Does not mention prerequisites such as whether the codebase needs indexing first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
code_helperC
Explain, optimize, or simplify code snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: explain (code explanation), optimize (performance suggestions), simplify (reduce complexity) | |
| code | Yes | Code snippet to process | |
| language | No | Programming language (optional, auto-detected) | |
| level | No | For explain: detail level (default: intermediate) | |
| focus | No | For optimize: focus area (default: all) | |
| preserve | No | For simplify: features to preserve (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full disclosure burden. Unclear whether this returns analysis text (read-only) or modifies files (destructive), and whether 'optimize'/'simplify' actions generate new code or just suggestions. Missing safety and scope disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely terse at seven words. While no words are wasted, the brevity comes at the cost of critical missing information (parameter conditionality, behavioral traits) given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing crucial documentation that parameters are conditional on the action value (level only for 'explain', focus only for 'optimize', preserve only for 'simplify'). No output schema means description should explain return format, which it doesn't.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage with clear enum documentation. Description merely repeats the three action types without adding syntax guidance, parameter interdependencies, or usage examples beyond what the schema already provides. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States three specific verbs (explain, optimize, simplify) and the resource (code snippets) clearly. However, it fails to differentiate from numerous sibling code tools like refactor_helper, suggest_refactoring, and local_code_review that likely overlap in functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to select this tool versus alternatives like refactor_helper or analyze_file. No prerequisites, contextual triggers, or exclusion criteria provided despite the crowded tool namespace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
code_quality_analyzerC
Run multi-signal quality checks: duplicates, complexity, smells, security.
| Name | Required | Description | Default |
|---|---|---|---|
| rootDir | No | Root directory to analyze (default: workspace root) | |
| minSimilarity | No | Minimum similarity for duplicate detection (default: 0.85) | |
| includeTypes | No | Types of analysis to include (default: all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden but fails to disclose whether the tool is read-only, what output format it produces, whether it writes reports to disk, or performance characteristics. 'Run' implies execution but lacks safety profile disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 9 words with no redundancy. The colon-separated structure efficiently maps the action to the specific signals. However, it may be excessively terse given the lack of behavioral and usage context required for an unannotated tool with no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Inadequate for a tool with no annotations and no output schema. Missing critical context: output format (JSON? report? findings?), side effects (read-only vs. destructive), and differentiation from sibling tools. The 100% parameter coverage reduces the gap, but behavioral and output gaps remain significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline score of 3. The description lists the analysis types (duplicates, complexity, smells, security) which mirror the enum values in the schema, adding minimal semantic value beyond the structured parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Run') and lists the exact quality signals checked (duplicates, complexity, smells, security), clarifying the resource domain. However, it does not explicitly differentiate from single-purpose siblings like 'find_duplicates' or 'security', though the 'multi-signal' qualifier hints at broader scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this comprehensive analyzer versus specialized siblings (find_duplicates, security, mcp_analyze_complexity, linter). No mention of prerequisites, required setup, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cross_file_linksC
Trace import/export links from entry points.
| Name | Required | Description | Default |
|---|---|---|---|
| entryPoints | Yes | Starting files to trace imports from | |
| depth | No | Maximum depth to follow imports (default: 3) | |
| includeTypes | No | Include type-only imports |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden but reveals nothing about return format (graph? list?), circular dependency handling, synchronous/asynchronous behavior, or side effects. 'Trace' implies read-only but this is never confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 6 words with front-loaded action verb. No filler words, though potentially too terse for the complexity of dependency tracing given lack of supporting annotations or output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Severely inadequate for a 3-parameter dependency analysis tool with no output schema. Missing: return value structure, handling of missing files, cycle detection behavior, and performance characteristics (critical for depth-limited graph traversal).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. The description mentions 'entry points' which maps to the entryPoints parameter, but adds no semantic clarification for 'depth' (recursion limits?) or 'includeTypes' (TypeScript-specific?) beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Trace' with resource 'import/export links' and scope 'from entry points', making the core function identifiable. However, it doesn't differentiate from sibling tools like analyze_impact or analyze_file that might also examine code relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., analyze_impact for change analysis, search for finding references). The phrase 'from entry points' hints at intended usage but lacks prerequisites or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_toolsA
Find tools by category/capability. Check callable+requiredArgs before invoking. Use include_examples only when needed.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Browse tools by category | |
| capability | No | What capability do you need? Examples: "find duplicate code", "generate tests", "analyze security" | |
| list_categories | No | Set to true to list all available categories | |
| include_examples | No | Include example payloads. Keep false unless examples are needed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies output content via 'Check callable+requiredArgs' but does not explicitly state this is a safe read-only meta-operation or describe the full return structure (list of tools with metadata).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly constructed sentences: purpose, prerequisite check, and parameter guidance. Front-loaded with intent, zero redundant text, every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 100% schema coverage and no output schema, description partially compensates by hinting at output via 'callable+requiredArgs'. However, for a discovery tool with rich siblings, it should explicitly state it returns available tool metadata/capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. Description adds valuable usage semantics for 'include_examples' ('only when needed'), indicating performance/cost considerations beyond the schema's technical description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb+resource ('Find tools') and scope ('by category/capability'). However, it does not explicitly differentiate from sibling execution tools (e.g., 'Use this to discover available tools before invoking specific analysis tools').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance: 'Check callable+requiredArgs before invoking' establishes a prerequisite workflow, and 'Use include_examples only when needed' explicitly constrains parameter usage. Lacks explicit 'when not to use' relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_fileA
Generate a new file draft from intent and local patterns. Does not write files.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Intended file path for the new file | |
| intent | Yes | What should this file do? | |
| similar_files | No | Example files to match style (optional) | |
| template | No | Template or structure to follow (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so description carries full burden. It successfully discloses the non-destructive/read-only nature ('Does not write files'). However, it omits what happens to the generated draft (return value format, persistence, size limits) and how 'local patterns' are weighted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: first states purpose and mechanism, second states critical safety constraint. Every word earns its place and the safety warning is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 100% schema coverage and simple 4-parameter structure, the description is minimally adequate. However, it fails to compensate for the missing output schema by describing what the tool returns (the draft content) or how it should be handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. Description references 'intent' and 'local patterns' which loosely map to the intent and similar_files parameters, but adds no syntax guidance, format examples, or constraints beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific action (generate), resource (file draft), and inputs (intent, local patterns). The 'Does not write files' clause distinguishes it from mutation siblings like suggest_edit or find_and_fix. Could reach 5 with explicit comparison to code_helper or suggest_edit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear negative constraint ('Does not write files') implying when NOT to use it, but lacks explicit positive guidance on when to prefer this over similar generation tools like code_helper or generate_docs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_and_fixC
Search -> analyze -> suggest/apply fixes for repeated patterns across files.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Pattern to search for (supports regex) | |
| intent | Yes | What change/fix should be applied? | |
| root | No | Root directory to limit search (optional) | |
| maxFiles | No | Maximum files to process (default: 10) | |
| apply | No | Apply fixes automatically (default: false) | |
| minConfidence | No | Minimum confidence to apply fixes (default: high) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full disclosure burden. While 'suggest/apply' hints at mutability, it fails to explain the safety model (dry-run vs destructive), what the 'analyze' phase evaluates, or how confidence scoring interacts with fix application. Critical gaps for a tool that can automatically modify multiple files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys the three-phase workflow using arrow notation. Appropriately front-loaded with active verbs. Only minor deduction for being slightly too terse given the lack of annotations and high-stakes nature of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Grossly insufficient for a 6-parameter mutation tool with manual/auto application modes. Description omits: the dry-run behavior (apply=false), confidence level semantics, output format, and file modification scope. No output schema exists to compensate for these omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. Description adds workflow context ('repeated patterns', 'suggest/apply') that aligns with the 'pattern' and 'apply' parameters, but does not elaborate on 'intent' formatting, 'minConfidence' thresholds, or 'maxFiles' limits beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear workflow (search→analyze→suggest/apply) and target resource (repeated patterns across files). However, it fails to distinguish from sibling tools like 'refactor_helper', 'find_duplicates', or 'search', which also process code patterns across files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to select this tool versus the 30+ sibling alternatives (e.g., when to use this instead of 'refactor_helper' or 'suggest_edit'). No prerequisites or conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_duplicatesB
Detect similar files/functions/code spans with similarity thresholds.
| Name | Required | Description | Default |
|---|---|---|---|
| findType | Yes | What to find: files (similar files), functions (similar functions), code (duplicate code spans) | |
| fileName | No | For files: name or path of file to find similar files for | |
| symbol | No | For functions: function name to find similar functions for | |
| filePath | No | For functions: file containing the reference function (optional) | |
| minLines | No | For code: minimum lines for duplicate (default: 8) | |
| minSimilarity | No | Minimum similarity threshold 0-1 (default: 0.6) | |
| maxResults | No | Maximum results to return (default: 25) | |
| includeContent | No | Include content analysis (default: false) | |
| extensions | No | File extensions to scan (default: ts,tsx,js,jsx,py) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. While 'Detect' implies read-only behavior, it does not confirm non-destructive operation, disclose performance characteristics for large codebases, or explain the scope/algorithm used for similarity matching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 8 words with zero waste. Front-loaded with the action verb 'Detect' and immediately specifies the target and method (similarity thresholds). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters supporting three distinct operational modes (files/functions/code spans), the description is minimally viable. It does not acknowledge the conditional parameter usage pattern or describe output format, but the high schema coverage compensates partially for these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline score. The description reinforces the findType options (files/functions/code) but adds no additional semantic context about parameter interdependencies (e.g., that fileName only applies when findType='files') beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses specific verb 'Detect' and clearly identifies the three target resources (files/functions/code spans) matching the enum values in the schema. However, it does not explicitly distinguish from sibling tools like 'search' or 'analyze_file' that operate on code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives like 'search' (for exact matches) or 'cross_file_links'. Mentions 'similarity thresholds' but does not explain when similarity detection is preferred over other analysis methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formatterC
Run formatter or LLM-assisted syntax fixes.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action: run (format code), fix (LLM-powered syntax fixes) | |
| files | No | Specific files to process | |
| command | No | Custom format command | |
| check | No | Check only, do not modify (for run action) | |
| difficulty | No | LLM fix difficulty (for fix action) | |
| dryRun | No | Preview fixes without applying (for fix action) | |
| maxFixes | No | Maximum fixes to apply (for fix action) | |
| timeout | No | Timeout in milliseconds |
TDQS
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 'run' and 'fixes' but does not clarify whether files are modified in-place, if the operations are reversible, what LLM provider is used, or safety considerations. Minimal behavioral context beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of six words is efficient with no waste, but underspecified for a tool with 8 parameters and two distinct operating modes. The brevity crosses into insufficient territory given the complexity, preventing a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, dual operating modes (standard formatting vs LLM-assisted), no output schema, and no annotations, the tool requires substantial contextual support. The 6-word description is inadequate for this complexity level, leaving significant gaps in understanding tool capabilities and risks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3. The description implies the dual-mode nature (formatting vs fixing) which aligns with the 'action' parameter enum, but adds no syntax details, format examples, or clarifying constraints beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the tool runs a formatter and performs LLM-assisted syntax fixes, providing some specific verbs. However, 'formatter' largely restates the tool name, and it fails to differentiate from siblings like 'linter', 'find_and_fix', or 'refactor_helper' which likely overlap in functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives, when to choose 'run' versus 'fix' actions, or prerequisites for execution. The description offers no 'when-not' exclusions or comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_agents_mdA
Generate AGENTS.md from project structure. useLlm=false for faster static output.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Project root directory (default: workspace root) | |
| outputPath | No | Output file path relative to root (default: .mcp-local-llm/AGENTS.md) | |
| overwrite | No | Whether to overwrite existing file (default: false) | |
| useLlm | No | Use LLM to enhance content with README insights (default: true). Set false for fast static generation. |
TDQS
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 hints at the speed/quality trade-off via the useLlm parameter, but fails to disclose file system mutation behavior (overwriting, creating directories), idempotency, or what happens when the file already exists (though the 'overwrite' parameter implies this scenario).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of exactly two sentences with zero waste. The first sentence front-loads the core purpose (generating AGENTS.md), while the second provides a targeted usage tip for the useLlm parameter. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 100% schema coverage and 4 optional parameters, the description adequately covers the basic invocation pattern. However, lacking an output schema and any description of return values or error conditions (e.g., what happens if the directory doesn't exist), it remains minimally viable rather than comprehensive for a file-generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description adds valuable semantic context for the useLlm parameter by clarifying that false means 'faster static output' versus the schema's generic 'enhance content' description, effectively guiding the performance/quality trade-off decision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (Generate), the target resource (AGENTS.md), and the source data (project structure). However, it does not distinguish from the sibling tool 'generate_docs' or explain what AGENTS.md represents, leaving ambiguity about why an agent would choose this over other documentation generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance for the useLlm parameter ('useLlm=false for faster static output'), suggesting when to disable LLM enhancement for speed. However, it lacks explicit guidance on when to use this tool versus siblings like 'generate_docs' or prerequisites like requiring a project structure to analyze.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_docsC
Generate docs (jsdoc/readme/api/examples) for a file or folder.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File or directory to document | |
| docType | No | Documentation type (default: jsdoc) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, yet the description fails to disclose whether this creates new files, modifies existing ones, overwrites content, or returns text directly. For a 'generate' tool, file system side effects are critical behavioral traits that remain undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently front-loaded with verb and object. Slightly informal 'docs' abbreviation is acceptable, though 'documentation' would be more precise. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for the simple 2-parameter schema with complete coverage, but incomplete regarding behavioral expectations. Without an output schema, the description should clarify whether results are returned inline or written to disk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. The parenthetical list '(jsdoc/readme/api/examples)' mirrors the enum values already documented in the schema, adding no semantic depth beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (Generate) and identifies the resource (docs) plus target (file or folder). It distinguishes from siblings like analyze_file or draft_file by specifying documentation generation, though it could explicitly contrast with generate_agents_md.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this versus draft_file or generate_agents_md. No prerequisites or contextual triggers mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
index_symbolsB
Build in-memory symbol index for cross-file lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory to index | |
| languages | No | Languages to index | |
| symbolTypes | No | Symbol types to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Mentions 'in-memory' which is crucial behavioral context given no annotations, indicating RAM-based storage. However, lacks details on index lifecycle (session duration, idempotency, replacement vs. additive), performance characteristics, or whether it blocks during execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with zero waste. Front-loaded with action verb, efficiently communicates mechanism and purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for a 3-parameter tool with full schema coverage, but gaps remain regarding state management (no output schema or annotations provided). Missing guidance on index persistence and integration with the broader analysis workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 3 parameters documented), establishing baseline 3. Description does not add parameter-specific semantics, but none are required given comprehensive schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Build') and resource ('in-memory symbol index') with explicit use case ('for cross-file lookups'). Distinguishes from text search tools in sibling list, though does not explicitly name which sibling consumes this index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to invoke this versus siblings like 'cross_file_links' or 'search', nor does it state prerequisites (e.g., whether this must be called before querying tools) 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.
linterC
Run lints, syntax validation, or LLM-assisted lint fixes.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action: run (check only), fix (LLM-powered fixes), validate (syntax check) | |
| files | No | Specific files to process | |
| command | No | Custom lint command (for run action) | |
| autoFix | No | Apply linter auto-fixes without LLM (for run action) | |
| difficulty | No | LLM fix difficulty level (for fix action) | |
| dryRun | No | Preview fixes without applying (for fix action) | |
| maxFixes | No | Maximum fixes to apply (for fix action) | |
| content | No | Content to validate (for validate action, optional) | |
| timeout | No | Timeout in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. While it mentions 'fix' actions, it fails to disclose whether this modifies files destructively, creates backups, requires user confirmation, or produces side effects. It also omits expected return values or output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no redundant words. It immediately identifies the tool's three capabilities without filler, making it appropriately sized for quick parsing while front-loading the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 100% schema coverage, the description is insufficient for a 9-parameter tool with conditional parameter requirements and destructive 'fix' capabilities. With no annotations and no output schema, the description should disclose safety implications of file modifications and provide higher-level guidance on the action-specific workflows, which it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema adequately documents all 9 parameters including action-specific constraints (e.g., 'for fix action'). The description lists the three operation modes (lints, validation, fixes) which map to the action enum, but adds no additional semantic context about parameter relationships or formats beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides clear verbs (run, validation, fixes) and identifies the resource (lints, syntax). It distinguishes the LLM-assisted capability, hinting at differentiation from standard formatters. However, it does not explicitly contrast with siblings like 'formatter', 'find_and_fix', or 'code_quality_analyzer' to help agents select the correct tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 siblings (formatter, find_and_fix, code_quality_analyzer) or when to prefer the 'run', 'fix', or 'validate' actions. There is no mention of prerequisites or conditions that would trigger selection of this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_code_reviewB
Privacy-preserving code review (security/performance/style/comprehensive). Hidden files require includeHidden=true.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | Files to review | |
| focus | No | Review focus (default: comprehensive) | |
| includeHidden | No | Include hidden files/directories when collecting review targets (default: false). Hidden files are excluded unless this is true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses 'privacy-preserving' behavior (local processing) which is critical context absent from annotations. However, lacks disclosure of read-only vs destructive behavior, output format, error handling, or side effects—significant gaps given zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise two-clause structure with zero waste. Front-loads the privacy-preserving characteristic, follows with scope parameters, and ends with critical path parameter requirement. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers input parameters via combination of description and complete schema. However, lacks output description (no output schema exists) and omits behavioral details like error conditions or file size limits that would be expected for a complete tool definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage establishing baseline of 3. Description repeats enum values (security/performance/style/comprehensive) and hidden files requirement already documented in schema parameter descriptions, adding minimal incremental semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific function (privacy-preserving code review) and scopes (security/performance/style/comprehensive). The 'privacy-preserving' qualifier distinguishes intent from siblings like analyze_file or code_quality_analyzer, though it doesn't explicitly contrast when to choose this over those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to select this tool versus sibling analysis tools (analyze_file, code_quality_analyzer, security, etc.) or prerequisites for use. No 'when-not-to-use' or alternative recommendations are included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_analyze_complexityC
Estimate Big-O complexity with optional detail.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Code snippet to analyze | |
| language | No | Programming language (optional) | |
| detailed | No | Include detailed breakdown (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full behavioral disclosure burden. It states the operation (estimation) but omits output format (Big-O notation string? Structured breakdown?), side effects, idempotence, error handling for invalid code, or supported language constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely terse (7 words) with no redundancy. However, given zero annotations and lack of output schema, this brevity under-serves the agent's information needs rather than efficiently organizing necessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% parameter coverage but no annotations and no output schema, the description fails to compensate by describing return value structure, success/failure modes, or behavioral constraints expected for a code analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. Phrase 'optional detail' loosely references the 'detailed' boolean parameter but adds no semantic depth beyond schema descriptions 'Include detailed breakdown'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific action (Estimate) and subject (Big-O complexity). However, does not differentiate from sibling analysis tools like analyze_file or code_quality_analyzer, which leaves ambiguity about when to use this specific analysis function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives (analyze_file, code_helper), nor when to set detailed=true vs false, nor when the language parameter is necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_diff_summarizerC
Summarize code diffs into concise human-readable changes.
| Name | Required | Description | Default |
|---|---|---|---|
| diff | Yes | Git diff or unified diff content | |
| format | No | Output format (default: summary) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden. It only mentions output style ('concise human-readable') but omits critical behavioral traits: read-only nature, size limitations for diffs, performance characteristics, error handling for malformed diffs, and whether this utilizes AI inference or rule-based processing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of seven words is efficiently front-loaded with no redundancy. However, extreme brevity leaves insufficient room for behavioral disclosure and sibling differentiation given the lack of annotations and output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Core function is clear and input schema is comprehensive. However, lacking annotations, output schema, and sibling differentiation, the description minimally covers requirements for an AI agent to confidently select and invoke this tool in a multi-tool environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing baseline 3. The description text adds no parameter-specific guidance beyond the schema (e.g., no elaboration on expected diff formats, size limits, or when to choose 'bullet' vs 'detailed' output).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Summarize' and resource 'code diffs' with clear scope. However, it fails to differentiate from sibling tool 'summarize' (general-purpose), leaving ambiguity about when to choose this specialized variant over the generic one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives like 'summarize', 'analyze_impact', or 'local_code_review'. The description lacks prerequisites (e.g., requiring valid diff format) and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_error_explainerB
Explain stack traces/errors and likely fixes.
| Name | Required | Description | Default |
|---|---|---|---|
| error | Yes | Error message or stacktrace | |
| language | No | Programming language (optional) | |
| context | No | Additional context about the code (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. While 'explain' implies read-only operation, it fails to specify output format, whether external APIs are called, rate limits, or what 'likely fixes' entails. No disclosure of side effects or operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 9 words. Front-loaded with action and target. No redundant or filler text; every word serves the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple 3-parameter flat schema with full coverage, description is minimally sufficient for invocation. However, absence of output schema means description should ideally specify return format, which it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage, establishing baseline of 3. Description adds no parameter-specific guidance (e.g., expected format for 'error', valid values for 'language') beyond what schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific action ('Explain') and target ('stack traces/errors and likely fixes') clearly. However, lacks explicit differentiation from sibling tools like 'code_helper' or 'find_and_fix' that might also handle errors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives (e.g., 'find_and_fix' which might actually modify code, or 'analyze_file' for static analysis). No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_healthB
Health/diagnostics. Healthy when any backend is available. format=dense gives compact status. includeDetails adds routing/cache stats and redacted errors.
| Name | Required | Description | Default |
|---|---|---|---|
| includeDetails | No | Include extended details (cache/queue stats, recent tool calls, routing logs/stats) (default: false) | |
| format | No | Output format: compact (paths only), dense (minimal), detailed (full), json (raw) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully explains the healthy state condition and reveals what data 'includeDetails' adds (routing/cache stats, redacted errors). However, it lacks details on error handling, caching behavior, or whether the check is synchronous/blocking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with four concise statements: category definition, health criteria, and two parameter explanations. Every sentence earns its place with zero redundancy, though the opening fragment 'Health/diagnostics.' is slightly isolated from the flowing sentences that follow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter diagnostic tool with no output schema, the description adequately covers the essential behavioral and parameter semantics. However, it should ideally describe what the tool returns (status object, string, etc.) since no output schema exists to document the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description adds valuable semantic context: 'format=dense gives compact status' maps the enum value to its effect, and 'includeDetails adds...redacted errors' provides specific content information not detailed in the schema's generic 'extended details' description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a health/diagnostics tool and defines what constitutes a healthy state ('when any backend is available'). It effectively distinguishes itself from code-analysis siblings by specifying an infrastructure monitoring purpose, though the initial fragment 'Health/diagnostics' is slightly telegraphic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to invoke this tool versus alternatives, nor does it mention prerequisites or conditions where it should be avoided. While the diagnostic nature makes some usage obvious, there is no specific 'use this when...' instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_plan_implementationC
Turn a feature request into concrete implementation steps.
| Name | Required | Description | Default |
|---|---|---|---|
| feature | Yes | Feature description or requirement | |
| codebase | No | Brief description of existing codebase (optional) | |
| constraints | No | Technical constraints (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full disclosure burden. While it states the transformation intent, it fails to clarify whether this creates/modifies files (destructive) or returns analysis (read-only), what format the steps take, or failure modes for vague feature descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of seven words. The action and resource are front-loaded. No redundancy or filler content—every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 must compensate by describing the output format and side effects. It does neither. Additionally, given the crowded sibling namespace of code tools, it should clarify that this outputs a plan rather than implements code.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description mentions 'feature request' which aligns with the 'feature' parameter, but adds no syntax details, format constraints, or semantic relationships between parameters (e.g., how constraints affect the planning) beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Turn') and identifies both the input resource ('feature request') and output ('concrete implementation steps'). However, it does not differentiate from sibling tools like code_helper, draft_file, or refactor_helper that might also generate implementation content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives like code_helper or draft_file. No mention of prerequisites, constraints, or when this planning approach is preferred over direct implementation suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_summarize_logsC
Condense logs and highlight likely root causes.
| Name | Required | Description | Default |
|---|---|---|---|
| logs | Yes | Log output to summarize | |
| focus | No | Focus area (default: all) | |
| maxLines | No | Maximum lines to process (default: 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It fails to indicate whether the tool is read-only (likely), what format the output takes, or any length/rate constraints beyond the maxLines parameter. Only the core transformation is described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at seven words with no filler. Front-loaded with the primary action. However, brevity comes at the cost of omitting behavioral and contextual details that would aid agent selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple 3-parameter text processing tool with no output schema, but minimal. The description covers the primary function but lacks disclosure of output format, safety characteristics, or error handling that would be expected given the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing detailed descriptions for all three parameters. The description mentions 'Condense logs' which maps to the 'logs' parameter but adds no additional semantic detail beyond the schema definitions. Baseline 3 is appropriate given complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific actions (condense, highlight) and target resource (logs). The 'highlight likely root causes' clause effectively distinguishes it from the generic 'summarize' sibling and 'mcp_error_explainer' by indicating diagnostic intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no explicit guidance on when to select this tool versus siblings like 'summarize', 'mcp_error_explainer', or 'analyze_file'. While 'root causes' implies troubleshooting contexts, it does not define prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_translate_codeB
Translate code between languages with structure preservation.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Source code to translate | |
| sourceLanguage | Yes | Source programming language | |
| targetLanguage | Yes | Target programming language | |
| preserveComments | No | Keep comments in output (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral disclosure burden. It mentions 'structure preservation' as a key trait, but lacks critical details: it does not explain what 'structure' encompasses (AST, control flow, comments), error handling behavior for unsupported languages, output format, or whether the translation attempts functional equivalence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with zero waste. Front-loaded with the primary verb ('Translate'), specifies the domain ('code between languages'), and appends the key differentiator ('structure preservation'). No filler words or redundant phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 ideally disclose the return value format and success/failure behavior. The 100% input schema coverage handles parameter documentation, but for a complex AI translation operation, the description remains thin regarding output guarantees and supported language constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, establishing a baseline of 3. The description adds minimal semantic value beyond the schema—it implies the nature of translation is structural, which contextualizes the `preserveComments` parameter, but provides no guidance on language identifier formats (e.g., 'python' vs 'py') or expected code length limits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the core action (translate) and domain (code between languages) and adds a specific quality attribute (structure preservation). However, it fails to differentiate from sibling tools like `refactor_helper` or `code_helper` that also manipulate code structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to select this tool versus the numerous sibling code manipulation tools (e.g., `refactor_helper`, `formatter`, `suggest_refactoring`). No prerequisites, limitations, or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orchestrationB
Manage CLI orchestration settings. Use simulate for read-only routing prediction; use logs for runtime routing evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action to perform. simulate is read-only and does not change server state. | |
| backends | No | CLI backends to enable (for action=set_backends) | |
| autoVerify | No | Enable automatic verification (for action=set_config) | |
| scoreThreshold | No | Verification score threshold (1-10) (for action=set_config) | |
| maxIterations | No | Max verification iterations (1-10) (for action=set_config) | |
| pureMode | No | Enable pure CLI mode (for action=set_config) | |
| includeRoutingStats | No | Include routing logs and stats in responses (status/logs) | |
| toolName | No | Tool name to simulate routing for (action=simulate) | |
| preferredBackend | No | Optional backend override for simulation only (action=simulate) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions 'simulate' is read-only but fails to disclose behavioral traits of mutation actions (enable, disable, set_backends, set_config) including side effects, persistence, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences with zero waste. First sentence establishes purpose, second provides actionable guidance. Appropriately sized for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Brief for a 9-parameter multi-action configuration tool with mutation capabilities. No output schema exists, yet description does not explain return values or response structure for status/logs queries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with detailed parameter descriptions. Description adds context about 'simulate' and 'logs' actions but does not clarify relationships between parameters (e.g., which params apply to which actions) beyond schema constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb (manage) and resource (CLI orchestration settings) and distinguishes internal actions. However, it fails to differentiate from sibling 'cli_orchestrate', creating potential selection confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides specific guidance for 'simulate' (read-only prediction) and 'logs' (runtime evidence) actions. Lacks high-level guidance on when to choose this tool over 'cli_orchestrate' or prerequisites for configuration changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refactor_helperC
Naming suggestions and extraction hints for selected code.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: suggest_names (better variable/function names), extract_function (suggest function extraction) | |
| code | Yes | Code snippet to process | |
| language | No | Programming language (optional) | |
| style | No | For suggest_names: naming convention (default: auto) | |
| selection | No | For extract_function: specific code portion to extract (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. While 'suggestions' and 'hints' imply read-only behavior, the description does not explicitly state that this tool does not modify files, does not describe the return format (text suggestions vs structured data), or disclose performance characteristics for large code inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single 7-word sentence with no repetition or tautology. Front-loaded with key verbs ('Naming suggestions', 'extraction hints'). However, brevity contributes to under-specification given the tool's dual-mode complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage and no output schema, the description adequately names the capabilities but insufficiently explains the relationship between action types and conditional parameters (style/selection). Lacks guidance on interpreting results or handling the optional language parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing baseline 3. Description loosely maps 'Naming suggestions' to suggest_names action and 'extraction hints' to extract_function, but adds no syntax details, parameter dependencies (e.g., style only applies to suggest_names), or formatting guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource structure: provides 'naming suggestions' and 'extraction hints' for code. Specifies two distinct capabilities (suggest_names and extract_function actions). However, fails to differentiate from sibling 'suggest_refactoring' which sounds functionally similar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like 'suggest_refactoring' or 'code_helper'. No explanation of when to choose suggest_names vs extract_function actions, or how the optional selection parameter relates to extraction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regex_helperB
Explain regex or generate regex from natural language.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: explain (explain pattern), generate (create from description) | |
| pattern | No | For explain: regex pattern to explain | |
| description | No | For generate: natural language description of what to match | |
| examples | No | For generate: example strings that should match (optional) | |
| flavor | No | Regex flavor (default: javascript) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Zero annotations are provided, so the description carries full disclosure burden. It fails to state whether this tool is read-only, what output format to expect (string explanation? JSON?), error conditions, or side effects. For a computation tool with no annotations, this 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely efficient single sentence with zero redundancy. Both primary verbs ('Explain', 'generate') are front-loaded, immediately communicating capability without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich schema coverage (100%) and clear parameter descriptions, the description doesn't need to document individual params. However, given the lack of output schema and zero annotations, it should disclose return behavior or computational nature. It meets minimum adequacy but leaves gaps regarding output expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3. The description mentions the two action modes which correspond to the 'action' enum and conditional parameter usage, but adds no syntax details, example formats, or semantic constraints beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the dual function (explain or generate) and the target resource (regex). However, it doesn't explicitly differentiate from sibling 'code_helper' which might handle regex as part of general coding tasks, stopping it from being a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bifurcation into 'explain' vs 'generate' implies usage patterns, but there's no explicit guidance on when to choose this over 'code_helper' or prerequisites (e.g., needing a pattern to explain). It meets the 'implied usage' threshold but lacks explicit when-to-use/when-not-to-use statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchC
Unified search (intelligent|structured|gather|filenames). root defaults to "." when omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: intelligent (LLM ranking), structured (symbol-aware), gather (collect relevant files), filenames (find files/dirs by name/path) | |
| query | Yes | Search query or context description | |
| root | No | OPTIONAL: Root directory to search. Defaults to "." (workspace root) when omitted. Use "." explicitly or specify a subdirectory path like "src/" to narrow scope. | |
| filePattern | No | Filter by file glob pattern (intelligent action) | |
| targetType | No | Filter by symbol type (structured action) | |
| languages | No | Languages to search (structured action) | |
| path | No | Path for context gathering (gather action) | |
| scope | No | Context scope (gather action) | |
| strategy | No | Context strategy (gather action) | |
| maxFiles | No | Maximum files to analyze (gather action) | |
| maxResults | No | Maximum results (default: 20) | |
| includeHidden | No | Include hidden files/directories (filenames action, default: false) | |
| includeDirectories | No | Include directory matches in results (filenames action, default: false) | |
| includePatterns | No | File patterns to include (e.g., ["*.py", "src/**"]). If set, only matching files are searched. | |
| excludePatterns | No | File patterns to exclude (e.g., ["venv/**", "node_modules/**"]). Uses smart defaults if not specified. | |
| format | No | Output format: compact (paths only), dense (minimal), detailed (full), json (raw) | |
| deterministic | No | If true, disable LLM ranking for exhaustive exact-match results (slower but complete) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Despite 17 parameters and 4 distinct behavioral modes (LLM ranking, symbol-aware, context gathering, filename search), description provides no behavioral context about performance, side effects, return structure, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely brief (two fragments), but the root default sentence wastes space repeating schema documentation. Front-loading the action modes is efficient, though parenthetical syntax is cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Severely inadequate for a 17-parameter tool with four distinct operational modes. No output schema means description should explain return values and mode selection strategy, but it provides only a terse mode list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing baseline 3. Description redundantly restates root's default value already documented in schema, and lists action enum values without adding semantic relationships (e.g., which parameters are valid for which actions).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Lists four specific search modes (intelligent|structured|gather|filenames) which helps identify capabilities, but 'Unified search' is vague and doesn't distinguish from siblings like index_symbols, find_duplicates, or cross_file_links that also search/explore code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use each action type (intelligent vs structured vs gather vs filenames) or when to choose this tool over sibling search/analysis tools. Only mentions a default parameter value.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
securityC
Security actions: scan, risk, redact, fix. scan may return coverage guidance for narrow scope; use recommended include globs and includeHidden=true.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: scan (find secrets/vulnerabilities), risk (analyze content risk), redact (preview redaction), fix (auto-fix detected secrets) | |
| root | No | Root directory to scan (action=scan|fix). Must be a directory; use workspace/search to discover valid roots. | |
| scanType | No | Type of scan (for action=scan|fix) | |
| outputFormat | No | Output format (for action=scan) | |
| include | No | Glob patterns to include (e.g., ["**/*.ts","**/*.py"]). If omitted, scan auto-detects project type and applies defaults. | |
| exclude | No | File patterns to exclude from scan (e.g., ["*_test.py", "*.spec.ts"]). Applied after include filter. | |
| skipTests | No | Skip test directories (tests/, test/, __tests__/, spec/) to reduce noise. Default: true | |
| includeHidden | No | Include hidden files/directories (default: false). By default, hidden files and common noise dirs (node_modules, venv, .git) are skipped. Set true to scan hidden files like .env, .secret. | |
| failOnEmpty | No | Fail when zero files are scanned. Default: true in CI, false in local runs. | |
| apply | No | Apply fixes immediately (for action=fix, default: false) | |
| content | No | Content to analyze/redact (for action=risk|redact) | |
| context | No | Content context type (for action=risk) | |
| strictMode | No | Strict mode for risk analysis (for action=risk) | |
| showContext | No | Show context around redacted content (for action=redact) | |
| contextLines | No | Number of context lines to show (for action=redact) | |
| format | No | Output format: compact (paths only), dense (minimal), detailed (full), json (raw) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure burden. It mentions scan may return coverage guidance, but critically fails to disclose that the fix action with apply=true performs destructive file modifications, or that redact is preview-only (per schema) vs destructive. No mention of auth requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. Front-loaded with action list. However, extreme brevity leaves insufficient room to cover 16 parameters and 4 distinct action modes adequately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Severely underspecified for a 16-parameter multi-modal tool. With no annotations, no output schema, and four distinct action modes (file-based scanning vs content analysis vs redaction preview vs auto-fixing), the two-sentence description leaves critical gaps in explaining action-specific requirements, returns, and side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3. The description references 'include globs' and 'includeHidden=true' which map to specific parameters, but adds no semantic detail beyond the schema's own descriptions (e.g., no guidance on trade-offs between outputFormat choices or scanType selection).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly enumerates four specific security actions (scan, risk, redact, fix) and identifies the domain as 'Security actions'. It specifies the resource type and operations available, though it lacks explicit differentiation from siblings like find_and_fix or analyze_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides specific guidance only for the scan action (using include globs and includeHidden=true for narrow scope), but offers no guidance on when to use risk vs scan, when to use fix vs redact, or when to choose this tool over sibling tools like find_and_fix or analyze_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_editB
Propose targeted code edits from intent. apply=true auto-applies only high-confidence edits.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | The file to suggest edits for | |
| intent | Yes | What change do you want to make? | |
| context | No | Additional context for the edit (optional) | |
| maxSuggestions | No | Maximum suggestions to return (default: 5) | |
| apply | No | Apply edits automatically if confidence >= minConfidence (default: false) | |
| minConfidence | No | Minimum confidence 0-1 to auto-apply edits (default: 0.8) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It adequately discloses the critical safety mechanism (auto-apply only with high-confidence when apply=true), implying default read-only behavior. However, lacks details on output format, file modification risks, or what 'confidence' means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose followed by behavioral warning. Efficient length with minimal waste, though inline parameter reference ('apply=true') slightly blurs descriptive vs. instructional tone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with write capabilities and no output schema, coverage is minimal viable. Mention of auto-apply safety is essential, but missing: return value description, backup behavior, conflict handling, and explicit read vs. write distinction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. Description mentions 'apply=true' and 'high-confidence', adding semantic connection to the apply and minConfidence parameters, but does not elaborate on syntax or intent clarification beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States clear verb+resource ('Propose targeted code edits') and input source ('from intent'). However, 'targeted' is vague and it fails to distinguish from siblings like find_and_fix, refactor_helper, or draft_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus the numerous sibling editing tools (find_and_fix, refactor_helper, etc.). Only mentions the apply flag behavior, not selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_refactoringB
Suggest refactors with tradeoffs and safer alternatives.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File to analyze for refactoring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It implies a read-only, analytical behavior ('suggest' rather than apply, plus 'tradeoffs'), but lacks explicit safety disclosure, output format details, or side effect warnings that would help an agent understand execution impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 6 words, front-loaded with the action verb. While efficient, the brevity is arguably excessive given the crowded tool ecosystem with many similar refactoring-related siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (many similar siblings like 'refactor_helper', 'suggest_edit', 'find_and_fix'), lack of annotations, and absence of an output schema, the 6-word description is insufficient to help an agent confidently select this tool over alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage ('path' is fully described as 'File to analyze for refactoring'), the baseline score is 3. The description adds no parameter-specific semantics, but none are required given the complete schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Suggest') and resource ('refactors'), and adds distinguishing detail by mentioning 'tradeoffs and safer alternatives' which implies an analytical comparison function. However, it does not explicitly differentiate from similar siblings like 'refactor_helper' or 'suggest_edit'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'refactor_helper', 'suggest_edit', or 'find_and_fix'. The phrase 'tradeoffs and safer alternatives' hints at analysis vs. application, but lacks clear when/when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarizeB
Summarize a file, folder, or repo. Use action=path|repo. Prefer compact mode to keep context small.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: path (file/directory), repo (entire repository) | |
| path | No | Path to summarize (file or directory, for action=path) | |
| root | No | Root directory for repo summary (for action=repo) | |
| mode | No | Summary detail level (default: compact) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions 'keep context small' hinting at output size constraints, but fails to disclose read/write nature, output format (structure/syntax), 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact two-sentence structure with no redundancy. Front-loaded with purpose. However, brevity sacrifices necessary behavioral details given zero annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Inadequate for a 4-parameter tool with no annotations and no output schema. Missing: output format description, safety characteristics (read-only?), semantic meaning of 'compact' vs 'extended' outputs, and guidance on path vs root exclusivity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with complete enum descriptions. Description reinforces action values and recommends mode, but adds minimal semantic depth beyond already-documented schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific action (summarize) and clear targets (file, folder, repo). Implicitly distinguishes from sibling 'mcp_summarize_logs' by targeting code repositories vs logs, though could better differentiate from 'analyze_file' or 'codebase_qa'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete parameter guidance ('Use action=path|repo') and preference advice ('Prefer compact mode'), but lacks explicit when-to-use vs alternatives like 'analyze_file' or 'codebase_qa', and no prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
todosC
Find or implement TODO/FIXME markers with prioritization options.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: find (scan and categorize), implement (LLM-powered fixes) | |
| root | Yes | Root directory to scan | |
| groupBy | No | How to group results (find action) | |
| includeContext | No | Include surrounding code context (find action) | |
| difficulty | No | Difficulty level of TODOs to implement (implement action) | |
| todoTypes | No | Types of TODOs to process (default: TODO, FIXME) | |
| dryRun | No | Preview changes without applying (implement action) | |
| files | No | Specific files to process | |
| maxResults | No | Maximum TODOs to return/implement (default: 100 for find, 5 for implement) |
TDQS
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 fails to indicate that "implement" mode modifies files destructively, that operations are LLM-powered (per schema), or what return format to expect. Only "prioritization options" hints at capabilities without explaining behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is efficiently structured and front-loaded with the core action and target. However, for a 9-parameter dual-mode tool, it may be overly terse at the expense of necessary behavioral context, though it avoids fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, dual operational modes (read vs destructive write), and zero annotations, the description is insufficient. It omits critical safety warnings for "implement" mode, doesn't clarify output expectations, and fails to bridge the gap between the simple summary and the complex schema options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds minimal semantic value—"prioritization options" loosely maps to `difficulty` and `groupBy` parameters, but doesn't explain syntax, defaults (e.g., maxResults differs by action), or the conditional nature of params like `dryRun` (implement-only).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ("Find or implement") and identifies the exact resource ("TODO/FIXME markers"), clearly distinguishing this from general refactoring siblings like `refactor_helper` or `find_and_fix`. However, it doesn't explain what "implement" entails (LLM-powered fixes) or how it differs from the `find_and_fix` sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 `find_and_fix` or `suggest_refactoring`, nor does it explain when to choose "find" versus "implement" action modes or prerequisites like workspace setup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspaceB
Workspace metadata/snapshot/explore helper. Use for quick structure discovery before deeper tools.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Mode: metadata (file info), snapshot (directory structure for project overview), explore (LLM-powered exploration) | |
| path | Yes | File or directory path. Use "." for workspace root. | |
| maxDepth | No | Maximum directory depth for snapshot (default: 10, use 2-3 for quick overview) | |
| includeHidden | No | Include hidden files/directories in snapshot (default: false, set true to find AGENTS.md in .mcp-local-llm/) | |
| extensions | No | Filter by file extensions (snapshot mode) | |
| question | No | Specific question about the directory (explore mode) | |
| maxEntries | No | Maximum entries to analyze (explore mode) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions three modes but fails to explain behavioral differences between metadata (file info), snapshot (directory tree), and explore (LLM-powered). It omits whether operations are read-only, performance characteristics, or output format expectations for each mode.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: first defines the tool's identity, second provides usage context. Every word earns its place. Front-loaded with the key concept (workspace structure discovery) immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters with mode-specific applicability (question/maxEntries only for explore; maxDepth/extensions only for snapshot) and zero annotations/output schema, the description inadequately guides mode selection. The multi-modal complexity warrants explanation of which parameters apply to which modes and how outputs differ, which is absent here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage with clear mode-specific documentation (e.g., 'Maximum directory depth for snapshot'). The description mentions the three modes which reinforces the enum, but adds no syntax guidance, parameter relationships, or examples beyond what the schema already provides. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (workspace) and core actions (metadata/snapshot/explore) aligning with the enum values. It distinguishes from siblings via 'before deeper tools,' signaling this is preliminary/structural vs. analytical tools like analyze_file. However, 'helper' is vague and doesn't fully convey the three distinct behavioral modes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use for quick structure discovery before deeper tools' provides implied sequencing (when to use), suggesting this precedes analysis-heavy siblings. However, it lacks explicit 'when not to use' guidance and doesn't name specific alternative tools from the sibling list for when users need deeper analysis.
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.
36 tool updates
v1.0.0- First observed
agent_task - First observed
analyze_file - First observed
analyze_impact - First observed
analyze_test_gaps - First observed
cli_orchestrate - First observed
code_helper - First observed
code_quality_analyzer - First observed
codebase_qa - First observed
cross_file_links - First observed
discover_tools - First observed
draft_file - First observed
find_and_fix - First observed
find_duplicates - First observed
formatter - First observed
generate_agents_md - First observed
generate_docs - First observed
index_symbols - First observed
linter - First observed
local_code_review - First observed
mcp_analyze_complexity - First observed
mcp_diff_summarizer - First observed
mcp_error_explainer - First observed
mcp_health - First observed
mcp_plan_implementation - First observed
mcp_summarize_logs - First observed
mcp_translate_code - First observed
orchestration - First observed
refactor_helper - First observed
regex_helper - First observed
search - First observed
security - First observed
suggest_edit - First observed
suggest_refactoring - First observed
summarize - First observed
todos - First observed
workspace
TDQS
The tool set has clear functional groupings (e.g., analysis, code generation, refactoring), but there is significant overlap in purpose. For example, 'analyze_file', 'summarize', and 'codebase_qa' all involve analyzing or summarizing code content, which could lead to agent confusion. Similarly, 'code_quality_analyzer', 'linter', and 'security' tools all perform code quality checks with blurred boundaries.
Naming conventions are mixed, with some tools using verb_noun patterns (e.g., 'analyze_file', 'generate_docs', 'suggest_edit') and others using noun_verb or other styles (e.g., 'code_helper', 'formatter', 'todos'). There is inconsistency in prefix usage, as some tools start with 'mcp_' while others do not, and abbreviations like 'qa' in 'codebase_qa' deviate from the general pattern.
With 36 tools, the count is excessive for a local LLM server, leading to a bloated and overwhelming interface. This many tools suggests poor scoping, as many functions could be consolidated (e.g., multiple analysis tools) or omitted without losing core functionality. It exceeds typical well-scoped servers (3-15 tools) and risks usability issues.
The tool set covers a broad range of code-related tasks, including analysis, generation, refactoring, and quality checks, with no obvious major gaps for a local LLM server. However, minor gaps exist, such as the lack of a dedicated tool for version control operations (e.g., git integration) or real-time collaboration features, which could enhance the server's utility.
Maintenance
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
An MCP server that gives your AI access to the source code and docs of all public github repos
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
The OpenZeppelin Solidity Contracts MCP server integrates OpenZeppelin's security and style rules into AI-driven development workflows, enabling AI assistants to generate safe, correct, and production-ready smart contracts. It automatically validates generated code against OpenZeppelin standards (including imports, modifiers, naming conventions, and security checks) and supports various contract types including ERC-20, ERC-721, ERC-1155, Stablecoins, RWA, Governor, and Account contracts through prompt-driven workflows.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- AlicenseBqualityCmaintenanceA local-first MCP server that provides AI agents with safe codebase access through file discovery, hybrid lexical-semantic search, and project introspection. It features durable local memory and semantic indexing while keeping all data and processing entirely on your local machine.74296MIT
- AlicenseNot gradedqualityBmaintenanceSelf-hosted MCP server using Ollama for local AI-powered code analysis, refactoring, and optimization. Integrates with VS Code via Continue or Roo.MIT
- FlicenseCqualityCmaintenanceA security-first MCP server that provides LLMs with structured tools for filesystem, process, search, build/test/lint, IDE integration, and more.402-
- AlicenseNot gradedqualityAmaintenanceUltra-lightweight, local-first MCP server for AI-powered code intelligence, providing AST-based analysis and 20+ tools while ensuring zero data leakage.54410MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rodhayl/mcpLocalHelper'
If you have feedback or need assistance with the MCP directory API, please join our Discord server