Skip to main content
Glama

무제한 에이전트 (Unlimited Agent)

무제한 에이전트는 비공개 ChatGPT 앱이 소유자가 연결한 Windows PC를 조작할 수 있게 해줍니다: 파일, PowerShell, 프로그램, 스크린샷, 마우스 및 키보드, 클립보드, Chrome.

ChatGPT를 두뇌로 사용합니다. 모델 API를 호출하거나, Codex 토큰을 소비하거나, OpenAI 모델 API 키를 설치하지 않습니다. 사용자는 여전히 제한된 Secure MCP Tunnel 런타임 자격 증명(Tunnels: Read + Use)이 필요하며, 로컬 브리지가 자신의 터널에 인증할 수 있도록 합니다. 해당 자격 증명은 모델 추론을 수행할 수 없으며 Windows DPAPI로 암호화됩니다.

[!WARNING] 완전한 원격 제어는 강력합니다. 소유자가 고의로 동의한 컴퓨터에만 설치하십시오. 기본 balanced + dangerous approval 정책을 유지하십시오. 변경의 결과를 이해하지 못한 채 변경하지 마십시오.

할 수 있는 작업

  • 접근 가능한 파일 읽기, 검색, 생성, 편집, 복사, 이동 및 삭제

  • PowerShell 명령을 즉시 또는 백그라운드 작업으로 실행

  • 로컬 프로그램 실행 및 Windows/시스템 정보 확인

  • 기본 또는 가상 데스크톱 캡처

  • 창 나열, 포커스, 크기 조정, 최소화, 최대화 또는 닫기

  • 마우스 클릭, 스크롤, 단축키 및 텍스트 입력 전송

  • 클립보드 텍스트 읽기 또는 교체

  • URL 열기, Chrome 프로필 선택 및 탭/탐색 제어

  • HTTP 요청 수행 및 터널 자격 증명을 상속하지 않고 파일 다운로드

  • Windows 로그인 후 자동 재연결

전체 21개 도구 계약은 docs/TOOL_CONTRACT.md에 있습니다.

Related MCP server: Secure Local AI Agent MCP

요구 사항

  • Windows 10 또는 11, x64

  • Developer 모드 및 비공개 앱/커넥터를 활성화할 수 있는 ChatGPT 계정

  • OpenAI Platform Secure MCP Tunnels에 대한 액세스

  • Google Chrome (Chrome 관련 도구용, 다른 도구는 필요하지 않음)

설치 및 연결

  1. 최신 릴리스에서 Unlimited-Agent-Setup-v0.1.0.exe 및 SHA256SUMS.txt를 다운로드합니다.

  2. 선택적으로 다운로드를 확인합니다:

    Get-FileHash .\Unlimited-Agent-Setup-v0.1.0.exe -Algorithm SHA256
  3. 설치 프로그램을 실행하고 정보에 동의한다는 알림을 수락합니다. Windows SmartScreen은 커뮤니티 빌드가 코드 서명되지 않았기 때문에 경고할 수 있습니다. 어쨌든 실행을 선택하기 전에 SHA-256을 확인하십시오.

  4. 설정 창에서 Open Secure MCP Tunnels를 선택합니다. OpenAI Platform 터널 설정에서 터널을 만들고 tunnel_... ID를 복사합니다.

  5. OpenAI Platform API 키에서 Tunnels: Read + Use로 제한된 전용 프로젝트 키를 만듭니다. 모델 또는 기타 API 권한을 부여하지 마십시오. 설정 창에 붙여넣습니다.

  6. 권한을 선택합니다. 권장 기본값은 다음과 같습니다:

    • 권한 모드: balanced

    • 로컬 승인: dangerous

    • 민감한 읽기 승인: 활성화

    • 허용 폴더: Windows 사용자 프로필

  7. 저장 및 연결을 선택합니다. 브리지가 백그라운드에서 시작되고 현재 Windows 사용자에 대해 로그인 시 등록됩니다.

  8. ChatGPT에서 설정 → 앱 및 커넥터 → 고급 설정을 열고 Developer 모드를 활성화한 다음 비공개 앱을 만들고 방금 연결한 터널을 선택합니다. 이름을 Unlimited Agent로 지정합니다.

Unlimited Agent Status 데스크톱 바로 가기를 엽니다. CONNECTED and ready는 터널이 비공개 ChatGPT 앱에 서비스를 제공할 수 있음을 의미합니다. ChatGPT에 요청: "Unlimited Agent를 사용하여 내 Windows 시스템 정보를 보여줘."

OpenAI는 현재 Secure MCP Tunnels를 비공개 Developer 모드 테스트 기능으로 문서화합니다. 공개 ChatGPT 앱 디렉토리 제출 또는 공유된 공개 터널을 지원하지 않습니다. 따라서 설치 프로그램과 소스 코드가 공개되어 있더라도 모든 사용자는 자신의 비공개 터널과 비공개 앱을 만들어야 합니다. 공식 Secure MCP Tunnel 가이드를 참조하십시오.

권한 모드

모드

동작

read_only

검사 도구만 실행됩니다. 변경, 입력, 실행 및 네트워크 호출이 거부됩니다.

balanced

경로는 허용 폴더 내에 있어야 합니다. 위험한 작업은 승인 설정을 따릅니다. PowerShell은 명령이 임의의 리소스를 처리할 수 있으므로 구성된 승인 후에만 사용 가능합니다.

full

로그인한 Windows 사용자가 접근할 수 있는 모든 경로가 범위에 포함됩니다. 승인 설정은 여전히 적용됩니다.

승인

동작

dangerous

쓰기, 명령, 입력, 실행, 브라우저/네트워크 작업 및 기타 변경에 대해 로컬 검토 창이 나타납니다. 권장되는 민감한 읽기 옵션을 사용하면 스크린샷, 창 제목 및 클립보드 읽기도 포함됩니다.

always

모든 도구 호출에 로컬 승인이 필요합니다.

never

로컬 프롬프트가 없습니다. 완전히 신뢰할 수 있는 개인 설치에서만 사용하십시오.

데스크톱에서 Unlimited Agent Settings를 열어 다시 연결하거나, 터널 자격 증명을 변경하거나, 권한을 변경합니다. 설정은 재설치 없이 적용됩니다. 거부된 도구 호출은 구조화된 PERMISSION_DENIED 결과를 ChatGPT에 반환합니다. 도구 호출은 직렬화되므로 Unlimited Agent는 자체 마우스/키보드 도구를 사용하여 보류 중인 승인 창을 클릭할 수 없습니다.

요청 예시

  • "이번 주에 수정된 모든 .docx 파일을 Documents에서 찾아 이름을 요약해 줘. 아무것도 변경하지 마."

  • "내 바탕화면에 Trip이라는 폴더를 만들고, 선택한 사진을 그 안으로 이동한 다음 개수를 확인해 줘."

  • "C:\work\my-app에서 테스트 스위트를 실행하고, 완료될 때까지 계속 폴링한 다음 첫 번째 실패를 수정해 줘."

  • "스크린샷을 찍고, Chrome에 포커스를 맞추고, 프로젝트 대시보드를 열고, 무엇이 보이는지 알려줘."

  • "메모장을 시작하고, 이 회의 노트를 입력하고, Documents에 저장한 다음 파일이 존재하는지 확인해 줘."

GUI 작업의 경우 ChatGPT는 스크린샷 → 창 포커스 → 입력 → 스크린샷을 반복해야 합니다. Unlimited Agent는 비밀번호, CAPTCHA, MFA, UAC 보안 데스크톱 또는 잠긴 Windows 세션을 우회할 수 없습니다.

아키텍처

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는 MCP 도구를 등록하고 해당 구현을 포함합니다.

  • policy.mjs는 모든 도구 등록을 표준 경로 권한, 재분석/하드링크 방지 폴더 검사, 완전한 로컬 승인 세부 정보, 재정의 및 감사 검사로 래핑합니다.

  • scripts/windows-ui.ps1은 Windows API를 통해 화면, 창, 입력 및 클립보드 기본 요소를 제공합니다.

  • scripts/start-tunnel.ps1은 tunnel-client를 시작하는 데 충분한 시간 동안 사용자별 런타임 자격 증명을 해독합니다. MCP 서버는 호출을 처리하기 전에 자격 증명 환경 변수를 삭제하고, 하위 프로세스는 정리된 환경을 받습니다.

  • scripts/watch-tunnel.ps1은 단일 인스턴스 백그라운드 복구를 제공합니다.

  • scripts/settings.ps1은 연결 및 권한 설정을 소유합니다. 자격 증명은 DPAPI CurrentUser를 사용합니다. 비밀 정책은 JSON입니다.

  • installer/는 하나의 독립형 x64 Windows 설정 실행 파일을 생성합니다.

인바운드 리스너 또는 방화벽 예외가 생성되지 않습니다. 로컬 서버는 stdio 전용입니다. tunnel-client는 ChatGPT가 선택한 원격 MCP 엔드포인트를 제공합니다.

로컬 개발

git clone https://github.com/yungsuk53-pixel/unlimited-agent.git
cd unlimited-agent
npm ci --ignore-scripts
npm test

npm test는 검증 레벨 2에 도달합니다: 스키마/주석 검사, 실제 stdio MCP 세션, 파일 작업, PowerShell 자격 증명 격리, 로컬 HTTP, 스크린샷, 창, 입력 파이프라인, 시스템 정책 및 백그라운드 작업.

빌드 및 새 설치 테스트:

npm run build:installer
npm run test:install

빌드는 고정된 Node.js, tunnel-client 및 ripgrep x64 릴리스를 다운로드하고 빌드 스크립트에 커밋된 변경 불가능한 SHA-256 값에 대해 확인합니다. CI는 MCP 테스트, 설치 프로그램 빌드, DPAPI 왕복, 합성 새 설치 및 설치된 런타임 도구 테스트를 반복합니다. 테스트 자격 증명은 합성이며 OpenAI에 절대 연락하지 않습니다.

실제 터널을 테스트하려면 생성된 EXE를 설치하고, 전용 터널 자격 증명을 연결하고, Unlimited Agent Status를 확인하고, ChatGPT Developer 모드에서 비공개 앱을 연결합니다.

데이터 위치

설치된 파일 및 현재 사용자 데이터는 다음 위치에 있습니다:

%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

프로젝트는 일반 텍스트 터널 자격 증명을 기록하지 않습니다. 로그는 OpenAI 키 형식과 일치하는 문자열을 수정하고, 도구로 실행된 프로세스는 주변 토큰이나 비밀을 상속하는 대신 일반 Windows 환경 변수의 최소 허용 목록을 받습니다.

문제 해결

상태가 재연결 중 또는 사용 불가라고 표시됨

  • Unlimited Agent Settings를 열고 터널 ID와 유효한 제한된 런타임 키를 다시 입력합니다.

  • 키에 Tunnels: Read + Use가 있고 터널을 소유한 조직/워크스페이스에 속하는지 확인합니다.

  • %LOCALAPPDATA%\UnlimitedAgent\data\logs\bridge.log 및 watchdog.log를 확인합니다.

  • 404는 일반적으로 ChatGPT가 다른 터널/앱을 선택했거나, 런타임이 중지되었거나, 동일한 ChatGPT/OpenAI 조직 컨텍스트에서 비공개 앱이 생성되지 않았음을 의미합니다.

도구가 거부됨

  • 로컬 응답은 읽기 전용 모드, 허용 폴더 경계, 도구별 재정의 또는 거부된 승인으로 인해 발생했는지 명시합니다.

  • Unlimited Agent Settings를 열어 정책을 변경합니다. 진정한 안전 경계를 숨기기 위해 권한을 약화시키지 마십시오.

마우스 또는 키보드 동작이 작동하지 않음

  • Windows에 로그인하고 잠금 해제되어 있어야 합니다.

  • UAC 보안 데스크톱, 로그인 화면, 일부 상승된 앱, 독점 입력을 사용하는 게임 및 보호된 미디어는 일반 사용자 프로세스에서 안정적으로 자동화할 수 없습니다.

Chrome이 잘못된 프로필을 열음

  • ChatGPT에 open_url 또는 browser_control을 Chrome 프로필 디렉토리 이름(예: Default 또는 Profile 2)과 함께 호출하도록 요청합니다.

제거 및 취소

Uninstall Unlimited Agent 데스크톱 바로 가기를 실행합니다. 로컬 런타임을 중지/제거하고, 자동 시작 항목을 삭제하고, 암호화된 자격 증명을 제거하고, 설치 디렉토리를 삭제합니다.

그런 다음 OpenAI Platform에서 전용 제한된 키를 취소하고 더 이상 사용하지 않을 경우 터널을 삭제합니다. PC 또는 Windows 계정이 손상될 수 있는 경우 취소가 중요합니다.

보안 및 라이선스

전체 액세스를 활성화하기 전에 SECURITY.md를 읽으십시오. 보안 보고는 공개 이슈가 아닌 GitHub 비공개 취약점 보고를 사용해야 합니다.

Unlimited Agent는 MIT 라이선스에 따라 제공됩니다. 번들 런타임 고지 사항은 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.

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

Scored across 21 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: file operations (read, write, edit, list, search, path, copy/move/delete) are separate from process execution (exec, launch, background jobs), GUI automation (screenshot, list/control windows, input, clipboard, open_url, browser_control), web requests, and system info. No two tools could be easily confused.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun or verb_phrase pattern (e.g., read_file, list_windows, start_job, system_info). No mixing of styles or vague verbs, making the API predictable and intuitive.

Tool Count4/5

With 21 tools, the set is on the higher end of the typical range but still well-scoped for a comprehensive Windows automation server. Each tool earns its place; no obvious bloat. Slight overage compared to the ideal 3-15 range, but justified by the breadth of capabilities.

Completeness5/5

The tool surface covers file CRUD, directory listing, search, file operations, arbitrary command execution, GUI interaction (screenshot, window control, mouse/keyboard, clipboard, browser control), web requests, background job management, and system info. No significant gaps for the stated purpose of local Windows automation.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers