Skip to main content
Glama
ks6573
by ks6573

SysControl

An AI agent for your Mac or Windows 11 PC that answers questions about your system — and can extend itself with new tools on the fly.

116 built-in tools covering CPU, RAM, GPU, disk, network, processes, iMessage, email, clipboard, browser, weather, reminders, Docker, Time Machine, Wi-Fi, calendar, contacts, Notes, Homebrew, media control, file management, Spotlight search, spreadsheets, Word documents, PDFs, image generation, deep web research, sub-agent orchestration, code editing, git integration, and more. Each platform receives only the tools it can execute; the agent picks the right ones automatically, runs them in parallel, and answers in plain English.

Three ways to run it — pick whichever fits your workflow:

How

Best for

App (macOS)

Download the .dmg

One-click native macOS (SwiftUI) experience — no setup required

App (Windows)

Download the .zip

Native Windows 11 desktop app (Flet) — unzip and run

CLI

syscontrol (one-line install)

Terminal-first workflow, scripting, SSH sessions (macOS · Windows · Linux)

Claude Desktop

MCP server

Using SysControl tools inside Claude Desktop

All interfaces share the same agent, tools, and providers — they're interchangeable.


App (macOS)

A native SwiftUI app with streaming chat, Markdown rendering, chat history sidebar, and auto-save — no Python, no terminal, no dependencies to install. Just download, open, and configure your provider in Settings.

Download

Option A — Pre-built DMG (no Xcode required):

Download the latest SysControl.dmg from GitHub Releases, drag to Applications, then bypass Gatekeeper on first launch (the app is ad-hoc signed, not notarized):

xattr -r -d com.apple.quarantine /Applications/SysControl.app

Or right-click the app → OpenOpen the first time.

Option B — Install from source (compiles locally, bypasses Gatekeeper automatically):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/ks6573/SysControl/master/swift/install.sh)"

To update later: use Check for Updates in the app (⇧⌘U), or run syscontrol-update from Terminal.

To uninstall: re-run with --uninstall.

Option C — Build manually:

git clone https://github.com/ks6573/SysControl.git
cd SysControl/swift
./build.sh release
open .build/SysControl.app

Requires: macOS 14 (Sonoma) or later. Options B and C also require Xcode Command Line Tools (xcode-select --install).

Features

  • Streaming responses — tokens appear as they arrive with live Markdown rendering

  • Auto-save — every conversation is saved automatically with an LLM-generated title

  • Chat history sidebar — browse and delete past chats

  • Settings — switch between local (Ollama) and cloud providers in-app

  • In-app updates — check for new versions from the menu bar (⇧⌘U) or Settings; DMG users get a one-click download, source-install users update automatically

  • No setup — everything is configured through the app itself

First Launch

On first launch an onboarding sheet appears automatically:

  1. Choose Local (Ollama) — requires Ollama running locally, no API key needed

  2. Or choose Cloud — enter your API key

  3. Click Done and start chatting

To change providers later, open Settings (⌘,).

Chat history is saved as Markdown in ~/.syscontrol/chat_history/ — view, edit, or delete freely.


Related MCP server: Windows Operations MCP

App (Windows)

A native Windows 11 desktop app (built with Flet) with streaming chat, Markdown rendering, expandable tool-call cards, inline charts, a session sidebar, and in-app settings. It runs the same Python agent backend as the macOS app and CLI, bundled into a standalone .exe — no separate Python install to manage.

Download

  1. Download the latest SysControl-windows-x64.zip from GitHub Releases

  2. Unzip it anywhere (e.g. %LOCALAPPDATA%\Programs\SysControl)

  3. Run SysControl.exe

First launch: the build is not code-signed, so Windows SmartScreen may warn you. Click More info → Run anyway.

Requires: Windows 11 (x64). For local models, install Ollama for Windows and pull a model (ollama pull qwen3:30b); for cloud, enter your Ollama Cloud API key during onboarding.

Build from source

git clone https://github.com/ks6573/SysControl.git
cd SysControl
uv sync --extra gui --extra build
uv run pyinstaller SysControl.spec     # -> dist\SysControl\SysControl.exe

Or run it directly without bundling: uv run syscontrol-gui.

Platform notes

The Windows app exposes the same agent and tools as macOS. System tools — CPU, RAM, GPU, disk, network, processes, battery, files, clipboard, screenshots, volume, Wi-Fi, system logs (Event Log), shell (PowerShell/cmd), web research, charts, spreadsheets/Word/PDF, sub-agents — work natively. macOS-only integrations (iMessage, Apple Mail, Calendar/Contacts, Notes, Time Machine, Homebrew) report that they're unavailable on Windows rather than failing.


CLI

A terminal agent that runs the same backend as the app. Two install paths:

Option A — One-line install (recommended):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/ks6573/SysControl/master/install-cli.sh)"

Installs uv if missing, then runs uv tool install against the GitHub repo, exposing syscontrol and syscontrol-server on your PATH in an isolated venv. No clone required.

To update later: run syscontrol --update (or /update inside the REPL); the standalone syscontrol-cli-update script is also still installed.

To uninstall: re-run with -- --uninstall.

Option B — From a clone (for development):

git clone https://github.com/ks6573/SysControl.git
cd SysControl
curl -LsSf https://astral.sh/uv/install.sh | sh   # if uv not installed
uv sync
uv run agent.py

Requirements

  • macOS, Windows 11, or Linux

  • Python 3.11+ (uv will fetch one if your system Python is older)

  • Ollama for local mode, or an Ollama Cloud API key for cloud mode

CLI Flags

syscontrol                                          # interactive
syscontrol --provider local --model qwen3:30b      # local, skip prompt
syscontrol --provider cloud --api-key sk-...       # cloud, skip prompt (key is remembered)
syscontrol --provider cloud --no-save-key          # cloud, prompt every time
syscontrol --provider custom --base-url https://example.com/v1 --model my-model --api-key sk-...
syscontrol --continue                              # resume the most recent session
syscontrol --resume                                # pick a previous session from a list
syscontrol --coding --approval normal              # coding agent, ask before edits/shell
syscontrol --coding --approval plan                # read-only planning mode
syscontrol --coding --approval auto                # auto-accept coding edits/shell

Cloned (Option B) users can substitute uv run agent.py for syscontrol in any of the commands below.

The first time you enter your Ollama Cloud API key (via --api-key or the prompt), it's saved to ~/.syscontrol/cli_credentials.json (0600) so you won't be asked again. Use --no-save-key to opt out, or /logout from the REPL to forget it.

Coding Mode

The CLI can run as a coding agent with a narrowed code tool set: file search/read/edit, git status/diff, and shell commands. Approval modes:

Mode

Behavior

plan

Read-only. The agent can inspect and produce an implementation plan, but edits and shell commands are blocked.

normal

Reads are automatic; file writes and shell commands ask for approval in the terminal.

auto

"Just do it" mode. Auto-accepts coding edits and shell commands for the session.

Press Shift+Tab to toggle between system monitor mode and coding mode. Inside coding mode, use /approval plan, /approval normal, or /approval auto to switch policies. The old standard and nuke names still work as aliases.

Slash Commands & Keyboard Shortcuts

The interactive CLI feels like Codex / Claude Code: type / to pop a completion menu, @ to inline a file from the cwd, ! to run a one-off shell command, and the bottom toolbar shows the active model, provider, approval mode, and message count at all times.

Command

Description

/help

Show all commands and keyboard shortcuts

/clear

Clear the screen

/reset

Clear conversation history (keeps system prompt)

/tools [filter]

List available tools, optionally filtered by substring

/model

Show the active model and provider

/mode [system|coding] [plan|normal|auto]

Toggle system/coding mode or enter a coding sub-mode

/test [command]

Run a detected test command, or a provided command, in coding mode

/lint [command]

Run a detected lint/typecheck command, or a provided command, in coding mode

/memory <note>

Append a timestamped note to SysControl_Memory.md

/show [tool_name]

Dump the full output of the most recent tool call

/sessions

List recently saved CLI sessions

/init

Generate a CLAUDE.md for the current project

/compact [undo]

Summarize the conversation; undo restores the prior history

/approval plan|normal|auto

Switch coding-mode approval policy

/update [force]

Check for and install the latest SysControl release

/logout

Forget the saved Ollama Cloud API key

/exit

Quit the session

Key

Action

Enter

Submit a single-line buffer; insert a newline once the buffer is multi-line

Ctrl+D

Submit any non-empty buffer; exit on an empty buffer

Ctrl+C

Cancel the in-flight LLM/tool stream (press again within 1s to exit cleanly)

/

History navigation

Ctrl+R

Reverse history search

Tab

Complete the current slash command, @file, or argument

Shift+Tab

Toggle system/coding mode

Ctrl+L

Clear the screen

Esc, Enter

Always insert a newline (alternative to letting Enter add one in multi-line mode)

Type @<partial> to pop a file picker scoped to the current directory (uses git ls-files when available; falls back to a recursive walk). Selected paths stay literal in the buffer and are inlined at submit time as fenced code blocks (capped at 64 KB per file).

Type !<command> to run a shell command directly — output prints inline and the LLM is bypassed. Requires allow_shell=true in ~/.syscontrol/config.json.

History is persisted to ~/.syscontrol/cli_history. Conversations auto-save to ~/.syscontrol/cli_sessions/; resume the most recent with syscontrol --continue or pick from a list with syscontrol --resume.

Local Mode (Ollama)

ollama pull qwen3:30b   # recommended
ollama serve
syscontrol --provider local

Tool-calling capable models:

Model

Notes

qwen3:30b

Default. Best tool use and reasoning

qwen3:8b

Faster, lower memory — includes thinking mode

qwen2.5:7b

Lightweight alternative

llama3.1:8b

Battle-tested fallback

Models without native tool-calling (e.g. gemma3) will error.

Cloud Mode (Ollama Cloud)

syscontrol --provider cloud
# Enter your key when prompted — not echoed or stored in shell history

Get a key at ollama.com/settings/keys. Default cloud model: gpt-oss:120b.

Any service that implements the OpenAI-compatible chat-completions and tool-calling APIs can be used with --provider custom, --base-url, --model, and --api-key. Custom-provider keys are used for the current session and are not written to the Ollama credential entry.

Ending a Session

Say any natural goodbye (bye, exit, quit, done, farewell, cya, goodnight, …) or press Ctrl-C. The agent will offer to save your session before exiting.

Session Memory

On exit you are prompted to save a short note about the session. Notes are appended to SysControl_Memory.md with a timestamp. On next startup, if the file exists its contents are injected into the system prompt so the agent has context from prior sessions. The file is append-only and plain text — edit or delete entries freely.

The agent can also save and recall memory mid-session via the read_memory and append_memory_note tools — no need to wait for exit.

Privacy: SysControl stores only what you explicitly save. Ollama processes queries locally by default.


Permissions & Security

Sensitive tools are disabled by default. Enable them in ~/.syscontrol/config.json:

{
  "allow_shell":           true,
  "allow_messaging":       true,
  "allow_message_history": true,
  "allow_screenshot":      true,
  "allow_file_read":       true,
  "allow_file_write":      true,
  "allow_calendar":        true,
  "allow_contacts":        true,
  "allow_accessibility":   true,
  "allow_tool_creation":   true,
  "allow_deep_research":   true,
  "allow_email":           true,
  "allow_notes":           true,
  "allow_brew":            true,
  "allow_agents":          true,
  "allow_automations":     true,
  "allow_connectors":      true
}

Each disabled tool returns an error with the exact flag needed to enable it.


Claude Desktop Setup

1. Add the MCP server to your config

Platform

Config path

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "system-monitor": {
      "command": "/path/to/uv",
      "args": ["run", "/absolute/path/to/SysControl/mcp/server.py"],
      "env": {}
    }
  }
}

Use which uv to get the uv path.

2. Set the system prompt — create a Claude Desktop Project and paste the contents of mcp/prompt.json into the Project Instructions field.

3. Restart Claude Desktopsystem-monitor will appear in the MCP servers list.


Self-Extension

When you ask for something no tool covers, the agent offers to build it:

You: What song is playing in Spotify right now?

Agent: I don't have a tool for that. Want me to create one? (yes/no)

You: yes

Agent: ✓ Tool `get_spotify_track` installed. Restart and ask again.

The agent writes a Python function, validates syntax, scans for dangerous patterns (eval, exec, etc.), and appends it to mcp/server.py. Requires:

{ "allow_tool_creation": true }

Tools (116 total)

Monitoring

Tool

What it does

get_cpu_usage

CPU load (total + per-core), clock frequency, inline bar chart

get_ram_usage

RAM and swap — used, available, percent, inline stacked chart

get_gpu_usage

GPU load, VRAM, temperature per device (NVIDIA/pynvml), inline chart

get_disk_usage

Per-partition space and cumulative I/O counters

get_network_usage

Cumulative bytes sent/received and per-interface status

get_realtime_io

Live disk read/write and network download/upload speed (MB/s)

get_top_processes

Top N processes by CPU or memory

get_full_snapshot

Single call: CPU + RAM + GPU + disk + network + top processes

get_system_alerts

Triage scan returning prioritized critical/warning alerts

System & Hardware

Tool

What it does

get_device_specs

Static profile: CPU model, core count, RAM, GPU VRAM, disks, OS

get_battery_status

Percent, charging state, time remaining

get_temperature_sensors

CPU/motherboard sensors (Linux/Windows)

get_system_uptime

Boot time, uptime, 1/5/15-min load averages

get_hardware_profile

Live pressure + specs + OC capability + upgrade feasibility + bottleneck analysis

Process Management

Tool

What it does

get_process_details

Deep inspection of a PID: path, cmdline, user, RSS/VMS, threads, open files

search_process

Find processes by name (case-insensitive partial match)

kill_process

SIGTERM (default) or SIGKILL a PID. Refuses critical system processes.

Network & Connectivity

Tool

What it does

get_network_connections

All active TCP/UDP connections with state and owning process

network_latency_check

Pings gateway, Cloudflare, Google DNS in parallel and diagnoses slowness

get_wifi_networks

Nearby networks with SSID, channel, security, signal strength

Storage

Tool

What it does

find_large_files

Top N largest files under a path. Skips .git, node_modules, .venv

eject_disk

Unmount and eject an external disk by mountpoint

Messaging & Communication

Tool

What it does

send_imessage

Send an iMessage or SMS via Messages.app. macOS only.

get_imessage_history

Read recent messages from ~/Library/Messages/chat.db. macOS only.

read_emails

Read recent emails from Mail.app (by folder). Requires allow_email. macOS only.

send_email

Send an email via Mail.app. Requires allow_email. macOS only.

search_emails

Search emails across all accounts and mailboxes. Requires allow_email. macOS only.

Browser & Web

Tool

What it does

web_search

DuckDuckGo search — title, URL, snippet. No API key.

web_fetch

Fetch a URL as plain text. No browser required.

grant_browser_access

Unlock browser control (called once, after user consent)

browser_open_url

Open a URL in the default browser

browser_navigate

Navigate the active tab via AppleScript (macOS)

browser_get_page

Return the URL, title, and text of the current tab (macOS)

Clipboard & Screen

Tool

What it does

get_clipboard

Return current clipboard text

set_clipboard

Write text to the clipboard

take_screenshot

Full-screen PNG returned inline. Optionally save to file. macOS and Windows.

generate_image

Generate an inline visual image artifact from a prompt. Requires an OpenAI image API key.

App Control & System

Tool

What it does

open_app

Open an app by name on macOS or Windows.

quit_app

Gracefully quit or force-kill an app on macOS or Windows.

get_volume

Output, input, and alert volume; mute state

set_volume

Set system output volume (0–100)

get_now_playing

Currently playing track in Music.app or Spotify (title, artist, album, position). macOS only.

media_control

Play, pause, skip, or stop Music.app / Spotify. Auto-detects active player. macOS only.

get_frontmost_app

Return the name of the focused application

toggle_do_not_disturb

Enable/disable Focus / DnD

run_shortcut

Run a named Shortcut via shortcuts run. macOS 12+.

File I/O & Shell

Tool

What it does

read_file

Read a text file (up to 16,000 chars)

write_file

Write text to any path, creating directories as needed

list_directory

List directory contents with name, type, size, and modification time

move_file

Move or rename a file or directory

copy_file

Copy a file to a new location

delete_file

Delete a file or directory (Trash by default on macOS, recoverable)

create_directory

Create a directory and any missing parents

search_files

Search for files system-wide using macOS Spotlight (mdfind). Instant. macOS only.

read_spreadsheet

Read cells from .xlsx or .csv — supports sheet selection and cell ranges

edit_spreadsheet

Write cells (A1 notation) or append rows to .xlsx / .csv. Create new files.

read_document

Read paragraphs from .docx, .txt, or .md with word count

edit_document

Find/replace text, overwrite paragraphs, or append to .docx files

read_pdf

Extract text from PDF files, page by page (up to 200 pages)

run_shell_command

Execute a bash command and return stdout/stderr. Disabled by default.

Calendar, Contacts & Logs

Tool

What it does

get_calendar_events

Upcoming events from Calendar.app for the next N days. macOS only.

get_contact

Search Contacts.app by name — phone and email. macOS only.

list_notes

List notes from Notes.app with title, folder, and timestamps. Requires allow_notes.

read_note

Read the full body of a note by title (partial match). Requires allow_notes.

create_note

Create a new note in Notes.app. Requires allow_notes.

get_startup_items

Auto-start items (macOS LaunchAgents, Windows Registry, Linux .desktop)

tail_system_logs

Last N lines of the system log with optional keyword filter

Utilities

Tool

What it does

set_reminder

Schedule a native desktop notification. Accepts "in 2 hours", "tomorrow at 9am", etc.

list_reminders

All pending reminders with IDs and fire times

cancel_reminder

Cancel a reminder by ID

get_weather

Current weather + clothing recommendations. Auto-detects location from IP.

check_app_updates

Available app/package and operating-system updates on macOS, Windows, or Linux

brew_list

List all installed Homebrew formulae and casks. Requires allow_brew.

brew_install

Install a Homebrew formula or cask. Requires allow_brew.

brew_upgrade

Upgrade one or all Homebrew packages. Requires allow_brew.

brew_uninstall

Uninstall a Homebrew formula or cask. Requires allow_brew.

get_docker_status

Running containers with live CPU%, memory, image, status, and ports

get_time_machine_status

Last backup time, phase and progress if running, destination. macOS only.

track_package

Track UPS, USPS, FedEx, or DHL shipments by tracking number

Memory

Tool

What it does

read_memory

Read the persistent memory file — facts and notes saved across sessions

append_memory_note

Append a concise note to the memory file for future recall

Research

Tool

What it does

deep_research

Multi-step web research agent: plans subquestions, searches multiple sources, extracts and cross-verifies claims, returns a citation-backed answer. Takes 1-3 minutes.

Code Editing & Navigation

Tool

What it does

read_file_lines

Read a file with line numbers, offset, and limit — large-file friendly. Requires allow_file_read.

edit_file

Targeted find-and-replace editing. Exact string match, fails if ambiguous. Requires allow_file_write.

glob_files

Find files by glob pattern (e.g. **/*.py). Skips .git, node_modules, .venv.

grep_files

Regex content search across files with optional context lines. Skips binary files.

git_status

Show branch, staged/unstaged/untracked files, and recent commits.

git_diff

Show git diff for unstaged or staged changes.

Sub-Agent Orchestration

Tool

What it does

list_agents

List available sub-agents with names and descriptions

run_agent

Delegate a focused task to a named sub-agent (explorer, analyst, researcher, writer) running in an isolated subprocess with restricted tools. Requires allow_agents.

Self-Extension

Tool

What it does

create_tool

Write, validate, and install a new MCP tool into server.py. Requires allow_tool_creation.

list_user_tools

List all tools installed via create_tool

Skills & Housekeeping

Tool

What it does

list_skills

List built-in and user-installed workflow skills

run_skill

Load a skill playbook for the agent to execute

tail_file

Read the tail of a large text file with optional filtering

cleanup_downloads

Preview or remove old files from Downloads

cleanup_caches

Inspect or clean supported application cache directories

summarize_directory

Summarize a directory tree and its largest contents

battery_health_report

Report battery capacity, cycle count, and condition

process_tree

Show a process and its parent/child relationships

notify_user

Display an immediate system notification on macOS, Windows, or Linux

do_not_disturb_status

Report the current Focus / Do Not Disturb state

focus_mode_set

Activate or deactivate a named Focus mode

open_file_at_path

Open a local file in its default or selected application

Scheduled Automations

Tool

What it does

create_automation

Schedule a recurring read-only tool call at a bounded interval

list_automations

List configured automations and their next run times

update_automation

Enable or pause an automation

delete_automation

Delete an automation

run_automation_now

Run a configured automation immediately

list_automation_runs

Inspect recent results and failures

get_health_trends

Summarize CPU, RAM, disk, and alert history from scheduled checks

get_audit_log

Review local tool actions without storing argument or result values

Automations are local, disabled by default, and limited to read-only tools. Enable them with allow_automations; mutating or destructive tools cannot be scheduled.

External MCP Connectors

Tool

What it does

list_connectors

List configured external MCP servers and connection state

add_connector

Add a stdio MCP server without invoking a shell

remove_connector

Remove a configured connector and stop its process

refresh_connectors

Restart connectors and rediscover their tools

External connector tools are namespaced as <connector>__<tool>, so a GitHub connector named github might expose github__list_issues. Connector processes receive a minimal environment; secret values are passed only through explicitly named environment variables and are never written to connectors.json. Connector execution is disabled until allow_connectors is enabled.


Overclocking Support

Detected automatically from hardware and platform:

Platform

CPU OC

GPU OC

Apple Silicon (M-series)

✗ Not supported

✗ Not supported

Intel Mac

✗ Not supported (no BIOS)

✗ Not supported (macOS)

Intel K/KF/KS — Windows/Linux

✅ Intel XTU or BIOS

✅ MSI Afterburner

AMD Ryzen — Windows/Linux

✅ Ryzen Master / PBO

✅ MSI Afterburner


Project Structure

SysControl/
├── agent.py                 # CLI entry-point shim
├── install-cli.sh           # One-line CLI installer (curl one-liner)
├── agent/
│   ├── cli.py               # Interactive terminal REPL
│   ├── core.py              # Shared agent logic: MCP client, streaming loop, helpers
│   ├── bridge.py            # JSON-over-stdio bridge for the Swift app
│   ├── agents.py            # Sub-agent specs: AgentSpec, AgentRegistry, built-in agents
│   ├── runner.py            # Sub-agent runner: isolated context, filtered tools
│   └── paths.py             # Path resolution (repo root, user data dir, memory file)
├── mcp/
│   ├── server.py            # MCP tool server (104 tools + self-extension)
│   └── prompt.json          # System prompt for the agent
├── deep_research/           # Deep research agent (iterative web research with citation verification)
├── swift/
│   ├── Package.swift         # SwiftPM package definition
│   ├── build.sh              # Builds the .app bundle and DMG
│   ├── install.sh            # One-line source installer
│   └── SysControl/           # SwiftUI source (App, Models, Views, Services, Storage)
├── scripts/
│   └── make_icon.py          # Generates the .icns app icon from source PNGs
├── pyproject.toml            # Python project config, dependencies, linting
├── VERSION                   # Current release version (single source of truth)
└── tests/                    # Pytest suite for agent core + MCP helpers

Architecture

┌──────────────────────┐
│    SwiftUI App       │   Native macOS frontend
│  (swift/SysControl/) │   Onboarding, chat, settings, history
└────────┬─────────────┘
         │  JSON-over-stdio (bridge.py)
┌────────▼─────────────┐
│    Agent Core        │   Streaming agentic loop, LLM client
│  (agent/core.py)     │   Provider selection, tool dispatch
└────────┬─────────────┘
         │  JSON-RPC (stdio)
┌────────▼─────────────┐
│    MCP Server        │   104 tools, self-extension, permission checks
│  (mcp/server.py)     │   Concurrent tool execution via client pool
└──────────────────────┘

The Swift frontend communicates with the Python backend through agent/bridge.py, which speaks a simple JSON-over-stdio protocol. The bridge reuses the same MCPClientPool and streaming loop used by the CLI, so all tools and capabilities are shared across every interface.


Entry Points

After installing via the one-liner (or pip install -e . from a clone):

Script

Description

syscontrol

Interactive CLI agent

syscontrol --update

Check for and install the latest release in place

syscontrol --version

Print the installed version and exit

syscontrol-server

MCP server (stdio)

syscontrol-cli-update

Standalone updater script (same as syscontrol --update)

From a clone without installing, use uv run:

Command

Description

uv run agent.py

Interactive CLI agent

uv run -m mcp.server

MCP server (stdio) — for Claude Desktop integration


License

This project is licensed under the MIT License. See LICENSE.

Available Tools

84 tools
add_connectorA

Configure an external stdio MCP server. Requires allow_connectors. The process is launched without a shell, receives a minimal environment, and its tools are namespaced as __.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
nameYes
commandYesExecutable path or name; no shell syntax.
enabledNo
inherit_envNoEnvironment variable names to pass through without persisting values.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are present but all false, so the description carries a moderate burden. It adds valuable behavioral context beyond the annotations: process launched without a shell, minimal environment, namespaced tools as <connector>__<tool>, and the allow_connectors prerequisite. These details help the agent predict side effects and operational behavior.

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?

Three short sentences, front-loaded with the primary purpose, and no filler. Every clause adds meaningful information without redundancy.

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?

Covers the core purpose, a prerequisite, and important operational details (no shell, minimal env, namespacing). However, it omits parameter behavior and explicit usage distinctions, and with no output schema, the agent has limited understanding of what will be returned or how to handle failures.

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 coverage is only 40% (command and inherit_env have descriptions) and the description does not compensate. It provides high-level context about the process environment but never explains key parameters like name, args, or enabled. The agent must rely on sparse schema descriptions for most 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?

States a specific action ('Configure') on a specific resource ('external stdio MCP server'). Differentiates from sibling tools that list/remove/refresh connectors by clearly implying this creates/configures one.

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?

Implies usage via 'Configure an external stdio MCP server' and mentions a prerequisite ('Requires allow_connectors'), but does not explicitly state when to use this over sibling tools like list_connectors, remove_connector, or refresh_connectors. No exclusions or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

append_memory_noteA

Append a concise note or key fact to the persistent memory file. Use this proactively when the user shares a preference, important system fact, or decision that would be useful to recall in a future session. Keep notes brief (1-3 sentences).

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesThe note to save. Be concise — capture the key fact, not the full conversation.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, but the description adds the important context of persistence ('future session') and the constraint of brevity. It does not contradict annotations and provides extra behavioral context beyond the raw 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?

Two sentences, front-loaded with the action and resource, no fluff. Every sentence adds value: what it does, when to use it, and how to format the note.

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 one-parameter tool with annotations and complete schema coverage, the description fully explains the tool's purpose, usage trigger, and content constraints. No output schema is needed, and the description covers the essential context.

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 coverage is 100% with a clear param description. The tool description adds the specific guideline of '1-3 sentences', which goes beyond the schema's 'be concise' and provides additional semantic meaning for the note 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 verb ('Append') and resource ('persistent memory file'), and distinguishes from sibling read_memory by focusing on writing. It also defines the type of content (concise notes, key facts).

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 states when to use the tool ('when the user shares a preference, important system fact, or decision'). It does not mention alternatives, but no obvious alternative exists for writing memory besides this tool. Slight deduction for not stating when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_open_urlA

Open a URL in the user's default browser as a new tab/window. Requires prior browser permission (grant_browser_access). macOS: uses open command. Linux/Windows: uses webbrowser module.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to open (https:// assumed if omitted).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only, open-world, and non-idempotent behavior. The description adds valuable context beyond these by disclosing the authentication prerequisite and the underlying OS-specific commands, which could affect failure modes. It does not contradict annotations and enriches the behavioral picture, so a 4 is 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 two sentences, both information-dense. The first sentence states the primary action and permission requirement; the second adds platform-specific commands. Every clause contributes to understanding the tool, and there is no repetitive or filler content.

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 parameter set (1 param), no output schema, and existing annotations, the description covers the essential operational aspects: action, permission prerequisite, and platform behavior. It could mention potential error handling or return status, but for a straightforward browser-opening tool, the context is sufficiently complete.

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 100% and the only parameter, 'url', already has a thorough description including the https:// default assumption. The tool description adds no additional parameter semantics beyond referencing 'URL' in the action. With full schema coverage, the baseline of 3 applies.

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 action with a specific verb and resource: "Open a URL in the user's default browser as a new tab/window." This distinguishes it from siblings like web_fetch (which retrieves content) and open_file_at_path (which opens local files), leaving no ambiguity about its purpose.

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 explicit context for when to use the tool by noting the prerequisite: "Requires prior browser permission (grant_browser_access)." It also adds platform-specific implementation details (macOS `open` vs. webbrowser module), but does not explicitly contrast it with alternatives or state when not to use it. This is clear usage context without formal exclusions, fitting a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_reminderA

Cancel a pending reminder by its ID. Get the ID from set_reminder or list_reminders.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe reminder ID to cancel (8-character hex string).

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the operation is not read-only and not destructive. The description adds the context that it targets a pending reminder and requires an ID, but it doesn't disclose potential side effects, error behavior, or idempotency. This is sufficient for a simple cancel operation but lacks deeper behavioral detail.

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 immediately communicates the purpose and the key procedural detail (where to get the ID). No unnecessary words or repetition.

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 tool's simplicity (one parameter, no output schema, and annotations provided), the description covers the essential aspects: what it does and how to obtain the required ID. It doesn't mention return values or edge cases (e.g., reminder not found), but these are less critical for a straightforward cancel operation.

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 already provides a complete description of the 'id' parameter (8-character hex string). The description adds significant value by explicitly telling the user to get the ID from set_reminder or list_reminders, which clarifies the parameter's origin and format beyond the schema alone.

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 (Cancel), the resource (a pending reminder), and the mode of identification (by its ID). It also distinguishes itself from sibling tools like set_reminder and list_reminders by indicating the ID can be obtained from those tools.

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 context by specifying that the tool is for canceling a pending reminder and instructs how to acquire the necessary ID. While it doesn't explicitly discuss when not to use it or alternatives, the guidance is specific and actionable, making the usage context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_app_updatesA
Read-onlyIdempotent

macOS only: checks for outdated applications via Homebrew (formulae + casks), the Mac App Store (requires the 'mas' CLI — install with 'brew install mas'), and macOS system software updates. Returns lists of outdated apps with current vs available versions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 valuable behavioral context: the tools it uses (Homebrew, mas, system updates), the platform restriction, and the output format (lists with current vs available versions). This goes beyond annotations without contradicting 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 concise sentences pack all essential information: platform, sources, dependencies, and return detail. Front-loaded with the most important scoping ('macOS only') and purpose. No wasted words.

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 tool with no parameters and no output schema, the description fully covers platform, dependencies, sources, and output structure. It is enough for an agent to know exactly when to invoke it and what to expect.

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?

There are zero parameters, so the baseline is 4 per rubric. The description mentions the output format (lists of outdated apps with versions), which is useful even without parameters. No parameter details are needed.

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 verb ('checks for outdated applications') and clearly enumerates the resources covered (Homebrew formulae+casks, Mac App Store via mas, macoS system updates). It distinguishes itself from sibling tools like get_cpu_usage or get_system_alerts by focusing on application update 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?

It provides clear platform context ('macOS only') and notes the mas CLI dependency for Mac App Store checks. While not explicitly naming alternative tools, the scope is distinct enough from siblings that usage context is clear. No exclusions are given, but none are needed for a read-only check tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cleanup_downloadsA
Destructive

Find or delete files in ~/Downloads older than N days. Defaults to dry_run so nothing is removed without an explicit dry_run=false call. Requires allow_file_write when dry_run is false.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
older_than_daysNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, the description adds critical safety context: it defaults to dry_run so nothing is removed without explicit opt-in, and it requires allow_file_write when dry_run is false. This discloses auth needs and default behavior, going beyond what annotations alone provide.

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-loaded with the action, and every word earns its place. It avoids fluff while conveying purpose, safety, and permissions.

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 only two simple parameters, an existing output schema is not necessary. However, the description doesn't explicitly state what the dry-run output looks like (e.g., list of files). Still, it covers safety and permission, making it adequately complete for this complexity level.

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 names 'dry_run' and implies 'older_than_days' via 'N days', but doesn't fully explain the parameters or their constraints. The defaults are already in the schema, but the description adds some meaning by explaining the effect of dry_run.

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: 'Find or delete files in ~/Downloads older than N days.' It specifies a specific verb (find/delete), a resource (files in ~/Downloads), and a condition (older than N days), making it distinct from sibling tools like delete_file or find_large_files.

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 usage for batch cleanup of old downloads but does not explicitly contrast with alternatives or define when not to use it. The dry-run default and permission requirement provide context, but there's no mention of when to prefer this over delete_file or find_large_files.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

copy_fileA

Copy a file to a new location. If dst is a directory, the file is copied into it preserving its name. Requires allow_file_write in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
dstYesDestination file path or directory.
srcYesSource file path.
overwriteNoReplace destination if it exists (default false).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations present (readOnlyHint=false, destructiveHint=false), the description adds value by disclosing the configuration requirement and clarifying behavior when dst is a directory. It does not mention overwrite behavior details, but annotations already signal non-read-only and non-destructive, so this is acceptable.

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 long, front-loaded with the core action, and every sentence provides relevant information without fluff.

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 tool has no output schema and the description does not mention what happens on success, errors, or the default overwrite behavior when dst exists. Given the low complexity and good annotations, this is a clear gap but not severe.

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 coverage is 100%, so parameters are documented. The description adds extra meaning for dst by explaining that if it's a directory, the source filename is preserved, which goes beyond the schema's simple type/description.

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 action ('Copy a file to a new location') with the resource (file). It distinguishes from sibling tools like move_file by explicitly using 'copy' rather than 'move', and from write_file by implying an existing source.

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 gives useful context about destination behavior and a prerequisite (allow_file_write), but it does not explicitly mention when to prefer this tool over alternatives like move_file. The usage context is implied rather than explicitly contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_automationA

Create a recurring local automation that runs a read-only SysControl tool. Requires allow_automations. Mutating, destructive, extension, and automation tools cannot be scheduled.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable automation name.
toolYesRead-only SysControl tool name.
argumentsNo
interval_minutesYesRecurring interval from 1 minute to 7 days.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, which aligns with a creation operation. The description adds valuable context beyond annotations: the need for allow_automations, the restriction to read-only tools, and the local and recurring nature of the automation. This enriches the behavioral profile without contradicting the structured hints.

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-loaded with the action and purpose, followed by essential constraints. Every sentence carries meaningful information without 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?

Given the tool has 4 parameters, no output schema, and moderate annotations, the description covers the core behavior, permission, and restrictions. It does not explain return values or edge cases, but the presence of sibling automation tools and the clarity of the creation task make this sufficiently complete.

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 75% (name, tool, interval_minutes all have descriptions; arguments lacks one). The description adds context about the tool parameter being read-only but does not elaborate on the arguments object or other parameters. At 75% coverage, the baseline of 3 is appropriate; the description contributes only marginal additional meaning.

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 a specific verb and resource: 'Create a recurring local automation that runs a read-only SysControl tool.' It clearly distinguishes this from sibling tools like list_automations, update_automation, and delete_automation by focusing on creation and adding constraints (recurring, local, read-only tool).

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 explicitly states the permission requirement 'Requires allow_automations' and specifies what cannot be scheduled ('Mutating, destructive, extension, and automation tools cannot be scheduled'). This gives clear boundaries on when to use the tool, though it does not name alternative tools for retrieval or updates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_directoryA

Create a new directory (and any missing parent directories). Requires allow_file_write in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or home-relative path for the new directory.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the recursive creation of parent directories and the permit requirement, adding value beyond annotations. However, it does not mention behavior when the directory already exists or error handling, but the key behavioral traits are covered.

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 sentence that immediately states the primary action, then adds the parent-directory nuance and permission requirement with no wasted words.

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 one parameter and no output schema, the description covers purpose, permissions, and recursive behavior adequately. It does not specify return values or existence-handling, but these are not critical for a basic directory creation operation.

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 input schema already fully describes the path parameter as 'Absolute or home-relative path for the new directory.' The description adds no additional parameter context beyond this, so the schema carries the semantic load, matching the baseline score.

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 specifies 'Create a new directory' with the additional detail of creating missing parent directories, clearly distinguishing it from sibling file tools like list_directory or delete_file. The verb+resource is explicit and unambiguous.

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 clearly indicates this tool is for creating directories and notes the prerequisite allow_file_write permission, providing clear context. It doesn't explicitly state when not to use it or name alternatives, but for a directory creation tool this is sufficient context given sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_toolA

Generates, validates, and installs a new MCP tool permanently into the server. Requires allow_tool_creation: true in ~/.syscontrol/config.json. The tool is available after restarting the agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYessnake_case tool identifier, e.g. 'get_spotify_track'.
prompt_docNoOptional usage notes to insert into the system prompt.
descriptionYesOne-sentence description of what the tool does.
implementationYesComplete Python function definition(s). stdlib is available; add 'import X' inside the function for extras.
parameters_schemaNoJSON Schema object for tool inputs. Omit for no-arg tools.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only, not idempotent, and not destructive. The description adds valuable context beyond annotations by noting the permanent installation, the required config flag, and the need to restart the agent. This is genuine 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 description is three concise sentences, each adding unique information: the core action, the prerequisite, and the post-condition. No redundant filler or repetition of schema details.

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 five parameters, a nested schema, and no output schema, the description provides the key operational context: persistence, configuration prerequisite, and restart requirement. It does not explicitly describe error behavior or return values, but the absence of an output schema reduces the need. Overall adequate and well-rounded.

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 100%, so parameter meanings are fully documented in the schema itself. The description does not add extra parameter-specific guidance, but the high coverage means the schema carries the burden. Baseline 3 is appropriate.

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 with a specific verb and resource: 'Generates, validates, and installs a new MCP tool permanently into the server.' This is unique among siblings, none of which create tools. No ambiguity or tautology.

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 context for usage by stating the prerequisite configuration ('Requires allow_tool_creation: true in ~/.syscontrol/config.json') and the post-condition (tool available after restart). It does not explicitly name alternatives or exclusions, but no sibling tool offers equivalent functionality, making the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deep_researchA
Read-onlyIdempotent

Conduct deep, multi-step web research on a topic. Plans subquestions, searches multiple sources, extracts claims, cross-verifies facts, and returns a citation-backed answer. Use for questions needing current information, evidence verification, or multiple perspectives. Takes 1-3 minutes. Requires allow_deep_research in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesThe research question to investigate thoroughly.
max_loopsNoMaximum research iterations (1-10, default 5).
max_sourcesNoMaximum sources to consult (3-25, default 15).

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial context beyond the annotations: it discloses the multi-step process (planning subquestions, searching multiple sources, extracting claims, cross-verifying), the output format (citation-backed), the time cost, and a prerequisite (allow_deep_research in config). This is exactly the kind of behavioral detail that helps an agent understand the trade-offs.

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?

Three dense sentences, each earning its place: first explains what it does, second gives usage guidance, third states time and permission requirements. No fluff, front-loaded with the primary purpose.

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 complex research tool with no output schema, the description covers the process, duration, return value (citation-backed answer), and prerequisites. It fully compensates for the lack of an output schema and gives the agent enough context to invoke it correctly.

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 input schema already provides 100% description coverage for all three parameters, including defaults and ranges. The description does not add parameter-level semantics beyond what the schema provides, but it also doesn't need to. Baseline 3 is appropriate.

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 verb ('conduct deep, multi-step web research'), the resource (web/topic), and the output (citation-backed answer). It distinguishes itself from siblings like web_search and web_fetch by emphasizing multi-step planning, cross-verification, and synthesis.

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 explicitly says when to use it: 'for questions needing current information, evidence verification, or multiple perspectives.' It also gives a time expectation (1-3 minutes) which helps the agent decide if this heavy tool is appropriate. It does not explicitly name alternatives or exclusion criteria, but the contrast with simpler search tools is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_automationA
Destructive

Delete a scheduled automation. Requires allow_automations.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include destructiveHint=true, and the description's 'Delete' aligns with that. The description adds the permission requirement (allow_automations), providing extra context beyond annotations. However, it does not disclose other potential behavioral traits like irreversibility or cascading effects on related runs.

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 short, front-loaded sentences: 'Delete a scheduled automation.' and 'Requires allow_automations.' Every word is purposeful, with no wasted text.

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 destructive tool, the description plus annotations (destructiveHint=true) cover the essentials: what it does and a key prerequisite. It could add details about permanence or effects on associated runs, but the tool's simplicity and context make it adequately complete.

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 description does not explicitly explain the 'id' parameter, but the phrase 'Delete a scheduled automation' implies the id refers to the automation to be deleted. With schema description coverage at 0%, the description provides minimal parameter guidance, though the single parameter's meaning is easily inferred.

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 'Delete a scheduled automation' uses a specific verb and resource, clearly distinguishing it from sibling tools like create_automation, update_automation, and list_automations.

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 provides a prerequisite ('Requires allow_automations') but does not explicitly discuss when to use this tool versus alternatives, such as using update_automation to disable instead. The intended use is clear from the name and description, but no explicit when/when-not guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_fileA
Destructive

Delete a file or directory. On macOS, moves to Trash by default (recoverable); pass permanent=true to permanently delete. Safety: only allows deletion within the home directory. Requires allow_file_write in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file or directory to remove.
permanentNoPermanently delete instead of moving to Trash (default false).

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, the description discloses important behavioral traits: default recoverability on macOS (Trash), a permanent deletion flag, a safety scope limited to home directory, and an authorization prerequisite (requires allow_file_write). This adds significant context about consequences, permissions, and constraints that annotations alone do not provide.

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 well-structured: a clear first sentence ('Delete a file or directory.'), followed by two compact sentences providing platform-specific behavior and safety/permission context. Every sentence adds value without 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 two-parameter tool, the description covers the core behavior, platform nuance, a safety limitation, and an authorization requirement. The only notable gap is that non-macOS behavior is not addressed (it says 'On macOS' but doesn't state default behavior on other operating systems). Overall, it is sufficiently complete given the tool's simplicity and existing annotations.

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 input schema already documents both parameters with descriptions: 'path' and 'permanent' (including its default false and meaning). The description repeats the permanent/Trash behavior but adds no new semantic detail beyond what the schema provides. Since schema coverage is 100%, a baseline of 3 is appropriate.

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 description clearly states the action ('Delete a file or directory') with the specific resource and additional scope ('only allows deletion within the home directory'). While it does not explicitly name sibling tools or contrast with alternatives, the verb+resource combination is unambiguous and effectively distinguishes this from move/copy 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 usage by stating the core function and provides useful context (macOS Trash behavior, safety restriction to home directory, and the require allow_file_write permission). However, it does not explicitly state when to choose this tool over alternatives or list exclusions (e.g., when to prefer move_file). The safety and config notes offer implied conditions, but no direct 'use this when...' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_documentA

Edit a Word document (.docx): find-and-replace text, overwrite a paragraph by index, or append new paragraphs at the end. 'replacements' is a list of {find, replace} objects. 'set_paragraph' is {index, text} to overwrite one paragraph. 'append_paragraphs' is a list of strings to add at the end. Requires allow_file_write in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the .docx file.
replacementsNoFind-and-replace pairs: [{"find": "old text", "replace": "new text"}, ...].
set_paragraphNoOverwrite a paragraph by index: {"index": 0, "text": "New text"}.
append_paragraphsNoList of strings to append as new paragraphs at the end of the document.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With all annotations false, the description carries the burden of behavioral disclosure. It explains the three edit operations, the input structures, and the prerequisite 'Requires allow_file_write in ~/.syscontrol/config.json'. It does not mention in-place modification or error handling, but the provided details are adequate for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a concise four-sentence block. It leads with the purpose, then explains each parameter group in a structured manner, and ends with the configuration requirement. No useless words or repetition.

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 purpose, all operation modes, parameter shapes, and the configuration prerequisite. It does not explain return values, but no output schema is provided and the tool is a simple mutation, so the description is reasonably complete for its complexity.

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 input schema already provides 100% coverage with detailed descriptions and examples for all four parameters. The tool description merely restates these parameter formats in prose, adding no new semantic meaning beyond the schema, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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: 'Edit a Word document (.docx)' with three specific operations: find-and-replace, overwrite a paragraph by index, and append new paragraphs. This precise verb-resource pair and the enumerated operations distinguish it from sibling tools like edit_file and read_document.

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 implies when to use the tool by specifying the .docx file type and the available operations. It does not explicitly exclude plain-text editing (which edit_file might handle) or contrast with read_document, but the context is clear enough for an agent to select this tool for Word documents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_fileA

Make targeted edits to a file using find-and-replace. Provide the exact text to find (old_string) and its replacement (new_string). By default, old_string must appear exactly once (fails if ambiguous). Set replace_all=true to replace all occurrences. ALWAYS read the file first to get the exact text to replace. Requires allow_file_write in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or home-relative path to the file to edit.
new_stringYesReplacement text. Use empty string to delete the matched text.
old_stringYesExact text to find in the file. Must be unique unless replace_all=true.
replace_allNoReplace all occurrences instead of requiring uniqueness (default false).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (which provide no safety hints), the description discloses that old_string must be unique and the tool fails if ambiguous, that replace_all changes this, and that allow_file_write permission is required. It stops short of detailing error handling for not-found text or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the action, and every sentence earns its place by conveying usage, requirements, or failure modes. No redundant or fluff content.

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 tool's complexity and the absence of an output schema, the description covers the core editing workflow, prerequisites, and a key failure mode. Minor gaps remain around return values and what happens when old_string is not found, but it's sufficient for typical invocation.

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 already covers all four parameters, but the description adds meaningful nuance: 'fails if ambiguous' for old_string and 'By default' for uniqueness behavior. It also reinforces the role of replace_all, adding error behavior not present in schema.

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 the tool performs targeted find-and-replace edits on files, distinguishing it from sibling tools like write_file or delete_file. The verb 'Make' plus 'targeted edits' and resource 'file' are specific.

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?

Provides explicit instruction to ALWAYS read the file first to get exact text, and explains the uniqueness requirement and replace_all behavior. Does not explicitly name alternative tools or exclusions, but the context makes the appropriate use case clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_spreadsheetA

Write cells or append rows to a spreadsheet file (.xlsx or .csv). 'updates' is a list of {cell, value} objects using A1 notation (e.g. {"cell": "B3", "value": 500}). 'append_rows' is a list of rows (each row is a list of values) to add at the end. Set create_if_missing=true to create the file if it does not exist (.xlsx only). Requires allow_file_write in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the .xlsx or .csv file.
sheetNoSheet name to edit (.xlsx only). Defaults to the active sheet.
updatesNoList of cell updates: [{"cell": "A1", "value": "Hello"}, ...].
append_rowsNoRows to append at the end of the sheet: [["Q1", 1000], ["Q2", 2000]].
create_if_missingNoCreate the file if it does not exist (.xlsx only). Default false.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses the configuration requirement (allow_file_write) and the .xlsx-only restriction for create_if_missing. It does not explicitly warn that updates overwrite existing cell values, but this is largely inferred from the word 'write'.

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?

Three sentences efficiently structure the description with the main action first and parameter details following. Every sentence provides useful information without any wasteful repetition.

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 5-parameter write tool, the description covers the core workflows, parameter formats, configuration requirement, and format limitations. It is sufficiently complete for practical use, despite lacking an output schema.

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 descriptions cover all parameters, and the description adds concrete examples for updates and append_rows, clarifies A1 notation, and explains the create_if_missing behavior. This adds meaningful value beyond the schema.

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 writes cells or appends rows to spreadsheet files and specifies the supported formats (.xlsx or .csv). This distinguishes it from sibling file operations like write_file or edit_file.

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 usage for spreadsheet modification but does not explicitly state when to prefer this tool over alternatives like edit_file or write_file. No exclusions or alternative mentions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_large_filesA
Read-onlyIdempotent

Finds the top N largest files under a given directory path (default: home directory). Skips hidden directories, .git, pycache, node_modules, .venv, and Library. Use when the user asks what is using disk space or wants to free up storage.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoNumber of largest files to return (1–50, default 10).
pathNoDirectory path to search (e.g. '/Users/you/Downloads'). Defaults to home directory if omitted.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds beyond annotations by listing skipped directory types (e.g., .git, node_modules), which is useful behavioral context. No 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 sentences, front-loaded with the core function, and every sentence adds value without 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 tool with 2 optional params and no output schema, the description is complete: it states the purpose, default behavior, exclusions, and usage scenario. Could mention output format, but not critical given no schema.

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?

Input schema covers 100% of parameters with detailed descriptions, including defaults and ranges. The description adds little beyond what the schema already provides, so baseline 3 applies.

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 the specific verb 'Finds' with a clear resource ('top N largest files under a directory'). It distinguishes from siblings like get_disk_usage and search_files by specifying the exact scope and output.

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 states 'Use when the user asks what is using disk space or wants to free up storage,' providing clear context. Lacks discussion of alternatives or when not to use, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_imageA

Generate a new visual image artifact from a text prompt and return it as an inline PNG for the GUI/chat. Use when the user asks for an image or when a small visual artifact would clearly make the answer more useful. Prefer built-in chart-returning metric tools for system data. Requires an OpenAI image API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoOutput dimensions. Use 1024x1024 unless portrait or landscape is requested.1024x1024
modelNoImage model to use. Defaults to gpt-image-1.gpt-image-1
promptYesDetailed image prompt describing subject, composition, style, and any text to include.
qualityNoGeneration quality/cost tradeoff.auto
backgroundNoBackground handling for models that support it.auto

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide minimal behavioral context (readOnlyHint=false, idempotentHint=false). The description adds meaningful context beyond annotations: it states the return format ('inline PNG for the GUI/chat') and an auth requirement ('Requires an OpenAI image API key'). It does not contradict annotations, so no annotation 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?

The description is three sentences, front-loaded with the purpose, followed by usage guidance, an alternative, and a requirement. Every sentence provides distinct value with no unnecessary fluff, making it highly concise and well-structured.

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 tool has 5 parameters with a fully descriptive schema, the description covers the key contextual elements: what it does, when to use it, a critical alternative, an auth prerequisite, and the output format. It does not explain error handling or cost, but for a simple generative tool with rich schema, this is sufficiently complete.

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 coverage is 100%, with all five parameters having descriptions. The description itself does not elaborate on parameter details but does mention 'text prompt' and 'return as PNG', adding slight context. Since the schema already documents parameters thoroughly, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Generate a new visual image artifact from a text prompt and return it as an inline PNG for the GUI/chat.' This is a specific verb+resource statement that clearly defines the tool's function. It also distinguishes itself from sibling system data tools by noting a preference for chart-returning metric tools for system data, making its purpose unambiguous.

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 states when to use this tool: 'Use when the user asks for an image or when a small visual artifact would clearly make the answer more useful.' It also provides an exclusion: 'Prefer built-in chart-returning metric tools for system data.' This gives clear guidance versus alternatives and includes a prerequisite (OpenAI API key).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_audit_logB
Read-onlyIdempotent

Return the local privacy-preserving tool audit log. Argument names, risk, status, and errors are recorded; argument and result values are not persisted.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNo
limitNo

TDQS

B3.4/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 valuable context about privacy-preservation and the specific data retention policy, which goes beyond the structured 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 a single, front-loaded sentence that conveys the core purpose and a key constraint. Every word adds value, with no repetition or filler.

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 tool is simple and the annotations cover safety, but the description omits parameter semantics and return format. It is minimally adequate for a read-only getter but lacks detail for full comprehension.

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?

Param schema has 0% description coverage, and the description does not explain either parameter ('tool' filter or 'limit'). Without any compensation, the agent has no information about how to set or use these 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?

The description uses a specific verb ('Return') and resource ('local privacy-preserving tool audit log'), and clearly distinguishes this from sibling resource-monitoring tools by detailing what is recorded (argument names, risk, status, errors) and what is not (argument/result values).

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 explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It only states what the tool returns, leaving usage context implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_battery_statusA
Read-onlyIdempotent

Returns battery percentage, charging state, and estimated time remaining. Returns an error on desktops with no battery.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is established. The description adds useful behavioral context by specifying the return values and the error case for desktops with no battery, which goes beyond the 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 two concise sentences. The first sentence front-loads the primary purpose and returned data, and the second covers the error condition. No wasted words.

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 status tool with no parameters and no output schema, the description adequately covers the key return values and an important edge case. It lacks exact formatting details (e.g., units or response envelope), but this is minor for such a straightforward tool.

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 zero parameters, so the baseline is 4. The description does not need to explain parameters because there are none, and it correctly focuses on the output instead.

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 the specific verb 'returns' and clearly identifies the resource (battery status), listing the exact data items: percentage, charging state, and estimated time remaining. This distinguishes it from sibling tools like get_cpu_usage or get_ram_usage.

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 implies the use case (when battery information is needed) and states an exclusion/error condition for desktops with no battery. However, it does not explicitly name alternative tools or elaborate on when not to use it beyond the no-battery limitation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clipboardA
Read-onlyIdempotent

Return the current text content of the system clipboard. macOS only (uses pbpaste).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds valuable context: the platform dependency (macOS only) and the underlying command (pbpaste), which are not inferable from 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 a single, front-loaded sentence with no superfluous words. It conveys the action, resource, and platform constraint efficiently.

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 no parameters and robust annotations, the description covers the essential behavior: return type (text), platform (macOS), and implementation (pbpaste). It does not mention error cases (e.g., non-text clipboard), but that is a minor gap given the tool's simplicity.

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?

There are zero parameters, so the baseline is 4. The description adds semantic clarity by specifying the content type as 'text', which clarifies what the clipboard returns beyond an empty schema.

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 the current text content of the system clipboard, using a specific verb ('Return') and resource. It also distinguishes itself from the sibling 'set_clipboard' by being a read operation, and mentions platform (macOS).

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 usage when clipboard text is needed, but does not provide explicit when-to-use vs alternatives or exclusions beyond the macOS-only constraint. No alternative tools are named, so guidance is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cpu_usageA
Read-onlyIdempotent

Returns CPU usage percentage (total and per-core), core count, and frequency, with an inline bar chart.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing safety. The description adds value by specifying the return format (inline bar chart) and the exact data points (per-core and total percentage, core count, frequency), which is behavior beyond the 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?

A single, well-structured sentence front-loads the primary purpose ('Returns CPU usage percentage') and then lists additional details. Every phrase is informative and there is no redundancy or extraneous text.

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?

Without an output schema, the description bears responsibility for explaining return values. It covers the key elements: total and per-core usage, core count, frequency, and the bar chart. Minor ambiguities like frequency units and sampling methodology prevent a perfect score, but it is complete for a simple monitoring tool.

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 zero parameters, so the schema is trivially complete (100% coverage). The description does not need to explain parameters, and it instead provides useful output details. Baseline for zero-parameter tools is 4, which is appropriate here.

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 ('Returns') and identifies the resource ('CPU usage') with detailed scope: total and per-core percentage, core count, frequency, and inline bar chart. This clearly distinguishes it from sibling tools like get_ram_usage and get_gpu_usage.

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 intended use is evident from the description: it provides CPU metrics. While it doesn't explicitly name alternatives or exclusions, the context is clear within the system-monitoring tool family. The lack of explicit when-not-to-use is a minor gap, but the description is sufficient for a simple read-only metric.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_device_specsA
Read-onlyIdempotent

Returns static hardware specifications: CPU model, core count, total RAM, GPU model and VRAM, disk capacities, and OS details.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds the 'static' characteristic, suggesting stable data, but provides no other behavioral context such as permission requirements or potential platform differences.

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?

A single sentence concisely lists all returned content with no filler or redundancy. Information is front-loaded with the action and resource.

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, static, read-only tool with no parameters and no output schema, the description fully enumerates what is returned. No further context is needed; annotations cover safety.

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 zero parameters, so the baseline is 4. The description correctly indicates no inputs are needed by not mentioning any, and the empty schema is self-explanatory.

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 static hardware specifications' and enumerates the exact attributes (CPU model, core count, RAM, GPU, disk, OS). This verb+resource phrasing distinguishes it from dynamic usage tools like get_cpu_usage or get_ram_usage.

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 word 'static' implies use for one-time hardware queries rather than real-time metrics, but the description does not explicitly mention alternatives or when to prefer this tool over similar siblings like get_hardware_profile. Usage context is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_disk_usageA
Read-onlyIdempotent

Returns disk partition usage and I/O counters.

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?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds value by specifying the exact data returned (partition usage and I/O counters), but does not disclose further behaviors such as permission requirements or output format. Given the rich annotations, this is adequate.

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, clear sentence with no filler, front-loading the purpose immediately. Every word contributes to understanding the tool, making it highly concise and well-structured.

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 no parameters and no output schema, the description is complete: it clearly states what the tool returns. There are no prerequisites, side effects, or return format details that need explanation, and the annotations cover safety. The description fully supports an agent in deciding when to invoke this tool.

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?

With zero parameters, the input schema provides no information, so the baseline is 4. The description adds meaning by explaining the tool's output, which helps the agent understand the tool's semantics despite the absence of parameters. It does not over-explain or repeat schema content.

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 the specific verb 'Returns' and identifies the resource clearly as 'disk partition usage and I/O counters'. This clearly distinguishes it from sibling monitoring tools like get_cpu_usage, get_ram_usage, and get_realtime_io, which focus on other system metrics.

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 usage for disk-related queries but does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions. For example, it does not clarify the difference from get_realtime_io, leaving the agent to infer the appropriate context based on the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_docker_statusA
Read-onlyIdempotent

Returns all running Docker containers with their CPU%, memory usage, image, status, and ports. Also reports total container count (including stopped). Returns an actionable error if Docker is not installed or the daemon is not running.

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?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds valuable behavioral context by specifying the exact returned fields and, importantly, that it returns an actionable error if Docker is not installed or the daemon is not running. This goes beyond the structured annotations and provides practical expectations.

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-loaded with the main purpose, and contains no redundant information. Every sentence earns its place: the first states the core output, the second adds the count and error handling. There is no wasted text.

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 no parameters, a simple read-only output, and the presence of rich annotations, the description is complete. It states exactly what is returned and how failures are reported. No output schema exists, but the description adequately covers the return content, so no further detail is necessary.

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 zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and the schema confirms no parameters are required. No further parameter-specific detail is expected, so the score aligns with the baseline.

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 all running Docker containers with specified fields (CPU%, memory usage, image, status, ports) and total container count. This is a specific verb+resource combination that distinguishes it from sibling system metrics tools like get_cpu_usage or get_ram_usage, which cover host-level resources rather than Docker-specific data.

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 does not explicitly state when to use this tool versus alternatives or mention exclusions. However, the specific reference to Docker containers and the inclusion of an error for Docker-specific issues implies the intended use case. No explicit guidance on alternatives is provided, so it earns only the implied-usage score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_full_snapshotA
Read-onlyIdempotent

Returns a full system snapshot: CPU, RAM, GPU, disk, network, and top processes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds the scope of the snapshot (which subsystems are included) but does not disclose potential performance impact or the point-in-time nature beyond the word 'snapshot'. It adds some context but not rich behavioral detail.

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 front-loads the primary action and lists components with no wasted words. Perfectly structured for quick comprehension.

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?

With no output schema and no parameters, the description adequately explains what the tool returns. It is complete enough for a simple snapshot tool, though it could optionally mention the output format or note that it is a combined call. The annotations cover safety, making this sufficient.

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 zero parameters, and the schema is empty with 100% coverage. Baseline for 0 params is 4, and the description does not need to explain parameters. No additional semantic value is required.

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 a full system snapshot' and explicitly lists the included components (CPU, RAM, GPU, disk, network, top processes). This distinguishes it from sibling tools like get_cpu_usage and get_ram_usage, which are individual metric getters.

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 use for a comprehensive overview but does not explicitly state when to prefer this over individual getter tools. No alternatives or exclusions are mentioned, so guidance is only implied by the 'full system snapshot' wording.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gpu_usageA
Read-onlyIdempotent

Returns GPU load, VRAM usage, and temperature (requires nvidia-ml-py on NVIDIA hardware), with an inline grouped bar chart.

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?

Annotations already indicate read-only and non-destructive behavior. The description adds valuable context beyond annotations: the dependency on nvidia-ml-py and NVIDIA hardware, and the fact that it returns an inline grouped bar chart. This gives the agent a better sense of prerequisites and output format without contradicting 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 a single sentence that front-loads the core purpose, then adds dependency and output details. It is concise with no redundant information, making it easy to parse quickly.

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 no parameters and no output schema, the description fully covers the necessary context: what is returned, the hardware/software requirements, and the format (chart). An agent can confidently invoke this tool based on this description alone.

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 zero parameters, so the schema is empty and description coverage is 100%. The baseline for no parameters is 4, and the description adds meaning by specifying what metrics are returned (load, VRAM, temperature), which is relevant context even without 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?

The description clearly states what the tool does: returns GPU load, VRAM usage, and temperature. It uses a specific verb and resource, and the mention of GPU-specific metrics distinguishes it from sibling system monitoring tools like get_cpu_usage and get_ram_usage.

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 usage context by naming GPU metrics, making it clear this is for GPU monitoring. However, it does not explicitly state when to use this tool instead of alternatives or mention any exclusions. The dependency note (requires nvidia-ml-py) gives a prerequisite but not explicit guidance on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_hardware_profileA
Read-onlyIdempotent

Returns a full hardware profile for a given use-case: specs, live pressure, overclocking capability (where supported), upgrade feasibility per component, and workload-specific bottleneck analysis. Use this when the user asks about speeding up a specific task, upgrading their machine, or overclocking.

ParametersJSON Schema
NameRequiredDescriptionDefault
use_caseNoThe user's workload or goal, e.g. 'lightroom rendering', 'gaming', 'video editing', 'compiling code'

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful context about what the tool returns, including 'live pressure' and 'overclocking capability (where supported),' which helps set expectations. It does not contradict 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, front-loaded with the main verb and resource, then a useful usage directive. No filler or redundant information. Every sentence adds value.

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 tool is complex and has no output schema, but the description covers the key return categories and usage scenarios. It doesn't explain nuances like whether the profile is real-time or cached, but given the annotations and simple schema, it is sufficiently complete for an agent to select and invoke it correctly.

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 coverage is 100%, so the parameter 'use_case' is fully described in the schema with examples. The description adds slight context by linking the parameter to user intents like upgrading or overclocking, but it doesn't substantially enrich beyond the schema. Baseline 3 applies.

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 a 'full hardware profile' for a use-case, listing specific contents (specs, live pressure, overclocking capability, upgrade feasibility, bottleneck analysis). This distinguishes it from sibling tools like get_cpu_usage or get_device_specs, which cover narrower or different scopes.

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 says when to use the tool: 'when the user asks about speeding up a specific task, upgrading their machine, or overclocking.' This gives clear contextual guidance, though it does not name alternatives or explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_network_connectionsA
Read-onlyIdempotent

Returns all active TCP/UDP connections with local/remote addresses, status, and the owning process name.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds the specific data fields (local/remote addresses, status, owning process name), which is useful but does not reveal additional behavioral traits such as performance impact or permission requirements. This aligns with the calibration example where annotations cover safety and description adds some context.

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, well-structured sentence that immediately states what the tool returns with no filler. It is front-loaded and every word contributes meaning.

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 zero-parameter read-only tool, the description covers the return contents clearly (connections, addresses, status, owning process). No output schema exists, but this description, combined with the safety annotations, is sufficient for an agent to know what to expect and when to use 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 tool has zero parameters, so the description does not need to explain parameter semantics. The baseline of 4 is appropriate for a no-parameter tool, as there is no additional meaning to provide beyond what the empty schema shows.

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 ('Returns') and resource ('all active TCP/UDP connections') with details on addresses, status, and owning process. This clearly distinguishes it from sibling tools like get_network_usage, which focuses on bandwidth metrics.

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 implies usage for inspecting network connections and the returned fields make the tool's purpose clear. However, it does not explicitly mention when to use this tool over alternatives like get_network_usage or get_process_details, so it lacks explicit exclusions or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_network_usageA
Read-onlyIdempotent

Returns total bytes sent/received and network interface status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that it reports byte counts and interface status, but does not clarify whether 'total' is since boot, session, or a cumulative counter, nor what interface status entails.

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?

One concise sentence that front-loads the purpose. No wasted words, easy to scan.

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 there is no output schema, the description does a decent job stating what is returned. However, 'total bytes' and 'interface status' are underspecified—could benefit from defining the time period or exact status values. Still, for a simple read-only getter, it's adequate.

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 zero parameters, and the schema coverage is 100% (empty schema). Baseline for 0 parameters is 4; the description doesn't need to elaborate on 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?

The description clearly states it returns total bytes sent/received and network interface status, using the specific verb 'returns' and a clear resource. This distinguishes it from sibling tools like get_network_connections (which covers connections) and network_latency_check (which covers latency).

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?

No guidance is provided on when to use this tool versus alternatives like get_network_connections or network_latency_check. The description simply states what it does without implying a specific context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_process_detailsA
Read-onlyIdempotent

Returns detailed information about a specific process by PID: executable path, command line, user, memory breakdown, open file count, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidYesThe process ID to inspect (positive integer; get from get_top_processes or search_process).

TDQS

A3.8/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, which covers the safety profile. The description adds useful context about the return content but does not disclose potential edge cases such as behavior for nonexistent PIDs or permission requirements. This adds some value beyond annotations but lacks rich behavioral detail.

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, well-structured sentence that front-loads the main action and includes a concrete list of return fields. There is no filler or redundancy, making it highly concise and effective.

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 tool's simple interface (one parameter, well-annotated as read-only) and the schema covering the only parameter, the description is nearly complete. It lists many return fields but uses 'and more' without enumerating everything, and there is no output schema to fill that gap. Minor incompleteness, but still sufficient for correct invocation.

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 coverage is 100% for the single pid parameter, with a clear description including type, constraints, and source guidance. The tool description adds nothing beyond restating 'by PID'. Since the schema handles the parameter semantics completely, the baseline of 3 is appropriate.

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 detailed information about a specific process by PID, listing concrete details like executable path, command line, and memory breakdown. This distinguishes it from sibling tools like get_top_processes and search_process, which operate at a process-list level rather than a single process detail level.

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 main description does not explicitly state when to prefer this tool over alternatives. However, the input schema's pid parameter description notes to obtain the PID from get_top_processes or search_process, implying a sequential workflow. This is helpful but not an explicit 'use this tool when' guideline, so it remains implied rather than fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ram_usageA
Read-onlyIdempotent

Returns RAM and swap memory usage (total, used, available, percent), with an inline stacked bar chart.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context beyond annotations: it returns both RAM and swap metrics and includes a chart, which hints at visual formatting. It does not describe return structure or units, but the annotation coverage lowers the 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 a single, front-loaded sentence that wastes no words. It conveys the resource, the exact data points, and a visual feature in under 20 words, making it ideal for quick agent comprehension.

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, no-parameter, read-only tool, the description fully covers what the tool does and what it returns. No output schema exists, but the description lists the output contents (metrics and chart), making it self-sufficient. There are no missing operational prerequisites or complex edge cases to disclose.

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?

This tool has zero parameters, so the input schema is trivially complete (100% coverage). There are no parameter details to add; the description's mention of the metrics returned is additional context beyond parameter semantics. Baseline for 0 params is 4, and no further param info is needed.

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 verb ('Returns') and resource ('RAM and swap memory usage'), including the exact metrics (total, used, available, percent) and a distinctive feature (inline stacked bar chart). It differentiates from sibling tools like get_cpu_usage and get_disk_usage by its resource focus.

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?

While no explicit 'when to use vs alternatives' is stated, the context is unambiguous: this tool is for RAM/swap information, and siblings cover other resources. For a simple read-only getter, the usage context is clear, though it stops short of explicitly naming alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_realtime_ioA
Read-onlyIdempotent

Measures actual disk and network I/O throughput by sampling twice over an interval. Returns disk read/write in MB/s and network download/upload in MB/s and Mbps. Call this instead of get_disk_usage or get_network_usage when the user asks about current speed or throughput.

ParametersJSON Schema
NameRequiredDescriptionDefault
intervalNoSampling interval in seconds (1–3, default 1). Longer intervals give more accurate throughput averages.

TDQS

A4.7/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, so the description doesn't need to restate these. It adds valuable context about the sampling method (twice over an interval) and the output units, which aligns with the annotations and provides behavioral insight beyond 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?

The description is two sentences long, front-loaded with the core function and output, and every sentence earns its place. It includes usage guidance without any fluff.

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 low complexity (one optional parameter), the description fully covers the return values (units for both disk and network), the measurement methodology, and the usage context. No output schema exists, so the detailed output description compensates adequately.

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 already provides full coverage (100%) for the single parameter 'interval', including a description. The tool description adds the nuance that sampling occurs 'twice over an interval', which enriches understanding of the parameter's behavior, so it goes beyond the schema baseline.

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 a specific verb ('Measures') and resource ('actual disk and network I/O throughput'). It explicitly differentiates from sibling tools by naming get_disk_usage and get_network_usage, making the purpose unambiguous.

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 provides explicit guidance on when to use this tool vs. alternatives: 'Call this instead of get_disk_usage or get_network_usage when the user asks about current speed or throughput.' This clearly indicates the intended use case and excludes other scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_startup_itemsA
Read-onlyIdempotent

Lists applications and services configured to launch automatically at startup/login. macOS: scans ~/Library/LaunchAgents, /Library/LaunchAgents, /Library/LaunchDaemons. Windows: reads Run registry keys. Linux: scans ~/.config/autostart. Use when the user asks what runs at startup or wants to speed up boot times.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior. The description adds value by specifying exact scan locations on each OS (macOS LaunchAgents/Daemons, Windows Run keys, Linux autostart), which is useful context beyond annotations. It does not mention potential permission concerns or output structure, but the extra platform details are solid.

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 sentences, with the purpose stated first, then platform specifics, then usage guidance. Every sentence earns its place with no fluff or repetition.

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 parameterless read-only tool, the description covers purpose, platform locations, and usage context. It does not explicitly describe the return format, but given the tool's simplicity and the lack of an output schema, this is a minor gap rather than a critical omission.

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 zero parameters, so baseline 4 applies. The description correctly focuses on the platform-specific scanning behavior instead of parameter explanations, which is appropriate for a no-parameter tool.

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 a specific verb ('Lists') and resource ('applications and services configured to launch automatically at startup/login'). It also provides platform-specific details, making it immediately distinguishable from sibling monitoring tools like get_cpu_usage or get_process_details.

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?

Explicit usage guidance is given: 'Use when the user asks what runs at startup or wants to speed up boot times.' This tells the agent when to invoke the tool, but it does not mention alternatives or when not to use it, which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_system_alertsA
Read-onlyIdempotent

Scans all key system metrics (CPU, RAM, swap, disk partitions, GPU, battery) and returns a prioritized list of critical/warning alerts. Call this first for general 'why is my machine slow?' questions as a quick triage tool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive traits. The description adds value by disclosing that output is a prioritized list of critical/warning alerts and that it covers multiple metrics (CPU, RAM, swap, etc.), which is not implied by annotations alone.

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 concise sentences front-load the core purpose and usage. Every word earns its place—no fluff, no repetition of the tool name, and it adds essential guidance without being verbose.

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 zero-parameter read-only tool with no output schema, the description is complete. It explains what it does, what it returns, and when to use it. No additional details about return format or edge cases are necessary for effective tool selection.

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 zero parameters, so the baseline for parameter semantics is 4. The description doesn't need to explain parameter usage, and the schema is empty with 100% coverage. It appropriately focuses on the tool's scope of metrics scanned.

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 scans all key system metrics and returns a prioritized list of critical/warning alerts. It uses specific verbs ('scans', 'returns') and differentiates itself from sibling tools like get_cpu_usage by acting as a general triage tool.

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 explicitly says 'Call this first for general why is my machine slow? questions as a quick triage tool', which gives clear when-to-use context. It does not explicitly mention when not to use or name alternative specific metric tools, but the guidance is unambiguous enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_system_uptimeA
Read-onlyIdempotent

Returns how long the system has been running, the last boot time, and the 1/5/15-minute load averages.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, so the safety profile is established. The description adds value by specifying what data is returned (uptime duration, boot time, load averages), which is transparent about the tool's output without contradicting 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 a single, well-structured sentence that front-loads the verb and subject, then lists the three return components. Every word adds information, with no redundancy or filler.

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 zero-parameter, read-only tool with no output schema, the description fully conveys what the tool does and what it returns. The listed components (running time, last boot time, load averages) are sufficient for an agent to invoke it correctly without further context.

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 zero parameters, so the baseline is 4. The description does not need to explain parameters, and it doesn't; it focuses on the return values instead, which is appropriate.

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 'Returns' with a clear resource (system uptime) and enumerates the exact data returned (running time, last boot time, load averages). This distinguishes it from sibling tools like get_cpu_usage and get_ram_usage, which target different metrics.

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 clearly communicates that this tool is for retrieving uptime and load average information, making its usage context obvious. It does not explicitly exclude alternatives or mention when not to use it, but for a simple read-only system metric tool, the context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_temperature_sensorsA
Read-onlyIdempotent

Returns CPU and motherboard temperature sensor readings. On macOS, returns a helpful message with alternatives (psutil cannot access kernel sensors on Darwin). On Linux/Windows, returns sensor groups with current, high, and critical thresholds.

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?

Annotations already signal readOnly (readOnlyHint=true) and idempotent, but the description adds valuable behavioral detail beyond that: platform-specific behavior on macOS vs Linux/Windows, and the nature of returned data (groups with current, high, and critical thresholds). This goes beyond the annotations and helps set expectations.

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-loaded with the core purpose, then adds platform-specific nuances. Every sentence contributes meaning—no fluff, no redundancy with the schema or annotations.

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 low complexity (no params, no output schema, clear annotations), the description fully covers what the agent needs: what it returns, platform differences, and the threshold information. There are no significant gaps for a read-only monitoring tool.

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 zero parameters, so the schema covers everything trivially (100% coverage). Per the rubric, a baseline of 4 is appropriate since the description need not explain parameters that don't exist. The description focuses on behavior rather than irrelevant parameter details.

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?

Description clearly states the tool's function: 'Returns CPU and motherboard temperature sensor readings.' The verb 'Returns' plus the specific resource (temperature sensors) makes the purpose unambiguous and distinguishes it from sibling tools like get_cpu_usage or get_gpu_usage.

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 implicitly conveys when to use the tool (for temperature readings) and explicitly notes platform limitations (macOS returns alternatives). However, it does not name any specific alternative tool or state explicit 'use this when / not when' guidance, leaving the agent to infer context from the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_processesA
Read-onlyIdempotent

Returns the top N resource-hungry processes sorted by CPU or memory usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoNumber of processes to return (1–100, default 10).
sort_byNoSort processes by CPU usage or memory footprint.cpu

TDQS

A4.1/5.0
Behavior4/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 clear. The description adds behavioral context about sorting by CPU or memory and the top-N concept, which goes beyond the annotations without contradicting them. It does not disclose return format, but that is low risk for a read-only query.

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 sentence that is front-loaded with the core action and valuable details. It is concise with no unnecessary words or repetition of schema information.

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 low-complexity read-only query tool with full schema annotations and no output schema, the description is complete enough. It clearly conveys what the tool returns and the key options, and the annotations cover safety and idempotency. No additional context is necessary.

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 100%, with each parameter (n and sort_by) fully documented including defaults and constraints. The description adds minimal extra meaning beyond the schema, essentially restating the sorting behavior. Baseline 3 is appropriate since schema carries the heavy lifting.

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 the top N resource-hungry processes sorted by CPU or memory usage, which is specific and distinct from sibling tools like get_cpu_usage or get_ram_usage that report system-wide usage rather than per-process lists. It uses a specific verb ("Returns") and names the resource and sorting criteria.

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 usage for viewing top resource-consuming processes but does not explicitly mention alternatives or when not to use it. Given the sibling tools include get_process_details, search_process, and process_tree, the lack of explicit guidance leaves room for ambiguity, though the purpose is fairly self-evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_weatherA
Read-onlyIdempotent

Returns current weather conditions and clothing suggestions. Auto-detects location from IP if no location is provided. Pass a city name for a specific location (e.g. 'Tokyo' or 'London, UK').

ParametersJSON Schema
NameRequiredDescriptionDefault
unitsNoTemperature units: 'imperial' (°F, mph) or 'metric' (°C, km/h). Defaults to imperial.imperial
locationNoCity name (e.g. 'Tokyo', 'London, UK'). Leave empty to auto-detect from IP.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which covers safety traits. The description adds valuable behavioral context beyond annotations: IP-based auto-detection of location and the inclusion of clothing suggestions, which are not inferable from the 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 two sentences, front-loaded with the primary function, then adds location handling details. Every sentence contributes meaning without redundancy.

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 weather tool with no output schema, the description adequately covers what the tool does, how location is determined, and what it returns (conditions and suggestions). No critical information is missing for selection and invocation.

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 describes both parameters with 100% coverage, including the enum for units and the default behavior for location. The description adds examples (e.g., 'Tokyo' or 'London, UK') and reinforces the auto-detect aspect, providing extra clarity beyond the schema.

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 current weather conditions and clothing suggestions,' using a specific verb and resource. It distinguishes itself from sibling tools like get_temperature_sensors (hardware temperature) by explicitly focusing on weather and clothing.

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 usage context: it auto-detects location from IP if none is given, and instructs to pass a city name for a specific location. It does not explicitly rule out alternatives, but there are no weather-related sibling tools, making the context sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_diffA
Read-onlyIdempotent

Show git diff output for a repository. By default shows unstaged changes; set staged=true for staged changes. Optionally scope to a specific file path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath inside the repo, or a specific file (default: repo root)..
stagedNoShow staged (cached) changes instead of unstaged (default false).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a safe read-only operation. The description adds useful behavioral detail: defaulting to unstaged changes, the staged flag, and file path scoping, which goes beyond the annotation hints.

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?

Three concise, front-loaded sentences with no wasted words. Each sentence adds meaningful information: purpose, default mode, and optional scoping.

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 git command, the description is complete. Both parameters are covered, no output schema is needed, and annotations cover the safety profile. No gaps remain.

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 coverage is 100%, so baseline is 3. The description adds extra clarity by explaining the default for staged (false) and the meaning of path scoping, which enriches the parameter semantics beyond the schema's own descriptions.

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 description clearly states the tool shows git diff output for a repository, with a specific verb and resource. It distinguishes from generic system tools but does not explicitly contrast with the sibling git_status, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the default behavior (unstaged changes) and how to switch to staged changes, plus path scoping. However, it does not provide explicit guidance on when to use this over git_status or other alternatives, only implying usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_statusA
Read-onlyIdempotent

Show git repository status: current branch, staged/unstaged/untracked files, and the 5 most recent commits. Auto-detects the repo root.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath inside the git repository (default: current directory)..

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, which the description does not contradict. The description adds valuable behavioral context by noting that it auto-detects the repo root and limits output to the 5 most recent commits. It does not detail error behavior (e.g., when not in a repo), but the annotation coverage lowers the bar, and the added context justifies a 4.

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, well-structured sentence with no redundancy. It front-loads the action and resource, then lists specific outputs, making it highly efficient and easy to parse.

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?

The tool is simple, has good annotations, and no output schema. The description clearly states what the tool returns (branch, file states, commits) and adds the auto-detection behavior. There are no obvious gaps that would prevent an agent from using or understanding the tool correctly.

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 100% for the single parameter 'path', which is fully described. The description adds no additional parameter semantics beyond what the schema already provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Show' with a clear resource ('git repository status') and enumerates the exact contents: current branch, staged/unstaged/untracked files, and recent commits. This clearly distinguishes it from sibling tools like git_diff, which focuses on changes, and from system monitoring tools like get_cpu_usage.

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 clearly implies its use case: checking the overall state of a git repository. It does not explicitly name alternatives or mention when not to use it, but the context is unambiguous given the sibling list and the direct phrasing. A score of 4 is appropriate because there is clear context but no explicit exclusions or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

glob_filesA
Read-onlyIdempotent

Find files matching a glob pattern (e.g. '/*.py', 'src//*.ts'). Searches recursively from the given base path. Skips .git, node_modules, .venv, pycache directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoBase directory to search from (default: current directory)..
patternYesGlob pattern (e.g. '**/*.py', '*.json', 'src/**/*.ts').

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral detail beyond the annotations: it searches recursively and skips .git, node_modules, .venv, and __pycache__ directories. Since annotations already declare read-only and non-destructive, this is valuable complementary context.

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, front-loaded with the action and examples. Each sentence provides necessary information—what the tool does and what it skips—with no filler or redundancy.

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 glob search tool, the description captures the primary use case, the recursive behavior, and directory exclusions. The schema fully documents parameters and annotations cover safety, making the definition complete for its complexity.

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 coverage is 100%, with both 'path' and 'pattern' already described. The description reinforces parameter meaning with examples and the phrase 'base path,' but does not add meaningful new semantic information beyond the schema, so it earns the baseline 3.

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 it finds files matching a glob pattern, with concrete examples. The verb 'Find' plus resource 'files' and the pattern syntax distinguish it from content-search tools like grep_files, though it does not explicitly name alternatives.

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 conveys clear usage context: use this for locating files by path pattern, with recursion and base path behavior. It does not explicitly state when not to use it or mention alternative tools, so it lacks the explicit exclusions needed for a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grant_browser_accessA

Grants the agent permission to control the user's browser. ONLY call this tool after the user has explicitly said yes/granted/allow. Writes a permission flag; subsequent browser_* calls will then work.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that the tool writes a permission flag, which is a side effect not captured in the annotations. It also emphasizes the consent requirement, adding context about authorization. This is valuable transparency beyond the raw hints.

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, front-loaded with the main purpose, and directly followed by the critical usage constraint. Every sentence earns its place—no fluff or repetition.

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 zero-parameter, no-output-schema tool, this description is complete. It tells the agent what the tool does, when it may be called, what it does internally, and the resulting effect. No missing information is needed for correct and safe invocation.

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?

There are zero parameters, so the schema is trivially covered. The description adds nothing about parameters because none exist. Baseline for 0 params is 4, and the description provides no unnecessary detail.

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: granting the agent permission to control the user's browser. This is a specific verb+resource combination that distinguishes it from all sibling tools, which are either system monitoring, file operations, or browser actions themselves (e.g., browser_open_url).

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?

Explicitly states the only condition for use: after the user has explicitly said yes/granted/allow. It also explains the consequence of use (subsequent browser_* calls will then work), giving clear when-to-use guidance and implying it should precede any browser_* calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grep_filesA
Read-onlyIdempotent

Search file contents for a regex pattern, like grep/ripgrep. Returns matching lines with file paths and line numbers. Optionally filter by file glob (e.g. '*.py') and include context lines. Skips binary files and .git, node_modules, .venv, pycache.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFile or directory to search in (default: current directory)..
includeNoGlob filter for file names (e.g. '*.py', '*.ts'). Empty = all files.
patternYesRegex pattern to search for (Python re syntax).
max_resultsNoMaximum matching lines to return (1–500, default 50).
context_linesNoLines of context before and after each match (0–10, default 0).

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses important behavioral traits: skips binary files and common exclude directories (.git, node_modules, .venv, __pycache__). It also explains the output format (matching lines with paths and line numbers) and the context-lines option. This adds substantial behavioral context beyond the 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 three purposeful sentences: what it does, what it returns, and how it filters/excludes. Every sentence adds value and the most core information comes first. No fluff or repetition.

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 annotations, a fully descriptive schema, and the absence of an output schema, the description is complete. It explains the search scope, return format, filtering, and skip behavior. Enough for an agent to select and invoke correctly without ambiguity.

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 input schema already covers all five parameters with 100% description coverage, including defaults, ranges, and regex syntax. The description adds no extra parameter-specific meaning; it merely restates the glob and context-lines concepts already present in the schema. Per the baseline for high schema coverage, this scores a 3.

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 'Search file contents for a regex pattern, like grep/ripgrep', naming the resource (file contents) and the verb (search). It also distinguishes itself from sibling file tools by specifying output (matching lines with file paths and line numbers) and filtering options. This is a specific, non-tautological purpose statement.

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: searching file contents with regex, optionally filtering by glob and adding context lines. It does not explicitly name alternatives or state when not to use it, but the 'like grep/ripgrep' reference and included options provide strong usage guidance. No explicit exclusions, but 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.

kill_processA
Destructive

Terminates a process by PID. Sends SIGTERM (graceful) by default; SIGKILL if force=True. Refuses to kill critical system processes (PID 1, launchd, systemd, init, kernel_task, core Windows services). Always confirm with the user before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidYesThe PID of the process to terminate (positive integer).
forceNoIf true, send SIGKILL (immediate). Default false (SIGTERM, graceful).

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark destructiveHint=true, but the description goes far beyond by explaining the signal behavior (SIGTERM vs SIGKILL), the critical process safelist, and the user-confirmation requirement. This adds significant behavioral context that is not present in 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?

Three sentences, each earning its place: purpose, signal behavior, and safety guardrails. Front-loaded with the core action, and no unnecessary verbiage.

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 two-parameter destructive tool with no output schema, the description covers purpose, method, safety restrictions, and required user consent. It is complete for an AI agent to understand invocation and constraints.

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 coverage is 100% with descriptions for both pid and force. The description reinforces the force semantics ('SIGKILL if force=True') but does not introduce new parameter-level details beyond the schema. The baseline of 3 applies.

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 opens with 'Terminates a process by PID', which is a specific verb+resource+method. It clearly distinguishes kill_process from sibling tools like get_process_details or process_tree, as it is the only one that performs termination.

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?

Provides clear usage guidance: confirms with user before calling, defaults to SIGTERM, and refuses to kill critical system processes. It does not explicitly reference alternatives, but the context is sufficient for an agent to decide when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agentsA
Read-onlyIdempotent

List all available sub-agents with their names and descriptions. Call this before run_agent if you are unsure which agent to delegate to.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal read-only, idempotent, and non-destructive behavior. The description adds that results include 'names and descriptions' and clarifies that only 'available' sub-agents are listed, which is useful contextual detail beyond the 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, front-loaded with the primary purpose, followed by a specific usage directive. No waste or redundancy.

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 list tool with no params and no output schema, the description is complete: it states what is returned (names and descriptions), the scope (all available sub-agents), and when to use it. No further explanation is needed.

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 zero parameters, so there is no parameter burden. Per rubric, baseline is 4, and the description appropriately omits parameter details, adding value through usage context instead.

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 'List all available sub-agents with their names and descriptions'—a specific verb and resource. It distinguishes the tool from siblings like run_agent (execution) and list_skills (skills) by clarifying exactly what is listed.

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?

Explicitly instructs to 'Call this before run_agent if you are unsure which agent to delegate to,' providing a clear when-to-use scenario and naming the relevant sibling tool. This is direct, actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_automation_runsA
Read-onlyIdempotent

Return recent scheduled automation results for audit and diagnosis.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds that it focuses on 'scheduled' runs and 'recent' results, but doesn't define 'recent' or describe the return format, so additional context is limited.

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 that states the verb, object, and purpose without any redundancy. It is appropriately sized for the tool's simplicity.

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 conveys the tool's primary purpose but leaves out important context such as the return value structure (no output schema present) and the definition of 'recent'. It is adequate but not fully complete for agent decision-making.

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 0% description coverage, and the description does not mention the 'limit' parameter at all. It fails to compensate for the lack of schema descriptions, despite the parameter being straightforward.

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 recent scheduled automation results, using a specific verb ('Return') and resource ('scheduled automation results'). It distinguishes from the sibling 'list_automations' (which likely lists automation definitions) by specifying 'runs' and 'scheduled'.

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 'for audit and diagnosis' provides clear context for when to use this tool. However, it does not explicitly mention alternatives or when not to use it, so it falls short of the highest rating.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_automationsA
Read-onlyIdempotent

List all persisted scheduled automations and their next run times.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, covering safety. The description adds that automations are 'persisted' and that next run times are returned, but provides no extra side-effect, permission, or rate-limit context. With strong annotation coverage, this is adequate but not rich.

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?

One concise, front-loaded sentence with no redundant content. It clearly states the action, target, and what information is included.

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?

With no output schema, the description partially explains return values by mentioning next run times. For a simple zero-parameter list operation with strong annotations, this is sufficient context, though it could be more explicit about the full list structure (e.g., IDs, names, schedules).

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 zero parameters, and the schema is empty with 100% coverage. Since there are no parameters, the description cannot add parameter semantics, and the baseline for 0 params is 4.

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 'List' with a clear resource ('persisted scheduled automations') and includes return details ('next run times'). It distinguishes itself from sibling list_automation_runs by focusing on automation definitions rather than run history.

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 usage for viewing all scheduled automations but provides no explicit when-to-use or when-not-to-use guidance. There is no mention of alternatives like list_automation_runs or relationship to create_automation, so the agent must infer context from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_connectorsA
Read-onlyIdempotent

List configured external MCP connectors and their latest connection state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, covering the safety profile. The description adds that the tool returns 'latest connection state', which is a useful output detail, but it does not disclose any additional behavioral traits (e.g., network calls, freshness of state). With annotations present, 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 a single concise sentence that immediately states the action and object. It is front-loaded, contains no filler, and every word contributes to the meaning.

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 list tool with no parameters, robust annotations, and no output schema, the description is nearly complete. It specifies the resource and the kind of state returned, though it could optionally elaborate on the structure of the 'connection state' data, but this is not required for basic use.

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 zero parameters, so the input schema is empty and covers 100% of the inputs. Per the baseline for 0 params, the description need not add parameter details; however, it adds context about what is being listed (configuration and connection state), which is meaningful beyond the schema.

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 verb ('List') and resource ('configured external MCP connectors') and adds 'their latest connection state' to clarify the scope. It clearly distinguishes from sibling tools like add_connector, remove_connector, and refresh_connectors, which are mutations.

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 usage as a read-only listing operation, but it does not explicitly state when to use it vs alternatives or mention that add/remove/refresh are for modifications. With sibling tools present, more explicit guidance would improve this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_directoryA
Read-onlyIdempotent

List the contents of a directory. Returns each entry's name, type (file/dir), size, and modification time. Use to browse the filesystem or verify file presence. Requires allow_file_read in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirectory path to list (default: home directory).
show_hiddenNoInclude entries starting with '.' (default false).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only and non-destructive behavior. The description adds a valuable permission requirement ('Requires allow_file_read in ~/.syscontrol/config.json') and lists the exact return fields, providing context beyond the 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 three sentences long and front-loaded with the primary action. It includes essential return fields, use case, and permission requirement without any redundant or irrelevant information.

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 no required parameters and no output schema, the description covers return fields, permission needs, and a use case. It does not explicitly state that listing is non-recursive, which could be ambiguous, but sibling tools like search_files cover recursive cases, making this acceptable.

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 input schema has 100% coverage with clear descriptions for both parameters (path defaults to home directory, show_hidden includes dotfiles). The description does not add parameter-specific detail, but the schema already handles it, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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 verb and resource ('List the contents of a directory') and specifies the returned fields. It is easily distinguished from sibling tools like read_file or search_files by its focus on directory browsing.

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?

Provides explicit context: 'Use to browse the filesystem or verify file presence.' However, it does not mention when to use an alternative tool (e.g., search_files for recursive searches) or any exclusions, so it lacks full alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_remindersA
Read-onlyIdempotent

List all pending (unfired) reminders with their IDs, messages, and scheduled fire times.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, idempotentHint=true, and destructiveHint=false, covering safety. The description adds behavioral context by specifying the 'pending (unfired)' filter and what data is returned, which is useful and beyond what annotations provide.

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?

A single sentence that is front-loaded with the action and resource, and directly states the key output fields. No filler or redundancy.

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 list tool with strong annotations and no output schema, this description is sufficiently complete. It specifies the exact scope (pending) and the information returned, covering everything an agent needs to know.

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 zero parameters, so the input schema is trivially covered at 100%. The description does not need to explain parameters; instead it clarifies the return payload (IDs, messages, fire times), which adds value.

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 ('List') and clearly identifies the resource ('pending reminders') and the scope ('unfired'). It also states the return fields (IDs, messages, scheduled fire times), which fully distinguishes it from sibling tools like set_reminder and cancel_reminder.

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 makes its use case clear: when you want to see pending reminders. It does not explicitly name alternatives or exclusions, but siblings like set_reminder/cancel_reminder are obviously different actions, so there is no ambiguity about when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_skillsA
Read-onlyIdempotent

List the user-installed skills (workflows) from ~/.syscontrol/skills. Each entry includes a description, tool allowlist, and the optional sub-agent it runs inside.

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?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds the return structure (description, tool allowlist, optional sub-agent) and the filesystem path, which is useful beyond the annotations and helps the agent anticipate response content.

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 concise sentences: the first states the action and resource, the second describes the entry structure. No redundancy or fluff, and the key information is front-loaded.

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 zero-parameter, read-only list tool with rich annotations, the description is sufficient: it states the source, the scope, and the composition of each returned entry. No output schema exists, but the description covers the essential return information.

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?

There are zero parameters, so schema description coverage is trivially 100%. The baseline for no parameters is 4, and no additional parameter explanation is needed; the description's focus on what is listed is appropriate.

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 lists user-installed skills (workflows) from a specific path, and distinguishes this from sibling tools like list_user_tools or list_automations by specifying the resource type ('skills') and the source location.

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 when to use the tool (when you need to see installed skills) but does not provide explicit guidance on when not to use it, nor does it mention alternatives. The context is clear but exclusions are nonexistent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_user_toolsA
Read-onlyIdempotent

Lists all custom tools installed via create_tool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety profile is covered. The description adds no additional behavioral context such as return format, ordering, or performance characteristics, but does not contradict 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 a single sentence that is direct and front-loaded, containing no extraneous information.

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 has no parameters, no output schema, and strong annotations, the description is complete for a simple listing operation. It unambiguously states what is listed and how those tools were installed.

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 zero parameters, so the baseline is 4. There are no parameter semantics to elaborate on, and the schema correctly represents an empty object.

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 specific verb 'Lists' and the resource 'all custom tools installed via create_tool', distinguishing it from other list_* siblings by focusing on custom tools created via a specific mechanism.

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 usage (to list custom tools created via create_tool) but does not explicitly mention when to use it vs alternatives or provide any exclusions. No alternative tool is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_fileA

Move or rename a file or directory. Use for renaming files, moving files to different folders, or reorganising directories. Requires allow_file_write in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
dstYesDestination path or target directory.
srcYesSource path (absolute or home-relative).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a critical behavioral constraint—the require allow_file_write permission—beyond the annotations, which provide no safety hints. It does not detail overwrite behavior or failure modes, but the permission requirement is valuable context.

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 core action, and adds only essential use cases and permissions. No redundant information.

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 two-parameter file operation, the description covers purpose, when to use, and a key prerequisite. It does not mention return values or overwrite behavior, but the tool is simple enough that this is acceptable.

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 100%, with both src and dst already documented in the schema. The description does not add further parameter semantics beyond what the schema provides, so baseline 3 is appropriate.

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 explicitly states the tool moves or renames files/directories, and lists concrete use cases (renaming, moving, reorganizing). This clearly distinguishes it from sibling tools like copy_file or delete_file.

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 clearly states when to use the tool ('Use for renaming files, moving files to different folders, or reorganising directories'). It does not explicitly exclude alternatives like copy_file, but the scope is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

network_latency_checkA
Read-onlyIdempotent

Pings the local gateway, Cloudflare DNS (1.1.1.1), and Google DNS (8.8.8.8) concurrently and returns per-target latency and reachability. Includes an automatic diagnosis (router issue / ISP issue / congestion / normal). Use when the user asks if their internet is slow or to locate where latency is introduced.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, idempotentHint=true, and destructiveHint=false. The description adds useful behavioral context by noting concurrent pinging and the automatic diagnosis categories (router issue / ISP issue / congestion / normal). 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 concise sentences: the first describes what the tool does and the diagnosis output, the second gives usage guidance. Every word earns its place with no redundancy or filler.

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 zero parameters and no output schema, the description fully covers purpose, targets, behavior, and usage context. It also explains return values (latency, reachability, diagnosis) implicitly. The tool is simple and the description is 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 tool has zero parameters, so the baseline is 4. The description adds context about the fixed targets (gateway, Cloudflare DNS, Google DNS), which is useful even though there are no parameters to document.

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 pings three specific targets (local gateway, Cloudflare DNS, Google DNS) concurrently and returns per-target latency and reachability, with an automatic diagnosis. This specific verb+resource combination clearly distinguishes it from sibling tools like get_network_usage or get_network_connections.

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 explicit when-to-use guidance: 'Use when the user asks if their internet is slow or to locate where latency is introduced.' It does not mention alternatives or when-not-to-use, but the usage context is clear and sufficient for a network diagnostic tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notify_userA

Show a native desktop notification immediately. Distinct from set_reminder, which schedules a reminder. Use for skill completion alerts and the like.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
soundNo
titleYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only, non-idempotent, and non-destructive behavior. The description adds that the notification appears immediately and natively, which clarifies the side effect and timing. It does not go into potential platform limitations, but for this simple tool it is sufficiently transparent.

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, front-loaded with the main action, no filler. The distinction from set_reminder is valuable and efficiently stated.

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, the absence of an output schema, and the annotations, the description covers purpose, usage, and differentiation. No additional context seems necessary for an agent to invoke correctly.

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 three parameters (title, body, sound). The parameter names are somewhat self-explanatory for a notification, but the boolean 'sound' and the default for 'body' are not described. The description should have compensated for the low schema coverage 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?

The description uses a specific verb ('show') and resource ('native desktop notification'), and clearly distinguishes from the sibling tool 'set_reminder'. It states exactly what the tool does, so the agent knows its function immediately.

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 says it is 'distinct from set_reminder, which schedules a reminder' and gives an example use case ('skill completion alerts'). This tells the agent when to use this tool over the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_file_at_pathA

Open a file in the default application on macOS, Windows, or Linux, or in a specific desktop application. Requires allow_file_read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
with_appNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no safety hints (all false). The description adds platform coverage and permission requirement, but does not clarify side effects such as launching a GUI application or whether the call blocks. It does not contradict 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 the primary action front-loaded. The second sentence provides a critical permission note. No redundant wording or unnecessary detail.

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 open-file operation, the description covers the action, platform scope, and permission requirement. It does not describe return values or error behavior (no output schema), but the low complexity makes this less critical. Still, a note on return type could improve completeness.

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 coverage is 0%, so the description must compensate. It adds meaning to 'with_app' via 'or in a specific desktop application', but 'path' remains self-explanatory. No format, examples, or constraints are provided for either parameter, so it only partially compensates.

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 ('Open') and resource ('a file'), and specifies the action context: opening in the default application or a specific desktop application across OSes. This clearly distinguishes it from siblings like read_file (which reads content) and edit_file (which modifies).

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 usage (when you want to open a file externally) but does not explicitly contrast with alternatives like read_file or edit_file. It does mention a prerequisite ('Requires allow_file_read'), but there is no explicit when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

process_treeA
Read-onlyIdempotent

Returns a process tree. With a pid, includes ancestors + descendants. Without a pid, returns the system tree at the requested depth.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNoRoot PID. Omit for system tree.
depthNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds meaningful behavior beyond that: the inclusion of ancestors+descendants for a given pid and the system tree behavior without one. No contradictions 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 two sentences, succinct, and front-loaded with the main action. Every clause adds value without redundancy or fluff.

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?

While it covers the two core modes, it is ambiguous whether depth applies to the pid case or only to the system tree. It also does not describe the return structure despite the lack of an output schema, leaving some gaps for an agent relying solely on this description.

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 covers pid well but depth only has type/default constraints. The description compensates by explaining pid as root and depth as controlling the system tree depth, adding meaning to both parameters beyond the schema.

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 'Returns a process tree' with a specific verb and resource, then clarifies two modes (with/without pid). This distinguishes it from sibling tools like get_top_processes or get_process_details, which target different process information.

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 context on when to use each mode: with a pid for ancestors+descendants, without a pid for the system tree at a depth. However, it does not explicitly mention alternatives or exclusions, so it falls short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_documentA
Read-onlyIdempotent

Read paragraphs from a Word document (.docx) or plain text file (.txt, .md). Returns a list of non-empty paragraphs with their index, and a total word count. Requires allow_file_read in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the .docx, .txt, or .md file.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable context beyond that: the requirement for allow_file_read in config, plus the behavior of returning non-empty paragraphs with indices and a word count. This enriches the agent's understanding of permissions and output.

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 filler. The first sentence front-loads the action and resource, the second describes return values and permission. 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?

With one parameter, no output schema, and a straightforward read operation, the description fully covers the tool's purpose, return format, and required permission. No gaps remain for an agent to invoke it correctly.

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 100% for the single 'path' parameter, so the baseline is 3. The description does not add parameter-specific meanings beyond what the schema already provides (e.g., it repeats the file types but does not elaborate on path format, errors, or edge cases).

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 reads paragraphs from Word (.docx) or plain text (.txt, .md) files, and lists the return values (paragraph indices and word count). This specific verb and resource combination distinguishes it from siblings like read_pdf, read_file, and read_spreadsheet.

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 context about applicable file types and the allow_file_read prerequisite, but it does not explicitly name alternatives or state when not to use this tool. Given the sibling set, the file-type restriction effectively guides selection, so this is solid but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_fileA
Read-onlyIdempotent

Read the text contents of a file at the given path. Returns up to max_chars characters (default 16,000, max 32,000). Useful for reading config files, logs, scripts, notes, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or home-relative path to the file (e.g. '~/.zshrc', '/etc/hosts').
max_charsNoMaximum characters to return (1000–32000, default 16000). Truncates with an indicator if exceeded.

TDQS

A4.2/5.0
Behavior4/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, so the bar is lower. The description adds valuable behavioral details about the max_chars limit, default value, and truncation behavior, which go beyond the annotations and help the agent understand output boundaries.

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-loaded with the core purpose, and every word earns its place. It avoids fluff while including key constraints and use cases.

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 tool with two parameters, high schema coverage, and strong annotations, the description covers the essential information: what it reads, what it returns, and size limits. It doesn't explain error cases or binary file handling, but that is not critical for this tool's complexity. The description is sufficient.

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 100% for both parameters, so the schema already explains path (absolute/home-relative) and max_chars (range/default). The description merely restates the default and max values without adding new semantics, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Read') and resource ('file at the given path'), clearly stating it returns text contents. This distinguishes it well from sibling tools like read_file_lines, tail_file, and write_file, even without naming alternatives.

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 use-case context: 'Useful for reading config files, logs, scripts, notes, etc.' This implies when to use the tool, though it does not explicitly mention alternatives or when not to use it. Given the broad utility of a file reader, this is strong guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_file_linesA
Read-onlyIdempotent

Read a file with line numbers, supporting offset and limit for navigating large files. Returns content formatted like 'cat -n'. Use this instead of read_file when you need line numbers or want to read a specific section. Requires allow_file_read in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or home-relative path to the file.
limitNoMaximum number of lines to return (1–2000, default 200).
offsetNo1-based line number to start reading from (default 1).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, setting a safe-read baseline. The description adds valuable context beyond annotations: the output format ('like cat -n') and the permission requirement (allow_file_read). No contradictions 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?

Three sentences, each serving a distinct purpose: stating the core function, providing usage differentiation, and noting a prerequisite. No fluff, and the main action is front-loaded in the first sentence.

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?

With no output schema, the description compensates by stating the return format ('cat -n'). It covers purpose, usage guidance, and a prerequisite, making it reasonably complete for a simple file read tool. Edge cases like file-not-found are not mentioned, but these are not essential given the low complexity.

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 descriptions cover all three parameters (path, limit, offset) with types, defaults, ranges, and meaning, so schema coverage is 100%. The description only restates the offset/limit navigation concept, adding no new semantics beyond the schema. Baseline 3 applies.

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 reads a file with line numbers and supports offset/limit navigation, explicitly distinguishing it from read_file by prescribing use when line numbers or specific sections are needed. This is a specific verb+resource+scope that differentiates it from the sibling read_file tool.

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?

Provides clear when-to-use guidance: 'Use this instead of read_file when you need line numbers or want to read a specific section.' It also notes the require allow_file_read prerequisite. However, it does not mention alternatives like tail_file or when-not conditions, so it is not exhaustive but still practical.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_memoryA
Read-onlyIdempotent

Read the persistent memory file that stores notes and key facts from past sessions. Call this when the user references something from a previous session, asks what you remember, or when prior context seems relevant to their request.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds context about the memory file's content and usage triggers but does not disclose additional behavioral details like return format or empty-state behavior, so it stays at the baseline for annotation-supported transparent tools.

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-loaded with the core action and followed by concrete usage triggers. Every sentence earns its place with no redundancy or filler.

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 no parameters, no output schema, and robust annotations, the description fully covers purpose and usage context. The agent can select and invoke this tool correctly without additional information.

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 zero parameters, and the schema reflects this with 100% coverage. The description does not need to explain parameters, and baseline for 0-param tools is 4.

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 reads a persistent memory file, defining its specific resource and action. It distinguishes itself from generic file reads (read_file) and the sibling append_memory_note, making the purpose unambiguous.

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 provides when to call the tool: when the user references past sessions, asks what the agent remembers, or when prior context is relevant. It lacks when-not-to-use or explicit alternative tool mentions, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_pdfA
Read-onlyIdempotent

Extract text from a PDF file, returned page by page. Use this when a user shares or mentions a PDF and wants you to read, summarise, or answer questions from its contents. Supports up to 200 pages per call (default 50); pass max_pages for larger documents. Encrypted/password-protected PDFs are not supported. Requires allow_file_read in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or home-relative path to the .pdf file.
max_pagesNoMaximum number of pages to read (1-200, default 50).

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations already mark the tool as read-only, idempotent, and non-destructive, the description adds substantial behavioral context beyond these hints. It discloses the page-by-page return structure, the 200-page hard limit, the default of 50 pages, unsupported encrypted PDFs, and the required configuration file setting. This is exactly the kind of context an agent needs for safe and correct invocation.

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?

Four sentences, each adding value: purpose, when-to-use, limits/default, and constraints/prerequisites. The most critical information is front-loaded, with no filler or repetition of schema content.

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?

The description covers purpose, usage scenarios, limitations, and configuration requirements. With only two well-documented parameters, strong annotations, and no output schema, the description is fully sufficient for an agent to select and use this tool correctly. Sibling tools are clearly distinct.

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 100%, so the schema already fully documents both path and max_pages with descriptions and defaults. The description's mention of 'pass max_pages for larger documents' is a mild usage hint but does not add significant semantic meaning beyond the schema. Thus baseline 3 is appropriate.

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 opens with a specific verb and resource: 'Extract text from a PDF file.' It further clarifies the page-by-page return format, which is a concrete behavioral detail. This clearly distinguishes it from sibling tools like read_file or read_document, which could also handle files.

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 'Use this when' clause covering read, summarise, or answer questions scenarios. It also mentions the page limit and encrypted PDF limitation, giving clear context for when to use the tool. However, it does not explicitly name alternatives or state when NOT to use it, so it doesn't quite achieve a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_spreadsheetA
Read-onlyIdempotent

Read rows and cells from a spreadsheet file (.xlsx or .csv). Returns headers and row data up to max_rows (default 200). For .xlsx files, optionally specify a sheet name and/or cell range (e.g. 'A1:D10'). Requires allow_file_read in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the .xlsx or .csv file (e.g. '~/Desktop/budget.xlsx').
sheetNoSheet name to read (.xlsx only). Defaults to the active sheet.
max_rowsNoMaximum rows to return (1–200, default 200).
cell_rangeNoCell range in A1 notation (e.g. 'A1:D10'). Omit to read all rows.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by stating it returns headers and row data, enforces a max_rows cap, and requires the allow_file_read config flag—useful behavioral context beyond the safety hints.

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 sentences, front-loaded with the core purpose, and every sentence adds relevant detail (format, output, options, config requirement). No wasted words, well-structured.

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?

Without an output schema, the description adequately explains the return format (headers and row data). It covers the main options, limits, and prerequisites. Minor gaps remain (error handling, CSV behavior specifics), but for a simple read tool it is sufficiently complete.

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 coverage is 100%, so the baseline is 3. The description adds a small amount of meaning (e.g., example cell range, default max_rows) but mostly repeats what the schema already documents. It does not significantly enhance parameter understanding beyond structured fields.

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 reads rows and cells from spreadsheet files (.xlsx or .csv), distinguishing it from siblings like read_document or read_pdf. It specifies the resource (spreadsheet) and the action (read), making its purpose unambiguous.

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 context by specifying supported file types and optional parameters (sheet, cell range), and notes the config requirement. However, it does not explicitly mention when to prefer this tool over alternatives like read_file_lines or read_document, though the file type limitation implies the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refresh_connectorsA

Restart external MCP connector processes and rediscover their namespaced tools. Requires allow_connectors.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations by explicitly stating that external MCP processes are restarted and their tools rediscovered. It also discloses the permission requirement ('Requires allow_connectors'). This adds meaningful behavioral context, though it does not detail potential side effects like temporary downtime or 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, front-loaded sentence that immediately states the action and then the consequence. Every phrase adds value—'Restart external MCP connector processes' and 'rediscover their namespaced tools'—with no filler or repetition.

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 zero-parameter tool with no output schema, the description adequately covers the purpose, the effect (restart and rediscovery), and a key prerequisite (allow_connectors). It does not explain when to use this tool or possible error conditions, but these are not critical for such a simple operation.

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 takes no parameters, so the schema trivially covers 100% of parameters. The description does not need to explain parameter semantics; the baseline for zero parameters is 4, and the description appropriately focuses on the tool's action and requirement.

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 clear verb 'Restart' and specifies the resource 'external MCP connector processes' and the additional action 'rediscover their namespaced tools.' This distinguishes it from sibling tools like list_connectors, add_connector, and remove_connector, which perform different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for refreshing connectors after external MCP processes change, and it mentions the 'allow_connectors' requirement. However, it does not explicitly state when to use this tool versus alternatives such as add_connector or remove_connector, nor does it provide any when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_connectorA
Destructive

Remove an external MCP connector. Requires allow_connectors.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the description is not required to restate destructiveness. It adds the permission constraint ('Requires allow_connectors') and clarifies the scope is 'external' connectors. However, it doesn't mention reversibility, impact on active connections, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences, front-loaded with the action and object. Every word earns its place, and there is no 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 tool with one parameter, the description covers the core purpose and a key prerequisite. It lacks details about effects or reversibility, but the annotations provide destructive context, and the absence of an output schema means return values don't need explanation. Overall, it is adequately complete for its simplicity.

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 has only one parameter, 'name', with no description. The tool description does not explicitly explain the parameter, but the tool name and description make it clear that 'name' refers to the connector to remove. Thus, the description adds contextual meaning beyond the raw schema, though it could be more explicit.

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 ('Remove') and the object ('an external MCP connector'), which distinguishes it from sibling tools like add_connector, list_connectors, and refresh_connectors. The verb+resource structure leaves no ambiguity.

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 the tool should be used when removing an external MCP connector, but does not explicitly state when to use it over alternatives or mention any exclusions. The permission requirement ('Requires allow_connectors') is a useful but minimal guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_agentA

Delegate a focused task to a named sub-agent that runs in an isolated context with a restricted tool set. The sub-agent completes the task independently and returns only its final answer. Use list_agents to discover available agents. Do not delegate tasks you can complete directly with other tools. Requires allow_agents in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesClear, self-contained description of the task. Include all context the sub-agent needs — it has no access to the parent conversation history.
agent_nameYesName of the sub-agent (e.g. 'explorer', 'analyst', 'researcher', 'writer'). Use list_agents to see all options.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and convey no behavioral safety profile, so the description carries the full burden. It discloses key behaviors: the sub-agent runs in an isolated context with restricted tools, completes the task independently, returns only the final answer, and requires the allow_agents config setting. This is significant context beyond the schema and 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 three sentences, each adding value: purpose, usage guidance/alternatives, and a configuration prerequisite. It is front-loaded and contains no filler or redundant phrasing.

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 moderate complexity and lack of output schema, the description sufficiently covers the return behavior (only final answer), execution context (isolated, restricted tools), prerequisites (allow_agents config), and boundary against direct delegation. This is complete enough for an agent to use correctly.

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?

Parameter schema coverage is 100% and both parameters (agent_name and task) have detailed descriptions in the schema itself (e.g., task must be self-contained, no conversation history access). The tool description does not add additional parameter semantics beyond what the schema already provides, so the baseline of 3 applies.

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 ('Delegate') and identifies the resource ('a named sub-agent') with clear scope ('focused task', 'isolated context', 'restricted tool set'). It distinguishes itself from sibling tools by positioning delegation as a separate pathway from direct tool use and referencing list_agents for discovery.

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 gives explicit usage guidance: 'Use list_agents to discover available agents' and 'Do not delegate tasks you can complete directly with other tools.' This clearly states when to use the tool versus alternatives and provides an exclusion criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_automation_nowA

Run a configured automation immediately and record the result. Requires allow_automations.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the permission requirement and notes that it records the result, providing some behavioral context. However, it does not disclose potential side effects of running the automation or any execution details. Annotations already indicate non-read-only, so this is a modest addition.

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 that conveys purpose, behavior, and permission in a compact way. Every word adds value, with no redundancy or filler.

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 trigger tool with one parameter and no output schema, the description covers the core purpose and permission. However, it does not mention what the caller should expect after invocation (e.g., a run ID, status), nor does it warn about side effects, which could be significant since running an automation may perform arbitrary actions.

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 only parameter 'id' is a string with no schema-level description. The description implies that this id identifies the automation to run, which is useful, but it does not explicitly explain the id's format, source, or how it relates to 'configured automation.' With 0% schema description coverage, the description only partially compensates.

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 'Run a configured automation immediately and record the result,' using a specific verb and target resource. It distinguishes this tool from siblings like list_automations or run_agent by focusing on executing an already-configured automation.

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 indicates when to use the tool (to run a configured automation now) and mentions the required permission (allow_automations). It does not explicitly name alternatives or when-not-to-use scenarios, but the phrase 'configured automation' helps differentiate from similar sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_shell_commandB

Execute an arbitrary shell (bash) command and return stdout, stderr, and exit code. DISABLED by default for safety. Enable by adding {"allow_shell": true} to ~/.syscontrol/config.json. Timeout is 30s by default (max 120s). Always confirm with the user before running destructive commands.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesBash command to run (e.g. 'ls -la ~/Desktop', 'git log -5').
timeoutNoTimeout in seconds (1–120, default 30).

TDQS

B3.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description contradicts the annotations: the annotation `destructiveHint: false` indicates the tool is not destructive, but the description says 'Always confirm with the user before running destructive commands,' implying it can be destructive. This is an annotation contradiction, so score is 1 per the rubric.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each contributing useful information (purpose, enablement, timeout, safety). It is front-loaded with the core purpose and avoids unnecessary filler, though slightly longer than strictly needed.

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 shell execution tool, the description covers key operational details: output fields, safety enablement, timeout range, and destructive-command confirmation. It lacks working-directory or environment context but is generally complete for typical usage. The contradiction slightly detracts from overall completeness.

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 100%, so the baseline is 3. The description adds little beyond the schema: it restates the timeout default and max, which the schema already covers, and does not offer new semantic details for the `command` 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 'Execute an arbitrary shell (bash) command' with a specific verb and resource, and mentions stdout, stderr, and exit code. This unambiguously differentiates it from sibling tools that focus on specific system metrics.

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 usage for arbitrary shell commands, but does not explicitly provide when/not-to-use guidance or mention alternatives. The context of being disabled by default and the need for user confirmation for destructive commands are useful, but there is no direct comparison to other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_skillA

Fetch the playbook for a named skill and (optionally) a task to perform. Returns the skill body for the LLM to execute step-by-step. Use list_skills to see what's available.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSkill name (e.g. 'diag', 'morning').
taskNoOptional freeform task to apply the skill to.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and provide little safety information. The description adds key behavioral context: the tool only returns the skill body for the LLM to execute, rather than executing it directly. It also clarifies that the task is optional, which goes beyond the raw schema and 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 three concise sentences. The first states the action, the second explains the result and how the LLM uses it, and the third points to the sibling discovery tool. Every sentence earns its place with no redundancy or filler.

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 low-complexity tool with two parameters and no output schema, the description sufficiently explains what it returns (the skill body) and how to find skill names. It does not detail the structure of the playbook, but that is not essential for invoking the tool correctly. Overall, the description is complete enough for correct selection and use.

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 coverage is 100%, with both 'name' and 'task' already described well in the input schema. The description adds slight semantic clarity by calling the task 'optionally' and saying it is applied to the skill, but it mostly mirrors the schema, so it does not meaningfully elevate understanding beyond what is already structured.

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 verb and resource: 'Fetch the playbook for a named skill' and clarifies the output: 'Returns the skill body for the LLM to execute step-by-step.' It clearly distinguishes from the sibling list_skills by pointing to it as a discovery tool, making the tool's own purpose unambiguous.

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 usage context: it is for executing a named skill with an optional task, and it explicitly names list_skills to view available skills. This is helpful but does not state explicit when-not-to-use cases or mention any alternative execution tools, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_filesA
Read-onlyIdempotent

Search for files using macOS Spotlight (mdfind). Much faster than find — searches the entire system instantly. Use for finding files by name, content keywords, or type. macOS only.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoOptional type filter: 'pdf', 'image', 'video', 'audio', 'folder', 'application', 'code', or 'document'.
limitNoMaximum results to return (1–200, default 50).
queryYesFile name fragment or Spotlight query (e.g. 'budget', 'author:Alice').
scopeNoDirectory to restrict the search to (default: home directory).~

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar for added transparency is lower. The description adds meaningful behavioral context by revealing the underlying mechanism (Spotlight/mdfind), performance trait (much faster than find, instant system-wide search), and platform restriction (macOS only). This goes beyond the 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 compact and front-loaded with the core purpose, followed by a key advantage, usage directions, and platform constraint. Every sentence contributes value with no redundancy or filler.

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 search tool with four well-documented parameters and safety annotations, the description is sufficiently complete for an agent to select and invoke it. It includes platform, usage scope, and the search mechanism. While the return format is not described, the tool's output is unambiguous (file paths), and no output schema exists so it is not mandatory.

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 100%, so all parameters (kind, limit, query, scope) already have detailed descriptions in the schema. The description reinforces that searches can be by name, content, or type, which maps to the query and kind parameters, but it does not add new parameter-level information beyond what the schema provides.

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: 'Search for files using macOS Spotlight (mdfind)' and specifies the resource (macOS files), the action (search), and the scope (by name, content keywords, or type). It differentiates from sibling tools like find_large_files and grep_files by emphasizing system-wide instant search and macOS-only availability.

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 usage context: 'Use for finding files by name, content keywords, or type' and notes 'macOS only'. It also implies a preference over 'find' due to speed. However, it does not explicitly mention when not to use it (e.g., if a non-indexed search is needed) or name alternative tools for those cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_processA
Read-onlyIdempotent

Searches for running processes by name (case-insensitive, partial match). Returns PID, CPU%, memory%, and status for each match.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProcess name to search for (e.g. 'chrome', 'python')

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 destructiveHint=false, so safety profile is clear. The description goes beyond annotations by specifying case-insensitive partial matching and the return fields (PID, CPU%, memory%, status), which are useful behavioral details. It does not mention any side effects, which is consistent with the read-only annotation.

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 front-loads the action and purpose. It includes essential details without unnecessary fluff, and every clause contributes meaningful information.

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 search tool with one parameter, no output schema, and robust annotations, the description is complete. It states what the tool does, how it matches, and what it returns, leaving no significant gaps. The presence of sibling tools does not create ambiguity for this clearly described operation.

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 input schema fully documents the 'name' parameter with an example, achieving 100% coverage. The description adds value by explaining the search behavior (partial, case-insensitive), which enriches the parameter's semantics beyond the schema's basic type description.

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 searches for running processes by name, with specific details on case-insensitivity and partial matching. It distinguishes itself from sibling tools like get_top_processes (which lists by resource usage) and get_process_details (which retrieves a specific process's details). The verb 'searches' and object 'running processes' are specific and unambiguous.

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 implies usage: use when you need to find processes by name and get basic metrics. It provides clear context for the tool's purpose, though it does not explicitly mention alternatives or exclusions. The name itself and description are sufficient for an agent to infer when to use this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clipboardA

Write text to the system clipboard. macOS only (uses pbcopy). Use to copy a result or command output so the user can paste it anywhere.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to place on the clipboard.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false, so they don't convey behavioral traits. The description adds valuable information: macOS-only (uses pbcopy), which implies platform restrictions and dependency. It also clearly indicates a write operation. No contradictions 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 two sentences, front-loaded with the primary action, followed by the platform restriction and a concrete use case. There is no fluff; every word contributes meaning.

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 one-parameter clipboard write with no output schema, the description covers the essential context: what it does, platform limitations, and when to use it. No missing information that would hinder correct invocation.

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 input schema already fully describes the single parameter 'text' with 'Text to place on the clipboard.' The description adds no additional detail about format, length, or encoding, so it is exactly at the baseline for full schema 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 uses the specific verb 'Write' with the resource 'system clipboard', clearly stating the tool's function. The macOS-only note and pbcopy dependency further distinguish it from the sibling get_clipboard, which performs the inverse operation.

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 explicit usage context: 'Use to copy a result or command output so the user can paste it anywhere.' This makes the intended scenario clear, though it does not explicitly contrast with get_clipboard or mention any exclusions. Still, it gives strong practical guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_reminderA

Schedule a reminder that fires a macOS notification at the specified time. Accepts natural-language time: 'in 2 hours', 'in 30 minutes', 'at 9:00 am', 'at 3pm', 'tomorrow at 8am'. Returns a reminder ID that can be used with cancel_reminder.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYesWhen to fire the reminder. Examples: 'in 2 hours', 'in 30 minutes', 'at 9:00 am', 'at 3pm', 'tomorrow at 8am'.
messageYesThe reminder text to display in the notification.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no safety hints, so the description carries the full burden. It discloses that it fires a notification, accepts natural-language time, and returns a cancelable ID. This covers the core behavior, though it omits prerequisites like macOS notification permissions.

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: first states the core action, second gives time examples, third explains the return value. No redundant or unnecessary text; front-loaded and 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 a simple two-parameter tool with no output schema, the description provides essential context: what it does, how time is expressed, and what it returns. It lacks explicit error handling or permission details, but the schema and sibling references fill in most gaps.

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 input schema already provides full descriptions and examples for both time and message (100% coverage). The tool description repeats these examples without adding new parameter-level meaning, so it does not exceed the baseline expected from schema 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 it schedules a macOS notification at a specified time, with specific examples of natural-language input. This directly distinguishes it from siblings like list_reminders and cancel_reminder by its action and output.

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 implicitly provides workflow context by noting the returned ID can be used with cancel_reminder. However, it lacks explicit guidance on when to use this tool versus list_reminders or other alternatives, though the simplicity makes the usage obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

summarize_directoryA
Read-onlyIdempotent

Walk a directory tree up to a configurable depth and return per-subdirectory sizes and file counts, plus a flat top-N list of the largest subdirs. Saves many list_directory calls. Requires allow_file_read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.
depthNo
top_nNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds value by specifying the exact output shape (per-subdirectory sizes, file counts, top-N list) and the permission requirement 'allow_file_read', which goes beyond the structured 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 concise sentences front-load the core functionality, add a practical benefit, and note a prerequisite. Every sentence earns its place with no 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 read-only tool with strong annotations, the description sufficiently covers purpose, output, and permissions. It lacks details on return format specifics or error handling, but the annotation safety profile and output description are enough for a typical agent to correctly invoke it.

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 must clarify parameters. It explains 'configurable depth' for the depth parameter and 'top-N list' for top_n, but does not explicitly address the path parameter beyond the implied directory tree context. This partial compensation is adequate but not complete.

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 walks a directory tree and returns summary statistics (sizes, file counts, largest subdirs). It distinguishes itself from sibling list_directory by explicitly noting it saves many such calls.

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 'Saves many list_directory calls' implies when to use this tool over alternatives, providing clear context for its intended use case. However, it does not explicitly name alternatives or state when not to use it beyond that implication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tail_fileA
Read-onlyIdempotent

Tail the last N lines of any text file, optionally filtered by substring. Caps reads at 50 MB and accepts up to 5000 lines. Requires allow_file_read in ~/.syscontrol/config.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or ~-prefixed file path.
linesNo
filter_strNoOptional case-insensitive substring filter.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive. The description adds useful constraints (file size cap, line limit) and a permission requirement, going beyond annotation details.

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?

Three concise sentences with no filler. The core function is front-loaded, and each sentence adds essential information (operation, limits, permission).

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 operation, constraints, and requirements sufficiently for a simple tail tool. No output schema is present, but the return behavior is obvious; minor gaps like error handling are not critical.

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 covers path and filter_str, but 'lines' lacks a description. The description clarifies 'last N lines' and 'filtered by substring', adding meaning to lines and filter_str beyond the schema.

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 tails the last N lines of any text file with optional substring filtering. The verb 'tail' and resource 'text file' distinguish it from siblings like read_file or tail_system_logs.

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?

Provides practical context: caps at 50 MB, up to 5000 lines, and requires a specific permission. This helps the agent decide when to use it, although it does not explicitly exclude alternatives like read_file for small files.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tail_system_logsA
Read-onlyIdempotent

Returns the last N lines from the system log. macOS: reads from the unified system log (last 5 minutes) via log show. Linux: reads from journalctl or /var/log/syslog. Optional filter_str narrows results to lines containing that keyword. Use to diagnose crashes, kernel panics, or application errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNoNumber of log lines to return (1–500, default 50).
filter_strNoOptional keyword to filter log lines (case-insensitive).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description does not contradict them. It adds useful behavioral context beyond annotations: macOS reads from the unified log for the last 5 minutes, Linux uses journalctl or /var/log/syslog, and filter_str narrows results. This is good but not exhaustive (e.g., no mention of permissions or what happens if no logs are 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?

The description is concise and front-loaded, with two sentences covering core functionality, OS specifics, optional parameters, and use cases. Every sentence earns its place with no fluff 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?

The description covers OS-specific behavior, a time window on macOS, and intended use cases. No output schema exists, but the phrase 'Returns the last N lines' gives enough understanding of the return type. It could mention edge cases like empty logs or Linux time ranges, but overall it is sufficiently complete for a system log tail tool.

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 coverage is 100% with detailed descriptions for both parameters. The description adds minimal extra semantics by mentioning that filter_str narrows results, but it does not go beyond what the schema already provides. Baseline 3 is appropriate because the schema fully documents the 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?

The description clearly states the tool's function: returns the last N lines from the system log, with OS-specific details for macOS and Linux. It also distinguishes itself from sibling tools like tail_file by focusing on the system log and mentioning diagnostic use cases.

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?

Explicitly states when to use the tool ('use to diagnose crashes, kernel panics, or application errors') and differentiates from file tailing by focusing on system logs. While it does not name alternative tools, the guidance is clear enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

take_screenshotA

Capture a screenshot of the entire screen and return it as an inline image. Optionally saves to a file path. macOS only (uses screencapture -x, no shutter sound).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOptional file path to save the PNG (e.g. '~/Desktop/screenshot.png'). Leave empty to skip saving.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it uses 'screencapture -x' with no shutter sound, returns the image inline, and optionally saves to a file path. These behaviors go beyond the annotations (all false) and give the agent a clear expectation of side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the core action and then add the macOS constraint and implementation detail. Every sentence earns its place with no unnecessary words.

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 one-parameter tool with no output schema, the description covers the platform (macOS), behavior (entire screen, inline image, optional file save), and implementation nuance (no shutter sound). This is sufficient for an agent to invoke the tool correctly.

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 input schema already provides a clear description for the single 'path' parameter (e.g., usage and default behavior). The tool description only repeats 'Optionally saves to a file path' without adding new semantics, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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 resource 'entire screen', and clarifies the result is an inline image. This distinguishes it from sibling tools like get_clipboard or generate_image, and any ambiguity is eliminated by the explicit macOS-only constraint.

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 clearly implies when to use the tool (to capture a full-screen screenshot) and provides an important exclusion (macOS only). While it doesn't explicitly mention alternatives, none of the sibling tools perform screenshots, so no further guidance is necessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_packageA
Read-onlyIdempotent

Track a package by tracking number. Auto-detects the carrier (UPS, USPS, FedEx, DHL). Returns current status and recent tracking history. Note: Amazon TBA numbers must be tracked at amazon.com/orders.

ParametersJSON Schema
NameRequiredDescriptionDefault
tracking_numberYesThe package tracking number (UPS, USPS, FedEx, or DHL).

TDQS

A4.2/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 valuable behavioral context by stating it auto-detects carriers, returns current status and recent tracking history, and warns about Amazon TBA numbers not being supported. This goes beyond the annotations and does not contradict 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?

The description is two sentences plus a note, front-loaded with the primary purpose. Every sentence is informative with no wasted words, covering action, behavior, output, and a limitation in a compact form.

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 tool, this is complete enough: it states the input, behavior, and output overview, and flags the important Amazon TBA limitation. Without an output schema, it could specify the return format in more detail, but it provides a reasonable high-level as-is.

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 input schema fully describes the single 'tracking_number' parameter with carrier list, so schema coverage is 100%. The description's mention of auto-detection aligns with the schema but adds no extra parameter syntax or format details. A baseline 3 is appropriate since the schema carries the semantic load.

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 'Track' with resource 'a package' and clarifies scope 'by tracking number'. It clearly distinguishes from all sibling tools, which are system monitoring and file operations. Mentions carrier auto-detection and return of status/history, fully defining the tool's unique purpose.

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 clearly implies when to use (any package with a tracking number) and explicitly excludes Amazon TBA numbers, directing users to track those elsewhere. It does not name an alternative tool among siblings, but the Amazon note serves as a specific when-not-to-use condition, providing adequate usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_automationA

Enable or pause a scheduled automation. Requires allow_automations.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
enabledYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a mutating operation (readOnlyHint=false). The description adds the permission requirement 'Requires allow_automations', which is context beyond the annotations. However, it does not disclose other behavioral details such as whether the change takes effect immediately, whether it is reversible, or what happens to a currently running automation. It does not contradict the 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 a single concise sentence plus a permission note. It contains no filler or redundant information, 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 a simple update operation with only two parameters and no output schema, the description covers the essential action and a key prerequisite. It could benefit from mentioning the return value or any side effects, but given the low complexity, it is reasonably complete.

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 for explaining the parameters. The description does not explain that 'id' is the automation identifier or that 'enabled' determines whether the automation is active (true) or inactive (false). The parameter names are somewhat self-explanatory but lack the clarity needed for an agent to confidently invoke the tool without additional inference.

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: enabling or pausing a scheduled automation. The verb 'Enable or pause' is specific and the resource 'scheduled automation' is well-defined, distinguishing it from sibling tools like create_automation, delete_automation, or run_automation_now.

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 context for when to use the tool: when you want to change the enabled state of an existing scheduled automation. It also notes the required permission 'allow_automations', which is useful. However, it does not explicitly name alternative tools or explain when not to use it, so it lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

web_fetchA
Read-onlyIdempotent

Fetch the plain-text content of any public web page. HTML is stripped. No browser needed, no permission required. Use this to read articles, docs, pricing pages, or any URL the user mentions.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL to fetch (https:// assumed if omitted).
max_charsNoMax characters of plain text to return (500–32000).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, and open-world hints. The description adds valuable context: HTML is stripped, no permission required, and pages must be public. This goes beyond annotation coverage, though it does not mention failure behavior or rate limits, which keeps it at a 4.

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, no fluff. The first sentence states the core function and key transformations (HTML stripped), the second gives usage cases and constraints. 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 fetch tool with complete schema and annotations, the description covers purpose, usage, and behavioral traits. The return type (plain text) is implicit from the description, and no output schema is needed. It is fully adequate for an agent to select and invoke correctly.

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 100%, with both parameters well documented (URL with https assumption, max_chars with range). The description adds no parameter-specific details beyond what the schema provides, so baseline 3 is appropriate.

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 the specific verb 'Fetch' and resource 'plain-text content of any public web page'. Distinguishes from siblings by noting no browser is needed, separating it from browser_open_url, and from web_search by focusing on fetching a specific URL versus searching.

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?

Provides explicit usage context: 'Use this to read articles, docs, pricing pages, or any URL the user mentions.' This implies when to use, and 'No browser needed' hints at an alternative. However, it does not explicitly name alternative tools or state when not to use, falling short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_fileA

Write text content to a file at the given path. Creates parent directories as needed. Overwrites by default. Use for saving notes, configs, scripts, or any text output.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or home-relative path where the file should be written.
contentYesText content to write.
overwriteNoIf false, returns an error if the file already exists. Default true.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is a write operation (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds behavior not captured by annotations: creates parent directories, overwrites by default. It also implies that setting overwrite=false will error on existing files (matching the schema). This is valuable context. No contradiction 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?

The description is three sentences, all of which provide distinct, useful information. It front-loads the core purpose in the first sentence, then adds creation behavior and use cases. No wasted words 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?

Given the relative simplicity of this tool (3 parameters, all documented, no output schema), the description covers the core purpose, key behavioral constraints (parent dir creation, overwrite default), and typical use cases. It lacks some details like error conditions or permissions, but this is sufficient for an AI agent to select and invoke the tool correctly in most contexts.

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 coverage is 100% for parameters, so the schema already documents path, content, and overwrite. The description adds semantic context beyond the schema: 'absolutely or home-relative path' clarifies path format, and 'overwrites by default' reinforces the overwrite behavior. 'Text content to write' is aligned with the content parameter but adds no new information.

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: 'Write text content to a file at the given path.' This clearly identifies the verb (write), resource (file), and key behavior (overwrites by default). It also indicates primary use cases ('saving notes, configs, scripts, or any text output'), distinguishing it from other file operations like read_file or delete_file.

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 mentions it overwrites by default and creates parent directories as needed, which are important usage considerations. It also gives examples of when to use it (saving notes/configs/scripts). However, it doesn't explicitly mention alternatives like edit_file or run_shell_command for file writing, so it's missing explicit when-not-to-use guidance.

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. 84 tool updatesv1.16.0
    • First observedadd_connector
    • First observedappend_memory_note
    • First observedbrowser_open_url
    • First observedcancel_reminder
    • First observedcheck_app_updates
    • First observedcleanup_downloads
    • First observedcopy_file
    • First observedcreate_automation
    • First observedcreate_directory
    • First observedcreate_tool
    • First observeddeep_research
    • First observeddelete_automation
    • First observeddelete_file
    • First observededit_document
    • First observededit_file
    • First observededit_spreadsheet
    • First observedfind_large_files
    • First observedgenerate_image
    • First observedget_audit_log
    • First observedget_battery_status
    • First observedget_clipboard
    • First observedget_cpu_usage
    • First observedget_device_specs
    • First observedget_disk_usage
    • First observedget_docker_status
    • First observedget_full_snapshot
    • First observedget_gpu_usage
    • First observedget_hardware_profile
    • First observedget_health_trends
    • First observedget_network_connections
    • First observedget_network_usage
    • First observedget_process_details
    • First observedget_ram_usage
    • First observedget_realtime_io
    • First observedget_startup_items
    • First observedget_system_alerts
    • First observedget_system_uptime
    • First observedget_temperature_sensors
    • First observedget_top_processes
    • First observedget_weather
    • First observedgit_diff
    • First observedgit_status
    • First observedglob_files
    • First observedgrant_browser_access
    • First observedgrep_files
    • First observedkill_process
    • First observedlist_agents
    • First observedlist_automation_runs
    • First observedlist_automations
    • First observedlist_connectors
    • First observedlist_directory
    • First observedlist_reminders
    • First observedlist_skills
    • First observedlist_user_tools
    • First observedmove_file
    • First observednetwork_latency_check
    • First observednotify_user
    • First observedopen_file_at_path
    • First observedprocess_tree
    • First observedread_document
    • First observedread_file
    • First observedread_file_lines
    • First observedread_memory
    • First observedread_pdf
    • First observedread_spreadsheet
    • First observedrefresh_connectors
    • First observedremove_connector
    • First observedrun_agent
    • First observedrun_automation_now
    • First observedrun_shell_command
    • First observedrun_skill
    • First observedsearch_files
    • First observedsearch_process
    • First observedset_clipboard
    • First observedset_reminder
    • First observedsummarize_directory
    • First observedtail_file
    • First observedtail_system_logs
    • First observedtake_screenshot
    • First observedtrack_package
    • First observedupdate_automation
    • First observedweb_fetch
    • First observedweb_search
    • First observedwrite_file

TDQS

B3.4/5.0
Disambiguation2/5

Many tools overlap in purpose: multiple system-info tools (get_cpu_usage, get_system_alerts, get_full_snapshot, get_hardware_profile), several disk/file analysis tools (find_large_files, summarize_directory, list_directory), and many file-reading variants (read_file, read_file_lines, tail_file, read_document, read_pdf, read_spreadsheet). While descriptions help, the boundaries are blurry and an agent could easily select the wrong tool.

Naming Consistency4/5

The vast majority of tools follow a clear verb_noun snake_case pattern (get_cpu_usage, list_reminders, write_file, create_automation). A few exceptions like 'process_tree' and 'deep_research' break the pattern, but they are minor and do not cause confusion.

Tool Count1/5

With 84 tools, this server is extremely oversized. It expands far beyond system control to include web search, image generation, file editing, reminders, and more. The sheer number makes it difficult for an agent to discover and select among so many options, and many tools could be consolidated or removed.

Completeness3/5

The server aims for broad coverage and mostly achieves it: process lifecycle, file CRUD, automations, connectors, memory, and web search are present. However, there are notable gaps such as no update_reminder, no delete_memory_note, and no process-start tool, leaving some workflows incomplete.

Maintenance

ActivityStale
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

  • A
    license
    B
    quality
    A
    maintenance
    Enables comprehensive Windows system management through Claude Desktop, including PowerShell/CMD execution, file operations, archive handling, Git tools, network testing, and system monitoring. Provides a complete toolkit for Windows automation and administration tasks.
    59
    3
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Extends Claude Desktop with custom tools for file management, system operations, and command execution. Supports creating/reading/deleting files, directory listing, system information retrieval, and file searching capabilities.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables control of Windows PC through Claude Desktop, including executing shell commands, managing system resources, controlling audio/power, launching applications, taking screenshots, and managing windows and processes.
    -

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/ks6573/SysControl'

If you have feedback or need assistance with the MCP directory API, please join our Discord server