qwen-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@qwen-mcpinitialize a continuity memory project for my app"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Qwen-MCP — All-in-One MCP Server & Continuity Memory
A comprehensive, token-optimized Model Context Protocol (MCP) server that equips AI agents (Claude, ChatGPT, Qwen Chat, Cursor, Antigravity, etc.) with local system capabilities and cross-session Continuity Memory.
Features
1. Continuity Memory Suite (Cross-AI Session Persistence)
Enables seamless handoffs across AI clients (Claude web, ChatGPT, Qwen Chat) when quotas run out mid-task:
memory_init: Initializes/loads project workspace under~/.continuity/projects/<project_id>/and returnsbriefing.md.memory_read: Readsbriefing(default), specificsection(architecture,todo,file-map,decisions), orfulldump.memory_update: Updates memory sections incrementally (replaceorappend).memory_log: Appends timestamped events to append-onlylog.jsonl.memory_compact: Deterministic server-side compaction of historical logs into structuredbriefing.md.memory_list: Lists all active projects and token estimates.memory_status: Token breakdown and client tracking.
2. Filesystem & Navigation
read_file: Read file contents with optional line range.write_file: Write/overwrite files with automatic parent directory creation.append_file: Append content to files.delete_file: Delete files safely.copy_file: Copy files with overwrite protection.list_directory: Tree-view directory listing with file sizes and directory counts.create_directory: Recursive directory creation.delete_directory: Safe directory deletion (recursive support).rename: Move or rename files/directories.get_file_info: Metadata (size, permissions, timestamps).file_exists: Check path existence and type.search_files: Search text patterns across files.find_files: Find files/directories by glob or regex.
3. Command Execution & System Monitoring
execute_command: Execute PowerShell (Windows) or Bash (Unix) commands with streaming logs and configurable timeouts (default 10 min).list_processes: List running processes with PIDs and memory usage.kill_process: Terminate processes by PID.list_active_ports: Inspect listening TCP network ports.get_system_info: Inspect CPU, RAM, OS, uptime, and disk usage.get_env/set_env: Read and update session environment variables.
4. Desktop & GUI Automation
take_screenshot: Capture PNG screenshots of active monitors.mouse_move/mouse_click: Coordinate-based cursor movement and clicking.keyboard_type: Simulated keystroke typing into active windows.read_clipboard/write_clipboard: System clipboard text access.send_notification: Native desktop notification alerts.http_request: Fetch APIs (GET, POST, PUT, DELETE, PATCH) with formatted responses.
5. Bundled Skills (MCP Prompts & Resources)
Bundles the
continuity-memoryskill directly inskills/continuity-memory/SKILL.md.Exposes skills over the MCP protocol as MCP Prompts (
continuity-memory) and MCP Resources (skill://continuity-memory).
Related MCP server: darkside-mcp
Quick Start
Installation
git clone https://github.com/YOUSEFISLAM-dev/qwen-mcp.git
cd qwen-mcp
npm install
npm run buildRunning
node dist/index.jsConfiguration
Environment Variable | Default | Description |
|
| Semicolon/comma separated allowed directory roots for filesystem tools (e.g. |
|
| Storage directory for Continuity Memory projects. |
|
|
|
Client Integration Examples
Qwen Chat / Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"qwen-mcp": {
"command": "node",
"args": ["C:/path/to/qwen-mcp/dist/index.js"],
"env": {
"ALLOWED_ROOT": "C:/Users/youse",
"LOG_LEVEL": "INFO"
}
}
}
}Testing
# Run test suite (69 tests across 12 suites)
npm test
# Build TypeScript
npm run buildLicense
MIT
Available Tools
37 toolsappend_fileA
Append content to file. Creates if missing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path. | |
| content | Yes | Content to append. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral burden. It does disclose an important side effect: the file is created if missing. However, it does not mention permissions, error conditions, whether parent directories are created, or the return value, which are relevant for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundant words. The core action 'Append content to file' is front-loaded, and the edge case behavior 'Creates if missing' is a valuable addition without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description covers the essential behavior and the missing-file case. Still, it omits failure modes, permission requirements, and whether the operation returns anything, which an agent may need when invoking the tool safely in a filesystem 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 parameters path and content are already fully described by the schema. The description does not add param-specific meaning beyond confirming the content is appended, so 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 a specific verb and resource: 'Append content to file.' This clearly distinguishes it from the sibling write_file (which overwrites) and read_file (which reads). The additional note 'Creates if missing' confirms its purpose for both existing and new files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context: use this tool when content should be added to a file, and it can create the file if absent. However, it does not explicitly contrast with write_file or state when not to use this tool, leaving the boundary to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_fileB
Copy file from source to destination.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source path. | |
| overwrite | No | Overwrite if exists. Default: false. | |
| destination | Yes | Destination path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full responsibility for behavioral disclosure. It simply restates the copy semantics without addressing side effects like existing destination handling when overwrite is false, error conditions, whether parent directories are created, or what the operation returns. This is insufficient for an agent to predict failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler: 'Copy file from source to destination.' It is front-loaded with the core action and resource, and every word contributes to meaning. Appropriate for a simple operation.
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 no output schema and no annotations, the description is too sparse to be complete. It omits return value, behavior when destination exists (especially given the overwrite parameter default), directory creation, and any permissions or side effects. While the operation is simple, an agent still needs these details to invoke it confidently.
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 baseline is 3 even though the tool description adds no parameter-level detail. Each parameter already has a brief description in the schema (source path, destination path, overwrite flag with default), but the tool description itself does not enrich the semantics beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'copy' with the resource 'file' and names the source and destination, leaving no ambiguity about the operation. It is distinct from sibling tools like write_file, rename, and delete_file because 'copy' semantically implies duplicating content rather than creating, moving, or removing it.
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 copy_file versus alternatives. It does not mention when copy is preferred over rename or write_file, nor does it state any prerequisites or typical use cases. An agent is left to infer the tool's niche solely from its name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_directoryA
Create directory (and parents).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Directory path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the 'and parents' recursive behavior, which is valuable, but it does not disclose behavior when the directory already exists, permission requirements, or error cases.
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 front-loaded, with no wasted words. The core behavior and the key parent-creation nuance are both packed into a single short sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter tool with full schema coverage, the description is largely adequate. It captures the essential recursive behavior, though it omits edge-case behavior such as idempotency when the directory exists.
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%, and the single 'path' parameter already has a clear description: 'Directory path.' The tool description adds context about parent creation but does not add deeper semantics about path format, restrictions, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create') and resource ('directory'), and clarifies the recursive parent-creation behavior. This clearly distinguishes it from file-oriented siblings like write_file and from delete_directory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. Usage is implied by the tool's name and description, but it does not mention alternatives, prerequisites, or conflicts with existing directories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_directoryA
Delete directory. Set recursive=true for non-empty.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Directory path. | |
| recursive | No | Delete non-empty. Default: false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It mentions the recursive requirement but does not disclose that deletion is likely irreversible, whether permissions are required, what happens if recursive is false on a non-empty directory, or any side effects. The word 'Delete' gives some signal, but a destructive tool needs more transparency.
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 short sentences with no redundant information. The core action and the key parameter behavior are front-loaded, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description plus schema covers the basic invocation. However, because this is a destructive operation with no annotations and no output schema, a sentence about permanence, error behavior, or safety would have made it meaningfully more 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?
The input schema already documents both parameters fully (100% coverage). The description adds value by giving a concrete rule for when to set recursive=true, which goes slightly beyond the schema's static description. Path remains self-explanatory.
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 a specific verb ('Delete') and resource ('directory'), which clearly separates it from sibling tools like delete_file, create_directory, and copy_file. An agent can tell immediately what operation is being exposed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage hint for the recursive parameter ('Set recursive=true for non-empty'), which helps the agent decide how to invoke it. However, it does not explicitly state when to prefer this tool over alternatives such as delete_file, nor does it mention edge cases like failing on non-empty directories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fileC
Delete a file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Delete a file' only restates the tool's name and gives no information about irreversibility, permissions, directory handling, or failure behavior—critical gaps for a destructive operation.
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, waste-free sentence, appropriately compact for a one-parameter tool. It is front-loaded with the action, though it is too terse to add substantial value beyond the title.
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 absence of annotations and output schema, a one-sentence description is insufficient for a destructive tool. It omits permanence, whether directories are supported, error semantics, and any return value, leaving important operational details unaddressed.
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 schema already documents the sole parameter with 100% coverage, so the description adds no additional parameter-level meaning. The baseline of 3 applies because the schema handles the semantic 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 uses a clear verb and resource ('Delete a file'), identifying the core operation. It differentiates from siblings like delete_directory by specifying 'file', though it is essentially a restatement of the tool name.
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?
There is no guidance about when to use this tool versus alternatives such as delete_directory, rename, or copy_file. No prerequisites, exclusions, or situational cues are provided beyond the obvious implication of the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_commandB
Run a shell command in an allowed directory. PowerShell on Windows, bash on Unix.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory. | |
| command | Yes | Command to run. | |
| timeout | No | Timeout ms. Default: 600000 (10min). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the platform shell and the 'allowed directory' scope, but it does not mention that commands can mutate the system, what permissions are used, how output/errors are returned, or whether execution is sandboxed.
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 short sentences with the core action front-loaded and no filler. The platform detail earns its place by telling the agent which shell syntax to expect.
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 powerful command-execution tool with no annotations and no output schema, this description is too thin. It omits return format, exit-code behavior, stderr handling, default working directory, timeout behavior, and what 'allowed directory' actually means in practice.
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 command, cwd, and timeout each described in the input schema. The prose adds little beyond the word 'shell command,' so it does not compensate for or improve on the schema, but it also does not need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Run') and resource ('shell command') and adds platform context (PowerShell on Windows, bash on Unix). It is clearly distinct from the sibling file, process, and system tools, even without naming an alternative.
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?
There is no guidance about when to choose this tool over alternatives, nor any exclusions or prerequisites. The phrase 'allowed directory' implies a restriction but does not explain when a shell command is the right choice versus a more specific sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_existsB
Check if path exists and its type.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It states the core behavior (checking existence and type) but does not explain the return format, how missing paths are handled, or whether it is strictly read-only. It is minimally transparent but not 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 a single short sentence with no filler. It front-loads the verb and resource and communicates the two key outputs efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description is adequate but incomplete. The absence of an output schema means the return value/type is not explicitly documented, and there is no usage context relative to sibling tools. An agent could call it correctly but might not know exactly what it receives back.
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 the path parameter described as 'Path to check.' The tool description adds no new semantic detail beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('check') and identifies the resource ('path'), plus the two key outcomes: existence and type. It is clear about the tool's purpose, though it does not explicitly distinguish itself from get_file_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus siblings like get_file_info, list_directory, or find_files. The description implies simple existence checking but provides no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_filesB
Find files/dirs by name pattern. Supports wildcards and regex.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter: file|directory|any. Default: any. | |
| directory | Yes | Directory to search. | |
| max_results | No | Max results. Default: 50. | |
| name_pattern | Yes | Name pattern (wildcards or regex). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It discloses wildcard and regex matching, but omits key behaviors such as whether search is recursive, whether hidden files are included, case sensitivity, and what the result structure or limits are. The description is too thin to fully inform an agent without 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?
Two short sentences with no filler. The core action and matching capability are front-loaded, making the description 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?
The description plus schema is minimally viable for calling the tool, but lacks important context such as recursion behavior, default search scope, and how results are returned. Without an output schema or annotations, these gaps leave the agent to make assumptions about expected behavior.
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 four parameters (type, directory, max_results, name_pattern). The description adds little beyond restating name-pattern matching, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a clear action ('Find') and resource ('files/dirs by name pattern'), and notes wildcard/regex support. It does not explicitly differentiate from sibling search_files, but the focus on name-pattern matching is specific enough to identify the tool's core purpose.
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 given on when to use find_files versus search_files, list_directory, or other sibling tools. The description implies usage for name-based lookup, but does not state exclusions or alternatives, leaving the agent to infer selection logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_envA
Read environment variable(s). Omit name for all.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Variable name. Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It clearly signals a non-mutating read and explains the key behavior of omitting the name to retrieve all variables, which is the central operational trait.
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 concise sentences with no filler. The verb and target are front-loaded, and the optional-name behavior is stated immediately and efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description adequately covers invocation semantics. It could mention return format or missing-variable behavior, but these are minor gaps given the low 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?
Schema description coverage is 100%, so the schema already fully documents the single parameter. The description repeats the 'Omit for all' guidance but adds no new detail about format, return values, or error 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 uses a specific verb, 'Read', and a clear resource, 'environment variable(s)'. It also disambiguates from the sibling set_env by signaling a read-only operation, so an agent can tell them apart.
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 read-versus-set distinction is implied by the description and the sibling tool name, but there is no explicit statement of when to use this tool versus alternatives. It provides no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_infoA
Get file/directory metadata: size, type, timestamps, permissions.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does communicate the read-only nature by saying 'get metadata' and lists what will be returned, but it does not disclose behavior for missing paths, permission errors, symlinks, or how directories are handled.
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?
One sentence, front-loaded with the operation and resource, and every phrase adds information. The metadata fields are compactly listed without redundancy or filler.
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 single-parameter metadata getter, the description covers the input and the returned categories. It lacks exact response format and error behavior, but the tool is simple enough that the core invocation context is adequately complete without an 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 documents the path parameter. The description adds slight value by clarifying that the path can point to either a file or a directory, but it does not specify path format, required vs optional, or default behavior beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and a specific resource ('file/directory metadata'), and enumerates the concrete attributes returned: size, type, timestamps, permissions. This clearly distinguishes it from siblings like read_file, which returns content, and list_directory, which returns entries.
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 when metadata rather than content is needed, but it never explicitly names alternatives or states when not to use this tool. An agent can infer the distinction from 'metadata,' but explicit routing guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_infoB
Get system info: OS, CPU, RAM, disk.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It implies read-only behavior through the verb 'Get' but does not explicitly state that it has no side effects, does not mention the return format, and gives no platform-specific caveats or potential failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one short, front-loaded sentence that names the action and the key data categories with no filler or repetition. It is as concise as possible for a no-argument system information tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool this is minimally workable: an agent knows what the tool does and what high-level data to expect. However, because there is no output schema, the missing return-format description, error behavior, and platform details leave meaningful gaps for interpreting the result.
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 zero parameters, which earns a baseline of 4. The listed output categories in the description add mild value by setting expectations for the kind of data returned, and there are no parameter semantics left undocumented.
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 action ('Get') and the resource ('system info'), and enumerates the returned categories: OS, CPU, RAM, and disk. It is easy to tell this is a read-only system inspection tool, though it does not explicitly contrast itself with overlapping siblings like get_env or list_processes.
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 given about when to prefer this tool over alternatives such as get_env, list_processes, or execute_command. The description simply restates what the tool does and leaves all selection reasoning to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_requestA
Make HTTP request (GET/POST/PUT/DELETE/PATCH) with headers and body.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL. | |
| body | No | Request body. | |
| method | No | HTTP method. Default: GET. | |
| headers | No | Request headers. | |
| timeout | No | Timeout ms. Default: 30000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals that external network requests are made, but it does not disclose side effects, response format, error handling, redirect behavior, authentication requirements, or whether failures are surfaced. For a network-mutating tool this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It conveys the method set and primary capabilities efficiently, and every phrase 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?
The tool has five parameters, a nested object, no annotations, and no output schema, so the description needs to explain more than it does. An agent cannot infer what the tool returns, how timeouts surface, or what side effects a request may have. The tool is only partially described for successful 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?
Schema description coverage is 100%, so the baseline is 3. The description confirms that headers and body are supported, but it adds no semantics beyond the schema's field descriptions. It does not clarify body content-type handling, header encoding, or interaction between method and body.
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 a specific action ('Make HTTP request') and enumerates the supported methods and payload capabilities (headers and body). It clearly identifies the tool's resource without ambiguity and differentiates it from the file, process, memory, and environment siblings.
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 makes the tool's intended use clear: any HTTP request needing method, headers, or body. It does not explicitly name alternatives, but none of the sibling tools serve the same purpose, so no exclusion is necessary. Some guidance on prerequisites or when to prefer this over a shell-based approach would improve it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyboard_typeA
Simulate keyboard typing on active window.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the only source of behavioral information. It states the core behavior (simulating typed keystrokes), but does not disclose details like whether special characters are handled literally, whether the active window must remain focused during typing, or that this can trigger keyboard shortcuts in the target application.
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, front-loaded sentence with no redundant words. Every part contributes to understanding the tool's action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description plus the fully covered schema is nearly complete. The main missing piece is an explicit note that the target window must remain focused and that there is no return value, but the low complexity keeps the gap minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the 'text' parameter is already documented as 'Text to type.' The description adds no extra meaning about encoding, special-character handling, or length limits beyond the schema, so the baseline 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 names a specific verb ('simulate'), a specific resource ('keyboard typing'), and the target context ('active window'), which clearly distinguishes it from pointer-input siblings like mouse_move/mouse_click and from file-writing tools. An agent can immediately know what this tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'on active window' gives implied context: this tool is appropriate only when the intended target is the currently focused GUI window. However, there is no explicit guidance about when to choose this over alternatives such as write_file or write_clipboard, and no mention of the prerequisite that focus must be maintained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kill_processC
Terminate a process by PID.
| Name | Required | Description | Default |
|---|---|---|---|
| pid | Yes | Process ID. | |
| force | No | Force kill (SIGKILL). Default: true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not mention that the default is a forceful SIGKILL (force: true), that termination is irreversible, or that permissions may be required. These are critical traits for a destructive tool.
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, front-loaded sentence with no wasted words. It is concise, though the brevity comes at the cost of omitting important behavioral 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 destructive tool with no annotations and no output schema, a one-sentence description is insufficient. It fails to mention the forceful default behavior, side effects, or safety precautions, leaving an agent underinformed about the consequences of 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?
Schema description coverage is 100%, so the schema already documents pid and force. The description merely restates 'by PID' without adding meaning beyond the schema, so the baseline 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 a specific verb ('Terminate'), resource ('process'), and key parameter (PID), making the core purpose clear. It is distinct from siblings like list_processes, though it does not explicitly name or differentiate against 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?
No guidance is provided about when to use this tool versus alternatives such as execute_command or list_processes. It does not mention prerequisites, process ownership, or conditions under which killing is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_active_portsA
List TCP ports in LISTEN state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does state that the tool is a read-only listing operation scoped to TCP ports in LISTEN state, which is useful context. However, it does not mention output format, privilege requirements, or whether it includes IPv4/IPv6 or associated process 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 a single, compact sentence that front-loads the verb and resource. Every word earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, zero parameters, and straightforward listing behavior, the description is largely sufficient. The only notable gap is the absence of explicit return-value details, but for a simple list operation the output is reasonably inferable.
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 tool has zero parameters, so there is nothing for the description to clarify beyond the input schema. The empty schema already fully describes the invocation surface, and the baseline of 4 applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('TCP ports') and a precise qualifier ('in LISTEN state'). This fully distinguishes it from sibling tools like list_processes or execute_command, and the intent is 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?
There is no guidance on when to use this tool versus alternatives. For example, it does not clarify whether this is preferred over execute_command with netstat, nor does it mention any caveats or prerequisites. The use case must be inferred entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoryB
List directory contents with metadata. Supports recursive listing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Directory path. | |
| max_depth | No | Max recursion depth. Default: 5. | |
| recursive | No | Recurse into subdirs. Default: false. | |
| show_hidden | No | Include hidden entries. Default: false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining behavior. It states recursive support, but that is already visible in the schema. It does not disclose whether this is a read-only operation, what happens on missing paths, whether sorting is applied, or what 'metadata' is included.
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 with no wasted words, and the core purpose is front-loaded. Every sentence contributes meaning without unnecessary elaboration.
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?
The tool has no output schema, so the description should explain what the returned listing contains, but it only says 'with metadata' without specifying which metadata. It also omits default behavior details, error handling, and path semantics, leaving several important usage questions unanswered.
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 four parameters. The description adds no extra parameter meaning beyond repeating the recursive capability, so the baseline 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 operation ('List directory contents') and the resource (a directory), so an agent can understand the basic purpose. It also mentions metadata and recursive listing, which helps. However, it doesn't explicitly differentiate this tool from close siblings like get_file_info or find_files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool—when a directory listing is needed—but provides no guidance about when not to use it or which sibling might be a better alternative. No exclusions or contextual conditions are discussed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_processesA
List running processes with PID, name, and memory.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results. Default: 100. | |
| filter_name | No | Filter by name substring. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adequately signals a read-only operation through the verb 'List' and discloses the returned fields, but it does not mention permissions, whether all system processes are visible, or potential platform-specific behavior. This is acceptable for a simple listing tool but leaves some uncertainty.
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, clear sentence with no filler. It front-loads the core action and resource, then lists the key output attributes, making it easy for an agent 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?
For a simple two-parameter listing tool, the description plus schema covers the essential call information: what it lists, what it returns, and how to filter/limit. The absence of an output schema is partially mitigated by naming the return fields. Minor gaps such as sorting, units for memory, and scope of processes are not critical for basic 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?
Schema description coverage is 100%, so the schema already explains both limit and filter_name. The description adds no additional parameter context, such as how the filter matches or what 'limit' applies to. A baseline score of 3 is appropriate because 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 states a specific verb ('List'), a clear resource ('running processes'), and the output fields (PID, name, memory). It is clearly distinguishable from siblings like kill_process and list_active_ports because it identifies exactly what is being listed.
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 about when to use this tool versus alternatives such as kill_process or list_active_ports. The description implies process inspection but does not mention context, limitations, or when another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_compactC
Run server-side compaction of log and sections into briefing.md.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID. | |
| target_tokens | No | Target token budget for briefing. Default: 800. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full responsibility for disclosing behavior. While it names the operation, it does not disclose whether existing briefing.md is overwritten, whether logs are truncated or deleted, whether compaction is reversible, or what side effects occur. For a mutating operation this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is direct and front-loaded with the key action and target. There is no filler or redundant repetition of the tool name.
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 absence of annotations, no output schema, and the potentially destructive nature of 'compaction', the description is incomplete. It does not clarify the outcome for existing logs/briefing.md, the role of target_tokens beyond the schema, or any operational context needed to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already described in the schema. The description adds no extra parameter meaning beyond the schema, which places it at the baseline of 3.
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 a clear action ('Run server-side compaction') and identifies the resource ('log and sections') and destination ('briefing.md'). It is distinct enough from siblings like memory_store or memory_log, though it doesn't explicitly differentiate itself or explain what 'log and sections' refer to.
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?
There is no guidance on when to use this tool versus alternatives, no preconditions, and no mention of when compaction is appropriate. The agent must infer usage entirely from the name and short description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_initB
Init or load project memory. Call first in any session. Returns briefing.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Unique project ID (e.g. 'pubg-re', 'chat-app'). | |
| project_name | No | Optional human-readable name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions that the tool returns a briefing, but it does not state whether 'init' creates or overwrites project memory, whether the operation is read-only, or what side effects it may have. For a tool that could mutate project memory, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences each convey distinct, relevant information: the action, the timing, and the return value. There is no filler or redundancy, and the most important instruction is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should explain what the 'briefing' contains and any side effects, but it only says 'Returns briefing.' It also does not situate the tool among the many memory_* siblings, leaving an agent with insufficient information to fully anticipate behavior.
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 both parameters. The description adds no additional meaning about how project_id or project_name should be used, so 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 a specific action ('Init or load project memory') and a defining instruction ('Call first in any session'), making the tool's role fairly clear. However, it does not name any sibling tool or explicitly differentiate itself from memory_read/memory_retrieve, which leaves some ambiguity about its exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit temporal guideline ('Call first in any session') that tells an agent when to invoke it. It does not describe when not to use it or name alternative memory tools, so it falls short of a full when/when-not comparison, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_listB
List all known project IDs and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It states the output scope ('all known project IDs and metadata') and 'list' implies a read-only operation, but 'known' is vague and no detail is given about scoping or side-effect guarantees.
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?
A single, front-loaded sentence conveys the entire essence of the tool. Every word earns its place, with no filler or repetition.
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 zero-parameter listing tool, the description tells the agent what will be returned (project IDs and metadata). However, 'known' is undefined, the metadata content is unspecified, and there is no output schema to clarify the return shape, leaving some ambiguity.
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 tool has zero parameters and schema coverage is 100%, so there are no parameter semantics to explain. The baseline for a no-parameter tool is 4, and the description does not need to compensate for any parameter documentation gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the resource ('all known project IDs and metadata'). It is clear enough to differentiate from most memory siblings, though it does not explicitly name a competing tool such as memory_read or memory_status.
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 given on when to use this tool versus alternatives like memory_read or memory_status. The description implies it is for obtaining a project-level overview, but it does not state conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_logA
Append single timestamped event to log. Call frequently after meaningful steps.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional category tags. | |
| event | Yes | One-line event description. | |
| client | No | Optional client identifier (e.g. 'claude', 'chatgpt', 'qwen'). | |
| project_id | Yes | Project ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the tool appends a single timestamped event, implying a non-destructive write. It does not mention return values, failure modes, or idempotency, but for a simple logging operation the core behavior is adequately conveyed.
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, front-loading the main action ('Append single timestamped event to log') and following with concise usage guidance. 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 low-complexity, well-schema'd tool, the description plus schema is largely sufficient. The usage guidance adds practical context. A brief note distinguishing this from memory_store or append_file would improve completeness, but nothing critical is missing.
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 four parameters documented in the input schema. The description adds no parameter-specific detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Append single timestamped event to log.' It is not a tautology and clearly indicates what the tool does. It does not explicitly differentiate from sibling memory/logging tools, but the action and object are concrete enough for a clear understanding.
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 usage context with 'Call frequently after meaningful steps,' telling the agent when to use the tool. It does not mention when not to use it or name alternatives, so it stops short of full explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_readB
Read project memory. Mode: briefing (default) | section | full.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode: briefing | section | full. Default: briefing. | |
| section | No | Section name (architecture | todo | file-map | decisions | custom) if mode=section. | |
| project_id | Yes | Project ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the mode choices and the briefing default, and 'read' implies a non-mutating operation. However, it does not explain what each mode returns, whether section is ignored outside section mode, or what the output looks like.
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 short, front-loaded, and contains no filler. Every clause carries functional information about the tool's purpose and core modes.
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?
The tool is simple and its parameters are fully documented in the schema, but with no annotations and no output schema, the description leaves return shapes and mode-specific behavior underspecified. It is minimally viable but would be more complete with one sentence describing what briefing, section, and full modes return.
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 project_id, mode, and section. The description's mode enumeration mostly repeats the schema, including the briefing default, and adds little semantic value beyond what is already structured.
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 a specific verb ('Read') and resource ('project memory'), and enumerates the three modes. It is clear, but it does not differentiate memory_read from sibling memory tools such as memory_retrieve or memory_list, so it stops short of 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?
No guidance is given about when to use memory_read versus memory_store, memory_retrieve, memory_list, or memory_status. The only usage context is the implied 'read memory' behavior, so an agent cannot tell which sibling to select.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_retrieveC
Retrieve a value by key from persistent memory.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says 'Retrieve a value', which implies a read operation, but it does not describe what happens if the key is missing, whether there are side effects, or whether this tool auto-initializes memory. These are meaningful behavioral unknowns 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 a single efficient sentence that front-loads the main action. There is no filler or repetition of the tool name. It earns a high score for conciseness, though it is slightly under-specified in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter retrieval tool, the description is minimally adequate: an agent can infer the call pattern. However, with no output schema or annotations, the missing-key behavior and return format are left unspecified, and the relationship to 'memory_read' is unaddressed. This leaves noticeable gaps for a complete tool definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter 'key' is already documented in the schema. The description's phrase 'by key' simply restates the parameter's role and adds no additional semantic detail about key format, case sensitivity, or default behavior. Baseline 3 applies because the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Retrieve'), a resource ('value by key'), and the domain ('persistent memory'). It is not a tautology and is understandable at a glance. However, it does not distinguish itself from the sibling 'memory_read', which appears to serve the same retrieval purpose.
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 over alternatives such as 'memory_read', 'memory_list', or 'memory_status'. It also gives no context for when retrieval is appropriate, what prerequisites exist, or whether memory must be initialized first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_statusB
Get token estimates, last compaction, and client info for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description itself must carry the behavioral burden. 'Get' and 'status' imply a non-mutating read, which is useful, but the description does not explicitly state that no state is modified, nor does it clarify whether reading token estimates has any cost or prerequisites.
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?
A single, information-dense sentence that front-loads the action and directly enumerates the three return categories. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool, the description is almost complete: it names the required input and the expected output categories. The phrase 'client info' is vague and there is no mention of how token estimates are computed or what 'client info' includes, so a 4 is appropriate.
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% and the sole parameter 'project_id' is described as 'Project ID.' The description adds no additional meaning beyond that, so the baseline 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?
States a specific verb ('Get') and resource ('token estimates, last compaction, and client info for a project'), which clearly indicates the tool is a status read. It does not explicitly differentiate itself from sibling memory_* tools such as memory_list or memory_log, so it stays at a 4 rather than 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?
No guidance is provided about when to use this tool versus memory_list, memory_log, or memory_retrieve. The description only says what the tool does, leaving the agent to infer the appropriate use case from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_storeC
Store a key-value pair in persistent memory.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key. | |
| value | Yes | Value. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It states that memory is 'persistent,' but it does not disclose overwrite semantics, failure behavior, namespace scope, or any side effects beyond storing.
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 front-loaded sentence with no filler or redundancy. Every word contributes to the core meaning.
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 mutation tool with no annotations and no output schema, the description lacks important operational context: whether storing an existing key overwrites it, what response is returned, and when memory_store is preferred over memory_update. The tool is simple, but the missing overwrite semantics are material for correct 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%, so the baseline is 3. The schema already lists key and value, and the description only adds the conceptual framing of a key-value pair without enriching either parameter's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb ('Store') and resource ('key-value pair in persistent memory'). It is understandable on its own, though it does not explicitly differentiate itself from the sibling memory_update 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 gives no guidance on when to use this tool versus memory_update, memory_retrieve, or other memory-related siblings. There are no exclusions or alternative routing cues, leaving the agent to infer correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_updateC
Update a memory section (architecture|todo|file-map|decisions) in small increments.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode: append | replace. Default: replace. | |
| content | Yes | Content (concise bullets preferred). | |
| section | Yes | Section: architecture | todo | file-map | decisions | custom. | |
| project_id | Yes | Project ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It only says 'update' and 'small increments'; it does not explain append/replace semantics, whether a section is created if missing, side effects, destructive potential, or what a successful update returns.
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, compact sentence with no filler, and it front-loads the verb and resource. It could have used space to distinguish from sibling tools, but as written it is efficient.
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 mutation tool with no annotations, no output schema, and a large set of sibling memory tools, the description is too thin. An agent still cannot infer when to use this tool, how append vs replace behaves, whether content is preserved, or what a successful response looks like.
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 schema covers 100% of the parameters with meaningful descriptions, so the description is not required to repeat parameter details. The description mildly reinforces the section values but adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and the resource 'memory section', and enumerates the four valid sections (architecture, todo, file-map, decisions). However, it does not explicitly differentiate itself from sibling memory tools like memory_store or memory_compact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in small increments' is a weak usage hint, but the description does not say when to use memory_update instead of memory_store, memory_read, memory_compact, or other sibling tools. No exclusions, prerequisites, or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mouse_clickA
Click mouse button at current position.
| Name | Required | Description | Default |
|---|---|---|---|
| button | No | Button: left|right|middle. Default: left. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the action (click), the target (mouse button), the location (current position), and the schema documents default button behavior. It does not detail press/release mechanics or side effects, but for a primitive mouse action this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler. It front-loads the action and immediately clarifies the positional constraint, 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?
For a one-parameter, no-output-schema tool, the description covers the essential behavior: click, which button, and where. It does not mention the dependence on prior mouse positioning or potential UI side effects, but these are reasonable inferences from 'at current position.'
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% coverage with a clear enum and default for the only parameter, so the schema already handles parameter meaning. The description adds no additional parameter detail beyond the schema, but the schema is explicit enough that no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('click') and specific resource ('mouse button') plus the crucial qualifier 'at current position,' which distinguishes it from sibling tools like mouse_move and keyboard_type. An agent can immediately understand what this tool does and when it applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'at current position' implies that the mouse must already be positioned correctly, suggesting mouse_move is a prerequisite, but this is not stated explicitly. No alternatives or when-not-to-use guidance is provided, though the context is clear enough for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mouse_moveA
Move cursor to screen coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X coordinate. | |
| y | Yes | Y coordinate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses the core behavior and the screen-coordinate frame, but it does not mention units, coordinate origin, whether the move is instant or animated, or any side effects such as hover events. For a simple input primitive this is borderline adequate but still minimal.
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?
One short, complete sentence with no filler. The action and target are front-loaded, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter primitive with no output schema and no annotations, the description is minimally viable. But it could do more: explicit distinction from mouse_click, coordinate units/origin, and any environmental assumptions (e.g., graphical session required) would improve an agent's ability to invoke it correctly in 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?
The schema only says 'X coordinate' and 'Y coordinate', so the description's 'screen coordinates' adds a meaningful coordinate frame beyond the structured properties. It still omits units and origin, but the added context is useful and non-redundant.
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 a specific verb ('Move'), a specific resource ('cursor'), and a target ('screen coordinates'). This distinguishes it clearly from sibling tools like mouse_click, which would involve a different action on the same resource.
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 use case is implied by the action itself: use this tool when the cursor needs to be positioned. However, there is no explicit guidance about when not to use it or how it differs from mouse_click in terms of composing actions like move-then-click.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_clipboardA
Read text from system clipboard.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It accurately conveys a non-mutating read of clipboard text, but does not disclose behavior for empty or non-text clipboard contents, platform limitations, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, and the operative verb and object are front-loaded. Nothing should be trimmed.
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 zero-parameter tool with no output schema, the description covers the core contract—clipboard text retrieval. It omits edge-case and return-detail nuance, but the simple shape makes the omission minor.
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 zero parameters, so there is nothing for the description to add. The baseline of 4 applies because no parameter documentation is needed.
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 names a specific action ('Read') and resource ('system clipboard'), with 'text' clarifying the payload. This clearly distinguishes it from write_clipboard and other file/process 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?
No explicit when-to-use or alternative guidance is given. The read/write contrast with the sibling write_clipboard makes the intended use obvious, but the description leaves exclusion cases unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileA
Read file contents. Supports line range (1-based).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path. | |
| encoding | No | Encoding: utf8|base64|hex. Default: utf8. | |
| end_line | No | Last line (1-based, inclusive). | |
| start_line | No | First line (1-based). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It states the basic behavior and line-range support, but does not mention error behavior, encoding output semantics, file-size limits, or return format. This is adequate for a simple read operation but leaves notable gaps.
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 short sentences with no filler. The core action is front-loaded and the line-range qualification is immediately useful, so 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 simple tool with fully documented parameters, the description covers the core action and line-range capability. However, with no output schema and no annotations, it does not explain return value shape, error behavior, or encoding output semantics, leaving some ambiguity for an 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?
Schema coverage is 100% with each parameter described, so the baseline is 3. The description recaps line-range support but adds no meaning beyond the schema's existing start_line/end_line 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 action ('Read file contents') and the resource, and the line-range mention adds a specific capability. This distinguishes read_file from siblings like write_file, append_file, and get_file_info at a glance.
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 given for when to use this tool versus alternatives such as get_file_info, file_exists, or search_files. The line-range comment implies a partial-read use case, but there are no explicit conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renameC
Rename/move a file or directory.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Current path. | |
| destination | Yes | New path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention what happens if the destination already exists, whether moving directories is supported recursively, whether the operation can overwrite files, or any permission or error considerations. This is a significant gap for a mutating operation.
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 concise sentence with no redundant wording. It is front-loaded with the core verb and resource, though it could include more behavioral detail without becoming bloated.
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 mutating tool with no annotations and no output schema, the description is under-specified. It omits critical details such as overwrite behavior, success/failure return values, and whether moving directories has restrictions. An agent could invoke it based on schema alone but would lack important operational 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 parameters are already documented as 'Current path' and 'New path.' The description adds modest value by clarifying that the operation applies to both files and directories, but it does not add further detail about path formats or edge cases.
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 operation (rename/move) and the resource type (file or directory), making it easy to distinguish from siblings like copy_file or delete_file. It is a specific verb+resource statement, though it does not explicitly contrast with copy semantics.
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 given about when to use this tool versus alternatives such as copy_file or write_file. The description merely states what the tool does; it does not mention exclusions, prerequisites, or cases where another sibling should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesA
Search text pattern across files in a directory. Returns matching lines with paths and line numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Text or regex pattern. | |
| directory | Yes | Directory to search. | |
| max_results | No | Max matches. Default: 100. | |
| file_pattern | No | Glob filter, e.g. '*.ts'. | |
| case_sensitive | No | Default: false. | |
| include_hidden | No | Include hidden files. Default: false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It reveals the non-mutating search behavior and the output format, but it does not mention result limits, hidden-file handling, or error conditions; some of this is covered by schema defaults.
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 compact and front-loaded: the first sentence states the action, the second the return format. There is no wasted wording or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with a fully documented schema and no output schema, the description provides the essential return contract. It omits finer caveats such as ordering or binary-file behavior, but an agent has enough to invoke it correctly.
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 baseline is 3 even without parameter details in the description. The description adds little beyond restating 'text pattern' and 'directory', relying on the schema for defaults like case_sensitive and max_results.
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 a clear verb-object relationship: search a text pattern across files in a directory. It also specifies the return shape—matching lines with paths and line numbers—which distinguishes it from filename-oriented tools like find_files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the intended context clearly: full-text content search within a directory. It does not explicitly name alternatives or exclusions, but the wording is sufficiently unambiguous given the file-management siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_notificationB
Send a native desktop notification.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Title. Default: 'qwen-mcp'. | |
| message | Yes | Message body. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It reveals only the surface action (sending a notification) but does not mention side effects, platform dependencies, asynchronous behavior, failure modes, or return 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?
A single, front-loaded sentence with no filler. It is compact and immediately understandable; there is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should clarify what the caller can expect in return and any environmental requirements. It does neither, leaving the tool's runtime contract underspecified for an 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?
Schema description coverage is 100%, so the input schema already fully documents the title and message parameters. The description adds no additional parameter meaning beyond what the schema provides, matching the established baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Send') and a clear resource type ('native desktop notification'), making it unambiguous what the tool does. It is distinct from all sibling tools, none of which overlap with notification delivery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives, such as using execute_command with a system notification command. There is no mention of prerequisites or conditions that would make this tool preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_envB
Set an environment variable for this session.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable name. | |
| value | Yes | Value. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It usefully states that the variable is session-scoped, implying non-persistence across sessions, but it does not mention whether existing variables are overwritten, what happens after the session ends, or any affect on subprocesses.
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 short sentence with no filler. It front-loads the action and includes the most important qualifier, 'for this session,' without wasting 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?
For a simple two-parameter setter, the description covers the core purpose and scope. Missing details like return value or overwrite behavior are minor for this tool type, and no output schema exists to demand additional return-format explanation.
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 parameters are already documented in the input schema. The description adds no additional meaning about variable naming rules, value format, or how the value is interpreted.
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 (set), resource (environment variable), and scope (this session), making the tool's basic purpose evident. It inherently distinguishes from the sibling get_env through the set/get opposition, though it doesn't explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for this session' implies a session-bound context, but the description provides no explicit guidance on when to use this tool versus alternatives like get_env or memory_store. There are no exclusions, prerequisites, or stated conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
take_screenshotA
Capture screen to PNG file.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | Output filename. Default: screenshot_<ts>.png. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds the PNG-file output fact beyond the name, but omits what 'screen' means (full display vs active window, multi-monitor), overwrite behavior, default save location, or failure modes. This is minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, front-loading the verb and resource. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, the core action is stated, but ambiguity about capture scope and destination behavior remains. The description is sufficient for basic invocation but not fully comprehensive about what the resulting PNG contains or where it lands.
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% and the filename parameter includes a default value, so the schema already fully documents the parameter. The tool description itself does not add additional parameter semantics, which is acceptable 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 the specific action 'Capture screen' and the output format 'PNG file', which clearly identifies the tool's purpose. It is distinct from all siblings like write_file and execute_command, so an agent can select it without confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when a screen capture is needed) but provides no explicit guidance about when not to use it or which alternatives might be more appropriate. The intended context is clear, but exclusions and comparison to siblings are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_clipboardB
Write text to system clipboard.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to copy. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only restates the basic action. It does not mention that the operation overwrites existing clipboard content, whether confirmation or permissions are needed, or what the tool returns.
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?
A single, short sentence that front-loads the verb and target with zero filler. It is appropriately concise for a tool with one parameter and a straightforward operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description and schema are minimally sufficient for invocation. However, the absence of output schema, annotations, and behavioral context leaves some uncertainty about return behavior and side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is documented as 'Text to copy.' The description adds little beyond this because 'write text' essentially restates what the schema already conveys, but it does align the parameter with the intended action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Write') and resource ('system clipboard'), which is distinct from sibling tools like read_clipboard and write_file. An agent can immediately understand the operation and target without ambiguity.
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 given about when to use this tool versus alternatives such as keyboard_type or write_file. There are no exclusions, prerequisites, or contextual hints to help an agent select it over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_fileC
Write content to file. Creates parent dirs.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path. | |
| content | Yes | Content to write. | |
| encoding | No | Encoding: utf8|base64. Default: utf8. | |
| create_parents | No | Create parent dirs. Default: true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions creating parent directories but fails to state that writing likely overwrites existing file content, which is a critical destructive trait. Permissions and failure behavior are also absent.
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 front-loaded, stating the core operation in the first sentence and a key side effect in the second. Every word earns its place with no filler.
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 mutating tool with no annotations and no output schema, the description omits crucial overwrite behavior that an agent must know to invoke it safely. While parameters are well-covered by the schema, the behavioral guidance is incomplete.
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 already documents all four parameters thoroughly, so the baseline is 3. The description adds no meaningful parameter-level detail beyond repeating the create_parents behavior already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation and target: 'Write content to file.' It also mentions parent directory creation as a side effect. However, it does not explicitly distinguish write_file from sibling tools like append_file, so it falls just short of a top 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?
No guidance is given on when to use this tool versus append_file or other file operations. The intended use is implied by the verb 'write,' but there are no exclusions, alternatives, or context cues to help an agent select between similar tools.
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.
37 tool updates
v1.0.0- First observed
append_file - First observed
copy_file - First observed
create_directory - First observed
delete_directory - First observed
delete_file - First observed
execute_command - First observed
file_exists - First observed
find_files - First observed
get_env - First observed
get_file_info - First observed
get_system_info - First observed
http_request - First observed
keyboard_type - First observed
kill_process - First observed
list_active_ports - First observed
list_directory - First observed
list_processes - First observed
memory_compact - First observed
memory_init - First observed
memory_list - First observed
memory_log - First observed
memory_read - First observed
memory_retrieve - First observed
memory_status - First observed
memory_store - First observed
memory_update - First observed
mouse_click - First observed
mouse_move - First observed
read_clipboard - First observed
read_file - First observed
rename - First observed
search_files - First observed
send_notification - First observed
set_env - First observed
take_screenshot - First observed
write_clipboard - First observed
write_file
TDQS
Most file and process tools are clearly distinct, but there is meaningful overlap between search_files/find_files, memory_store/memory_update, and the catch-all execute_command which could subsume many dedicated tools. Descriptions help, but an agent could easily misselect when choosing between memory mechanisms.
The toolset is uniformly snake_case and readable, but naming conventions are mixed: file tools use verb_noun (write_file, list_directory), while memory tools use noun_verb (memory_store, memory_compact) and UI tools use noun_verb (mouse_move, keyboard_type). The pattern is inconsistent though predictable enough to navigate.
With 37 tools, this is a very large surface area that exceeds the practical range for focused agent use. While the tools span multiple domains, many could be consolidated or omitted without losing core capability.
For a general-purpose computer-use assistant, the surface covers file management, process control, memory, UI automation, environment, clipboard, notifications, and HTTP. Minor gaps exist such as no dedicated process-start or window-management tool, but execute_command covers most of these.
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
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
An MCP memory server. One memory your agents share — across models, devices and apps.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server that gives AI assistants full control over your desktop — monitor system resources, manage windows, capture screenshots, control the clipboard, launch applications, and more.MIT
- AlicenseAqualityDmaintenanceAn MCP server that grants AI agents unrestricted file system, Python, and PowerShell access on Windows for real, unfiltered automation.141MIT
- AlicenseCqualityBmaintenanceAn MCP server offering hybrid memory recall and continuity tools for AI agents. It also provides a governance gateway that pre-approves risky shell/file/git actions before execution.19Apache 2.0
- AlicenseNot gradedqualityCmaintenanceA lightweight MCP server that enables AI agents to seamlessly integrate with Windows, performing tasks like file navigation, application control, UI interaction, and QA testing.1MIT
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/YOUSEFISLAM-dev/qwen-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server