Unlimited Agent
Allows the agent to control Google Chrome, including opening URLs, managing tabs, and navigating pages.
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., "@Unlimited Agentshow my Windows system information"
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.
Unlimited Agent
Unlimited Agent lets a private ChatGPT app operate the Windows PC that its owner paired: files, PowerShell, programs, screenshots, mouse and keyboard, clipboard, and Chrome.
It uses ChatGPT as the brain. It does not call a model API, consume Codex tokens, or install an OpenAI model API key. A user still needs a restricted Secure MCP Tunnel runtime credential (Tunnels: Read + Use) so the local bridge can authenticate to their own tunnel; that credential cannot perform model inference and is encrypted with Windows DPAPI.
Full remote control is powerful. Install only on a computer whose owner has knowingly consented. Keep the defaultbalanced + dangerous approval policy unless you understand the consequences of changing it.
What it can do
Read, search, create, edit, copy, move, and delete accessible files
Run PowerShell commands immediately or as background jobs
Launch local programs and inspect Windows/system information
Capture the primary or virtual desktop
List, focus, resize, minimize, maximize, or close windows
Send mouse clicks, scrolling, hotkeys, and text input
Read or replace clipboard text
Open URLs, select a Chrome profile, and control tabs/navigation
Make HTTP requests and download files without inheriting the tunnel credential
Reconnect automatically after Windows sign-in
The full 21-tool contract is in docs/TOOL_CONTRACT.md.
Related MCP server: ChatGPT Local Agent MCP
Requirements
Windows 10 or 11, x64
A ChatGPT account that can enable Developer mode and private apps/connectors
Access to OpenAI Platform Secure MCP Tunnels
Google Chrome for the Chrome-specific tools (the other tools do not require it)
Install and pair
Download
Unlimited-Agent-Setup-v0.1.0.exeandSHA256SUMS.txtfrom the latest release.Optionally verify the download:
Get-FileHash .\Unlimited-Agent-Setup-v0.1.0.exe -Algorithm SHA256Run the installer and accept the informed-consent notice. Windows SmartScreen may warn because community builds are not code-signed; verify the SHA-256 before choosing Run anyway.
In the setup window, select Open Secure MCP Tunnels. Create a tunnel in the OpenAI Platform tunnel settings, then copy its
tunnel_...ID.In OpenAI Platform API keys, create a dedicated project key restricted to Tunnels: Read + Use. Do not grant model or other API permissions. Paste it into the setup window.
Choose permissions. The recommended defaults are:
Permission mode:
balancedLocal approval:
dangerousSensitive-read approval: enabled
Allowed folder: your Windows user profile
Select Save and connect. The bridge starts in the background and is registered for the current Windows user at sign-in.
In ChatGPT, open Settings → Apps & Connectors → Advanced settings, enable Developer mode, create a private app, and select the tunnel you just paired. Name it
Unlimited Agent.
Open the desktop shortcut Unlimited Agent Status. CONNECTED and ready means the tunnel can serve the private ChatGPT app. Ask ChatGPT: “Use Unlimited Agent to show my Windows system information.”
OpenAI currently documents Secure MCP Tunnels as a private Developer-mode testing feature. They do not support public ChatGPT app-directory submission or one shared public tunnel. Consequently, every user must create their own private tunnel and private app even though the installer and source code are public. See the official Secure MCP Tunnel guide.
Permission modes
Mode | Behavior |
| Only inspection tools run. Changes, input, launches, and network calls are denied. |
| Paths must stay inside Allowed folders. Dangerous actions follow the approval setting. PowerShell remains available only after the configured approval because a command can address arbitrary resources. |
| All paths accessible to the signed-in Windows user are in scope. Approval settings still apply. |
Approval | Behavior |
| A local review window appears for writes, commands, input, launches, browser/network actions, and other mutations. With the recommended sensitive-read option, it also covers screenshots, window titles, and clipboard reads. |
| Every tool call requires local approval. |
| No local prompts. Use only on a fully trusted private installation. |
Open Unlimited Agent Settings on the desktop to re-pair, change the tunnel credential, or change permissions. Settings apply without reinstalling. A denied tool call returns a structured PERMISSION_DENIED result to ChatGPT. Tool calls are serialized, so Unlimited Agent cannot use its own mouse/keyboard tool to click a pending approval window.
Example requests
“Find all
.docxfiles modified this week in Documents and summarize their names. Don’t change anything.”“Create a folder on my desktop named
Trip, move the selected photos into it, and verify the count.”“Run the test suite in
C:\work\my-app; keep polling until it finishes and fix the first failure.”“Take a screenshot, focus Chrome, open the project dashboard, and tell me what is visible.”
“Start Notepad, type this meeting note, save it to Documents, then confirm the file exists.”
For GUI tasks, ChatGPT should iterate screenshot → window focus → input → screenshot. Unlimited Agent cannot bypass passwords, CAPTCHAs, MFA, UAC secure desktop, or locked Windows sessions.
Architecture
flowchart LR
A[Private ChatGPT app] --> B[OpenAI Secure MCP Tunnel]
B -->|outbound HTTPS session| C[tunnel-client]
C -->|stdio MCP| D[Unlimited Agent server]
D --> E[Central policy + local approval]
E --> F[Files / PowerShell / HTTP]
E --> G[Windows UI / Chrome / clipboard]server.mjsregisters the MCP tools and contains their implementations.policy.mjswraps every tool registration with canonical-path permission, reparse/hardlink-resistant folder checks, complete local approval details, overrides, and audit checks.scripts/windows-ui.ps1provides screen, window, input, and clipboard primitives through Windows APIs.scripts/start-tunnel.ps1decrypts the per-user runtime credential just long enough to starttunnel-client. The MCP server deletes credential environment variables before handling calls, and child processes receive a sanitized environment.scripts/watch-tunnel.ps1provides single-instance background recovery.scripts/settings.ps1owns pairing and permission settings. Credentials use DPAPICurrentUser; non-secret policy is JSON.installer/produces one self-contained x64 Windows setup executable.
No inbound listener or firewall exception is created. The local server is stdio-only; tunnel-client provides the remote MCP endpoint selected by ChatGPT.
Local development
git clone https://github.com/yungsuk53-pixel/unlimited-agent.git
cd unlimited-agent
npm ci --ignore-scripts
npm testnpm test reaches validation level 2: schema/annotation checks, a real stdio MCP session, file operations, PowerShell credential isolation, local HTTP, screenshots, windows, input plumbing, system policy, and background jobs.
Build and fresh-install test:
npm run build:installer
npm run test:installThe build downloads pinned Node.js, tunnel-client, and ripgrep x64 releases and verifies them against immutable SHA-256 values committed in the build script. CI repeats the MCP tests, installer build, DPAPI round trip, synthetic fresh install, and installed-runtime tool tests. Test credentials are synthetic and never contact OpenAI.
To test a real tunnel, install the generated EXE, pair a dedicated tunnel credential, check Unlimited Agent Status, and connect the private app in ChatGPT Developer mode.
Data locations
Installed files and current-user data are under:
%LOCALAPPDATA%\UnlimitedAgent\
config\config.json non-secret policy and tunnel ID
config\credential.dpapi DPAPI-encrypted restricted runtime key
data\audit.jsonl tool decision audit (names, decisions, hashes)
data\logs\ tunnel and watchdog diagnosticsThe project never logs the plaintext tunnel credential. Logs redact strings matching OpenAI key formats, and tool-launched processes receive a minimal allowlist of ordinary Windows environment variables instead of inheriting ambient tokens or secrets.
Troubleshooting
Status says reconnecting or unavailable
Open Unlimited Agent Settings and re-enter the tunnel ID and a valid restricted runtime key.
Confirm the key has
Tunnels: Read + Useand belongs to the organization/workspace that owns the tunnel.Check
%LOCALAPPDATA%\UnlimitedAgent\data\logs\bridge.logandwatchdog.log.A
404commonly means ChatGPT selected a different tunnel/app, the runtime is stopped, or the private app was not created from the same ChatGPT/OpenAI organization context.
A tool is denied
The local response states whether read-only mode, an Allowed folders boundary, a per-tool override, or a rejected approval caused it.
Open Unlimited Agent Settings to change the policy. Do not weaken permissions merely to hide a genuine safety boundary.
Mouse or keyboard actions do nothing
Windows must be signed in and unlocked.
UAC secure desktop, login screens, some elevated apps, games using exclusive input, and protected media cannot be reliably automated from a normal user process.
Chrome opens the wrong profile
Ask ChatGPT to call
open_urlorbrowser_controlwith the Chrome profile directory name, such asDefaultorProfile 2.
Uninstall and revoke
Run the desktop shortcut Uninstall Unlimited Agent. It stops/removes the local runtime, deletes autostart entries, removes the encrypted credential, and deletes the installation directory.
Then revoke the dedicated restricted key in OpenAI Platform and delete the tunnel if it will no longer be used. Revocation is important if the PC or Windows account may be compromised.
Security and license
Read SECURITY.md before enabling full access. Security reports should use GitHub private vulnerability reporting, not public issues.
Unlimited Agent is available under the MIT License. Bundled runtime notices are in THIRD_PARTY_NOTICES.md.
Available Tools
21 toolsbrowser_controlControl Google ChromeA
Open a URL or send navigation/tab shortcuts to the focused Chrome window. For reliable GUI browsing, list windows, focus Chrome, act, then capture a screenshot.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| action | Yes | ||
| profile | No | Default | |
| windowHandle | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate not read-only and not destructive, but the description adds a behavioral requirement: it acts on a 'focused Chrome window,' which implies the need to focus Chrome first. It does not describe potential side effects (e.g., closing tabs) or failure modes. There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, two sentences, with the core purpose stated upfront. No fluff has to earn its place. The second sentence adds practical usage advice.
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 4 parameters and no output schema, the description gives a workflow but omits detailed explanations for what happens with each action (e.g., what happens when close_tab is used, whether confirmation occurs, how windowHandle affects behavior). It relies heavily on the schema for context but the schema has no descriptions. It is not fully complete for an agent to safely use all features.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a schema description coverage of 0%, the description must explain parameter meaning. It loosely covers 'url' (for open) and 'action' (for shortcuts/tabs), but completely ignores 'profile' and 'windowHandle'. The enum for 'action' is self-explanatory, but the additional parameters are left undefined. The description does not compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Open a URL or send navigation/tab shortcuts to the focused Chrome window.' This uses specific verbs (open, send) and a specific resource (Chrome window), and distinguishes it from siblings like open_url (which may target any browser) and window_control (which handles window management).
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 a recommended usage sequence: 'For reliable GUI browsing, list windows, focus Chrome, act, then capture a screenshot.' This tells the agent when to use it and in what context. However, it does not explicitly mention when not to use it or provide alternative approaches, which is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipboardRead or write Windows clipboardA
Read text from or write text to the interactive Windows clipboard.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | ||
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not a read-only tool, and the description accurately reflects read/write behavior without contradicting annotations. However, beyond the basic dual-action behavior, it does not disclose details such as what happens on a non-text clipboard, whether setting overwrites existing content, or possible 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, compact sentence that is front-loaded with the tool's purpose. There is no filler or redundant restatement 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?
For a simple two-parameter clipboard tool, the description is minimally adequate, but it leaves gaps: it does not specify the return behavior for `get`, nor the dependency between `action=set` and the `text` field. The lack of an output schema makes these omissions more noticeable.
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 needed to compensate by explaining how `action` and `text` relate. Instead, it merely restates 'read text' and 'write text' without mapping those actions to the get/set enum or clarifying that `text` is needed for the set action. The schema provides names and enum values but no semantic guidance.
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 function with specific verbs 'read' and 'write' plus the resource 'Windows clipboard' in the title and description. It is immediately distinguishable from sibling tools like read_file, write_file, and computer_input.
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 communicates the core use case but provides no explicit guidance on when to prefer this tool over alternatives or when not to use it. Usage context is implied by the 'interactive Windows clipboard' phrasing, but no exclusions or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer_inputControl mouse and keyboardADestructive
Send mouse, keyboard, text, scrolling, and wait actions to the interactive Windows desktop. Take a screenshot first, focus the target window, act, then screenshot again to verify.
| Name | Required | Description | Default |
|---|---|---|---|
| actions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate destructiveHint=true, and the description appropriately warns that actions affect the live desktop. It adds operational context by recommending a screenshot-verify loop, which goes beyond the annotations. However, it does not detail all potential destructive outcomes (e.g., keystrokes affecting unsaved work) or permission/security implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and immediately fronts the core behavior. Every word adds value: the first sentence identifies the input categories, the second provides the exact workflow. No fluff or redundant restating 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?
For a tool with one complex parameter, nested objects, no output schema, and destructive annotations, the description is reasonably complete. It tells the agent what to do (send actions) and how to use it safely (screenshot first, verify after). However, it lacks explicit details on when not to use it or how the wait action works relative to screen transitions.
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 carries the burden. It lists action types (mouse, keyboard, text, scrolling, wait) and gives workflow hints, but it does not explain individual fields like x, y, delta, button, milliseconds, or key formats. The enum values in the schema are self-explanatory for an AI agent, and the description covers the high-level categories, but some parameter semantics remain implicit.
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: sending mouse, keyboard, text, scrolling, and wait actions to the interactive Windows desktop. It lists specific action categories and distinguishes itself from sibling tools like browser_control and window_control by targeting the desktop-level input.
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 workflow: take a screenshot first, focus the target window, act, then screenshot again to verify. This implies when to use the tool (for interactive desktop manipulation) but does not explicitly state exclusions or mention alternative tools for specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_fileEdit local text fileADestructive
Replace exact text in a UTF-8 local file. Use for focused edits that preserve the rest of the file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| newText | Yes | ||
| oldText | Yes | ||
| replaceAll | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructiveHint=true, but the description adds valuable context beyond that: it emphasizes 'exact text' matching and 'preserve the rest of the file,' which clarifies the non-destructive-to-unmatched-content nature of the edit. This is particularly useful because it signals that the tool does not truncate or rewrite the entire file. No contradiction with annotations; in fact, it reinforces them.
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, direct sentences with no filler. The most important action ('Replace exact text') comes first, followed by a parenthetical-style usage note. Every word earns its place. This is a model of 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?
For a destructive mutation tool with four parameters and no output schema, this description is functional but thin. It covers the core 'what' but leaves out edge cases like what happens if oldText is not found, whether matching is case-sensitive, and the behavior of replaceAll (since it defaults to false). Given the straightforward nature of the operation and the clear sibling distinction, it's adequate but not rich. A 3 reflects that it's the minimum viable 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?
With 0% schema description coverage, the description bears full responsibility for parameter meaning. It says 'exact text,' which hints that oldText/newText must be precise substrings, but it doesn't explicitly map to parameters or mention the replaceAll flag, path semantics, or error behavior. The description is a good start but leaves much of the parameter reasoning to inference. A 3 is appropriate because it gives some guidance but doesn't fully compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb+resource: 'Replace exact text in a UTF-8 local file.' It clearly distinguishes this from siblings like write_file (which overwrites entire files) and file_operation (generic) by emphasizing 'focused edits' and 'preserve the rest of the file.' This is a textbook case of purpose clarity and sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence, 'Use for focused edits that preserve the rest of the file,' provides explicit guidance on when to use this tool. While it doesn't explicitly name alternatives like write_file, the context makes clear that this is for targeted modifications rather than full rewrites. It could be improved by mentioning when not to use it, but the guidance is sufficient for basic selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execExecute PowerShellADestructive
Run an arbitrary PowerShell command on this Windows PC. Use for local development, package installation, system configuration, services, processes, and tasks not covered by a more specific tool. Verify changes afterward.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory; defaults to the Windows user profile | |
| command | Yes | PowerShell command to run | |
| timeoutSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructiveHint=true, openWorldHint=true, and idempotentHint=false, so the description doesn't need to repeat those. The description adds a caution to 'Verify changes afterward,' which is helpful, but it doesn't elaborate on side effects, permissions, or potential system impact beyond what the annotations imply. Given the annotations carry the risk profile, the description's additional behavioral context is minimal but appropriate.
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 three concise sentences: the primary action, a list of appropriate use cases, and a verification instruction. The purpose is front-loaded in the first sentence. No filler or redundancy. Every sentence adds value, making it highly 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 an arbitrary command execution tool, the description covers the essential aspects: what it does, when to use it, and a caution to verify. It does not describe return output or error handling, but there is no output schema, so that is not strictly required. Given the complexity of the tool and the existence of many specific siblings, the description is sufficiently complete to guide an agent in selecting and using it appropriately.
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 provides no detail about the parameters themselves. The input schema covers 'command' and 'cwd' with descriptions, but 'timeoutSeconds' lacks a description (schema coverage is 67%). The description does not compensate for this missing parameter information, nor does it add any meaning beyond the schema for the existing parameters. Since the coverage is moderate but not high, the description should have at least mentioned the timeout or working directory behavior, but it doesn't.
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 primary action: 'Run an arbitrary PowerShell command on this Windows PC.' It specifies the resource (PowerShell on Windows) and the scope (arbitrary). It also lists common use cases (local development, package installation, system configuration, services, processes) and explicitly distinguishes from more specific tools by saying 'tasks not covered by a more specific tool,' which differentiates it from the sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidance: 'Use for local development, package installation, system configuration, services, processes, and tasks not covered by a more specific tool.' This tells when to use it and implies when not to use it (when a more specific tool exists). It also adds a safety instruction: 'Verify changes afterward,' which is a clear directive for safe usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_operationManage local files and foldersADestructive
Copy, move, delete, or create local files and folders. Use exact resolved targets and verify consequential operations afterward.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| source | Yes | ||
| overwrite | No | ||
| recursive | No | ||
| destination | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds useful behavioral guidance: 'Use exact resolved targets and verify consequential operations afterward.' This goes beyond the annotations by advising post-operation verification and caution with path resolution, though it does not detail what may be destroyed or under what 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 extremely concise: two sentences, no filler. It front-loads the core actions in the first sentence and adds a practical caution in the second. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, destructive operation, no output schema), the description covers the purpose and a verification warning but leaves out important parameter semantics (e.g., overwrite behavior, recursive handling, destination requirement). The annotations cover the destructive nature, allowing a slightly higher score, but the incomplete parameter context still prevents a higher rating.
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 the parameters other than implying the 'action' enum via the verbs. It doesn't clarify the meaning or usage of 'overwrite', 'recursive', 'source', or 'destination'. For a tool with 5 parameters (2 required), 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 begins with specific verbs and a resource: 'Copy, move, delete, or create local files and folders.' This clearly enumerates the tool's actions and distinguishes it from sibling tools like read_file or list_directory, which handle reading/listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool (any operation that copies, moves, deletes, or creates local files/folders), but it does not explicitly state when not to use it or mention alternatives such as write_file for editing. The caution to 'Use exact resolved targets' implies careful use, but no exclusion or alternative is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_requestMake HTTP request or downloadB
Call an HTTP/HTTPS URL from this PC or download the response to a local file. Does not inherit OpenAI or tunnel credentials.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| body | No | ||
| method | No | GET | |
| saveTo | No | ||
| headers | No | ||
| timeoutSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description adds meaningful context: the request is made 'from this PC' and it 'does not inherit OpenAI or tunnel credentials,' which lets agents know explicit headers are needed for authenticated endpoints. It also exposed the side effect of downloading to a local file, which is not fully captured by the annotation flags.
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 short and front-loaded: the first sentence states the core capability and the second gives a useful credential caveat. Every sentence earns its place; no filler or title 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?
The description communicates the primary use cases and an important authentication constraint, but with six parameters, no output schema, and no parameter descriptions, it leaves gaps around response return values, error behavior, and request-side details such as headers/body when not covered by the 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?
With 0% schema_description_coverage, the description is expected to compensate by explaining parameters, but it only vaguely maps to 'URL' and 'local file.' There is no meaningful detail added for body, method, headers, timeout, or saveTo semantics beyond what generic names and types already provide.
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 tool states a concrete action: 'Call an HTTP/HTTPS URL from this PC' and additionally mentions downloading the response locally, which clarifies the intended scope. It doesn't explicitly distinguish itself from siblings like open_url or file tools, so it stops short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but provides no guidance on when to prefer it over alternatives such as open_url, exec, or file_operation. The credential note is useful behaviorally but isn't shaped as 'use this when' or 'avoid this when' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_statusCheck background jobARead-onlyIdempotent
List background jobs or inspect one job with running state and recent stdout/stderr. Poll until completion and verify the resulting files or application state.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | ||
| tailBytes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide read-only, idempotent, and non-destructive flags. The description adds meaningful context beyond those annotations by disclosing observable behavior: it exposes running state and recent stdout/stderr, and supports polling until completion.
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 compact and front-loaded. Two sentences cover the main action, inspectable state, log tail access, and polling context with no filler or redundant restatement 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 simple input schema and strong annotations, the description gives enough context about what the tool returns and why it should be used. It could be more explicit about the output shape when listing all jobs vs inspecting a single one, but it is not critically 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?
Schema description coverage is 0%, so the description must compensate. It only indirectly implies jobId via 'inspect one job' and tailBytes via 'recent stdout/stderr,' but it does not explicitly explain their meaning, relationship, or effect on the returned output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action: 'List background jobs or inspect one job with running state and recent stdout/stderr.' It clearly distinguishes itself from lifecycle-related siblings like start_job and stop_job by focusing on observation and status verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use the tool: poll until completion and verify resulting files or application state. It does not name exclusions or compare directly with read_file or related observation tools, but the usage intent is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
launch_programLaunch local programB
Launch a local executable or script with arguments, optionally visible. Use list_windows and screenshot after launching GUI applications.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | ||
| args | No | ||
| visible | No | ||
| executable | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnly=false, idempotent=false, destructive=false. The description adds a small behavioral hint about GUI verification and 'optionally visible', but it omits important behaviors such as process lifecycle, whether the call blocks, or what output/exit status is returned. No contradiction exists, but transparency is only intermediate.
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?
Highly concise as two sentences in 22 words. The main verb and resource are front-loaded, and the follow-up GUI guidance is directly relevant and efficiently placed. No filler or redundant content.
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 a four-parameter tool, the description misses essential context about process lifetime, return value, whether the program is blocking, working-directory assumptions, and session visibility. The GUI follow-up guidance is helpful, but overall the description leaves too much uncertainty for safe, autonomous tool 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 0%, so the description must compensate. It mentions 'executable or script', 'with arguments', and 'optionally visible', but omits 'cwd' entirely and gives no details about argument handling or vocabulary defaults. The description adds some semantic clarity for executable/args/visible but not enough for key parameters like cwd.
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 action ('Launch a local executable or script') and key modifiers ('with arguments, optionally visible'). It distinguishes from related tools by emphasizing local executable/script, though it doesn't explicitly differentiate from 'exec' or 'start_job'. This is clear enough for selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a clear follow-up directive: use list_windows and screenshot after launching GUI applications. This gives useful context for the expected workflow, but it does not mention when not to use this tool or present alternatives, so it falls short of explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoryList local directoryARead-onlyIdempotent
List files and folders with type, size, and modified time. Use before guessing paths or choosing files to edit.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | /root | |
| maxDepth | No | ||
| recursive | No | ||
| maxEntries | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover the read-only, non-destructive, idempotent nature of the tool. The description adds value beyond the annotations by telling the agent what kind of information it will receive (file type, size, modified time), which helps set expectations for downstream decisions. There is no contradiction with annotations, and no additional behavioral disclosure about truncation or depth limits is made, but the annotations lower the bar for this dimension.
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 only two sentences, both of which carry meaningful content. The primary purpose is front-loaded and the usage hint is brief. There is no redundancy or filler, making it as concise as possible while still providing useful guidance.
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 four parameters, no schema descriptions, and no output schema, the tool requires more explanatory detail than this description offers. It covers the basic listing action and return fields, but omits key operational details like path scoping, recursion behavior, depth limits, and entry cap semantics. This leaves too much room for agent misconfiguration.
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 bears the full responsibility for explaining parameters. It mentions no parameter semantics at all: 'path', 'maxDepth', 'recursive', and 'maxEntries' are all left unexplained. This is a critical gap for an agent trying to decide what values to pass or what each control does.
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 ('List') and the resource ('files and folders'), and specifies the returned attributes ('type, size, and modified time'). This makes it instantly distinguishable from sibling tools like read_file, edit_file, and search_files, so an agent can confidently select it for directory inspection.
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 sentence 'Use before guessing paths or choosing files to edit' provides explicit situational guidance and tells the agent when this tool should be invoked. However, it does not name alternative tools or explicitly state when not to use it, which keeps it just below a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_windowsList desktop windowsARead-onlyIdempotent
List top-level Windows desktop windows with title, process ID, handle, position, size, and minimized state. Use to target window_control reliably.
| Name | Required | Description | Default |
|---|---|---|---|
| includeHidden | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral context about scope (top-level windows), platform (Windows), and output fields. No contradiction with annotations 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?
Two crisp sentences: the first states the operation and output fields, the second gives usage guidance. No wasted words or redundant repetition of schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool, this is almost complete: it identifies the target resource, lists output fields, and links to its downstream use (window_control). The only significant gap is the undocumented includeHidden parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, includeHidden, has no schema description and the tool description does not explain its effect—especially whether it includes minimized windows, hidden windows, or other invisible top-level windows. With 0% schema description coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses specific verb 'List' and clear resource 'top-level Windows desktop windows', enumerates returned fields (title, process ID, handle, position, size, minimized state), and separates it from window_control by stating its purpose of enabling reliable targeting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to use this when wanting to target window_control, giving a clear use context. It does not explicitly say when not to use it or name alternatives, but the context is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_urlOpen URL in logged-in ChromeA
Open an HTTP/HTTPS URL in Google Chrome using a profile belonging to the current Windows user.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| profile | No | Default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal side effects (readOnlyHint=false, openWorldHint=true, idempotentHint=false), so the description needs less behavioral detail. It adds the useful context that Chrome uses a profile belonging to the current Windows user, but it does not explain whether a new tab or window is opened, whether Chrome is launched if not running, or how failures are reported.
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 repeated annotation data. Every part contributes to understanding what the tool does.
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 two parameters and no output schema, the description is mostly complete enough for an agent to select and invoke it. It clearly identifies the URL and Chrome profile; the main missing pieces are the exact session/tab behavior and platform failure modes, but these are not blocking for a basic open-URL action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% parameter description coverage in the schema, the description must compensate. It adds some meaning by clarifying that URL must be HTTP/HTTPS and that profile is associated with the current Windows user, but it leaves details unclear such as how profiles are resolved or what the default 'Default' profile means beyond standard Chrome 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 states a specific action (open an HTTP/HTTPS URL) and a specific resource (Google Chrome using a profile belonging to the current Windows user). This is more informative than the title and clearly differentiates the tool from generic siblings like launch_program or browser_control.
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 about when to prefer this tool over alternatives such as http_request, browser_control, or launch_program. It also omits any conditions, exclusions, or prerequisites beyond the implied Windows/Chrome context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
path_infoInspect local pathARead-onlyIdempotent
Check whether a local path exists and return detailed file, folder, or symbolic-link metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds that it checks existence and returns metadata, but it does not disclose not-found behavior, symlink resolution, or whether the returned metadata is stat-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 one sentence, front-loaded with the core action, and contains no filler. Every phrase ('exists', 'detailed metadata', 'symbolic-link') 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, one-parameter, read-only inspection tool with strong annotations, the description covers the essential purpose and result type. The main gap is the lack of an output schema or explanation of what happens when the path does not exist, but the overall tool complexity is low enough that this is still reasonably 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 schema provides no parameter description, so the description's mention of 'local path' and 'file, folder, or symbolic-link' adds meaningful semantics beyond the bare string type. It stops short of specifying accepted formats like absolute vs relative paths, but for a single obvious parameter it is adequately clarifying.
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 whether') and a concrete resource ('local path'), and names the exact result: detailed file, folder, or symbolic-link metadata. This clearly distinguishes it from sibling tools like list_directory or read_file by focusing on path existence and metadata rather than contents.
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 usage context is implied: it is for inspecting whether a local path exists and retrieving metadata. However, it provides no explicit when-to-use versus alternatives, no exclusions, and no mention of when list_directory or file_operation 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.
read_fileRead local fileARead-onlyIdempotent
Read any local file accessible to the current Windows user. Use utf8 for text and base64 for binary files.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| encoding | No | utf8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only and idempotent. The description adds useful context by restricting access to files available to the current Windows user and by directing base64 for binary files. It does not discuss error cases, but the annotation safety profile lowers that burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the main purpose, and every phrase adds useful information. 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 read-file tool with no output schema and strong read-only/idempotent annotations, the description covers the core scope and encoding behavior. It does not mention error handling, missing files, or response format, but for a straightforward local read tool this is not a critical 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?
The schema only provides names and an enum for encoding, while the description enriches the encoding parameter by explaining that utf8 is for text and base64 is for binary. It also clarifies the path parameter as a local file accessible to the current user, though it does not detail path formatting requirements.
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 'Read any local file accessible to the current Windows user,' which clearly identifies the action, resource, and scope. It distinguishes this tool from write/edit tools by emphasizing local file reading.
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 contextual guidance: it is for local file reading, and it specifies when to use utf8 vs base64 encoding. It does not explicitly name sibling alternatives, but the local-file scope and encoding instructions make usage largely unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshotCapture Windows screenARead-onlyIdempotent
Capture the primary display or full virtual desktop as a PNG image. Use before and after graphical actions to locate controls and verify outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| capture | No | virtual |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds meaningful context by specifying the capture scopes (primary vs. virtual desktop) and the PNG output format, which goes beyond the structured annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The first sentence front-loads the action and resource; the second provides 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 simple read-only tool with one optional enum parameter, strong annotations, and no output schema, the description covers the capture scope, output format, and intended use pattern. It provides everything an agent needs to decide when and how to invoke it.
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% parameter description coverage, so the description carries the burden. It explains both enum values: 'primary display' for 'primary' and 'full virtual desktop' for 'virtual'. It does not state the default, but the schema already shows 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 a specific verb ('Capture') and names the exact resources ('primary display or full virtual desktop') along with the output format ('PNG image'). It clearly distinguishes this from sibling tools like list_windows, read_file, or computer_input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool ('Use before and after graphical actions to locate controls and verify outcomes'). It gives clear contextual guidance, though it does not name alternative tools or negative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesSearch local filesARead-onlyIdempotent
Fast local search using ripgrep. Search file names or text contents before reading large directory trees.
| Name | Required | Description | Default |
|---|---|---|---|
| glob | No | ||
| mode | No | content | |
| root | No | /root | |
| query | Yes | ||
| regex | No | ||
| maxResults | No | ||
| caseSensitive | No | ||
| includeHidden | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds that it uses ripgrep and is fast, but does not mention potential nuances like respect for .gitignore, output format, or error behavior. Given the annotations, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and to the point, consisting of two sentences. It avoids unnecessary fluff and clearly communicates the core functionality and recommended 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?
The description lacks essential context for effective use. With 8 parameters, no parameter descriptions, and no output schema, the agent is left without guidance on expected results (e.g., paths, line numbers), return format, or how to combine parameters. The description is too minimal to fully equip an agent to use this tool correctly in all scenarios.
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 provides no explanation for any of the 8 parameters. While names like 'query', 'glob', and 'maxResults' are somewhat intuitive, the lack of any description for parameters like 'root', 'regex', or 'caseSensitive' leaves ambiguity. The tool description does not compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: fast local search using ripgrep, covering both file names and text contents. It distinguishes itself from file reading and listing tools by advising to search before reading large directory trees.
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 a clear usage context: use before reading large directory trees to avoid unnecessary scanning. It implies this tool is efficient for locating files or content, but does not explicitly contrast with sibling tools like grep or list_directory, though the context is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_jobStart background PowerShell jobADestructive
Start a long-running PowerShell command in the background with persistent stdout/stderr logs. Poll with job_status instead of waiting in exec.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | ||
| label | No | ||
| command | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds context about background execution and persistent logs, but does not elaborate on potential side effects or non-blocking behavior beyond the annotation. It provides some value without contradiction.
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 clear, concise sentences that convey the core action, key behavior (background, logs), and usage guidance. 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?
Provides good high-level context (long-running, background, logs, polling advice) but omits how the job ID is returned or how to reference the job with job_status. Since there is no output schema, this is not strictly required, but it would improve usability.
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 no per-parameter descriptions. The description mentions 'PowerShell command' (implying the 'command' parameter) but does not explain the purpose of 'cwd' or 'label'. With 0% schema coverage, it should compensate but fails to describe two of three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states that it starts a long-running PowerShell command in the background with persistent logs, distinguishing it from synchronous execution (exec) and monitoring (job_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?
Explicitly advises polling with job_status instead of waiting in exec, giving a clear alternative and implied use case for long-running tasks. Could be stronger by stating when not to use this tool (e.g., for quick commands).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_jobStop background jobADestructive
Force-stop a background job and its child process tree by job ID.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'destructiveHint: true' is consistent with the description's 'Force-stop' and 'child process tree' language. The description adds the nuance that it kills the entire process tree, which is not implied by annotations alone. However, it does not explicitly state irreversibility or side effects like data loss, though it is strongly implied.
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. It front-loads the action and scope, making it immediately understandable. Perfectly concise for a simple 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 single-parameter tool with no output schema, the description is sufficiently complete. It covers the core action and scope. It could mention error behavior (e.g., what happens if jobId doesn't exist) but given the simplicity and the sibling context, the current level is adequate.
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 specifies 'jobId' as a UUID. Since schema description coverage is 0%, the description must compensate. It mentions 'by job ID', which clarifies the parameter's purpose, but it does not explain how to obtain a job ID (e.g., from 'start_job') or valid formats beyond the schema. This is minimal compensation for a single parameter.
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 a specific action ('Force-stop') on a specific resource ('background job') with an additional detail ('child process tree') and identification method ('by job ID'). It unambiguously distinguishes from sibling tools like 'start_job' and 'job_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?
While the description implies when to use the tool (to stop a job), it does not explicitly state when not to use it or mention alternatives (e.g., 'use job_status to check first' or 'use exec for non-background tasks'). It relies on inference rather than explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_infoInspect Windows systemARead-onlyIdempotent
Return local Windows, CPU, memory, user, host, runtime, and server capability information without changing the PC.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a clear non-destructive guarantee ('without changing the PC'), which complements the readOnlyHint and destructiveHint annotations. While it doesn't discuss permissions or side effects, the core behavioral trait is transparently disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently lists the categories of information returned. There is no superfluous text or ambiguity in structure.
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 and lack of output schema, the description fully covers its purpose and safety behavior. It clearly outlines what the user can expect without needing additional details.
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 no input parameters, and the description appropriately avoids discussing them. Since there are no params, the baseline is 4; the description adds value by specifying what kind of information is returned, which is more than sufficient.
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 returns system information (Windows, CPU, memory, user, host, runtime, server capability) and explicitly notes it does so without changing the PC. This is specific and distinguishes it from sibling tools like exec or file 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 implies safe usage ('without changing the PC') but does not explicitly state when to use this tool versus alternatives. It lacks direct comparison to other tools or scenarios, leaving the usage context implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
window_controlControl desktop windowADestructive
Focus, minimize, maximize, restore, or close a desktop window by the handle returned from list_windows.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| handle | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation/destruction risk is known. The description adds the useful context that the handle originates from list_windows, but otherwise it largely restates the action enum without explaining side effects such as focus stealing or irreversible close. This is acceptable but not rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single sentence that front-loads the action verbs and immediately names the handle source. There is no redundancy or filler; every phrase contributes to selecting and invoking the tool correctly.
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 an enum constraint, annotations, and no output schema, the description contains enough information to invoke it correctly: the handle provenance and the allowed actions. It could mention edge cases like close being irreversible, but the destructiveHint annotation already covers the main safety concern.
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 the schema itself provides an enum for action and an integer type with minimum for handle. The description adds one meaningful semantic beyond the schema: the handle is specifically the one returned by list_windows. However, it does not elaborate on the effects or prerequisites of each action, so it only partially compensates for the 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 names a specific verb set ('Focus, minimize, maximize, restore, or close') and a clear resource ('a desktop window'), then ties the handle to list_windows, which distinguishes it from window enumeration and other sibling tools. This is a specific, actionable definition rather than a generic restatement of the title.
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 'by the handle returned from list_windows' clearly implies the prerequisite workflow: first list windows, then control one by its handle. It does not explicitly list when not to use the tool, but no sibling tool appears to overlap with desktop-window manipulation, so the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_fileWrite local fileADestructive
Create, overwrite, or append to any local file. Create missing parent folders when requested, then verify important writes with read_file or path_info.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | overwrite | |
| path | Yes | ||
| content | Yes | ||
| encoding | No | utf8 | |
| createParents | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint already provided by annotations, the description adds useful behavioral context: it can overwrite existing content, append, and create parent directories only when requested. It also signals that the responsible pattern is to verify important writes afterward.
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 concise sentences with no filler. It front-loads the operation, then adds the important parent-folder behavior and verification recommendation.
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 covers the core write semantics, the optional parent-directory creation, and the verification mechanism despite the lack of an output schema. It is slightly incomplete because it does not mention encoding behavior or success/error semantics, though the schema covers the parameter 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?
Schema description coverage is 0%, but the description clarifies the meanings of overwrite/append behavior and the createParents behavior. However, encoding is left entirely to the schema and the description does not explain why or when to choose encoding options.
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 exactly what the tool does: 'Create, overwrite, or append to any local file.' This clearly defines the operation type and resource scope, making it easy to distinguish from read-focused siblings like read_file and path_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?
It gives clear guidance on when verifying results is appropriate by recommending read_file or path_info after important writes. However, it does not explicitly explain when to prefer write_file over alternatives like edit_file or file_operation.
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.
21 tool updates
v0.1.0- First observed
browser_control - First observed
clipboard - First observed
computer_input - First observed
edit_file - First observed
exec - First observed
file_operation - First observed
http_request - First observed
job_status - First observed
launch_program - First observed
list_directory - First observed
list_windows - First observed
open_url - First observed
path_info - First observed
read_file - First observed
screenshot - First observed
search_files - First observed
start_job - First observed
stop_job - First observed
system_info - First observed
window_control - First observed
write_file
TDQS
Scored across 21 tools
Tools are mostly distinct: background job management (start/stop/status), file operations (read/write/edit/list/path/search/file_operation), system info, HTTP, and GUI interaction. Minor overlap between exec and start_job (both run PowerShell commands) and between http_request and open_url (both fetch URLs), but descriptions clarify the intended use cases.
All tools follow a consistent verb_noun pattern: job_status, stop_job, start_job, read_file, write_file, edit_file, list_directory, path_info, search_files, file_operation, system_info, http_request, screenshot, list_windows, window_control, computer_input, clipboard, open_url, browser_control, launch_program. Verbs are clear and nouns are descriptive, with no mixing of casing or inconsistent verb styles.
21 tools is on the higher end of the reasonable range (3-15 typical), but given the broad scope of the server (system administration, file management, GUI automation, web browsing) each tool serves a distinct need and the count is justified. It exceeds the 'well-scoped' range slightly, but does not feel bloated or repetitive.
The tool surface covers the core domains comprehensively: file CRUD (read, write, edit, copy/move/delete), process management (start, status, stop), system info, and GUI automation (screenshot, windows, input, clipboard). Minor gaps include an explicit tool for renaming files (file_operation combines it) and no dedicated tool for managing services (can be done via exec), but these are workable via general-purpose tools like exec.
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
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
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.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA standalone MCP server for Windows desktop control, enabling screenshots, mouse and keyboard input, app launch, window/display management, and clipboard access via natural language.2MIT
- AlicenseNot gradedqualityBmaintenanceThis MCP server gives ChatGPT controlled access to your Windows PC, enabling it to inspect files, run commands, apply patches, and interact with the desktop under your supervision.3MIT
- FlicenseCqualityCmaintenanceEnables ChatGPT to control a Windows PC remotely via OpenAI Secure MCP Tunnel, executing file operations, PowerShell commands, and system actions through a local MCP server.15-
- FlicenseBqualityBmaintenanceA local MCP server that bridges ChatGPT to a Windows PC, offering filesystem, shell, Git, and diagnostic tools via a secure tunnel.171-
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/gunwoo55/unlimited-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server