ahk-mcp
A TypeScript MCP server that provides 25+ tools for AutoHotkey v2 development, including file handling, script analysis, execution, debugging, documentation search, and configuration.
File Operations: List, view, edit, create, detect, and manage active files with advanced editors, batch edits, and backups.
Script Analysis & Linting: Analyze code, diagnose issues, lint with auto-fix, and get LSP-style analysis and symbols.
Execution & Validation: Run scripts with process tracking, validate code locally, and watch files for auto-validation.
Debugging: Start DBGp/TCP debuggers, step through code, capture errors, set breakpoints, and inspect variables.
Documentation & Context: Search AutoHotkey v2 docs, find tool definitions, and inject relevant context into prompts.
Library Management: Search, list, get info, and generate #Include statements for AutoHotkey libraries.
Workflow Automation: Chain operations (analyze→fix→run), process user requests, and use smart orchestration with caching.
Configuration & Settings: Set AutoHotkey path, script directories, enable/disable features, and view analytics.
Transports: Supports stdio, Streamable HTTP (stateful/stateless), and legacy SSE with optional auth and DNS-rebinding protection.
Provides comprehensive development tools for AutoHotkey v2, including code completion, syntax diagnostics, script analysis, and contextual documentation for built-in functions, classes, and hotkeys.
AutoHotkey v2 MCP Server
A TypeScript MCP server for AutoHotkey v2 development. It provides script analysis, file operations, documentation search, and script execution tools for MCP clients such as Claude Desktop.
Architecture

Related MCP server: Hotkeyless AHK MCP
Highlights
25+
AHK_*tools for AutoHotkey workflowsFocused file discovery and active-file aware operations
Script execution with process tracking and window detection
Local AutoHotkey validation and diagnostics tools
Built-in AutoHotkey docs and prompt/context helpers
Stdio and Streamable HTTP transports (stateful or stateless), plus legacy SSE endpoints
Opt-in bearer-token auth and DNS-rebinding protection for HTTP mode
Requirements
Node.js 18+
npm
AutoHotkey v2 (for run/validate tools)
Installation
git clone https://github.com/truecrimedev/ahk-mcp.git
cd ahk-mcp
npm install
npm run buildRun
npm startDevelopment mode:
npm run devSmoke test:
npm run smoke:mcpHTTP Mode and Environment Variables
npm start speaks stdio (Claude Desktop). To expose Streamable HTTP on /mcp
(plus legacy SSE endpoints), set PORT or pass --sse:
npm run start:sseBehavior is controlled with environment variables:
Variable | Default | Purpose |
|
| HTTP port; setting it enables HTTP mode |
| off |
|
| unset | When set, every HTTP request must send |
| unset | Comma-separated |
| unset | Comma-separated |
|
| How long finished task records are kept (30 min); |
|
|
|
Security note: the tool surface includes file writes and process execution. If
the HTTP port is reachable by anything other than your own machine, set
AHK_MCP_AUTH_TOKEN (e.g. openssl rand -hex 32) and the two allowlists — by
default the endpoints accept every request.
See docs/MCP_TRANSPORT_COMPATIBILITY.md for the session flow, stateless mode
details, and cURL examples.
Claude Desktop Configuration
Add this to claude_desktop_config.json:
{
"mcpServers": {
"ahk": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": ["C:\\Users\\YourUsername\\path\\to\\ahk-mcp\\dist\\index.js"],
"env": {
"NODE_ENV": "production",
"AHK_MCP_LOG_LEVEL": "warn"
}
}
}
}Use absolute paths and escape backslashes in JSON.
Configure AutoHotkey Path and Startup Behavior
Use AHK_Config to set the executable path and non-blocking startup behavior:
{
"action": "set",
"ahkPath": "C:\\Users\\YourUsername\\Documents\\Design\\Coding\\AutoHotkey\\bin\\AutoHotkey64.exe",
"waitForStdoutLine": true,
"stdoutLineTimeoutMs": 300
}This is used by AHK_Run (and AHK_Cloud_Validate path resolution).
Core Tools
AHK_Smart_Orchestrator: reduce multi-step edit/analysis workflowsAHK_File_List,AHK_File_View,AHK_File_Edit: file operationsAHK_Analyze,AHK_Diagnostics: analysis and diagnosticsAHK_Run: execute scripts (wait, non-wait, window detection)AHK_Cloud_Validate: local execution-based validationAHK_Doc_Search,AHK_Tools_Search: documentation and tool lookupAHK_Config: MCP server configuration
Development Commands
npm run build
npm run clean
npm run lint
npm run test
npm run test:integration
npm run smoke:mcpDocumentation
docs/README.mddocs/QUICK_START.mddocs/QUICKREFERENCE.mddocs/MCP_TRANSPORT_COMPATIBILITY.mddocs/ARCHITECTURE_DIAGRAMS.mddocs/RELEASE_NOTES.md
Contributing
See CONTRIBUTING.md and AGENTS.md.
License
MIT. See LICENSE.
Available Tools
32 toolsAHK_AnalyticsARead-onlyIdempotent
View tool usage analytics and performance metrics. Track success rates, execution times, common errors, and usage patterns across all MCP tools. Actions: summary (overall stats), tool_stats (specific tool), recent (recent calls), export (JSON data), clear (reset). Use to diagnose tool issues or optimize workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action to perform | summary |
| toolName | No | Tool name for tool_stats action | |
| limit | No | Limit for recent metrics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and idempotent operations, which the description aligns with by using terms like 'view' and 'track'. The description adds value by listing specific actions (summary, tool_stats, etc.) and mentioning data export and clearing, but it does not detail behavioral aspects like rate limits, authentication needs, or error handling beyond what annotations imply.
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 appropriately sized and front-loaded, starting with the core purpose and then detailing actions and usage. Every sentence adds value, but it could be slightly more structured by separating action explanations from usage context for even clearer readability.
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 tool's complexity (analytics with multiple actions), annotations cover safety (read-only, idempotent), and schema coverage is complete, the description is largely sufficient. However, without an output schema, it does not explain return values or data formats, leaving a minor gap in completeness for an analytics 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 description coverage is 100%, so the schema fully documents parameters like 'action', 'toolName', and 'limit'. The description adds minimal semantics by listing action names and hinting at their purposes (e.g., 'tool_stats' for specific tool), but it does not provide additional meaning beyond the schema's enum and descriptions, meeting the baseline for high 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 clearly states the tool's purpose with specific verbs ('view', 'track') and resources ('tool usage analytics and performance metrics'), distinguishing it from siblings by focusing on analytics rather than file operations, debugging, or other functions. It explicitly lists the available actions, making the scope concrete.
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 clear context for when to use the tool ('diagnose tool issues or optimize workflows'), but it does not explicitly state when not to use it or name alternatives among the sibling tools. This gives good guidance but lacks exclusion criteria or direct sibling comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_AnalyzeBRead-onlyIdempotent
Ahk analyze Analyzes AutoHotkey v2 scripts and provides contextual information about functions, variables, classes, and other elements used in the code. Accepts direct code or a file path (falls back to active file).
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | AutoHotkey code to analyze | |
| filePath | No | Path to .ahk file to analyze (defaults to active file when code omitted) | |
| includeDocumentation | No | Include documentation for built-in elements | |
| includeUsageExamples | No | Include usage examples | |
| analyzeComplexity | No | Analyze code complexity | |
| severityFilter | No | Filter issues by severity levels (e.g., ["error"] for errors only) | |
| maxIssues | No | Limit number of issues returned (reduces token usage) | |
| summaryOnly | No | Return only summary counts, not detailed issues (minimal tokens) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true, which the description doesn't contradict. The description adds value by specifying the tool analyzes 'AutoHotkey v2 scripts' (version constraint) and mentions fallback behavior to active file, which aren't covered by annotations. However, it lacks details on rate limits, performance implications, or error handling, leaving some behavioral aspects unclear.
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 concise with two sentences: the first states the core purpose, and the second covers input methods. It's front-loaded with the main function and avoids unnecessary details. However, the first line 'Ahk analyze' is redundant with the tool name, slightly reducing efficiency.
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 tool's complexity (8 parameters, no output schema) and rich annotations (readOnly, idempotent), the description is minimally adequate. It covers what the tool does and input options but lacks details on output format, error cases, or integration with siblings. With no output schema, more information on return values would be beneficial for completeness.
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%, so the schema fully documents all 8 parameters. The description adds minimal parameter semantics beyond the schema, only implying the code/filePath duality and fallback. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't significantly enhance parameter understanding.
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 tool 'analyzes AutoHotkey v2 scripts and provides contextual information about functions, variables, classes, and other elements used in the code.' This specifies the verb (analyzes), resource (AutoHotkey v2 scripts), and output (contextual information). However, it doesn't explicitly differentiate from sibling tools like AHK_Lint or AHK_Workflow_Analyze_Fix_Run, which may have overlapping analysis functions.
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 some usage context by mentioning it 'accepts direct code or a file path (falls back to active file),' which implies when to use code vs. filePath parameters. However, it doesn't offer explicit guidance on when to choose this tool over alternatives like AHK_Lint for error checking or AHK_Doc_Search for documentation, nor does it specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Cloud_ValidateADestructive
Validate AHK v2 code with optional watch mode for auto-validation on save.
Modes:
validate: One-shot validation of code snippetwatch: Auto-validate file on every save
Examples:
Validate code:
{ "code": "MsgBox(\"Hi\")\nExitApp" }Validate file:
{ "filePath": "C:\\Scripts\\test.ahk" }Start watching:
{ "mode": "watch", "filePath": "C:\\Scripts\\test.ahk" }Stop watching:
{ "mode": "watch", "enabled": false }
Error Patterns Detected:
Syntax errors (line number + message)
Runtime errors (Error, ValueError, TypeError, etc.)
Unset variable references
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | validate = one-shot, watch = auto-validate on save | validate |
| code | No | AHK v2 code to validate (for validate mode) | |
| filePath | No | Path to .ahk file to validate or watch | |
| enabled | No | Enable/disable watcher | |
| ahkPath | No | Path to AutoHotkey v2 executable (auto-detected) | |
| timeout | No | Execution timeout in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond annotations. While annotations indicate openWorldHint=true and destructiveHint=true, the description elaborates on what validation entails (detecting syntax errors, runtime errors, unset variable references) and explains the watch mode's auto-validation behavior. However, it doesn't address potential side effects of the destructive hint 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?
The description is well-structured and efficiently organized with clear sections (Modes, Examples, Error Patterns). Each sentence serves a distinct purpose: establishing the core functionality, explaining modes, providing usage examples, and detailing error detection. There's no redundant information, and the content is front-loaded with the main purpose.
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 tool's complexity (6 parameters, two operational modes, no output schema), the description provides substantial context about functionality, usage patterns, and error detection. However, it doesn't explain return values or error formats, which would be helpful since there's no output schema. The annotations cover some behavioral aspects, but more detail on the destructive nature would improve completeness.
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, but the description adds meaningful context through examples that illustrate parameter interactions (e.g., mode='watch' with enabled=false to stop watching). It clarifies how parameters like 'code' and 'filePath' relate to different modes, providing practical semantics beyond the schema's technical 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 clearly states the tool's purpose: validating AHK v2 code with optional watch mode for auto-validation on save. It specifies the exact action (validate) and resource (AHK v2 code/files), and distinguishes itself from siblings like AHK_Lint or AHK_Analyze by focusing on validation with watch capabilities rather than broader analysis or linting.
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 explicit usage guidelines through the 'Modes' section, clearly differentiating between 'validate' (one-shot validation) and 'watch' (auto-validate on save). The examples section further illustrates when to use each mode with specific parameter combinations, offering practical guidance for different scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_ConfigCRead-only
Ahk config Get/Set MCP configuration for script directories, AutoHotkey executable path, and VS Code workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | get | |
| scriptDir | No | Default A_ScriptDir-like root used by tools | |
| searchDirs | No | Additional directories to scan | |
| ahkPath | No | Path to AutoHotkey v2 executable (e.g., C:\Path\AutoHotkey64.exe) | |
| vscodeWorkspace | No | VS Code workspace folder - files open in this window |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the readOnlyHint annotation. While annotations declare readOnlyHint=true, the description mentions 'Get/Set' functionality which could imply both read and write operations. However, it doesn't clarify that 'set' might be limited or require specific conditions, nor does it address rate limits, authentication needs, or what happens when configuration changes are made.
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 concise at just two lines, with the first line stating the tool name and the second describing functionality. There's no wasted text, though the structure could be improved by front-loading the purpose more clearly. Every sentence serves a purpose, earning a high score for efficiency.
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 configuration management tool with 5 parameters and no output schema, the description is insufficient. It doesn't explain what 'MCP configuration' entails, how get vs set operations differ, what format the configuration takes, or what happens when values are set. With annotations only covering readOnlyHint, more behavioral context is needed for proper tool selection and invocation.
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 80% schema description coverage, the input schema already documents most parameters well. The description mentions the three configuration areas (script directories, AutoHotkey path, VS Code workspace) which aligns with the parameters, but adds no additional semantic meaning beyond what the schema provides. The baseline of 3 is appropriate given the 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 states 'Get/Set MCP configuration for script directories, AutoHotkey executable path, and VS Code workspace' which provides a clear verb+resource combination. However, it doesn't distinguish this configuration tool from its many siblings (like AHK_Settings or AHK_File_Active) that might also handle configuration aspects, making the purpose somewhat vague in 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?
The description provides no guidance on when to use this tool versus alternatives. With 30+ sibling tools including AHK_Settings, there's no indication of whether this is the primary configuration tool or when to choose it over others. No exclusions, prerequisites, or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Context_InjectorCRead-onlyIdempotent
Ahk context injector Analyzes user prompts and LLM thinking to automatically inject relevant AutoHotkey v2 documentation context.
| Name | Required | Description | Default |
|---|---|---|---|
| userPrompt | Yes | User prompt is required | |
| llmThinking | No | Optional LLM thinking content | |
| contextType | No | Type of context to inject | auto |
| maxItems | No | Maximum number of context items to return | |
| includeModuleInstructions | No | Include relevant AHK v2 instruction modules |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true, indicating this is a safe, repeatable operation. The description adds that it 'automatically injects' context, suggesting it performs analysis and returns documentation snippets rather than modifying data. However, it doesn't disclose behavioral traits like rate limits, authentication needs, or what 'inject' means operationally (e.g., returns text vs. modifies a file). With annotations covering safety, the description adds minimal but not rich context.
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 two short sentences that efficiently state the tool's function. It's front-loaded with the core purpose and avoids unnecessary elaboration. However, the first line 'Ahk context injector' is redundant with the tool name and could be omitted for better structure, slightly reducing efficiency.
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 tool's moderate complexity (5 parameters, no output schema), the description is minimally adequate. It explains what the tool does but lacks details on return values (no output schema), error conditions, or integration with sibling tools. With annotations covering safety, the description meets basic needs but leaves gaps in operational context that could help an agent use it effectively.
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%, with all 5 parameters well-documented in the schema itself (e.g., userPrompt is 'required', contextType has enum values, maxItems has range). The description mentions 'analyzes user prompts and LLM thinking' which aligns with the userPrompt and llmThinking parameters, but adds no meaningful semantics 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 states the tool 'analyzes user prompts and LLM thinking to automatically inject relevant AutoHotkey v2 documentation context', which provides a clear verb ('analyzes' and 'inject') and resource ('AutoHotkey v2 documentation context'). However, it doesn't distinguish this tool from its many siblings, particularly AHK_Doc_Search which likely also deals with documentation. The purpose is understandable but lacks sibling differentiation.
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 is provided on when to use this tool versus alternatives. With 31 sibling tools including AHK_Doc_Search, AHK_Analyze, and AHK_Smart_Orchestrator, the description offers no context about appropriate use cases, prerequisites, or when other tools might be more suitable. The agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Debug_AgentCDestructive
Ahk debug agent Starts a TCP listener for AutoHotkey /Debug and optionally proxies to a real debug adapter while capturing traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Control action: start, stop, status, get_events, or scan (multi-port detection) | status |
| listenHost | No | Host to listen on for /Debug connections | 127.0.0.1 |
| listenPort | No | Port to listen on for /Debug connections (single-port mode) | |
| listenPorts | No | List of ports to listen on simultaneously (multi-port mode) | |
| portRange | No | Range of ports to listen on (inclusive) when using multi-port or scan modes | |
| scanTimeoutMs | No | Timeout in milliseconds to wait for first connection in scan mode | |
| forwardHost | No | Optional upstream debug adapter host to forward to (proxy mode) | |
| forwardPort | No | Optional upstream debug adapter port to forward to (proxy mode) | |
| maxEvents | No | Max number of traffic events to keep in memory | |
| eventLimit | No | Number of recent events to return when mode=get_events |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate openWorldHint=true and destructiveHint=true, suggesting this tool can modify system state and has open-ended behavior. The description adds context by mentioning TCP listening, proxying, and traffic capture, which aligns with the destructive hint (e.g., network operations). However, it does not disclose additional behavioral traits like rate limits, error handling, or specific destructive effects beyond what annotations imply.
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 concise with two sentences that directly state the tool's function, front-loaded with the main action. There is no wasted text, but it could be slightly more structured by explicitly mentioning the 'mode' parameter's role. Overall, it is efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity with 10 parameters, nested objects, and no output schema, the description is incomplete. It covers the high-level purpose but lacks details on return values, error conditions, or how parameters like 'mode' affect behavior. Annotations provide some context, but without an output schema, the description should do more to explain expected outcomes.
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?
The input schema has 100% description coverage, so parameters are well-documented in the schema itself. The description does not add meaning beyond the schema, as it only mentions high-level concepts like TCP listening and proxying without detailing parameter interactions or semantics. With high schema coverage, the baseline score of 3 is appropriate.
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 the tool 'Starts a TCP listener for AutoHotkey /Debug and optionally proxies to a real debug adapter while capturing traffic,' which provides a clear verb ('Starts') and resource ('TCP listener'), but it lacks specificity about the 'mode' parameter that controls different actions (start, stop, status, etc.). It distinguishes from siblings like AHK_Debug_DBGp by focusing on TCP listening and proxying, but the purpose is somewhat vague without mentioning the control actions.
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 use this tool versus alternatives, such as AHK_Debug_DBGp or other debugging-related siblings. It mentions optional proxying but does not specify use cases, prerequisites, or exclusions, leaving the agent with minimal context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Debug_DBGpBDestructive
AutoHotkey v2 debugger via DBGp protocol. Enables autonomous debugging: capture errors, analyze them, and auto-apply fixes.
Actions:
start: Start DBGp listener (waits for AHK /Debug connection)
stop: Stop DBGp listener
status: Get connection status
run: Continue execution
step_into/step_over/step_out: Step debugging
capture_error: Wait for next error with full context
analyze_error: Build analysis prompt from error
apply_fix: Auto-apply code fix to file
list_errors/clear_errors: Manage error queue
get_source: Get source lines around a line
breakpoint_set/remove/list: Manage breakpoints
variables_get: Get variables (context: 0=local, 1=global)
evaluate: Evaluate expression
stack_trace: Get call stack
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Debug action to perform | |
| port | No | DBGp port (default: 9000) | |
| timeout | No | Timeout for capture_error in ms | |
| file | No | File path for breakpoint/fix/source | |
| line | No | Line number | |
| condition | No | Breakpoint condition | |
| breakpoint_id | No | Breakpoint ID for removal | |
| context | No | Variable context: 0=local, 1=global | |
| expression | No | Expression to evaluate | |
| radius | No | Source context radius | |
| original | No | Original line for apply_fix | |
| replacement | No | Replacement line for apply_fix | |
| error | No | Error object for analyze_error |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide openWorldHint=true and destructiveHint=true, indicating open-ended and potentially destructive operations. The description adds context by listing specific actions like 'apply_fix' (which aligns with destructiveHint) and mentions 'autonomous debugging', but doesn't elaborate on risks, permissions, or rate limits beyond what annotations imply. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with a high-level purpose, followed by a bulleted list of actions. Each action is named concisely, though some explanations (e.g., 'capture_error: Wait for next error with full context') could be more streamlined. Overall, it avoids unnecessary 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?
Given the tool's complexity (13 parameters, no output schema) and annotations (openWorldHint, destructiveHint), the description is moderately complete. It outlines actions but lacks details on error handling, response formats, or integration with sibling tools. With destructiveHint=true, more cautionary notes would improve completeness.
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%, so parameters are well-documented in the schema. The description lists actions that map to the 'action' enum, adding some context (e.g., 'capture_error: Wait for next error with full context'), but doesn't provide additional syntax, format, or interaction details beyond the schema's 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 clearly states the tool's purpose as an 'AutoHotkey v2 debugger via DBGp protocol' that 'enables autonomous debugging', specifying the verb (debugging) and resource (AutoHotkey v2). It distinguishes from siblings like AHK_Debug_Agent by mentioning the DBGp protocol, but doesn't explicitly contrast with all debugging-related tools in the list.
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 AHK_Debug_Agent or AHK_Lint. It lists actions but doesn't explain prerequisites (e.g., when to start the listener), sequencing (e.g., start before capture_error), or when to choose specific actions over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Doc_SearchBRead-onlyIdempotent
Ahk doc search Full-text search across AutoHotkey v2 docs using FlexSearch (functions, variables, classes, methods).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (1-200 characters) | |
| category | No | Restrict search category | auto |
| offset | No | Number of results to skip for pagination | |
| limit | No | Maximum results to return per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true, which the description doesn't contradict. The description adds context about the search technology (FlexSearch) and scope (AutoHotkey v2 docs), which is useful beyond annotations. However, it doesn't disclose behavioral traits like rate limits, authentication needs, or result format details that would be helpful for an agent.
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 brief and front-loaded with essential information in two sentences. The first line 'Ahk doc search' is somewhat redundant but serves as a header. The second sentence efficiently conveys the core functionality and scope. There's minimal waste, though it could be slightly more polished.
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 tool's moderate complexity (4 parameters, no output schema), the description is adequate but not complete. It covers the purpose and technology but lacks details on result format, error handling, or integration context. With annotations providing safety hints, the description meets minimum viability but leaves gaps in operational guidance.
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%, so the schema fully documents all parameters (query, category, offset, limit). The description mentions 'search' and categories (functions, variables, classes, methods), which aligns with the schema but doesn't add significant semantic value beyond what's already in the structured fields. 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 clearly states the tool's purpose: 'Full-text search across AutoHotkey v2 docs using FlexSearch' with specific resources listed (functions, variables, classes, methods). It distinguishes from most siblings by focusing on documentation search, though it doesn't explicitly differentiate from AHK_Tools_Search which might be similar. The verb 'search' is specific and the scope is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like AHK_Tools_Search or AHK_Library_Search that might overlap in functionality, nor does it specify scenarios where this documentation search is preferred over other search or information retrieval tools in the server. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_File_ActiveARead-only
Ahk file DETECT AND SET ACTIVE FILE FOR EDITING - Use this immediately when user mentions any .ahk file path. This enables all other editing tools to work on the specified file. Essential first step before any file modifications.
📎 Active File: Not set. Use AHK_File_Active to select a target.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action to perform | get |
| path | No | File path for set action | |
| text | No | Text to detect paths from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide readOnlyHint=true, indicating this is a safe read operation. The description adds context about enabling other editing tools and being a prerequisite step, which is useful behavioral information not covered by annotations. However, it doesn't detail what 'detect' or 'clear' actions do, or explain the state management of the active file, leaving some behavioral aspects unclear.
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 appropriately sized with three sentences that are front-loaded with key information. The first sentence states the purpose, the second provides usage guidelines, and the third gives status context. There's minimal waste, though the inclusion of '📎 Active File: Not set...' could be seen as slightly redundant with the tool's function.
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 tool's moderate complexity (3 parameters, no output schema) and annotations covering safety, the description is mostly complete. It explains the tool's role in the workflow and when to use it. However, it lacks details on return values or error handling, which would be helpful since there's no output schema, but the annotations provide some safety context.
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%, so the schema already documents all parameters (action, path, text). The description implies the tool handles file paths but doesn't add specific details about parameter usage beyond what the schema provides, such as how 'detect' works with the 'text' parameter. Baseline 3 is appropriate when schema does the heavy lifting.
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 tool's purpose with specific verbs ('detect and set active file for editing') and identifies the resource ('.ahk file path'). It explicitly distinguishes this tool from siblings by stating it's an 'essential first step before any file modifications' and enables other editing tools to work, unlike tools like AHK_File_Edit or AHK_File_Create.
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 explicit usage guidelines: 'Use this immediately when user mentions any .ahk file path' and 'Essential first step before any file modifications.' It clearly indicates when to use this tool (as a prerequisite for editing) versus alternatives, though it doesn't name specific sibling tools, the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_File_CreateADestructive
Create a new AutoHotkey v2 script on disk with full path interception support.
• Validates .ahk extension (case-insensitive) • Automatically creates parent directories (configurable) • Prevents accidental overwrite unless explicitly allowed • Supports dry-run previews and active file management
📎 Active File: Not set. Use AHK_File_Active to select a target.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute or relative path to the new AutoHotkey file | |
| content | No | Initial content to write into the file | |
| overwrite | No | Allow overwriting an existing file | |
| createDirectories | No | Create parent directories if they are missing | |
| dryRun | No | Preview the operation without writing to disk | |
| setActive | No | Set the newly created file as the active file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations: it explains validation rules (.ahk extension validation), safety features (prevents accidental overwrite), and operational modes (dry-run previews). While annotations already indicate destructiveHint=true, the description elaborates on what 'destructive' means in this context with the overwrite prevention logic.
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 a clear opening statement followed by bullet points highlighting key features. Every sentence earns its place by providing distinct value, and the information is appropriately front-loaded with the core purpose stated first.
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 file creation tool with 6 parameters, destructiveHint=true, and no output schema, the description provides good contextual coverage. It explains behavioral constraints, safety features, and operational modes. The main gap is the lack of information about return values or error conditions, which would be helpful given the complexity.
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 input schema already documents all 6 parameters thoroughly. The description doesn't add significant parameter-specific semantics beyond what's in the schema, though it mentions 'full path interception support' which relates to the filePath parameter's behavior.
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 ('Create a new AutoHotkey v2 script on disk') and resource type, distinguishing it from sibling file tools like AHK_File_Edit, AHK_File_List, or AHK_File_View. It explicitly mentions 'full path interception support' which adds specificity beyond a generic file creation 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 clear context for when to use this tool (creating new AHK scripts with specific features like path interception and directory creation). It mentions the sibling tool AHK_File_Active for setting active files, but doesn't explicitly state when NOT to use this tool or provide alternatives for similar operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_File_DetectCRead-only
Ahk auto file Automatically detect and set active AutoHotkey file from user text
📎 Active File: Not set. Use AHK_File_Active to select a target.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text that may contain file paths to detect | |
| autoSet | No | Automatically set as active file if found | |
| scriptDir | No | Base directory to search for files |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true indicates this is a safe read operation. The description adds behavioral context by explaining it 'detects and sets' files based on text, which implies it may change the active file state (contradicting read-only hint if 'set' means write). However, it clarifies this is conditional on autoSet parameter, adding useful context beyond annotations. No rate limits or auth needs are disclosed.
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 brief but could be more structured. The first line 'Ahk auto file' is unclear and adds little value. The core purpose is stated in the second sentence, but the note about AHK_File_Active is useful yet could be integrated more smoothly. It's somewhat front-loaded but includes redundant phrasing.
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 3 parameters, 100% schema coverage, readOnlyHint annotation, and no output schema, the description is minimally adequate. It explains the tool's purpose and hints at an alternative, but for a tool that interacts with file states, more context on behavior (e.g., what 'active' means, error handling) would improve completeness, especially without output schema.
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%, so parameters are well-documented in the schema. The description doesn't add any parameter-specific semantics beyond what's in the schema (e.g., it mentions 'text' generally but doesn't explain format or examples). With high schema coverage, baseline 3 is appropriate as the description doesn't compensate but doesn't need to heavily.
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 the tool 'Automatically detect and set active AutoHotkey file from user text', which provides a clear verb ('detect and set') and resource ('AutoHotkey file'). However, it doesn't differentiate from sibling tools like AHK_File_Active, AHK_File_List, or AHK_File_View, leaving ambiguity about when to choose this tool 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?
The description includes a note 'Use AHK_File_Active to select a target', which hints at an alternative but doesn't explain when to use this tool versus AHK_File_Active or other file-related tools. There's no explicit guidance on when this tool is appropriate versus when to use alternatives, leaving usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_File_EditADestructive
Primary AutoHotkey file editor for direct on-disk modifications. Handles search/replace, line inserts, deletes, appends, prepends, and even new file creation. Supports regex, automatic backups, dry-run previews, and optional script execution after edits.
Common Usage
{
"action": "replace",
"search": "oldClassName",
"newContent": "NewClassName",
"filePath": "C:\\Scripts\\MyAutomation.ahk"
}Batch Replace with Regex (Preview First)
{
"action": "replace",
"search": "class\\s+(\\w+)",
"newContent": "class Refactored$1",
"regex": true,
"all": true,
"dryRun": true
}Shows a DRY RUN report instead of touching the file.
Create New Script
{
"action": "create",
"filePath": "C:\\AHK\\Helpers\\ClipboardTools.ahk",
"newContent": "class ClipboardTools {\n __New() {\n ; init\n }\n}"
}What to Avoid
Using deprecated "content" parameter - migrate to "newContent"
Running batch replacements without
dryRun: truefirstDisabling backups on production files unless absolutely necessary
See also: AHK_File_Edit_Advanced, AHK_File_Edit_Small, AHK_File_View, AHK_Smart_Orchestrator
📎 Active File: Not set. Use AHK_File_Active to select a target.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Edit action to perform | replace |
| search | No | Text to search for (for replace/delete) | |
| newContent | No | Preferred parameter containing the replacement or inserted text (e.g., "MsgBox(\"Updated\")"). | |
| content | No | ⚠️ Deprecated alias for newContent. Will be removed in a future release. | |
| line | No | Line number for insert/delete (1-based) | |
| startLine | No | Start line for range operations | |
| endLine | No | End line for range operations | |
| filePath | No | File to edit (defaults to activeFilePath) | |
| regex | No | Use regex for search | |
| all | No | Replace all occurrences | |
| backup | No | Create backup before editing | |
| runAfter | No | Run the script after the edit completes successfully | |
| dryRun | No | Preview changes without modifying file. Shows affected lines and change count. | |
| validate | No | Validate AHK code before writing. Blocks edit if syntax errors are found. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations. While annotations indicate destructiveHint=true (mutation), the description elaborates with features like automatic backups, dry-run previews, optional script execution after edits, and validation of AHK code before writing. It also mentions that the tool defaults to active file path if not specified, providing practical implementation details not covered by annotations.
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 well-structured with clear sections (primary description, common usage examples, what to avoid, see also references, and active file note). While comprehensive, it remains focused with no redundant sentences - every part serves a purpose in guiding tool usage. The examples are illustrative rather than verbose.
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 complex tool with 14 parameters, destructive operations, and no output schema, the description provides excellent context. It covers operational scope, safety features (backups, dry runs, validation), parameter guidance, sibling relationships, and practical implementation details. The combination of structured guidance and examples makes it complete enough for effective agent use.
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, but the description adds substantial value through usage examples that demonstrate parameter combinations and semantics. The JSON examples show how parameters like action, search, newContent, regex, all, and dryRun work together in real scenarios, providing context that goes beyond the schema's individual 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 clearly states the tool's purpose as 'Primary AutoHotkey file editor for direct on-disk modifications' and lists specific operations like search/replace, line inserts, deletes, appends, prepends, and new file creation. It distinguishes from siblings by explicitly mentioning AHK_File_Edit_Advanced, AHK_File_Edit_Small, AHK_File_View, and AHK_Smart_Orchestrator, establishing this as the main editing 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 explicit guidance with a 'What to Avoid' section warning against deprecated parameters, batch replacements without dry runs, and disabling backups on production files. It also includes 'See also:' references to sibling tools, helping the agent understand when to use alternatives like AHK_File_Edit_Advanced or AHK_File_View instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_File_Edit_AdvancedADestructive
Ahk file editor PRIMARY FILE EDITING TOOL - Use this IMMEDIATELY when user mentions a .ahk file path and wants to modify it. This tool automatically detects the file, sets it active, and helps determine the best editing approach. ALWAYS use this instead of generating code blocks when a file path is provided.
📎 Active File: Not set. Use AHK_File_Active to select a target.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Path to the AutoHotkey file to edit (required) | |
| changes | Yes | Description of what changes to make to the file | |
| action | No | Action to perform: edit (modify existing), view (read only), create (new file) | edit |
| dryRun | No | Preview changes without modifying file. Shows affected lines and change count. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=true, which the description aligns with by implying file modification. The description adds valuable context beyond annotations: it automatically detects files, sets them active, helps determine editing approach, and mentions a dry-run preview feature. However, it doesn't detail potential side effects like backup behavior or error handling.
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?
Front-loaded with key usage rules, followed by a note about active file. Sentences are purposeful, but the emoji and formatting slightly reduce efficiency. It could be more streamlined by integrating the active file note into the main text.
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 tool's complexity (file editing with destructive potential) and rich schema/annotations, the description is mostly complete. It covers usage context, behavioral hints, and references related tools. Lacks output details, but no output schema exists, so this is acceptable. Could improve by clarifying differences from sibling editing tools.
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%, so parameters are well-documented in the schema. The description doesn't add specific details about parameters beyond implying usage of filePath and changes. It mentions dry-run indirectly ('Preview changes'), but this is covered in the schema. Baseline 3 is appropriate as the schema handles most semantics.
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 this is the 'PRIMARY FILE EDITING TOOL' for AutoHotkey (.ahk) files, specifying it's for modifying files when a path is provided. It distinguishes from generating code blocks but doesn't explicitly differentiate from sibling editing tools like AHK_File_Edit or AHK_File_Edit_Small, which would require 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?
Provides explicit usage instructions: 'Use this IMMEDIATELY when user mentions a .ahk file path and wants to modify it' and 'ALWAYS use this instead of generating code blocks when a file path is provided.' It also references AHK_File_Active for selecting a target, giving clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_File_Edit_SmallADestructive
Token-efficient editor for small, targeted changes. Ideal when you need a lightweight replace or line edit without loading the full diff engine. Supports regex and literal replacements, multi-file batches, optional diff previews, and dry-run mode.
Common Replace
{
"action": "replace_literal",
"file": "C:\\Scripts\\MyScript.ahk",
"find": "Sleep(500)",
"replace": "Sleep(100)"
}Insert Before a Line (Preview)
{
"action": "line_insert_before",
"file": "C:\\Scripts\\TrayMenu.ahk",
"line": 42,
"newContent": " TrayTip(\"Menu refreshed\")",
"dryRun": true
}Multi-File Regex Replace
{
"action": "replace_regex",
"files": ["core.ahk", "ui.ahk"],
"find": "SetTimer\\((\\w+), 5000\\)",
"replace": "SetTimer($1, 10000)",
"all": true
}What to Avoid
Mixing deprecated "content" parameter with newContent - prefer newContent
Running multi-file edits without
dryRun: trueto previewForgetting
backup: truewhen touching critical scripts
See also: AHK_File_Edit (full-featured editor), AHK_File_Edit_Diff (complex diffs), AHK_File_Edit_Advanced
📎 Active File: Not set. Use AHK_File_Active to select a target.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Edit action to perform (default: replace_literal for safe string matching) | replace_literal |
| file | No | Target file to edit. Defaults to the active file when omitted. | |
| files | No | Apply the same edit to multiple files. | |
| find | No | Text (or pattern) to search for when using replace actions. | |
| replace | No | Replacement text for replace actions. | |
| regexFlags | No | Additional RegExp flags (e.g. "i" for case-insensitive). | |
| all | No | Replace all occurrences (false = first only). | |
| line | No | Line number for line-based actions (1-based). | |
| startLine | No | Start line for range operations (1-based). | |
| endLine | No | End line for range delete or replace (1-based, inclusive). | |
| content | No | ⚠️ Deprecated alias for newContent. Prefer newContent for new text. | |
| newContent | No | Content to insert or replace when using line actions. Example: "MsgBox(\"Done\")". | |
| preview | No | Show a unified diff instead of writing to disk. | |
| dryRun | No | Preview changes without modifying file. Shows affected lines and change count. | |
| backup | No | Create a .bak backup before writing changes. | |
| runAfter | No | Run the script after edits complete (single file only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false, which the description aligns with by discussing file modifications. The description adds valuable behavioral context beyond annotations: it explains the tool supports regex/literal replacements, multi-file batches, optional diff previews, dry-run mode, backup recommendations, and active file dependencies. It doesn't contradict annotations but provides rich operational details.
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 well-structured with clear sections (introduction, examples, warnings, see-also), but could be more concise. The examples are helpful but lengthy, and some information (like the active file note) might be redundant with schema details. Overall it's efficiently organized but slightly verbose.
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 tool's complexity (16 parameters, destructive operations) and the absence of an output schema, the description provides excellent contextual completeness. It covers purpose, usage guidelines, behavioral traits, parameter examples, warnings, and sibling tool relationships. The combination of annotations and detailed description gives the agent sufficient information to use the tool effectively.
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 already documents all 16 parameters thoroughly. The description adds minimal parameter semantics through example JSON snippets that illustrate common usage patterns, but doesn't provide significant additional meaning beyond what's in the schema. This meets the baseline expectation for 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 clearly states the tool's purpose as a 'token-efficient editor for small, targeted changes' and distinguishes it from siblings by specifying it's 'ideal when you need a lightweight replace or line edit without loading the full diff engine.' It explicitly mentions sibling tools AHK_File_Edit, AHK_File_Edit_Diff, and AHK_File_Edit_Advanced for comparison, providing clear differentiation.
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 explicit guidance on when to use this tool ('lightweight replace or line edit without loading the full diff engine') and when not to use it ('What to Avoid' section lists specific pitfalls). It names alternative tools (AHK_File_Edit, AHK_File_Edit_Diff, AHK_File_Edit_Advanced) and includes context about the active file requirement, offering comprehensive usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_File_ListARead-only
List AHK files with optional name search. Use nameFilter with wildcards (e.g., "Hotstring") to find specific files.
📎 Active File: Not set. Use AHK_File_Active to select a target.
| Name | Required | Description | Default |
|---|---|---|---|
| directory | No | Directory root to enumerate (defaults to active file directory or current working directory). | |
| nameFilter | No | Filter by filename pattern with * wildcards (e.g., "*Hotstring*", "GUI_*"). 1-200 characters. | |
| recursive | No | Include files from subdirectories. | |
| includeDirectories | No | Include directories in the results. | |
| includeHidden | No | Include entries beginning with . | |
| extensions | No | Limit results to specific file extensions (defaults to [".ahk"]). Use empty array to include all files. | |
| offset | No | Number of items to skip for pagination. | |
| limit | No | Maximum items to return per page. | |
| maxDepth | No | Maximum depth when recursive is true. | |
| includeStats | No | Include size/modified metadata. | |
| absolutePaths | No | Return absolute paths in results. | |
| outputFormat | No | Output format: compact (paths only ~minimal tokens), detailed (with stats), json (full data). | compact |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already indicates this is a safe read operation. The description adds useful context about wildcard usage and references the active file state, but doesn't disclose additional behavioral traits like pagination behavior (implied by offset/limit parameters), rate limits, or error handling. It doesn't contradict the annotation.
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 concise and well-structured: two sentences that efficiently convey the core functionality and a key usage note. Every word earns its place, with no redundant information or 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 the tool's complexity (12 parameters) and lack of output schema, the description is reasonably complete. It covers the main purpose and key usage aspects, though it could benefit from mentioning the extensive filtering options available via parameters. The annotations provide safety context, and the schema handles parameter documentation.
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 input schema fully documents all 12 parameters. The description adds minimal value by mentioning nameFilter with wildcard examples, but doesn't provide additional semantic context beyond what's in the schema. This meets the baseline for 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 clearly states the tool's purpose: 'List AHK files with optional name search.' It specifies the resource (AHK files) and verb (list) with an optional filtering capability. However, it doesn't explicitly differentiate from sibling tools like AHK_File_Recent or AHK_File_View, which might also list files in different contexts.
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 clear context for usage: it mentions using nameFilter with wildcards for specific searches and references AHK_File_Active for setting a target file. This gives practical guidance on when and how to use the tool, though it doesn't explicitly state when not to use it or compare it to alternatives like AHK_File_Recent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_File_RecentBRead-only
Ahk recent scripts List the most recent AutoHotkey scripts from configured directories. Supports overriding A_ScriptDir.
📎 Active File: Not set. Use AHK_File_Active to select a target.
| Name | Required | Description | Default |
|---|---|---|---|
| scriptDir | No | Override for A_ScriptDir/root scanning directory | |
| extraDirs | No | Additional directories to scan | |
| offset | No | Number of items to skip for pagination | |
| limit | No | Maximum items to return per page | |
| patterns | No | File glob patterns to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate readOnlyHint=true, which the description aligns with by describing a listing operation. The description adds behavioral context about scanning configured directories and overriding A_ScriptDir, but doesn't detail aspects like performance, error handling, or how 'most recent' is determined (e.g., by modification time). With annotations covering safety, this provides moderate additional value.
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 brief and front-loaded with the core purpose, followed by a note on A_ScriptDir and a reference to another tool. It avoids unnecessary details, though the emoji and formatting slightly distract from pure conciseness. Overall, it's efficient with minimal 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?
Given the tool's moderate complexity (5 parameters, no output schema), the description covers the basic purpose and some context but lacks details on return format, sorting criteria for 'most recent,' or error scenarios. With annotations providing safety info, it's adequate but leaves gaps for full agent understanding.
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?
The input schema has 100% description coverage, so parameters are well-documented there. The description mentions 'Supports overriding A_ScriptDir,' which loosely relates to the 'scriptDir' parameter, but doesn't add significant meaning beyond the schema. This meets the baseline for 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 clearly states the tool's purpose: 'List the most recent AutoHotkey scripts from configured directories.' It specifies the verb ('List') and resource ('AutoHotkey scripts'), and mentions scanning directories. However, it doesn't explicitly differentiate from sibling tools like AHK_File_List or AHK_File_Active beyond a brief note about the latter.
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 some usage context by mentioning 'Supports overriding A_ScriptDir' and referencing AHK_File_Active for setting a target file, implying this tool is for listing recent scripts rather than active file operations. However, it lacks explicit guidance on when to use this tool versus alternatives like AHK_File_List or AHK_File_View, leaving usage somewhat implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_File_ViewARead-only
View AHK files with structure analysis. Modes: structured (default), raw, summary, outline. Supports line ranges and syntax highlighting.
📎 Active File: Not set. Use AHK_File_Active to select a target.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Path to AutoHotkey file to view (defaults to active file) | |
| mode | No | View mode | structured |
| lineStart | No | Starting line number (1-based) | |
| lineEnd | No | Ending line number (1-based) | |
| maxLines | No | Maximum lines to display | |
| showLineNumbers | No | Show line numbers | |
| showMetadata | No | Show file metadata | |
| highlightSyntax | No | Apply syntax highlighting | |
| showStructure | No | Show code structure info |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already indicates this is a safe read operation. The description adds useful behavioral context about the four viewing modes and the active file mechanism, but doesn't mention performance characteristics, rate limits, or what happens with invalid file paths. It doesn't contradict the annotation.
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. The first sentence covers core functionality, modes, and key features. The second provides important context about the active file mechanism. 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?
For a read-only viewing tool with comprehensive schema coverage (100%) and readOnlyHint annotation, the description provides adequate context about functionality and usage. The lack of output schema means the description doesn't explain return values, but for a file viewing tool, this is acceptable. It could benefit from more detail about what each mode provides.
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 already documents all 9 parameters thoroughly. The description mentions 'Modes: structured (default), raw, summary, outline' which aligns with the 'mode' parameter enum, and 'Supports line ranges and syntax highlighting' which references lineStart/lineEnd and highlightSyntax parameters. It adds some context but doesn't provide significant value beyond the comprehensive 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 explicitly states 'View AHK files with structure analysis' - a specific verb ('View') and resource ('AHK files') with additional functionality ('structure analysis'). It clearly distinguishes from siblings like AHK_File_Edit, AHK_File_Create, and AHK_File_List by focusing on viewing/analysis rather than modification, creation, or listing.
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 clear context about modes and features, and explicitly mentions 'Use AHK_File_Active to select a target' for the active file functionality. However, it doesn't explicitly state when NOT to use this tool versus alternatives like AHK_File_Edit for modifications or AHK_Analyze for deeper analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Library_ImportARead-onlyIdempotent
Generate #Include statements for importing a library. Resolves dependencies and provides correct import order. Supports different #Include formats (angle-brackets, relative, absolute).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Library name (without .ahk extension) | |
| include_dependencies | No | Include all dependencies in import order | |
| format | No | Format for #Include statements | angle-brackets |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and idempotent operations, which the description aligns with by not contradicting them. The description adds valuable context beyond annotations, such as dependency resolution, import order, and support for different #Include formats, enhancing behavioral understanding without redundancy.
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 concise and front-loaded, consisting of two efficient sentences that directly state the tool's function and key features without unnecessary elaboration, making it easy to understand quickly.
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 tool's moderate complexity, rich annotations, and full schema coverage, the description is mostly complete. It lacks details on output format (no output schema provided), but otherwise covers purpose and behavior adequately for a read-only, idempotent 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 description coverage, the input schema fully documents parameters. The description adds minimal semantic value by mentioning dependency resolution and format support, which relate to parameters but do not provide additional details beyond the schema's 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 clearly states the tool's purpose with specific verbs ('Generate #Include statements for importing a library') and resources ('library'), and distinguishes it from siblings like AHK_Library_Info or AHK_Library_List by focusing on import statement generation rather than information retrieval or listing.
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 implies usage for importing libraries with dependency resolution and format support, but does not explicitly state when to use this tool versus alternatives like AHK_Library_Info or AHK_Library_Search, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Library_InfoBRead-onlyIdempotent
Get detailed information about a specific AutoHotkey library. Returns metadata, documentation, classes, functions, and dependencies.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Library name (without .ahk extension) | |
| include_dependencies | No | Include dependency resolution details |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, repeatable read operation. The description adds value by specifying the return content (metadata, documentation, classes, functions, dependencies), which isn't covered by annotations. However, it doesn't disclose other behavioral traits like rate limits, error conditions, or performance characteristics.
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 that front-loads the core purpose and specifies the return content. There's no wasted verbiage or redundancy, making it easy to parse quickly.
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 tool's moderate complexity (retrieving library details), annotations cover safety (read-only, idempotent), and the schema fully documents parameters, the description is reasonably complete. It specifies the return content, which compensates for the lack of an output schema. However, it could be more comprehensive by mentioning error cases or usage context.
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%, so the schema fully documents both parameters (name and include_dependencies). The description doesn't add any parameter-specific details beyond what's in the schema, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate.
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 verb ('Get') and resource ('detailed information about a specific AutoHotkey library'), making the purpose explicit. It distinguishes from siblings like AHK_Library_List (which likely lists libraries) and AHK_Library_Search (which likely searches for libraries) by focusing on retrieving metadata for a specific library. However, it doesn't explicitly contrast with these siblings in the description text.
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. It doesn't mention siblings like AHK_Library_List or AHK_Library_Search, nor does it specify prerequisites or exclusions. Usage is implied by the purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Library_ListARead-onlyIdempotent
List and search AutoHotkey libraries in the catalog. Search by query string or filter by category. Returns library names with descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query (searches name, description, category) | |
| category | No | Filter by category name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and idempotent operations, which the description aligns with by describing a listing/search function. The description adds valuable context beyond annotations by specifying the return format ('library names with descriptions') and search scope ('searches name, description, category'), enhancing the agent's understanding of behavior without contradicting annotations.
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 front-loaded with the core purpose in the first sentence, followed by specifics on search/filtering and return values. Every sentence adds value without redundancy, making it efficient and well-structured for quick comprehension by an AI agent.
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 tool's low complexity (2 optional parameters, no output schema), annotations cover safety (read-only, idempotent), and the description explains the purpose, usage, and return format. It is mostly complete, but could slightly improve by clarifying the catalog scope or differentiating more from siblings like AHK_Library_Search to fully guide the agent.
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?
The input schema has 100% description coverage, fully documenting the 'query' and 'category' parameters. The description adds minimal semantics by mentioning 'Search by query string or filter by category', which slightly elaborates on usage but does not provide significant additional meaning beyond the schema. This meets the baseline for 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 clearly states the verb ('List and search') and resource ('AutoHotkey libraries in the catalog'), specifying the scope of the operation. It distinguishes itself from siblings like AHK_Library_Info (likely for detailed info) and AHK_Library_Search (possibly more focused search) by emphasizing catalog-wide listing with filtering options.
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 clear context for when to use the tool ('List and search AutoHotkey libraries in the catalog') and implies usage through search or filtering. However, it does not explicitly state when not to use it or name specific alternatives among siblings, such as AHK_Library_Search, which might offer different search capabilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Library_SearchARead-onlyIdempotent
Search for symbols (classes, methods, functions, properties) across all AutoHotkey libraries. Uses fuzzy matching to find symbols by partial name. Automatically scans standard AHK library paths: • ScriptDir\Lib (active file's directory) • Documents\AutoHotkey\Lib • Program Files\AutoHotkey\v2\Lib
Examples: • Find clipboard utilities: { query: "clipboard" } • Find all classes: { query: "Manager", types: ["class"] } • Find methods by name: { query: "OnClick", types: ["method"] } • Show library locations: { query: "Gui", showPaths: true }
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for symbol name (1-200 characters, supports fuzzy matching) | |
| types | No | Filter by symbol types (default: all) | |
| offset | No | Number of results to skip for pagination | |
| limit | No | Maximum results to return per page | |
| minScore | No | Minimum match score 0-1 (default: 0.3) | |
| showPaths | No | Include library paths to discover where libraries are located |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and idempotent operations, which the description aligns with by describing a search function. The description adds valuable behavioral context beyond annotations: it specifies the library paths scanned (ScriptDir\Lib, Documents\AutoHotkey\Lib, Program Files\AutoHotkey\v2\Lib), mentions fuzzy matching, and provides examples of usage. This enhances understanding without contradicting annotations.
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 well-structured and concise. It starts with a clear purpose statement, lists library paths, and provides practical examples in a bulleted format. Every sentence and bullet point adds value, with no wasted words, making it easy to scan and understand quickly.
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 tool's complexity (6 parameters, no output schema), the description is mostly complete. It covers purpose, behavior, and usage with examples, and annotations provide safety hints. However, it lacks details on output format or pagination behavior, which could be helpful since there's no output schema. Overall, it's sufficient but has minor 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?
The input schema has 100% description coverage, providing full details for all parameters. The description adds minimal parameter semantics beyond the schema, only briefly mentioning 'query' and 'types' in examples. Since the schema already covers everything adequately, the description meets the baseline of 3 without significantly enhancing parameter understanding.
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 tool's purpose: 'Search for symbols (classes, methods, functions, properties) across all AutoHotkey libraries. Uses fuzzy matching to find symbols by partial name.' It specifies the exact resource (symbols), verb (search), and method (fuzzy matching), and distinguishes itself from sibling tools like AHK_Doc_Search or AHK_Tools_Search by focusing on library symbols rather than documentation or 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?
The description provides clear context for when to use this tool: for searching symbols in AutoHotkey libraries with fuzzy matching. It includes examples that illustrate use cases (e.g., finding clipboard utilities, classes, methods). However, it does not explicitly state when not to use it or name alternatives among sibling tools, such as AHK_Doc_Search for documentation searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_LintARead-onlyIdempotent
Lint AHK v2 scripts. Levels: fast (syntax), standard (default, +structure), thorough (+semantics). Supports autoFix with dryRun preview.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | No | Path to .ahk file (defaults to active file) | |
| level | No | Analysis depth | standard |
| includeStructure | No | Include code structure map | |
| forceRefresh | No | Bypass cache | |
| autoFix | No | Automatically fix fixable issues | |
| dryRun | No | Preview fixes without modifying file (requires autoFix: true) | |
| outputFormat | No | Output format | text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe, repeatable operations. The description adds valuable behavioral context beyond annotations by explaining what each linting level does (syntax, structure, semantics) and how autoFix works with dryRun preview. This provides practical guidance that annotations alone don't cover.
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 perfectly concise at two sentences that are front-loaded with essential information. Every word earns its place: the first sentence covers purpose and levels, the second covers key features. No wasted words or redundant information.
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 tool's moderate complexity (7 parameters, no output schema), the description provides good context about linting behavior and features. With annotations covering safety aspects and schema covering parameters, the description focuses appropriately on operational context. It could slightly improve by mentioning typical output or error scenarios, but is largely complete.
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 input schema already documents all 7 parameters thoroughly. The description mentions 'levels' and 'autoFix with dryRun preview' which map to the 'level' and 'autoFix/dryRun' parameters, but doesn't add significant meaning beyond what the schema provides. The baseline of 3 is appropriate when schema does the heavy lifting.
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 verb ('Lint') and resource ('AHK v2 scripts'), specifying the exact programming language and version. It distinguishes from siblings like AHK_Analytics or AHK_Analyze by focusing specifically on linting with defined levels, rather than general analysis or other operations.
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 clear context for when to use this tool by explaining the three linting levels (fast, standard, thorough) and the autoFix/dryRun features. However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the many sibling tools, which would be needed for a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_LSPARead-onlyIdempotent
Provides LSP-like analysis and auto-fixing for AutoHotkey v2 code. Accepts direct code or a file path (falls back to active file).
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | The AutoHotkey v2 code to analyze or fix | |
| filePath | No | Path to .ahk file to analyze (defaults to active file when code omitted) | |
| mode | No | Mode of operation: analyze (default) or fix | analyze |
| fixLevel | No | Aggressiveness of fixes (only for mode="fix") | safe |
| autoFix | No | Automatically apply fixes (legacy parameter, use mode="fix") | |
| returnFixedCode | No | Return the fixed code in the output (legacy parameter) | |
| showPerformance | No | Show performance metrics (legacy parameter) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating this is a safe, repeatable operation. The description adds useful context about the 'falls back to active file' behavior and mentions 'auto-fixing' capabilities, but doesn't provide additional behavioral details like performance characteristics, error handling, or what 'LSP-like' specifically entails beyond what's in the schema.
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 concise with just two sentences that efficiently convey the tool's purpose and main input options. Every word earns its place, and the information is front-loaded with the core functionality stated first followed by implementation 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?
Given the tool's complexity (7 parameters, analysis/fixing operations) and lack of output schema, the description is somewhat minimal. While annotations cover safety aspects and the schema documents parameters well, the description could better explain what 'LSP-like analysis' entails, what types of fixes are available, or what the output format looks like for this non-trivial 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 description coverage, the schema thoroughly documents all 7 parameters including their purposes, defaults, and constraints. The description adds minimal parameter semantics by mentioning 'Accepts direct code or a file path', which corresponds to the 'code' and 'filePath' parameters, but doesn't provide additional context beyond what the schema already covers.
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 tool provides 'LSP-like analysis and auto-fixing for AutoHotkey v2 code', specifying both the action (analysis/fixing) and target resource (AutoHotkey v2 code). It distinguishes from siblings like AHK_Analyze and AHK_Lint by mentioning 'auto-fixing' capability, though the distinction could be more explicit.
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 some usage context by mentioning it 'Accepts direct code or a file path (falls back to active file)', which helps understand input options. However, it doesn't explicitly state when to use this tool versus alternatives like AHK_Analyze, AHK_Lint, or AHK_Workflow_Analyze_Fix_Run, leaving the agent to infer based on the 'auto-fixing' capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Process_RequestCDestructive
Ahk process request Process user requests that contain file paths and instructions for AutoHotkey scripts
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Multi-line input containing file path and instructions | |
| autoExecute | No | Automatically execute detected actions | |
| defaultAction | No | Default action if not specified | auto |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description doesn't add meaningful behavioral context beyond what annotations provide. Annotations indicate destructiveHint=true, which already warns of potential destructive effects. The description mentions 'process' and 'execute detected actions', aligning with the destructive hint but not elaborating on specific risks (e.g., file modifications, system changes). No additional context like rate limits or auth needs is provided.
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 brief and front-loaded with the core purpose in two sentences. However, the first sentence 'Ahk process request' is redundant with the tool name and adds no value, slightly reducing efficiency.
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 tool's complexity (processing AutoHotkey scripts with destructive potential), lack of output schema, and many sibling tools, the description is inadequate. It doesn't explain what 'process' entails, expected outcomes, or how it differs from similar tools, leaving significant gaps for an AI agent to understand proper usage.
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%, so parameters are well-documented in the schema itself. The description doesn't add any semantic details about parameters beyond implying they relate to 'file paths and instructions'. This meets the baseline of 3 when schema coverage is high.
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 the tool 'Process user requests that contain file paths and instructions for AutoHotkey scripts', which provides a general purpose (processing requests for AutoHotkey scripts). However, it's vague about what 'process' entails (execution, analysis, etc.) and doesn't distinguish this from sibling tools like AHK_Analyze or AHK_Workflow_Analyze_Fix_Run that might handle similar inputs.
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 is provided on when to use this tool versus alternatives. With many sibling tools (e.g., AHK_Analyze, AHK_File_Edit, AHK_Workflow_Analyze_Fix_Run) that might overlap in functionality, the description offers no context about appropriate use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_PromptsBRead-onlyIdempotent
AHK Prompts Returns a set of built-in AHK v2 prompt templates for code generation and learning.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true, covering safety and idempotency. The description adds that it returns 'built-in' templates, implying no external data or modifications, which provides some context. However, it lacks details on rate limits, authentication needs, or output format, resulting in moderate transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and avoids unnecessary details. It is appropriately sized for a simple tool, though it could be slightly more structured to enhance clarity.
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 tool has 0 parameters, annotations for safety, but no output schema, the description is somewhat complete but lacks details on the return format (e.g., structure of templates). It adequately covers the basic function but could benefit from more context about the output.
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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not mention parameters, which is appropriate, earning a baseline score of 4 for not introducing confusion or redundancy.
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 the tool 'Returns a set of built-in AHK v2 prompt templates for code generation and learning,' which specifies the verb ('Returns') and resource ('built-in AHK v2 prompt templates'). However, it does not differentiate from sibling tools like AHK_Doc_Search or AHK_Tools_Search, which might also return information, making the purpose somewhat vague in 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?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, leaving the agent without direction on its appropriate application among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_SettingsDRead-only
Ahk settings Manage tool settings and enable/disable features
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action to perform | get |
| tool | No | Tool name for enable/disable actions | |
| settings | No | Settings to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, but the description mentions actions like 'enable/disable features' and the schema includes actions like 'set,' 'enable_tool,' 'disable_tool,' etc., which clearly imply write operations. This creates a direct contradiction between the description's implication of mutability and the annotation's declaration of read-only behavior. This is a serious inconsistency that could mislead an agent.
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 brief (two short lines) but under-specified rather than efficiently concise. While it doesn't waste words, it fails to provide essential information that would help an agent understand when and how to use this tool. The structure is basic with no front-loading of critical information.
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 tool with 3 parameters (including a complex nested object), no output schema, and contradictory annotations, the description is inadequate. It doesn't explain what 'settings' actually controls, how actions interact, what the tool returns, or how it differs from similar tools. The combination of vague purpose, missing guidelines, and annotation contradiction leaves significant gaps in understanding.
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 already documents all parameters thoroughly. The description adds no additional parameter information beyond what's in the schema. The baseline score of 3 is appropriate since the schema does the heavy lifting, though the description doesn't compensate with any extra context about parameter usage or relationships.
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 'Ahk settings Manage tool settings and enable/disable features' is tautological - it essentially restates the tool name 'AHK_Settings' with minimal elaboration. While it mentions 'manage tool settings and enable/disable features,' this is too vague to clearly distinguish this tool from its many siblings (like AHK_Config, AHK_File_Edit, etc.). It lacks a specific verb+resource combination that would make the purpose unambiguous.
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. With 30+ sibling tools including AHK_Config (which might overlap with settings management), there's no indication of when this tool is appropriate versus other configuration-related tools. No prerequisites, exclusions, or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Smart_OrchestratorBDestructive
Orchestrates AHK file operations with smart caching. Chains detect→analyze→view/edit. Operations: view, edit, analyze.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | High-level description of what you want to do (e.g., "edit the _Dark class checkbox methods") | |
| filePath | No | Optional: Direct path to AHK file (skips detection if provided) | |
| targetEntity | No | Optional: Specific class, method, or function name to focus on (e.g., "_Dark", "_Dark.ColorCheckbox") | |
| operation | No | Operation type: view (read-only), edit (prepare for editing), analyze (structure only) | view |
| forceRefresh | No | Force re-analysis even if cached data exists | |
| validate | No | Validate file syntax before edit. Blocks if errors found. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations include destructiveHint: true, indicating potential destructive operations. The description adds context by specifying 'smart caching' and the chaining workflow, which helps clarify behavior beyond the annotation. However, it doesn't detail what exactly is destructive (e.g., file modifications) or other traits like rate limits, so it's not fully comprehensive.
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 brief and front-loaded with key concepts (orchestration, caching, chaining), but the sentence 'Operations: view, edit, analyze.' is redundant given the schema and could be omitted. Overall, it's efficient but has minor 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?
Given the tool's complexity (6 parameters, destructive hint, no output schema), the description is somewhat incomplete. It covers the orchestration aspect but lacks details on output format, error handling, or how the chaining works in practice. With no output schema, more context on results would be helpful, making it adequate but with 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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value by listing operations (view, edit, analyze) which are already in the schema's enum, but it doesn't provide additional meaning or usage examples beyond what the schema offers, aligning with the baseline for high 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 states the tool 'orchestrates AHK file operations with smart caching' and 'chains detect→analyze→view/edit', which provides a general purpose but lacks specificity about what resources it acts on or how it differs from siblings like AHK_File_View or AHK_File_Edit. It lists operations but doesn't clearly define the verb+resource combination, making it somewhat vague.
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 mentions chaining detect→analyze→view/edit, which implies a workflow context, but it does not provide explicit guidance on when to use this tool versus the many sibling tools (e.g., AHK_File_View, AHK_File_Edit, AHK_Analyze). There are no alternatives named or exclusions stated, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_THQBY_Document_SymbolsARead-onlyIdempotent
Document symbols via THQBY AutoHotkey v2 LSP (vscode-autohotkey2-lsp). Returns classes, methods, functions, variables, hotkeys, and labels using the external LSP server. Accepts direct code or a file path (falls back to active file).
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | AutoHotkey v2 source code to analyze | |
| filePath | No | Optional file path for better symbol resolution (.ahk) | |
| timeoutMs | No | Timeout in milliseconds (default 15000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, repeatable read operation. The description adds useful context beyond annotations: it specifies the external LSP server used (THQBY AutoHotkey v2 LSP), lists the types of symbols returned, and describes fallback behavior. However, it does not disclose potential limitations like error handling or server dependencies.
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 appropriately sized and front-loaded, with two sentences that efficiently convey purpose and usage. Every sentence adds value: the first states what the tool does and the LSP server, the second explains input options and fallback, with 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?
Given the tool's moderate complexity (3 parameters, no output schema), the description is mostly complete. It covers the purpose, LSP context, symbol types, and input handling. However, it lacks details on the return format (e.g., structure of symbols) and potential errors, which would be helpful since there is no output schema. Annotations provide safety context, but more behavioral info could enhance completeness.
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%, so the input schema fully documents the parameters (code, filePath, timeoutMs). The description adds minimal semantic value beyond the schema: it implies that code or filePath can be used for analysis and mentions the fallback, but does not clarify parameter interactions or usage details. Baseline 3 is appropriate as the schema carries the burden.
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 ('returns classes, methods, functions, variables, hotkeys, and labels') and resource ('document symbols'), using the verb 'returns' to indicate retrieval. It distinguishes this tool from siblings by specifying it uses the THQBY AutoHotkey v2 LSP server, unlike general analysis or file tools in the list.
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 clear context for when to use this tool: to extract symbols from AutoHotkey v2 code via an external LSP server. It mentions fallback behavior ('falls back to active file'), but does not explicitly state when not to use it or name alternatives among the sibling tools, such as AHK_Analyze or AHK_Lint, which might overlap in analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Tools_SearchARead-onlyIdempotent
Efficiently discover available AHK tools without loading all 35+ tool definitions upfront. Progressive tool discovery reduces initial token usage from 17,500-70,000 tokens to 50-1,000 tokens based on detail level.
Examples: • List all file tools: { category: "file", detailLevel: "names" } - Returns only tool names (~50 tokens) • Search for analysis tools: { category: "analysis", detailLevel: "summary" } - Returns names + brief descriptions (~200 tokens) • Find tools with keyword: { keyword: "edit", detailLevel: "summary" } - Returns matching tools • Get full details: { category: "file", detailLevel: "full" } - Returns complete tool definitions (~1000+ tokens)
Categories:
file: File operations (view, edit, create, detect)
analysis: Code analysis and diagnostics
execution: Script running and debugging
docs: Documentation search and context
library: Library management (list, info, import)
system: System configuration and settings
Detail Levels:
names: Just tool names (minimal tokens)
summary: Names + brief descriptions (medium tokens)
full: Complete tool definitions with all parameters (high tokens)
Use Cases: • Initial exploration: Use "names" or "summary" to see what's available • Targeted search: Use keyword to find specific functionality • Full details: Use "full" only when you need complete parameter schemas
See also: AHK_Config (system configuration), AHK_Analytics (usage analytics)
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Tool category to search | all |
| keyword | No | Keyword to search in tool names and descriptions | |
| detailLevel | No | Level of detail: names (~50 tokens), summary (~200 tokens), full (~1000+ tokens) | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and idempotent operations, which the description aligns with by focusing on discovery/search. The description adds valuable context beyond annotations: token usage estimates (50-1,000 tokens), progressive loading benefits, and detail level impacts, though it doesn't cover rate limits or error behaviors.
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 well-structured with clear sections (Examples, Categories, Detail Levels, Use Cases), but it includes some redundant information like repeating detail level token estimates. Most sentences are purposeful, though it could be slightly more streamlined.
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 tool's complexity (search/discovery with token optimization) and lack of output schema, the description is mostly complete. It explains the tool's role, parameters, and usage contexts effectively, but doesn't detail the exact format of search results or error handling.
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 input schema already documents all parameters thoroughly. The description provides examples and categorizations that reinforce parameter usage but doesn't add significant semantic value beyond what's in the schema, meeting the baseline for high 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 clearly states the tool's purpose: 'Efficiently discover available AHK tools without loading all 35+ tool definitions upfront.' It specifies the verb ('discover') and resource ('AHK tools'), and distinguishes it from siblings by explaining its role in progressive tool discovery versus direct tool execution.
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 explicit guidance on when to use this tool versus alternatives. It includes 'Use Cases' section detailing scenarios like 'Initial exploration', 'Targeted search', and 'Full details', and references sibling tools like 'AHK_Config' and 'AHK_Analytics' for related but distinct purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_VSCode_OpenARead-only
Open the most recently edited AutoHotkey file (or a specified file) in VS Code. Defaults to the last edited file recorded by MCP and falls back to the active file. Supports WSL environments and can target a specific workspace window.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | No | File path to open (defaults to last edited file, then active file) | |
| line | No | Line number to reveal (1-based) | |
| column | No | Column number to reveal (1-based) | |
| reuseWindow | No | Reuse the existing VS Code window | |
| wait | No | Wait for VS Code to exit | |
| workspaceFolder | No | Target VS Code workspace folder - opens file in the window with this folder open |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and open-world hints, but the description adds valuable behavioral context: it explains the fallback logic (defaults to last edited file, then active file), mentions WSL environment support, and describes workspace targeting. No contradiction with annotations exists.
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 front-loaded with the core purpose in the first sentence, followed by additional context in a second sentence. Every word serves a purpose, with no redundant information, making it highly efficient and well-structured.
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 tool's moderate complexity (6 parameters, no output schema) and rich annotations, the description is mostly complete. It covers purpose, default behavior, and environmental support, but could benefit from mentioning error handling or confirmation of success, though annotations help mitigate this gap.
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%, so the schema fully documents all 6 parameters. The description mentions 'specified file' and 'workspace window' which align with filePath and workspaceFolder parameters, but adds no significant semantic details beyond what the schema provides, meeting the baseline for high 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 clearly states the verb ('Open') and resource ('AutoHotkey file in VS Code'), specifies the default behavior ('most recently edited file'), and distinguishes it from siblings like AHK_File_Edit or AHK_File_View by focusing on VS Code integration and workspace targeting.
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 clear context for when to use this tool (opening AHK files in VS Code with fallback logic) and mentions support for WSL environments and workspace windows, but does not explicitly state when not to use it or name alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_VSCode_ProblemsBRead-onlyIdempotent
Ahk vscode problems Reads a VS Code Problems list (from file or provided JSON) and summarizes AutoHotkey LSP diagnostics.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Path to a VS Code Problems JSON file | |
| content | No | Raw JSON string of VS Code Problems | |
| severity | No | Filter by severity | all |
| fileIncludes | No | Substring filter for resource path | |
| ownerIncludes | No | Substring filter for owner | |
| originIncludes | No | Substring filter for origin | |
| limit | No | Max results in summary | |
| format | No | Output format | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, repeatable read operation. The description adds context about reading from 'file or provided JSON' and summarizing diagnostics, which clarifies the tool's behavior beyond annotations. However, it doesn't detail aspects like rate limits, error handling, or output format specifics, limiting additional value.
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 brief and front-loaded, consisting of two sentences that directly state the tool's purpose. There's no unnecessary information or repetition. However, it could be slightly more structured, such as by explicitly separating input sources from the summarization action, but it remains efficient overall.
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 tool's moderate complexity (8 parameters, no output schema), the description is adequate but incomplete. It covers the core purpose but lacks details on output format, error cases, or how it integrates with sibling tools. Annotations provide safety context, but more behavioral guidance would enhance completeness for effective agent use.
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%, with all 8 parameters well-documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, such as explaining interactions between 'path' and 'content' or the meaning of 'summary' vs 'raw' format. Baseline 3 is appropriate when the schema handles parameter documentation effectively.
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 tool's purpose: 'Reads a VS Code Problems list... and summarizes AutoHotkey LSP diagnostics.' It specifies the verb ('reads' and 'summarizes'), resource ('VS Code Problems list'), and scope ('AutoHotkey LSP diagnostics'). However, it doesn't explicitly differentiate from sibling tools like AHK_Lint or AHK_LSP, which might also handle diagnostics, so it doesn't reach the highest score.
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. It doesn't mention sibling tools like AHK_Lint or AHK_LSP, which could be related to diagnostics, nor does it specify prerequisites or contexts for usage. This leaves the agent without clear direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AHK_Workflow_Analyze_Fix_RunADestructive
Analyze→fix→verify→run workflow in one call. Fix types: syntax, style, performance, all. Use dryRun to preview, summaryOnly for minimal tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Path to the AHK file to analyze, fix, and optionally run | |
| autoFix | No | Automatically apply suggested fixes | |
| runAfterFix | No | Run the script after fixing (requires AutoHotkey v2 installed) | |
| fixTypes | No | Types of fixes to apply | |
| dryRun | No | Preview changes without applying them | |
| summaryOnly | No | Return only summary, not detailed analysis (minimal tokens) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations include destructiveHint: true, indicating potential data modification. The description adds valuable context beyond this by specifying the workflow steps (analyze, fix, verify, run) and the purpose of dryRun and summaryOnly parameters, which help the agent understand operational behavior. However, it does not mention rate limits, authentication needs, or detailed error handling.
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 highly concise and front-loaded, with two sentences that efficiently convey the core functionality and key usage tips. Every sentence adds value without redundancy, making it easy for an agent to quickly grasp the tool's purpose and important 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 the tool's complexity (multi-step workflow with 6 parameters) and the presence of annotations (destructiveHint: true) but no output schema, the description is reasonably complete. It covers the workflow, fix types, and key parameters, though it could benefit from more detail on output format or error cases to fully compensate for the lack of output schema.
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%, so the schema fully documents all 6 parameters. The description adds minimal semantics by mentioning dryRun and summaryOnly, but does not provide additional meaning beyond what the schema already describes (e.g., it doesn't explain interactions between parameters like autoFix and dryRun). Baseline 3 is appropriate as the schema handles most of the documentation burden.
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 tool performs an 'Analyze→fix→verify→run workflow in one call' with specific fix types (syntax, style, performance, all), distinguishing it from simpler analysis or editing tools in the sibling list like AHK_Analyze or AHK_File_Edit. It specifies a multi-step automated process rather than single operations.
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 explicitly provides usage guidance with 'Use dryRun to preview, summaryOnly for minimal tokens,' indicating when to use these parameters for specific outcomes. It distinguishes this comprehensive workflow tool from alternatives like AHK_Lint (likely for linting only) or AHK_File_Edit (for manual edits).
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.
32 tool updates
v2.0.0- First observed
AHK_Analytics - First observed
AHK_Analyze - First observed
AHK_Cloud_Validate - First observed
AHK_Config - First observed
AHK_Context_Injector - First observed
AHK_Debug_Agent - First observed
AHK_Debug_DBGp - First observed
AHK_Doc_Search - First observed
AHK_File_Active - First observed
AHK_File_Create - First observed
AHK_File_Detect - First observed
AHK_File_Edit - First observed
AHK_File_Edit_Advanced - First observed
AHK_File_Edit_Small - First observed
AHK_File_List - First observed
AHK_File_Recent - First observed
AHK_File_View - First observed
AHK_Library_Import - First observed
AHK_Library_Info - First observed
AHK_Library_List - First observed
AHK_Library_Search - First observed
AHK_Lint - First observed
AHK_LSP - First observed
AHK_Process_Request - First observed
AHK_Prompts - First observed
AHK_Settings - First observed
AHK_Smart_Orchestrator - First observed
AHK_THQBY_Document_Symbols - First observed
AHK_Tools_Search - First observed
AHK_VSCode_Open - First observed
AHK_VSCode_Problems - First observed
AHK_Workflow_Analyze_Fix_Run
TDQS
Multiple tools have overlapping purposes, causing significant ambiguity. For example, AHK_File_Edit, AHK_File_Edit_Advanced, AHK_File_Edit_Small, and AHK_Smart_Orchestrator all handle file editing with unclear distinctions, and AHK_Analyze, AHK_Lint, AHK_LSP, and AHK_Cloud_Validate all perform code analysis or validation. The descriptions often cross-reference each other, indicating poor separation of concerns.
Tool names follow a highly consistent pattern throughout, using a clear 'AHK_' prefix followed by a descriptive noun or noun phrase (e.g., AHK_File_Edit, AHK_Doc_Search, AHK_Library_List). There are no deviations in style (e.g., no camelCase or mixed conventions), making the naming predictable and easy to parse.
With 32 tools, the count is excessive for the domain of AutoHotkey script management, leading to bloat and redundancy. Many tools could be consolidated (e.g., multiple file editors and analyzers), and the high number increases cognitive load without clear added value, indicating poor scoping.
The tool set covers a broad range of operations for AutoHotkey v2 scripting, including file management, code analysis, debugging, documentation, library handling, and integration with VS Code. Minor gaps exist, such as no explicit tool for deleting files or managing script execution beyond debugging, but core workflows are well-supported.
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
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA comprehensive utility MCP server that enables AI assistants to execute system commands, manage files, integrate with Google Sheets and Tasks, perform AI-powered text processing, and load dynamic prompts from markdown files.MIT
- AlicenseAqualityAmaintenanceMCP server for Hotkeyless AHK HTTP API. It lets your agent control your whole computer using hotkeys.42MIT
- AlicenseNot gradedqualityCmaintenanceLocal MCP server bridging ChatGPT Web to local tools for file, shell, git, test, and process management with secure policy controls.MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for advanced PowerShell integration with AI agents, enabling autonomous script execution, code analysis, and IntelliSense.3MIT
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/TrueCrimeDev/ahk-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server