Skip to main content
Glama
gunwoo55
by gunwoo55

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.

WARNING

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

  1. Download Unlimited-Agent-Setup-v0.1.0.exe and SHA256SUMS.txt from the latest release.

  2. Optionally verify the download:

    Get-FileHash .\Unlimited-Agent-Setup-v0.1.0.exe -Algorithm SHA256
  3. Run 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.

  4. In the setup window, select Open Secure MCP Tunnels. Create a tunnel in the OpenAI Platform tunnel settings, then copy its tunnel_... ID.

  5. 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.

  6. Choose permissions. The recommended defaults are:

    • Permission mode: balanced

    • Local approval: dangerous

    • Sensitive-read approval: enabled

    • Allowed folder: your Windows user profile

  7. Select Save and connect. The bridge starts in the background and is registered for the current Windows user at sign-in.

  8. 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

read_only

Only inspection tools run. Changes, input, launches, and network calls are denied.

balanced

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.

full

All paths accessible to the signed-in Windows user are in scope. Approval settings still apply.

Approval

Behavior

dangerous

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.

always

Every tool call requires local approval.

never

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 .docx files 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.mjs registers the MCP tools and contains their implementations.

  • policy.mjs wraps every tool registration with canonical-path permission, reparse/hardlink-resistant folder checks, complete local approval details, overrides, and audit checks.

  • scripts/windows-ui.ps1 provides screen, window, input, and clipboard primitives through Windows APIs.

  • scripts/start-tunnel.ps1 decrypts the per-user runtime credential just long enough to start tunnel-client. The MCP server deletes credential environment variables before handling calls, and child processes receive a sanitized environment.

  • scripts/watch-tunnel.ps1 provides single-instance background recovery.

  • scripts/settings.ps1 owns pairing and permission settings. Credentials use DPAPI CurrentUser; 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 test

npm 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:install

The 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 diagnostics

The 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 + Use and belongs to the organization/workspace that owns the tunnel.

  • Check %LOCALAPPDATA%\UnlimitedAgent\data\logs\bridge.log and watchdog.log.

  • A 404 commonly 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_url or browser_control with the Chrome profile directory name, such as Default or Profile 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 tools
browser_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
actionYes
profileNoDefault
windowHandleNo

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
actionYes

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 keyboardA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionsYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 fileA
Destructive

Replace exact text in a UTF-8 local file. Use for focused edits that preserve the rest of the file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
newTextYes
oldTextYes
replaceAllNo

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 PowerShellA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory; defaults to the Windows user profile
commandYesPowerShell command to run
timeoutSecondsNo

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 foldersA
Destructive

Copy, move, delete, or create local files and folders. Use exact resolved targets and verify consequential operations afterward.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
sourceYes
overwriteNo
recursiveNo
destinationNo

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
bodyNo
methodNoGET
saveToNo
headersNo
timeoutSecondsNo

TDQS

B3.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 jobA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdNo
tailBytesNo

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
argsNo
visibleNo
executableYes

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 directoryA
Read-onlyIdempotent

List files and folders with type, size, and modified time. Use before guessing paths or choosing files to edit.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo/root
maxDepthNo
recursiveNo
maxEntriesNo

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 windowsA
Read-onlyIdempotent

List top-level Windows desktop windows with title, process ID, handle, position, size, and minimized state. Use to target window_control reliably.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeHiddenNo

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
profileNoDefault

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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 pathA
Read-onlyIdempotent

Check whether a local path exists and return detailed file, folder, or symbolic-link metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 fileA
Read-onlyIdempotent

Read any local file accessible to the current Windows user. Use utf8 for text and base64 for binary files.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
encodingNoutf8

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 screenA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
captureNovirtual

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 filesA
Read-onlyIdempotent

Fast local search using ripgrep. Search file names or text contents before reading large directory trees.

ParametersJSON Schema
NameRequiredDescriptionDefault
globNo
modeNocontent
rootNo/root
queryYes
regexNo
maxResultsNo
caseSensitiveNo
includeHiddenNo

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 jobA
Destructive

Start a long-running PowerShell command in the background with persistent stdout/stderr logs. Poll with job_status instead of waiting in exec.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
labelNo
commandYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 jobA
Destructive

Force-stop a background job and its child process tree by job ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYes

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 systemA
Read-onlyIdempotent

Return local Windows, CPU, memory, user, host, runtime, and server capability information without changing the PC.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 windowA
Destructive

Focus, minimize, maximize, restore, or close a desktop window by the handle returned from list_windows.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
handleYes

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 fileA
Destructive

Create, overwrite, or append to any local file. Create missing parent folders when requested, then verify important writes with read_file or path_info.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNooverwrite
pathYes
contentYes
encodingNoutf8
createParentsNo

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 21 tool updatesv0.1.0
    • First observedbrowser_control
    • First observedclipboard
    • First observedcomputer_input
    • First observededit_file
    • First observedexec
    • First observedfile_operation
    • First observedhttp_request
    • First observedjob_status
    • First observedlaunch_program
    • First observedlist_directory
    • First observedlist_windows
    • First observedopen_url
    • First observedpath_info
    • First observedread_file
    • First observedscreenshot
    • First observedsearch_files
    • First observedstart_job
    • First observedstop_job
    • First observedsystem_info
    • First observedwindow_control
    • First observedwrite_file

TDQS

A3.9/5.0

Scored across 21 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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