OmniCommanderMCP
The OmniCommanderMCP server provides comprehensive, cross-platform control over your local machine, including system information, shell execution, filesystem, processes, desktop automation, and more.
System Information: Retrieve OS details, architecture, hostname, and Node.js runtime info.
Command Execution: Run arbitrary shell commands (PowerShell on Windows, /bin/sh on macOS/Linux) with configurable timeouts and working directories.
Process Management: Start detached processes, list running processes, and terminate processes by PID.
Filesystem Operations: Read, write, list, create, delete, move, and copy files and directories.
Application Control: Launch and close applications cross-platform with optional arguments.
Screen Capture & Desktop Automation: Capture screenshots, control mouse movements and clicks, type keyboard input, send hotkeys, and manage clipboard content (read/write).
Service Management: List and control OS services (start, stop, restart, enable, disable).
Network Diagnostics: Retrieve network interfaces, routes, DNS settings, and active listening connections.
Package Management: Invoke native package managers (winget, brew, apt, dnf, pacman).
Windows Registry: Query, set, and delete registry keys (Windows only).
Security & Access: Supports configurable
safeandfullsecurity profiles with audit logging, accessible via local stdio, authenticated HTTP, or an OpenAI Secure MCP Tunnel.
Click on "Deploy 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., "@OmniCommanderMCPshow me running processes"
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.
Omni Commander MCP
Omni Commander MCP is a cross-platform, local-first MCP agent that gives an authorized AI client broad control over a Windows, macOS, or Linux computer.
It combines two control planes in one auditable server:
System/CLI control: files, shell, persistent terminals, processes, services, packages, network requests, firewall, scheduled tasks, Git, archives, disks, users, logs, clipboard, and power/session operations.
Computer use: screenshots returned as MCP images, monitor/window/application control, mouse, keyboard, accessibility-tree inspection, local OCR, text-coordinate discovery, and observe-act-observe loops.
The server can run locally over stdio, over an authenticated loopback/private Streamable HTTP endpoint, or privately from ChatGPT web through OpenAI Secure MCP Tunnel without opening inbound firewall ports.
This project intentionally has powerful tools.
--profile=fullis equivalent to granting the connected MCP client an interactive desktop and terminal under the OS account that launches Omni Commander. Read SECURITY.md.
Current status
The current main branch exposes 84 MCP tools. Version 0.2.0 is the package baseline, with 0.3 development active on main:
Windows, macOS, and Linux adapters.
MCP stdio and Streamable HTTP transports.
OpenAI Secure MCP Tunnel setup scripts.
Persistent process sessions with stdin and paginated output.
Native file-watch sessions with bounded retention and cursor pagination.
Direct image-returning screen observation.
Multi-step autonomous computer-use sequences.
OCR-based
find textandclick textworkflows.Windows UI Automation, macOS Accessibility, and Linux AT-SPI discovery adapters.
Safe/full policy profiles, SSRF controls, path canonicalization, and JSONL audit logs.
Cross-platform CI, type checking, integration tests, and production builds.
Related MCP server: mcp-linux-desktop
Tool catalog
Area | Tools |
Configuration |
|
Filesystem/search |
|
Terminal/processes |
|
Computer observation |
|
Computer actions |
|
Apps/windows |
|
OS administration |
|
System/clipboard/env |
|
Network |
|
Git |
|
Archives |
|
Anything not represented by a structured tool can still be performed through shell_exec or a persistent process_start session when the launching OS account has permission.
Install
Requirements:
Node.js 20 or later.
Git.
Optional desktop/OCR dependencies listed below.
git clone https://github.com/kaannsaydamm/OmniCommanderMCP.git
cd OmniCommanderMCP
npm ci
npm run check
npm run buildInstall optional computer-use dependencies:
# macOS or Linux
./scripts/install-desktop-deps.sh# Windows; built-in APIs cover core computer use.
# Add -InstallTesseract for OCR.
./scripts/install-desktop-deps.ps1 -InstallTesseractRun locally
Safe profile:
node dist/index.js --profile=safeFull profile:
node dist/index.js --profile=fullMCP client example:
{
"mcpServers": {
"omni-commander": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/OmniCommanderMCP/dist/index.js",
"--profile=full"
],
"env": {
"OMNI_AUDIT_ENABLED": "true"
}
}
}
}Connect ChatGPT web to your computer
The recommended remote path is OpenAI Secure MCP Tunnel. tunnel-client runs on your computer, starts Omni Commander over stdio, and makes only outbound HTTPS connections to OpenAI. The MCP server does not need a public listener.
1. Build Omni Commander
npm ci
npm run build2. Create an MCP tunnel
Create a tunnel in OpenAI Platform tunnel settings and obtain:
A
tunnel_id.A runtime API key for
tunnel-client.Tunnels Read + Use permission; tunnel creation/editing additionally needs Manage.
Download the current tunnel-client from the OpenAI Platform tunnel page or the official openai/tunnel-client releases.
3. Configure the local tunnel profile
macOS/Linux:
CONTROL_PLANE_API_KEY="sk-..." ./scripts/setup-openai-tunnel.sh tunnel_0123456789abcdef0123456789abcdefWindows PowerShell:
$env:CONTROL_PLANE_API_KEY = "sk-..."
./scripts/setup-openai-tunnel.ps1 -TunnelId "tunnel_0123456789abcdef0123456789abcdef" -SecurityProfile fullThe scripts configure this local MCP command:
node /absolute/path/OmniCommanderMCP/dist/index.js --profile=full4. Run the tunnel
tunnel-client doctor --profile omni-commander --explain
tunnel-client run --profile omni-commanderKeep it running while ChatGPT uses the computer. The tunnel client exposes loopback health/readiness/metrics endpoints and a local /ui operator page.
5. Add it in ChatGPT
Enable ChatGPT developer mode, open Settings → Plugins, create a developer-mode app, select Tunnel as the connection, and choose the tunnel. The tunnel must be associated with the target ChatGPT workspace.
See docs/REMOTE_CHATGPT.md for startup-service templates and troubleshooting.
Streamable HTTP mode
Stdio + Secure MCP Tunnel is preferred for ChatGPT. For local/private integrations, Omni Commander can also expose MCP over Streamable HTTP:
node dist/index.js --http --host=127.0.0.1 --port=8787 --profile=fullEndpoint:
http://127.0.0.1:8787/mcpHealth endpoints:
/healthz
/readyzBinding outside loopback requires a bearer token:
OMNI_HTTP_TOKEN="a-long-random-secret" \
node dist/index.js --http --host=0.0.0.0 --port=8787 --allowed-hosts=omni.internal.example --profile=fullThis fixed bearer mode is for controlled private deployments. A public internet deployment should use a proper OAuth authorization server, TLS, strict host validation, and an external reverse proxy. Do not expose full-profile Omni Commander anonymously.
Autonomous computer-use pattern
A reliable loop is:
computer_observeto receive a fresh screenshot.accessibility_snapshotorscreen_find_textwhen semantic targeting is possible.computer_act_and_observefor one action plus a fresh screenshot.Repeat until the task is verified complete.
For deterministic multi-step operations, use computer_sequence. For visible text, computer_click_text captures, OCRs, clicks the chosen occurrence, and returns the post-click screen.
See docs/COMPUTER_USE.md.
File-watch sessions
Use fs_watch_start for a file or directory, then poll fs_watch_events with the returned session ID. Event cursors are monotonically increasing; pass the previous nextCursor as the exclusive after cursor. Buffers are finite (maxWatchEvents), and truncatedBeforeCursor reports when older events were evicted before the requested cursor. Call fs_watch_stop when observation is complete.
Recursive native watching depends on the host platform and filesystem. Unsupported combinations return an explicit error instead of reporting a successful session.
Platform support
Windows
Built-in PowerShell, .NET, Win32, Windows UI Automation, service, registry/task/firewall tooling.
Run Omni Commander at the same elevation level as applications it must control.
A non-elevated process cannot reliably manipulate elevated windows because of Windows integrity levels.
Tesseract is optional for OCR.
macOS
screencapture, AppleScript/System Events,open,launchctl, and optionalcliclick.Grant Accessibility permission for keyboard/window control.
Grant Screen Recording permission for screenshots.
Install optional dependencies with Homebrew.
Linux
X11:
xdotool,wmctrl,xrandr, screenshot and clipboard utilities.Wayland: screenshots can use
grim; input control depends on compositor security and available tools.Accessibility uses Python AT-SPI (
pyatspi).Headless service sessions cannot control a graphical desktop unless attached to the active user session and display bus.
Security profiles
safe (default)
Filesystem paths restricted to configured roots.
Common catastrophic shell patterns blocked.
Private and loopback HTTP targets blocked.
Environment values hidden.
Lower output and file-size limits.
Audit logging enabled.
full
All filesystem paths allowed by the OS account.
No Omni Commander command-pattern blocklist.
Private/loopback network and environment access enabled.
OS administration mutation tools enabled.
Higher finite I/O limits.
full does not bypass ACLs, UAC, sudo, TCC, endpoint security, sandboxing, display-server boundaries, or application permissions.
Configuration
Precedence:
profile defaults < config JSON < environment < CLI < config_setDefault configuration:
~/.omni-commander/config.jsonDefault audit log:
~/.omni-commander/audit.jsonlImportant environment variables are documented in .env.example.
Development and validation
npm run typecheck
npm test
npm run buildThe integration test connects an MCP client through an in-memory transport and verifies that the complete terminal, desktop, accessibility, network, developer, and OS-admin tool surface is discoverable.
CI executes typecheck, tests, and build on Windows, macOS, and Ubuntu with Node.js 20 and 22.
Architecture and roadmap
License
MIT
Available Tools
27 toolscapture_screenB
Capture the primary screen and return it as image content for computer-use reasoning.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ./omni-screen.png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It states the tool returns screen as image content but omits details on image format, resolution, side effects, or whether it saves to a file. Essential behavioral traits are lacking.
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?
Description is a single, clear sentence with no redundancy. While it is concise, it omits critical details, slightly lowering effectiveness.
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 a single optional parameter and no output schema, description still fails to explain the path parameter, return format, or any side effects. Significant gaps remain for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one parameter 'path' with 0% description coverage, and description does not mention it at all. No added meaning is provided, leaving the agent unaware of how to specify the save path or its default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'capture', resource 'primary screen', and purpose 'return it as image content for computer-use reasoning'. It distinguishes itself from sibling 'capture_screen_image' by specifying 'primary screen', implying a full-screen capture.
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?
Description implies use for computer-use reasoning, but provides no explicit guidance on when not to use or alternatives. Among siblings, 'capture_screen_image' might be a related tool, but no distinction is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_screen_imageC
Capture the primary screen and return a directly viewable PNG image.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ./omni-screen.png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions a 'directly viewable PNG image' but does not disclose behavioral details such as permission requirements, whether it is blocking, or what happens if the path parameter is omitted. No annotations are present to fill this 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 sentence, which is concise, but it lacks important details. It is appropriately short but not fully effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one optional parameter and no output schema, the description is partially complete. It states the output format but does not explain parameter behavior or return value structure, which is adequate but not thorough.
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 description does not explain the 'path' parameter at all, despite 0% schema coverage. The schema shows a default value, but the description adds no semantic meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool captures the primary screen and returns a PNG image. However, it does not distinguish from the sibling tool 'capture_screen', which may have similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'capture_screen'. The description does not include any context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipboard_getA
Read text from the OS clipboard.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as handling of non-text clipboard content, empty clipboard, or whether the operation is synchronous or blocking. The description only states it reads text.
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 directly and concisely states the tool's purpose. No extraneous words or 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 simple tool with no parameters and no output schema, the description is minimally adequate. However, it lacks details on edge cases (e.g., empty clipboard, non-text content) that would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100%. Per guidelines, 0 parameters defaults to baseline 4. No additional parameter semantics 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 clearly states the verb 'Read' and the resource 'text from the OS clipboard'. It distinguishes itself from sibling tools like clipboard_set (write) and capture_screen (screenshot).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., clipboard_set). No context about prerequisites or situations where clipboard content might be non-text. The description is purely a statement of functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipboard_setB
Write text to the OS clipboard.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action without disclosing behavioral traits like overwriting clipboard, error conditions, or security implications. For a write operation, more detail is warranted.
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 very concise (5 words) and front-loaded. However, it could be slightly more informative without losing conciseness.
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 low schema coverage, lack of output schema, and absence of annotations, the description is insufficient. It does not specify constraints (e.g., text length, encoding) or side effects, leaving the agent with incomplete guidance for a simple but potentially critical tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema lacks descriptions for the one parameter 'text'. The tool description does not add any meaning beyond the schema, so the agent receives no help understanding the parameter's purpose or format.
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 action 'Write' and resource 'OS clipboard'. It is specific and distinguishes from the sibling tool 'clipboard_get' which reads the clipboard.
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 (setting clipboard text) but provides no explicit guidance on when to use this tool versus alternatives, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_applicationC
Close/terminate an application by process or application name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It indicates a destructive action but does not disclose confirmation prompts, side effects on dependent processes, or error behavior. This is insufficient for safe invocation.
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, concise and to the point. It effectively communicates the core function without verbosity, but could benefit from additional context without sacrificing brevity.
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 lack of annotations, output schema, and rich parameter details, the description falls short of providing complete context. It does not explain return values, success/failure indicators, or error handling, leaving agents underinformed.
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 0%, and the description only vaguely explains the 'name' parameter as 'by process or application name'. No details on format, case sensitivity, or partial matching are provided, leaving ambiguity.
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 clear verb 'Close/terminate' and specifies the resource 'application'. It implies operation by name, differentiating from sibling 'kill_process' which likely uses PID, though not explicitly stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'kill_process' or 'spawn_process'. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_fileC
Copy a file.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose key behaviors such as whether existing files are overwritten, error handling, permission requirements, or atomicity. The agent receives minimal insight into side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it omits critical details. While there is no wasted text, the brevity comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (file copy with two parameters) and lack of output schema, annotations, or parameter descriptions, the single-sentence description is grossly insufficient for an agent to use the tool correctly and 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 description coverage is 0%, yet the description does not attribute any meaning to the 'from' or 'to' parameters. The agent knows only that they are required strings, with no indication that they represent source and destination paths.
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 'Copy a file' uses a specific verb and resource, clearly distinguishing it from sibling tools like move_path, delete_path, read_file, and write_file. The purpose 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?
No guidance is provided on when to use this tool versus alternatives such as move_path, or about overwrite behavior, prerequisites, or context. The agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_directoryC
Create a directory recursively.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses recursion behavior but omits critical details like behavior on existing directories, permissions, or side effects. With no annotations, the description carries the full burden and falls short.
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, which is concise but lacks important details. It is front-loaded but sacrifices completeness for brevity.
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 one parameter, no output schema, and no annotations, the description is severely incomplete. It fails to explain path format, error handling, or return values.
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 single parameter 'path' has no description in the schema or the tool description. The description adds no semantic meaning beyond what the parameter name implies.
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 (create) and resource (directory) with the specific trait of recursion. It distinguishes from sibling tools like delete_path or list_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 guidance on when to use this tool, prerequisites, or alternatives are provided. The description only states what it does, not context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_pathC
Delete a file or directory.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| recursive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral transparency beyond the basic action. There are no annotations, so the description must disclose side effects, permissions, or error conditions, but it does not. For a destructive tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but overly brief. It sacrifices crucial information for brevity, making it minimally adequate.
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 destructive nature, lack of annotations, and two parameters, the description is severely incomplete. It does not mention return values, error handling, permissions, or the permanent nature of deletion.
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 description adds no semantic value to the parameters. The schema has 0% description coverage, and the description does not explain the 'path' or 'recursive' parameters (e.g., behavior when recursive is false, path requirements). This is a significant 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 clearly states 'Delete a file or directory,' providing a specific verb and resource. It effectively distinguishes from sibling tools like copy_file or move_path, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives (e.g., when to use recursive, prerequisites, or that it might permanently delete without trash). No context is given for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyboard_hotkeyC
Send a keyboard shortcut/hotkey to the focused application.
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose behavioral traits like modifier support, key press/release simulation, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficient one-sentence description, but lacks detail necessary for correct usage.
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 simplicity, the description is incomplete; it does not explain how to specify key combinations or modifiers, limiting an agent's ability 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?
The description adds no meaning beyond the schema; it does not explain the format of the 'keys' array items (e.g., key names, modifiers), despite 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'send' and the resource 'keyboard shortcut/hotkey to the focused application', distinguishing it from siblings like keyboard_type and mouse_click.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., keyboard_type for text input) or prerequisites (e.g., application must be focused).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyboard_typeB
Type text into the currently focused application.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the basic action without details on keystroke simulation, keyboard layout handling, or what happens if no application is focused.
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 of 7 words, perfectly front-loaded with no redundant information. Every word contributes to 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 simple tool with one parameter and no output schema, the description is adequate but lacks context about prerequisites (e.g., focus requirement), potential side effects, or error conditions.
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 0%, so the description must compensate. It clarifies that the 'text' parameter is the text to type, but adds no additional format, encoding, or length constraints 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 uses a specific verb 'type' and resource 'text' with a clear scope 'into the currently focused application.' It clearly distinguishes from sibling tools like keyboard_hotkey (which sends hotkeys) and mouse_click (clicks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., requiring a focused text field) or when not to use it (e.g., for non-text input).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kill_processC
Force terminate a process by PID.
| Name | Required | Description | Default |
|---|---|---|---|
| pid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description alone must disclose behavioral traits. It states the action is a 'force terminate', implying it kills without saving, but fails to mention permission requirements, error handling (e.g., missing PID), or potential side effects like data loss.
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 of five words, containing no filler or redundancy. It is appropriately minimal for a simple action.
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 destructive nature and lack of output schema, the description is incomplete. It does not explain return behavior, success indications, or what happens when the process does not exist or cannot be killed. More detail is needed for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0%, meaning the description must add value beyond the schema. The description mentions 'by PID', which clarifies that the 'pid' parameter is the process ID. This adds some meaning, but it does not explain constraints (e.g., must be positive integer, maximum value) or how to obtain a PID.
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 'Force terminate' and identifies the resource 'a process by PID'. It is clear in its action, though it does not differentiate from the sibling tool 'close_application', which may also terminate processes but by application 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?
The description provides no guidance on when to use this tool versus alternatives like 'close_application' for graceful shutdown or 'spawn_process' for starting processes. There is no mention of prerequisites or scenarios to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
launch_applicationC
Launch an application cross-platform.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| target | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'cross-platform' but fails to disclose behavior such as error handling, blocking behavior, or what happens if the application is not found.
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 (one sentence) but under-specified. It is not concise in a helpful way; important details are missing.
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 lack of output schema, 2 parameters with zero documentation, and numerous sibling tools, the description is wholly inadequate. The agent cannot determine how to properly invoke the tool or interpret results.
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 0%, yet the description adds no explanation for 'target' (e.g., path vs. name) or 'args' (e.g., how they are passed). The agent gets no usable information beyond the schema structure.
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 'Launch an application cross-platform' clearly states the verb (launch) and resource (application). It is specific enough to distinguish from siblings like 'close_application', but does not explicitly differentiate from 'spawn_process' or 'run_command'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'run_command' or 'spawn_process'. There are no when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoryC
List files and directories with metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior but only says 'with metadata' without specifying what metadata (e.g., size, permissions). No mention of recursion, hidden files, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with no redundant words. Could be improved by front-loading key details, but current length 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 list tool with one parameter and no output schema, the description is incomplete. Missing details like whether it lists recursively, includes hidden files, or returns full paths.
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 0% for the single parameter 'path'. The description adds no meaning beyond the parameter name, leaving the agent to guess the format or required scope.
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 'List files and directories with metadata,' which is a clear verb+resource combination. However, it does not differentiate from sibling tools like list_processes or list_services, leaving the agent to infer uniqueness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use list_directory versus alternatives; no mention of context or limitations. The agent is given no help with tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_processesC
List running processes using the native OS command.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lacks annotations and fails to disclose behavioral traits such as required permissions, OS compatibility, or output format beyond mentioning 'native OS command'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is too thin; it sacrifices useful information for brevity.
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 lack of output schema and annotations, the description does not provide sufficient context for an agent to understand what the tool returns or its limitations.
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?
Description does not mention the 'filter' parameter; with 0% schema description coverage, it adds no 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 it lists running processes using the native OS command, which distinguishes it from sibling tools like kill_process or spawn_process.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like system_info or run_command; no exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesC
List operating-system services.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states action, no disclosure of behavioral traits like read-only nature, required permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, no wasted words. Could be more informative without losing conciseness.
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, no annotations, and a single undocumented parameter, the description is insufficient to understand behavior, output format, or filter semantics.
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?
Single parameter 'filter' has no description in schema (0% coverage). Tool description does not explain its purpose, format, or usage.
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 'List operating-system services' clearly. Verb and resource are specified, but no differentiation from sibling tools like list_processes or service_control is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use vs alternatives. Context implied but not explicit; no when-not or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mouse_clickB
Click left, middle, or right mouse button, optionally at coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| button | No | left |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not specify whether the mouse is moved to coordinates before clicking if x/y are provided, or what the default behavior is when coordinates are omitted. No details on click type (single, double) or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose efficiently without extraneous 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 mouse click tool, the description covers the basic functionality. However, it lacks usage context and fails to specify key behavioral details that an agent would need 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?
The description only mentions 'coordinates' and 'button' but does not explain the coordinate system (e.g., screen vs. window), the meaning of the numeric values, or the button default when not specified.
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 (click), the button options (left, middle, right), and optional coordinates. It distinguishes from sibling tools like mouse_move, which only moves the cursor, and keyboard_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as mouse_move or keyboard shortcuts. There is no mention of prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mouse_moveB
Move the mouse pointer to absolute screen coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states movement to absolute coordinates, omitting details like instant movement, hover event triggering, or bounds handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, succinct sentence conveys the essential information with no redundant 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?
While minimal, the description covers the basic purpose for a simple tool. However, missing output schema and annotations leave gaps about effects (e.g., whether it triggers events, multi-monitor support).
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 0%, but the description clarifies that coordinates are absolute screen positions, adding meaning beyond the raw integer schema. However, it lacks units or range context beyond the large integer bounds.
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 ('Move') and resource ('mouse pointer'), and specifies 'absolute screen coordinates', clearly distinguishing it from sibling tools like mouse_click which performs a click action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like mouse_click or other input tools. The description does not mention prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_pathC
Move or rename a file/directory.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as atomicity, overwrite behavior, permissions required, or error handling. This is a significant gap for a destructive file 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 sentence, making it concise but lacking structure. It could benefit from being slightly expanded without losing efficiency, to include more context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and two critical parameters, the description is too brief. It should explain return values, error states, and the effect on the source path after the operation.
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 0%, yet the description adds no meaning to the parameters 'from' and 'to'. It does not explain expected formats (e.g., absolute paths) or that 'to' can be a new name for renaming in the same directory.
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 it moves or renames a file/directory, distinguishing it from siblings like copy_file and delete_path. However, it could be more explicit about the relationship between moving and renaming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternative operations (e.g., copy vs move, or delete). The description lacks context about prerequisites or when this tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
network_infoB
Return interfaces, routes, DNS, and listening connections.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It only states 'Return' implying read-only, but no details about permissions, side effects, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with critical information front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, annotations, or output schema, description lists four return categories but lacks details on structure or usage. Adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters defined, so schema coverage is irrelevant. Description adds nothing about parameters because there are none. Baseline score of 4 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?
Description clearly states the tool returns interfaces, routes, DNS, and listening connections. Verb 'Return' plus specific resource types makes purpose clear, though it does not distinguish from sibling tools like system_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 on when to use this tool versus alternatives such as system_info or list_processes. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
package_managerC
Run the native package manager (winget, brew, apt/dnf/pacman) with supplied arguments.
| Name | Required | Description | Default |
|---|---|---|---|
| args | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must fully disclose behaviors, but it fails to mention critical aspects: what happens if the package manager is missing, whether elevated privileges are needed, how output is returned (stdout vs exit code), or whether arguments are passed directly. The phrase 'with supplied arguments' lacks detail on execution 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, which is concise, but it omits essential information that would make it effective. While no words are wasted, the brevity sacrifices clarity and completeness, warranting a middle score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (one parameter, no output schema, no annotations), the description should cover return values, error handling, and OS detection. It does not, leaving the agent underinformed. The tool's behavior in different OS environments or with invalid arguments is entirely unspecified.
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 has 0% description coverage for the 'args' parameter, and the description adds minimal meaning. It says 'with supplied arguments' but does not specify expected format (e.g., full install command vs individual tokens) or valid argument patterns. The agent must infer from the schema's array-of-strings type, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs the native package manager (winget, brew, apt/dnf/pacman) with supplied arguments. It specifies exactly which tools are invoked and the generic nature of argument passing. No ambiguity with sibling tools exists as none are package manager related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'run_command' or 'spawn_process'. There is no mention of prerequisites, typical use cases (install, update, remove), or OS-dependency. The agent receives no help choosing this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileB
Read a UTF-8 text file from any path permitted to the local agent process.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions UTF-8 encoding and path permissions, but omits details like error handling for missing files, permission denials, or file size limits. The agent cannot fully anticipate behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence without extraneous information. It front-loads the key action, making it easy to parse. Slightly more structure (e.g., separating purpose from constraints) could improve, but 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?
Given the simple input (one parameter) and no output schema, the description is too brief. It lacks information about return values, error cases, and performance considerations. For an agent to use it confidently, more context is needed.
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 description adds context to the 'path' parameter (a file path to a UTF-8 text file), which is not in the schema. However, it does not clarify path formats (absolute/relative) or constraints. With 0% schema coverage, this adds some but not full value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read a UTF-8 text file') and the resource (file at a permitted path). It distinguishes from sibling tools like write_file, delete_path, and copy_file by specifying it is for reading text 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 provides no guidance on when to use this tool versus alternatives, such as handling binary files, large files, or non-text files. It does not mention any prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_commandC
Run an arbitrary command through PowerShell on Windows or /bin/sh on macOS/Linux.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | ||
| command | Yes | ||
| timeoutMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose behavioral traits such as error handling, security implications, environment setup, or what happens if the command fails. The description is minimal and leaves the agent guessing.
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 extraneous information. It is front-loaded but could benefit from additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and no output schema, the description is highly incomplete. It lacks parameter details, behavioral notes, and usage context. The agent would be underinformed to use this tool safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameter beyond its name. The meanings of 'cwd', 'command', and 'timeoutMs' are not clarified, leaving the agent without necessary context for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs an arbitrary command and specifies the shell used (PowerShell on Windows, /bin/sh on macOS/Linux). It distinguishes from siblings like spawn_process by focusing on command execution via shell.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like spawn_process or package_manager. The description does not mention prerequisites, scenarios, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
service_controlC
Start, stop, restart, enable or disable an OS service.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full burden. It only lists possible actions without disclosing behavioral traits like required permissions, side effects, or error conditions.
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. However, it may be too brief given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without output schema or annotations, the description lacks completeness. It does not cover return values, error scenarios, or usage context, making it insufficient for a state-modifying tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description mentions actions but does not explain the 'name' parameter or add meaning beyond the enum values. No parameter details provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: controlling an OS service (start, stop, restart, enable, disable). It distinguishes from siblings like list_services which only lists services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as when to use launch_application vs service_control. No prerequisites or usage context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spawn_processB
Start a detached process or application and return its PID.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | ||
| args | No | ||
| command | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'detached' and 'return PID' but omits critical behaviors: synchronous/asynchronous, error handling, effects on user environment, or whether it supports arguments and working directory. This is insufficient for a process-spawning 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?
A single, well-formed sentence with no unnecessary words. It front-loads the action and outcome, 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?
Given the tool has 3 parameters, no output schema, and no annotations, the description is incomplete. It fails to explain return value details (e.g., PID type, error codes), parameter usage, or behavioral nuances like what 'detached' entails. Sibling tools cover similar actions, so more detail is needed.
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 0%, so description must explain parameters. It implies 'command' is used but does not clarify 'args' or 'cwd' (e.g., how to pass arguments, format of path). The mention of 'detached process' and 'PID' adds some context but not enough to compensate for missing parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'start', the resource 'detached process or application', and the output 'return its PID'. This distinguishes it from sibling tools like run_command (likely foreground) and launch_application (possibly non-detached).
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 such as run_command or launch_application. There is no mention of prerequisites, when-not-to-use, or contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_infoA
Return operating-system, architecture, host, home and Node runtime details.
| 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 full burden. It describes the return values but does not disclose any potential side effects or behavioral traits beyond being a read operation. It is truthful but 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?
A single sentence with no wasted words, front-loaded with the verb and resource list.
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 no parameters, no output schema, and no annotations, the description is sufficient for understanding what the tool returns. It could mention that output is an object, but this is not a major gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema description coverage is trivially 100%. The description implies that no arguments are needed. Baseline for 0 params is 4, and this is met.
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 'Return' and lists distinct resources: operating-system, architecture, host, home, and Node runtime details. This clearly distinguishes it from sibling tools like network_info 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?
The description implies usage for obtaining system information but provides no explicit guidance on when to use this tool versus alternatives among siblings. It is minimally adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
windows_registryC
Windows-only registry query/set/delete through PowerShell.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| path | Yes | ||
| value | No | ||
| operation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions 'through PowerShell' without detailing permissions (admin required), side effects, or error behavior. Minimal behavioral insight beyond basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very concise (one sentence, 6 words) and front-loaded, but it is too brief for a registry tool with multiple operations. Every word earns its place, but the sentence could be expanded to cover essential context.
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 complexity and potential danger of registry operations, the description omits critical context: path syntax, required permissions, error handling, and return values. Incomplete for safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description fails to explain parameters (path, name, value) beyond operation. Agent gets no guidance on how to structure path or when name/value are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool operates on Windows registry with actions query/set/delete via PowerShell, distinguishing it from sibling tools which are general system utilities. However, it could specify the registry path format (e.g., HKLM\...).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives; no mention of prerequisites, security context, or conditions. Agent lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_fileC
Create or replace a UTF-8 text file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It states 'Create or replace' (mutation) and 'UTF-8' (encoding), but omits critical traits: does it overwrite silently? fail on existing? require directory existence? return status? These gaps hinder safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is efficient but overly terse, sacrificing necessary detail for brevity. It earns its place by stating purpose, but lacks structure that could front-load key behavioral cues, resulting in minimal informational density.
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 tool with no output schema, the description is incomplete. It fails to explain what happens when the file exists, whether parent directories are created, error behavior, or any return value. Agents require more context for reliable 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 0%, yet the description does not explain either parameter. It offers no detail on path format (absolute/relative), content size limits, or encoding constraints. The agent must guess parameter semantics from names alone.
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 'Create or replace a UTF-8 text file' uses a specific verb ('create/replace') and resource ('UTF-8 text file'), clearly distinguishing it from sibling tools like read_file, copy_file, or delete_path. It accurately conveys the core function of writing textual content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as copy_file or create_directory. It lacks context about prerequisites, scenarios, or exclusions, leaving the agent without decision support for tool selection.
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.
27 tool updates
v0.1.0- First observed
capture_screen - First observed
capture_screen_image - First observed
clipboard_get - First observed
clipboard_set - First observed
close_application - First observed
copy_file - First observed
create_directory - First observed
delete_path - First observed
keyboard_hotkey - First observed
keyboard_type - First observed
kill_process - First observed
launch_application - First observed
list_directory - First observed
list_processes - First observed
list_services - First observed
mouse_click - First observed
mouse_move - First observed
move_path - First observed
network_info - First observed
package_manager - First observed
read_file - First observed
run_command - First observed
service_control - First observed
spawn_process - First observed
system_info - First observed
windows_registry - First observed
write_file
TDQS
Scored across 27 tools
Most tools have distinct purposes, but capture_screen and capture_screen_image are very similar (different output format), and close_application and kill_process could be confused if descriptions aren't carefully read. Overall, the set is fairly well-disambiguated.
The majority of tools follow a verb_noun pattern (e.g., capture_screen, clipboard_get), but system_info, network_info, windows_registry, and package_manager deviate. This minor inconsistency slightly lowers the score but the pattern is still recognizable.
With 27 tools, the server covers a broad range of system operations. While slightly on the high side, the count is justified by the comprehensive scope (screen, clipboard, files, processes, system info, etc.). It's not excessive for the intended use case.
The tool set covers most essential system operations: file management, process control, clipboard, screen capture, system info, networking, services, and package management. Minor gaps (e.g., no mouse scroll, no file search) but overall quite complete for a system commander.
Maintenance
Related MCP Connectors
Run and manage H Company's Computer-Use Agents from any MCP client.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Remote MCP server to read and manage your Atako AI agents, messages, files, and integrations.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive computer control capabilities including mouse and keyboard automation, screen capture, OCR text recognition, and window management through MCP protocol.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables full Linux desktop control including windows, mouse, keyboard, clipboard, audio, screenshots, OCR, accessibility, and system management through MCP-compatible AI agents.1MIT
- FlicenseNot gradedqualityDmaintenanceEnables remote PC control and system management through MCP, including hardware info, process and file operations, with security features like blocklists and audit logging.-
- FlicenseNot gradedqualityCmaintenanceEnables secure remote access to your computer's filesystem and terminal through MCP, allowing AI assistants to manage files, run commands, and automate tasks from anywhere via a hosted relay.19-