hypr-tools
Controls Android projectors/tablets over ADB Wi-Fi, including setup/scan, wake/sleep, opening URLs or dashboards, fullscreen, brightness, reload, screenshots, and text-to-speech.
Provides Bluetooth device management via bluetoothctl, enabling connections to Bluetooth headphones and other devices.
Provides control of the Hyprland compositor via hyprctl, covering windows, workspaces, monitors, themes, wallpapers, screenshots, and related desktop automation.
Provides Linux desktop automation and system monitoring through local Linux utilities, including audio, brightness, clipboard, notifications, network, media, and system information.
Enables desktop automation on Wayland/Hyprland desktops, including window management, workspaces, monitors, screenshots, screen recording, and clipboard operations.
Provides WhatsApp Web automation tools through a local Firefox bridge extension.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hypr-toolsturn my volume down to 30% and take a screenshot of my current window"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hypr-tools
The most comprehensive MCP server for Linux desktop automation -- 178 tools across 30 categories
Give your AI assistant full control over your Hyprland/Wayland desktop: audio, windows, themes, screenshots, Bluetooth, media, macros, RGB lighting, projectors, and more.
Why hypr-tools?
178 tools, 30 categories -- the largest Hyprland MCP server available
Zero config --
npx -y github:0aaryan/hypr-toolsand you're runningNo cloud dependencies -- everything runs locally via
hyprctl, PipeWire, and standard Linux toolsMacro engine -- chain any tools into reusable multi-step automations
Works with every MCP client -- Claude Desktop, Claude Code, Cursor, Cline, Windsurf, and more
Related MCP server: arch-niri-mcp
What can it do?
Ask your AI to:
"Turn my volume down to 30%"
"Switch to the dark theme and change my wallpaper"
"Take a screenshot of my current window"
"Connect to my Bluetooth headphones"
"Move Firefox to workspace 3"
"Create a macro that dims lights and enables DND"
"Set my keyboard LEDs to red"
"Show my CPU and GPU stats"
Quick Start
Install
npm install -g github:0aaryan/hypr-toolsOr run directly:
npx -y github:0aaryan/hypr-toolsClaude Desktop
Add to ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"hypr-tools": {
"command": "npx",
"args": ["-y", "github:0aaryan/hypr-tools"]
}
}
}Claude Code (CLI)
Add to your project or global settings (~/.claude/settings.json):
{
"mcpServers": {
"hypr-tools": {
"command": "npx",
"args": ["-y", "github:0aaryan/hypr-tools"]
}
}
}Cursor / Windsurf
Add to your editor's MCP settings:
{
"mcpServers": {
"hypr-tools": {
"command": "npx",
"args": ["-y", "github:0aaryan/hypr-tools"]
}
}
}Cline
Add to your Cline MCP config:
{
"mcpServers": {
"hypr-tools": {
"command": "npx",
"args": ["-y", "github:0aaryan/hypr-tools"]
}
}
}From Source
git clone https://github.com/0aaryan/hypr-tools.git
cd hypr-tools
npm install
npm run build
node build/index.jsRequirements
Hyprland compositor (Wayland)
Linux (Arch, NixOS, Fedora, etc.)
Node.js >= 18
System utilities (most come pre-installed with Hyprland):
pactl(PulseAudio/PipeWire) -- audiobrightnessctl-- brightnesswl-clipboard-- clipboardgrim+slurp-- screenshotswf-recorder-- screen recordinghyprctl-- Hyprland IPCnmcli-- networkbluetoothctl-- Bluetoothplayerctl-- medianotify-send-- notifications
Configuration
Everything works out of the box. A few optional tools need hardware or extra setup:
Tools | What they need |
| A BLE LED strip (LEDDMX / ELK-BLEDOM family) and |
| An Android projector with ADB over Wi-Fi, optionally Fully Kiosk Browser. Run |
| WhatsApp Web open in Firefox with a local bridge extension. Set |
theme, wallpaper, wallbash | HyDE. On other Hyprland setups these tools return an error. |
voice scripts |
|
Tool Categories (178 tools)
Tool | Description |
| Get current audio output volume and mute state |
| Set audio output volume (0-150%) |
| Increase volume by N percent |
| Decrease volume by N percent |
| Toggle audio output mute |
| Get microphone volume and mute state |
| Set microphone volume |
| Toggle microphone mute |
| List all audio output devices |
| Set default audio output device |
| List all audio input devices |
| Set default audio input device |
Tool | Description |
| List all open windows with details |
| Get the currently focused window |
| Focus a window by class or title |
| Gracefully close a window |
| Force kill a window |
| Toggle floating mode |
| Toggle fullscreen mode |
| Pin window on all workspaces |
| Move window to a workspace |
| Resize a window |
| Move a window |
| Toggle split direction |
| Group/ungroup window |
| Move window to scratchpad |
Tool | Description |
| Configure projector IP and credentials |
| Get projector status |
| Open a URL on the projector |
| Show dashboard on projector |
| Wake up the projector |
| Put projector to sleep |
| Toggle fullscreen on projector |
| Set projector brightness |
| Reload current page |
| Take a screenshot on projector |
| Text-to-speech on projector |
| Scan for projectors on network |
Tool | Description |
| Get the active theme |
| Set a theme by name |
| Switch to next theme |
| Switch to previous theme |
| List all available themes |
| Get wallbash color mode |
| Set wallbash color mode |
| Get current rofi style |
| Set rofi launcher style |
Tool | Description |
| CPU usage and details |
| GPU information |
| RAM usage |
| Disk usage |
| Battery status |
| System uptime |
| Full system overview |
| List running processes |
Tool | Description |
| Get current wallpaper path |
| Set wallpaper by path |
| Switch to next wallpaper |
| Switch to previous wallpaper |
| List all wallpapers |
| List wallpapers for a theme |
| Get dominant wallpaper colors |
Tool | Description |
| List all workspaces |
| Get the active workspace |
| Switch to a workspace |
| Move workspace to a monitor |
| Create a new workspace |
| Go to next workspace |
| Go to previous workspace |
Tool | Description |
| List all connected monitors |
| Get the focused monitor |
| Turn monitor on/off |
| Enable a monitor |
| Disable a monitor |
| Set monitor scale factor |
| Mirror a monitor |
Tool | Description |
| Get current media playback status |
| Toggle play/pause |
| Skip to next track |
| Go to previous track |
| Stop playback |
| Seek to position |
| List active media players |
Tool | Description |
| Send a desktop notification |
| List notification history |
| Dismiss all notifications |
| Toggle do-not-disturb |
| Get DND status |
| Pause/resume notifications |
Tool | Description |
| Get network connection status |
| Scan for WiFi networks |
| Connect to a WiFi network |
| Disconnect from WiFi |
| Toggle WiFi on/off |
| Get IP addresses |
Tool | Description |
| Get clipboard contents |
| Set clipboard contents |
| List clipboard history |
| Paste from history entry |
| Delete a history entry |
| Clear all clipboard history |
Tool | Description |
| Set LED color |
| Set LED brightness |
| Turn LEDs on/off |
| Set LED pattern |
| Apply LED effect |
| Scan for LED devices |
Tool | Description |
| Take full screen screenshot |
| Screenshot a specific monitor |
| Screenshot a selected region |
| Screenshot a specific window |
| Screenshot directly to clipboard |
Tool | Description |
| Get Bluetooth adapter status |
| List paired/available devices |
| Connect to a device |
| Disconnect from a device |
| Toggle Bluetooth on/off |
Tool | Description |
| Get current waybar mode |
| Set waybar mode |
| Switch to next mode |
| Switch to previous mode |
| Toggle waybar visibility |
Tool | Description |
| Reload Hyprland config |
| Get a Hyprland option value |
| Set a Hyprland option |
| List all keybindings |
| Toggle animations on/off |
Tool | Description |
| Lock the screen |
| Toggle idle inhibitor |
| Toggle gamemode |
| Get gamemode status |
| Suspend the system |
Tool | Description |
| Create a reusable macro from tool steps |
| Execute a saved macro |
| List all saved macros |
| Get macro details |
| Delete a macro |
Tool | Description |
| Open a URL in the default browser |
| Open file manager |
| Open terminal emulator |
| Move file to trash |
| Minimize all windows |
Tool | Description |
| Get current brightness |
| Set brightness level |
| Increase brightness |
| Decrease brightness |
Tool | Description |
| Get current keyboard layout |
| Switch keyboard layout |
| Enter reading mode |
| Exit reading mode |
Tool | Description |
| Start screen recording |
| Stop screen recording |
| Check if recording is active |
| Record screen as GIF |
Tool | Description |
| Set a countdown timer |
| List active timers |
| Cancel a timer |
| Cancel all timers |
Tool | Description |
| Read file contents |
| Write to a file |
| List directory contents |
| Get file metadata |
Tool | Description |
| Launch a desktop application |
| List installed .desktop apps |
| Kill an application by name |
| List currently running apps |
Tool | Description |
| Get current power profile |
| Set power profile |
| Get screen timeout setting |
| Get thermal/temperature info |
Tool | Description |
| Send a WhatsApp message |
| List WhatsApp chats |
| Read messages from a chat |
Tool | Description |
| Check for package updates |
| Search for a package |
| List installed packages |
Tool | Description |
| Pick a color from the screen |
| Pick color and copy to clipboard |
Macros
hypr-tools includes a macro engine that lets you compose multi-step automations from any tool combination. Example:
"Create a macro called 'movie-mode' that:
1. Sets volume to 80%
2. Switches to a dark theme
3. Enables do-not-disturb
4. Makes the focused window fullscreen"The AI will use create_macro to save this, and run_macro to execute it later.
Architecture
hypr-tools/
src/
index.ts # MCP server entry point
utils.ts # Shared helpers (safeExec, hyprctl)
tools/
audio.ts # 12 tools
windows.ts # 14 tools
projector.ts # 12 tools
... (30 modules total)
build/ # Compiled JS (ships to npm)
smithery.yaml # Smithery marketplace config
PUBLISH_GUIDE.md # Publishing instructionsAll tools use hyprctl IPC or standard Linux CLI utilities. No external APIs or cloud services required (except WhatsApp which uses a local bridge).
Compatibility
MCP Client | Status |
Claude Desktop | Tested |
Claude Code | Tested |
Cursor | Tested |
Cline | Tested |
Windsurf | Compatible |
Any stdio MCP client | Compatible |
Contributing
Issues and pull requests welcome at github.com/0aaryan/hypr-tools.
License
MIT -- see LICENSE.
Author
Aryan Arora (@0aaryan)
Built for AI-native desktop automation on Hyprland/Wayland.
Available Tools
178 toolscancel_all_timersBDestructive
Cancel all active timers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds only the scope 'all active timers' and does not explain irreversibility, confirmation behavior, or whether timers in other apps are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four words, front-loaded with the verb and scope. Every word earns its place and there is no unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter destructive tool with annotations covering safety, the description is largely sufficient. It could mention whether cancellation is immediate or reversible, but the core operation is unambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline score is 4. The description appropriately avoids parameter discussion and correctly implies no input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (cancel) and resource (all active timers), making the action clear. However, it does not distinguish this bulk-cancel operation from the sibling cancel_timer tool, which likely targets a single timer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus cancel_timer, nor does it mention any exclusions or prerequisites. Usage is only implied by the verb and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_timerBDestructive
Cancel an active timer by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Timer ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the cancellation semantics are covered structurally, and 'cancel' is consistent with that. The description adds only the 'active' precondition; it says nothing about what happens with a stale or invalid ID or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero padding. It could arguably carry one more clause (e.g. invalid-ID behavior) without becoming verbose, but nothing present is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with annotations and no output schema, this is minimally sufficient — an agent can call it correctly. It is thin on outcome information, though: nothing about failure modes or how to obtain a valid timer ID (list_timers).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'id' parameter is already documented as 'Timer ID to cancel'. The description adds no format, source, or lookup detail beyond that, so the schema does all the work — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Cancel an active timer') scoped to a single timer 'by its ID', which implicitly separates it from the sibling cancel_all_timers. It never names that sibling explicitly, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'an active timer' hints that only currently running timers are valid targets, but there is no explicit when/when-not guidance and no reference to cancel_all_timers as the bulk alternative. An agent must infer the boundary conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_updatesARead-only
Check for available system updates (pacman official + AUR)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds useful scope (both official repos and AUR), but does not mention that the check may require network/database refresh, whether elevated privileges are needed, or what form the result takes. Note a mild tension: AUR checking typically hits the network while openWorldHint is false, though this is not a clear contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource and scope front-loaded; every word earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only query with no output schema, the description covers what is checked and where. Only the result shape (list of packages vs. a boolean) is left unstated, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing for the description to disambiguate, and it does not introduce phantom parameter concepts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and resource ('system updates'), and adds meaningful scope by naming the two package sources covered (pacman official + AUR). It is clearly distinguishable from siblings like search_package or list_installed_packages, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the tool for 'are updates available?' rather than for searching or listing packages. There is no explicit statement of when to prefer it over search_package or of any preconditions (e.g., refreshing the package database first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_clipboard_historyADestructive
Wipe the entire clipboard history
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered in structured data. The description reinforces this by saying 'entire', which tells the agent that all entries at once are affected, not just one. However, it says nothing about whether clearing is irreversible, whether an undo exists, or what happens to the current clipboard if it is non-empty. Those gaps hold it below 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence, front-loaded with the action and resource, and there is no unnecessary text. The 'entire' qualifier is the most important word and appears prominently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter destructive tool with annotations that declare destructiveHint, the description covers scope and intent well. The only meaningful gap is the absence of a statement about irreversibility or recoverability, which matters for a wipe operation, but no output schema is needed and no parameters exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters, so the description has nothing more to explain. The baseline for a no-parameter tool is a 4, and the description does not need to add anything.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Population of a specific verb (wipe) and a specific resource (clipboard history), with the scope qualifier 'entire' making clear this is a bulk operation. It does not name its sibling delete_clipboard_entry, but 'entire' does implicitly distinguish it. The purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Entire' implies the distinction from delete_clipboard_entry (single item removal), so an agent can infer when this tool is appropriate. However, there is no explicit statement of when NOT to use it, no mention of an alternative by name, and no precondition guidance (e.g., confirm before mass deletion).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_all_notificationsA
Dismiss all currently visible notifications
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a non-read-only, non-destructive, local mutation. The description adds useful behavioral context by specifying that only currently visible notifications are dismissed, implying history is unaffected and that the action applies to all visible items.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single sentence with no wasted words, and the scope ('all currently visible') is front-loaded in the description. The action and breadth are immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter action with annotations covering safety and no output schema, the description is complete enough to call the tool correctly. It could mention post-action state or output behavior, but those gaps are minor given the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema carries no parameter semantics for the description to supplement. Following the zero-parameter baseline, a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb, 'Dismiss', with a clear resource, 'notifications', and adds scope via 'all currently visible'. This makes the action distinguishable from related tools like send_notification or list_notification_history, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'currently visible notifications' implies when the tool applies, but there is no explicit guidance on when to use it versus notification history, DND, or pause controls. Usage is inferable but not stated with alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_windowA
Gracefully close the focused window (or by address)
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Window address (hex). Omit for focused window. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is partly covered. The description adds that the close is graceful and can target a specific address, but it omits consequences such as unsaved data loss or failure behavior when no window is focused.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with the core action and optional targeting front-loaded. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with full schema coverage and annotations declaring its safety profile, the description gives enough to invoke it correctly. The main missing context is how it relates to kill_window, but the targeting behavior is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single address parameter is already documented as a hex window address and omitting it targets the focused window. The description only restates the optional address behavior and adds no syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: close the focused window, with an optional address target. It is clear what the tool does, though it does not explicitly distinguish itself from the sibling kill_window tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'gracefully close' versus a forceful kill, but the description does not state when to use this instead of kill_window or what happens if no focused window exists. It provides contextual hints rather than explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_bluetoothA
Connect to a paired bluetooth device by MAC address or name
| Name | Required | Description | Default |
|---|---|---|---|
| device | Yes | MAC address (e.g. AA:BB:CC:DD:EE:FF) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only the identifier flexibility, and says nothing about what happens on failure (device unpaired, adapter off) or whether an existing connection is replaced — useful context that is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler. The identifying detail (MAC or name) arrives exactly where the agent needs it before calling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and annotations covering the mutation profile, the description supplies what is needed: the action, the target, and the accepted identifier forms. Failure behavior would be nice but is not essential to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description adds genuinely new information: the device may be given by name as well as MAC address, which the schema does not document. The mismatch between the schema's MAC-only wording and the description's 'or name' creates mild ambiguity about accepted formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (connect) and resource (paired bluetooth device) plus the accepted identifier forms, so it is immediately distinguishable from disconnect_bluetooth and toggle_bluetooth. It does not explicitly name those siblings, but the verb makes the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Paired bluetooth device' is the only usage constraint and it is stated obliquely as a precondition rather than as guidance. There is no explicit statement of when to prefer this over list_bluetooth_devices (to find the device) or get_bluetooth_status (to verify), so the agent must infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_wifiC
Connect to a WiFi network by SSID
| Name | Required | Description | Default |
|---|---|---|---|
| ssid | Yes | WiFi network SSID | |
| password | No | WiFi password (optional for open/saved networks) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly=false and destructive=false, so the mutating/non-destructive profile is covered. The description adds nothing beyond that: it doesn't say what happens to an existing connection, whether credentials are persisted for future sessions, what error is returned on wrong password, or whether a delay/async behavior should be expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler. It is efficient, though so terse that it borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a network-mutating tool with no output schema, the description should mention at least failure behavior (unknown SSID, bad password) and what a successful connection implies. None of this is present, leaving the agent to guess at the outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both ssid (required) and password (optional for open/saved networks) documented in schema. The description's mention of SSID is consistent with the schema but adds no new meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Connect to a WiFi network') plus the identifier used (SSID), so the action is unambiguous. It does not differentiate itself from siblings such as disconnect_wifi, toggle_wifi, or list_wifi_networks, but the name-plus-verb combination already separates it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus toggle_wifi (which may also establish a connection) or when to call list_wifi_networks first to discover SSIDs. No prerequisites or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_macroA
Create a new macro or overwrite an existing one. Steps are an array of {tool, params?} objects.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Macro name (lowercase, no spaces) | |
| steps | Yes | Array of steps: [{tool: 'tool_name', params: {}}] | |
| description | No | What this macro does |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state non-read-only, non-open-world, non-destructive, so the safety profile is largely covered. The description adds the meaningful behavioral detail that this is an upsert (naming an existing macro silently overwrites it), which annotations do not reveal. It says nothing about validation of step tool names, error behavior, or how the macro is later executed, so there is a mild tension with destructiveHint=false that a caller overwriting an existing macro would care about.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action verb, zero filler. The overwrite semantics and the steps structure are both stated in the minimum space required.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter write tool with no output schema, the description omits what happens on an invalid step tool name, whether the call returns the created macro, and how the macro is subsequently invoked (run_macro). Adequate but with clear gaps for an agent composing macros programmatically.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter (name, steps, description) is documented in the schema, including the nested step shape. The description restates the steps array shape with the optional 'params?' marker, which adds only marginal clarification over what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (create/overwrite) and resource (macro), and adds the structural fact that a macro is a list of {tool, params?} steps. That is enough to separate it from run_macro/get_macro/list_macros, although it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage only: you call this to author a macro. There is no explicit guidance on when to use it versus run_macro or get_macro, and no warning about checking existing macros before overwriting one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_workspaceB
Switch to the first empty workspace (effectively creates a new workspace)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is non-read-only, non-destructive, and not open-world, so the safety profile is covered. The description adds that it targets the first empty workspace and 'effectively creates' one, but it does not clarify what happens when no empty workspace exists or whether a new workspace is actually created.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with the action front-loaded and the parenthetical clarification kept brief. It contains no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with annotations and no output schema, the core invocation is clear enough. However, the vague 'effectively creates' wording leaves an important behavioral edge case unresolved: whether it fails, switches, or creates when no empty workspace is available.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics for the description to explain. The empty schema is consistent with a no-argument workspace action, making the baseline of 4 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: switching to the first empty workspace, which clarifies the otherwise misleading create_workspace name. It does not explicitly distinguish itself from the sibling switch_workspace tool, but the 'first empty' detail gives useful specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance about when to use this tool versus switch_workspace or next_workspace/prev_workspace. The intended use is only implied by the phrase 'first empty workspace'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decrease_brightnessA
Decrease screen brightness by N percent (default 5)
| Name | Required | Description | Default |
|---|---|---|---|
| step | No | Percentage to decrease (default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false, readOnlyHint=false and openWorldHint=false, so the safety profile is covered. The description contributes the relative-step model and default of 5 percent, but says nothing about boundary behavior (clamping at 0 or 100) or whether the change is immediate/persistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and resource, with the parameter default folded in economically. Nothing extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter, no-output-schema tool with full schema coverage and annotations covering safety, the description is essentially sufficient. Only the edge-case behavior at brightness limits is missing, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'step' property is already documented as 'Percentage to decrease (default 5)'. The description restates that same information rather than adding meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Decrease screen brightness') plus the magnitude semantics ('by N percent'), which cleanly separates it from increase_brightness, set_brightness, and get_brightness in the sibling list. An agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the verb: the agent can infer this is a relative adjustment rather than an absolute set, but the description never explicitly says to prefer set_brightness for a specific target level or increase_brightness for the opposite direction. No exclusions or preconditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decrease_volumeA
Decrease audio output volume by N percent (default 5)
| Name | Required | Description | Default |
|---|---|---|---|
| step | No | Percentage to decrease by (default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only the default step of 5; it doesn't say whether volume clamps at 0, whether the change persists, or what happens if the step exceeds current volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the default front-loaded alongside the action; nothing is wasted and nothing important is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter convenience tool with no output schema, this is close to sufficient. The only real gap is the absence of any clamping or persistence note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'step' parameter already documents 'Percentage to decrease by (default 5)'. The description restates the default without adding units, bounds, or behavior for out-of-range values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Decrease audio output volume') plus the magnitude semantics, and is immediately distinguishable from its sibling increase_volume. An agent needs no further reading to know what this does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the name — lower the volume rather than raise it. There is no explicit statement of when to prefer this over set_volume or increase_volume, which are both available siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_clipboard_entryBDestructive
Delete a specific entry from clipboard history by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Cliphist entry ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is carried by structured data. The description adds that the deletion is targeted to a single entry rather than the whole history, but says nothing about irreversibility or what happens when the ID does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the resource and the keying mechanism front-loaded; there is no filler and nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A destructive one-parameter tool whose annotations cover the danger signal, so the description is close to sufficient. It still leaves out where IDs come from and the outcome on unknown IDs, which an agent needs for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single id parameter is documented as a 'Cliphist entry ID to delete'. The description's 'by ID' phrasing adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (delete) and resource (a single clipboard-history entry) scoped by ID, so it is unambiguous what the tool does. It does not explicitly differentiate itself from the adjacent siblings clear_clipboard_history or paste_from_history, leaving that inference to the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus clear_clipboard_history (remove everything) or how to obtain a valid ID (list_clipboard_history). The agent must infer the workflow from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_macroCDestructive
Delete a macro by name
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Macro name to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and 'Delete' is consistent with them, so there is no contradiction. However the description adds nothing beyond the annotation: no statement about irreversibility, whether removal is permanent on disk, or what happens if the name is unknown. With the safety profile already structured, this is the minimum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with the verb and selector immediately visible and no filler. It is efficient, though the terseness borders on under-specification rather than optimal density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, irreversible mutation with no output schema, the description should say what deletion does to the stored macro and how a missing name is handled. None of that is present, leaving real gaps for a tool that cannot be undone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'name' parameter is fully documented in the schema. The phrase 'by name' confirms that lookup is name-based rather than by id or index, but adds no format, case-sensitivity, or partial-match detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a macro') plus the identifying key ('by name'), which cleanly separates it from run_macro, get_macro, list_macros and create_macro. It stops short of explicitly contrasting with any sibling, so it lands just below the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this versus the other macro tools, no prerequisite (does the macro need to exist / be disabled first), and no warning that the action is permanent. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_monitorA
Disable a monitor (turns it off and removes from layout)
| Name | Required | Description | Default |
|---|---|---|---|
| monitor | Yes | Monitor name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare it is not read-only and not destructive; the description adds the meaningful side effect that the monitor is removed from the layout, not merely powered off. It stops short of saying whether the change is reversible (via enable_monitor) or how windows on that monitor are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste; the verb, resource and effect all appear before any qualifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter state-change tool with no output schema, the description covers the core effect, but omits recovery (enable_monitor), impact on open windows/workspaces, and whether the setting persists, which an agent would need to act safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and schema coverage is 100% ('Monitor name' is documented in the schema). The description adds nothing about name matching (case sensitivity, partial names, or how to discover valid names via list_monitors), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Disable') and resource ('monitor') and adds the concrete effect '(turns it off and removes from layout)', which distinguishes it from enable_monitor and implies a difference from set_monitor_dpms. The differentiation from set_monitor_dpms is only implicit, not named, so it falls short of a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical implies when to use it (when you want the monitor off and out of the layout), but there is no explicit guidance on when to prefer this over set_monitor_dpms or mirror_monitor, nor any prerequisite (e.g., that the monitor must be currently enabled).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_bluetoothB
Disconnect a bluetooth device by MAC address
| Name | Required | Description | Default |
|---|---|---|---|
| device | Yes | MAC address of the device |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not say whether pairing is retained, what happens if the MAC is unknown or not connected, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the verb, resource, and identifier are all stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter command with full schema coverage and annotations, the definition is minimally adequate. It omits failure behavior (unknown MAC, already-disconnected device) and any indication of return value, which leaves an agent guessing about edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already documented as the device MAC address. The phrase 'by MAC address' in the description merely mirrors the schema, adding no new syntax or format detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Disconnect a bluetooth device') and the identifier used ('by MAC address'), so an agent can tell it apart from connect_bluetooth or list_bluetooth_devices. It stops short of explicitly differentiating itself from toggle_bluetooth, which also changes connection state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb – disconnect when you want to drop a connection – but there is no guidance on when to use this versus toggle_bluetooth, nor any precondition such as the device needing to be currently connected. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_wifiB
Disconnect from the current WiFi network
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation profile is covered. The description adds nothing further: it doesn't say what happens if no network is connected, whether the change is reversible, or that the machine falls back to another interface. For a state-changing network tool this leaves a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with the action verb first and no filler. It is appropriately sized for a zero-parameter tool, though it is sparse enough to leave the reader wanting a bit more context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations carry the safety profile and there are no parameters or output schema to explain, so the description is barely sufficient. It still omits the practical postcondition (loses connectivity, likely falls back to wired/Ethernet) that an agent needs to reason about consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is empty, so there is nothing for the description to disambiguate. Baseline 4 applies; the description correctly implies the target network is whatever is currently joined rather than a named argument.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Disconnect from the current WiFi network" states a specific verb and resource, so the action is unambiguous. It doesn't explicitly distinguish itself from the sibling toggle_wifi, which could also disconnect the network, but the intent is still clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb (tear down the active WiFi connection), but the description never says when to prefer this over toggle_wifi or how it relates to connect_wifi. No prerequisites or exclusions are given, so the agent must infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_monitorA
Enable a disabled monitor with its default settings
| Name | Required | Description | Default |
|---|---|---|---|
| monitor | Yes | Monitor name (e.g. 'HDMI-A-1') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a mutation (readOnlyHint=false) that is non-destructive, so the agent knows the safety profile. The description usefully adds that the monitor comes back with default settings — implying prior scale/position/mirror customizations are reset — but says nothing about behavior on an invalid or unknown monitor name. With annotations covering safety, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero filler, and the key qualifier ("default settings") is present rather than buried. Nothing to trim or reorder.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, non-destructive toggle with full schema coverage and annotations, this covers nearly everything an agent needs. The only real gap is the absence of a pointer to the disable_monitor/list_monitors workflow that would confirm the name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and includes a concrete example ('HDMI-A-1'), so the parameter is fully self-documenting. The description adds only the implicit contract that the name refers to a disabled monitor, no format or resolution details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Enable a disabled monitor") plus a scoping qualifier ("with its default settings"), which clearly separates it from disable_monitor and list_monitors in the sibling set. It does not explicitly name the counterpart tools, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the precondition "disabled" — an agent can infer this applies to an off monitor. There is no explicit guidance on when to prefer it over set_monitor_dpms or mirror_monitor, and no note about what to do if the monitor is already enabled.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_infoBRead-only
Get metadata about a file: size, type, modification time
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the concrete metadata fields the caller receives, but says nothing about behavior on a missing/unreadable path or whether symlinks are followed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler; the useful information (returned fields) is included after the verb. Efficient, though it could carry one more clause on path format without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-param read tool with no output schema, enumerating the returned fields is the right compensation and it does so. Gaps remain around path resolution and failure behavior for a nonexistent file, which an agent would hit in practice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single param is documented, so the baseline is 3. The description adds nothing about path format — absolute vs relative, tilde expansion, or whether directories are accepted — which is the one thing the terse 'File path' schema leaves open.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('metadata about a file') and enumerates the returned fields (size, type, modification time). This distinguishes it in practice from siblings like read_file (content) or list_directory, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to prefer this over read_file, list_directory, or open_file_manager — the agent must infer that this is the metadata-only option. No mention of preconditions such as the file existing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
focus_windowC
Focus a window by its class name or title substring
| Name | Required | Description | Default |
|---|---|---|---|
| class | No | Window class to focus (e.g. 'firefox', 'kitty') | |
| title | No | Window title substring to focus |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is mostly covered. The description adds little beyond that: it does not explain what happens if no window matches, how multiple matches are resolved, whether focusing also switches workspaces, or whether the class and title filters are combined with AND/OR. For a state-changing focus operation, these are meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word contributes to stating the action and matching basis, making it as concise as possible for this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no output schema, the description is too thin. It omits whether at least one of class or title is required in practice, what happens with zero parameters, ambiguity when multiple windows match, and any side effects such as workspace switching.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents both class and title with examples. The description only restates that windows can be matched by class name or title substring, adding no new meaning about combination logic or required combinations. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: focus a window. It is distinguishable from siblings such as close_window, kill_window, list_windows, and get_focused_window. It does not explicitly name or differentiate against those siblings, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no explicit guidance on when to use this instead of get_focused_window or list_windows, nor any prerequisites. The only implied usage is that it is for changing window focus, which is not enough to guide tool selection reliably.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_workspaceBRead-only
Get information about the currently active workspace
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The word 'active' adds the useful scoping concept (the workspace currently in focus, not the full set), but nothing is said about what information is returned or whether 'active' here means focused-on-this-monitor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and the key scoping adjective 'active'. It wastes no words, though it is on the terse side given no other guidance is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the agent cannot tell what 'information' is returned (id, name, monitor, window count). Given the many workspace-related siblings, the description should at least hint at the payload or contrast with list_workspaces.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate and it correctly avoids inventing inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get information') and resource ('the currently active workspace'), which distinguishes it from the sibling list_workspaces by scoping to the single active workspace. It never explicitly names that sibling, so differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus list_workspaces or get_focused_window; the agent must infer that this returns only the active workspace while list_workspaces returns all. No preconditions or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_battery_infoARead-only
Get battery percentage, charging state, and time remaining
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real value by enumerating the returned fields, which matters since there is no output schema. It stops short of stating behavior when no battery exists (desktop) or how time remaining is reported while charging/plugged in.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource, with the return contents appended. Every clause earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema and full annotation coverage, the description carries the return-value burden and does so adequately. The only gap is edge-case behavior (no battery present, unknown charging state) for a zero-arg sensor read, which is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter semantics are missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (battery info) plus the three concrete fields returned: percentage, charging state, time remaining. That distinguishes it cleanly from sibling power/thermal tools like get_power_profile, get_thermal_info and get_system_info, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the resource name – an agent can infer 'call when you need battery status.' There is no explicit when-to-use, no exclusion (e.g. when to prefer get_power_profile or get_thermal_info for power questions), and no stated fallback for machines without a battery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bluetooth_statusARead-only
Get bluetooth power state and currently connected devices
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds only that both power state and connected device info are returned; it says nothing about behavior when the adapter is absent, disabled, or Bluetooth is off.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and containing only the two facts that matter. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey what comes back, and it does (power state plus connected devices). It could note the shape (e.g., device names/addresses) or unavailable-adapter behavior, but for a zero-parameter status read it is essentially sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case. The description correctly implies no inputs are needed to retrieve status.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (get) plus resource (bluetooth status) with two named outputs: power state and connected devices. It is clear, but it doesn't distinguish itself from the nearby list_bluetooth_devices sibling, which likely returns similar device information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the read-only nature — check whether Bluetooth is on and what's attached. There is no explicit when-to-use/When-not phrasing and no pointer to list_bluetooth_devices versus this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brightnessARead-only
Get current screen brightness as a percentage
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and locality are covered by structured data. The description's only added behavioral fact is the return format (percentage), which is genuinely useful given there is no output schema, but nothing is said about failure modes (no backlight available, display vs. external monitor) or whether the value is a raw device percentage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb, and every clause (current, screen, percentage) earns its place. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with annotations covering safety and openWorld, the description plus annotations cover nearly everything an agent needs: what it returns and that it is a safe read. Only minor edge-case behavior (which display, what happens with no backlight) is unaddressed, which is acceptable for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline rule this scores 4. The description correctly makes no parameter claims and instead spends its words on the return value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('current screen brightness') plus the return unit ('as a percentage'). It is implicitly distinct from set_brightness/increase_brightness/decrease_brightness, but never names them, so sibling differentiation relies on naming convention rather than on the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The read-only nature of 'Get' implies when to use it, and the sibling set makes the read-vs-adjust split obvious, but the description never explicitly says 'use this to check brightness before/after adjusting' or excludes any alternative. Usage is inferred, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clipboardARead-only
Get current clipboard text content
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds one piece of real context — that only text content is returned, implying image clipboard contents are out of scope — but says nothing about empty-clipboard behavior or how the value is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; appropriately sized for a zero-parameter read. It is terse to the point of omitting any routing or return-value detail, which is a completeness issue rather than a verbosity one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-argument, read-only accessor with annotations covering safety and no output schema, the description covers what the tool returns at a high level ('text content'). A mention of what happens when the clipboard is empty or non-text would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies no input is needed to read the current clipboard.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('current clipboard text content'), which is unambiguous on its own. It does not distinguish itself from siblings like list_clipboard_history, paste_from_history, or set_clipboard, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the get/set naming symmetry with set_clipboard and the presence of list_clipboard_history/paste_from_history. There is no explicit statement of when to use this versus reading history or pasting directly, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cpu_infoARead-only
Get CPU model, usage percentage, temperature, and frequency
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds value by enumerating what data is returned (model, usage %, temperature, frequency) in the absence of an output schema, though it omits units, freshness, and whether values are instantaneous or averaged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence listing exactly the returned metrics with no filler. Every clause maps to a distinct piece of output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description's job is to describe return values, which it does at a reasonable level. It stays a notch short of complete by not stating units for temperature/frequency or how usage is sampled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the baseline is 4; the description correctly implies a fixed, unfiltered snapshot with nothing to configure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get CPU model, usage percentage, temperature, and frequency'), which is unambiguous against siblings like get_memory_info or get_gpu_info. It doesn't explicitly distinguish itself from get_system_info or get_thermal_info, which partially overlap on temperature/system data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the name and returned fields; there is no statement of when to prefer this over get_thermal_info or get_system_info, and no exclusions. For a zero-argument read tool this is mostly harmless, but the guidance is absent rather than provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_themeARead-only
Get the currently active HyDE theme name
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint and openWorldHint annotations already establish that this is a safe, local read. The word 'currently active' adds a little context about what state is reported. Beyond that the description says nothing extra, and because there is no output schema it could have said more about what comes back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-formed sentence with the key qualifier 'currently active' placed before the resource. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A zero-param read getter is a simple tool, and the description plus annotations cover the essentials. It would be stronger if it confirmed the return type, since no output schema exists to define it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema needs no explanation. The description correctly treats this as a no-argument call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Get the currently active HyDE theme name'. That is enough to tell it apart from sibling setters like set_theme and next_theme. It does not, however, draw an explicit boundary against sibling getters such as list_theme_wallpapers or get_wallbash_mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies read usage but never says when to call this instead of list_themes or next_theme. For a zero-parameter read-only getter the intended use is fairly obvious, which keeps it at minimum viable rather than misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_disk_infoARead-only
Get disk usage per mount point
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful granularity ('per mount point') but does not disclose return format details, units, or whether all mounts are included, so it goes only modestly beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is front-loaded with the action and scope. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-parameter read operation whose annotations cover safety, the description is nearly complete. It could mention whether all mount points are always returned, but no output schema exists so return-value detail is not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description adds no parameter semantics because none exist, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get disk usage') and scope ('per mount point'), which is clearer than a generic system-info call. It does not explicitly differentiate from sibling tools such as get_system_info, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when a disk-usage query is relevant but gives no explicit when-to-use guidance, no exclusions, and no mention of related siblings like get_system_info. An agent must infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dnd_statusBRead-only
Check if Do Not Disturb mode is enabled
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered without description help. The description adds no behavioral context of its own and does not say what the check returns (a boolean state, a paused/off distinction), so it neither helps nor contradicts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Nothing is buried and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and a trivial read operation, the description is nearly sufficient. However, because there is no output schema, the description should state what the check yields and how this differs from toggle_dnd and set_notification_paused; that gap leaves the agent guessing about the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Schema coverage is moot at 0 params, and the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb + resource ('Check if Do Not Disturb mode is enabled'), which is clear and unambiguous. It does not differentiate itself from the mutating siblings toggle_dnd or set_notification_paused, so the agent must infer the read-vs-write split from the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the closely related toggle_dnd or set_notification_paused. The only signal about alternatives comes from the 'get_' prefix in the tool name, not from the description text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_focused_monitorBRead-only
Get the currently focused monitor's details
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds nothing beyond that: it does not say what 'details' are returned, whether it fails when no monitor is focused, or how it resolves a multi-monitor setup. With no output schema, this is the main gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler. It is not wasteful, though it is arguably undersized for a tool with no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial zero-arg getter with read-only annotations this is close to sufficient, but with no output schema the agent has no idea what fields 'details' returns or what happens in edge cases like no focused monitor. A brief mention of the return shape would close the loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. There is no parameter semantics to explain and the description correctly presents the tool as argument-free.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get ... monitor's details') and the qualifier 'currently focused' separates it from list_monitors or get_focused_window. However it never names those siblings explicitly, so differentiation relies on the agent inferring from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'focused' implies the use case (query the monitor the user is looking at, rather than enumerating all monitors), but no sentence says when to prefer this over list_monitors or what to do if no monitor is focused. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_focused_windowBRead-only
Get details of the currently focused/active window
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint:false, so mutation safety is covered. The description adds nothing further — 'details' is undefined, and with no output schema an agent cannot know what fields come back or what happens when no window is focused.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no padding. Brevity is appropriate, though it is arguably under-specified rather than maximally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description should describe what 'details' means (title, class, PID, geometry) and the no-focused-window edge case. None of that is present, leaving the return contract entirely unknown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('details of the currently focused/active window'), which is clearly distinct from list_windows or get_active_workspace. It stops short of naming the sibling it differs from, but the scope word 'focused' does most of the differentiation work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus list_windows (all windows) or screenshot_window. Usage is only implied by the phrase 'currently focused'; no alternatives or preconditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gamemode_statusBRead-only
Check if gamemode (performance mode) is currently active
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered without the description. 'Currently active' adds the notion of live state rather than a persisted setting, which is mildly useful, but nothing about what 'active' means operationally (e.g. whether it requires a session, daemon, or can fail).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler; the parenthetical disambiguation earns its place. It is arguably under-sized given that it omits the return value, but it is not padded or bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description is the only place the return value could be described, and it does not say that a boolean active/inactive state is returned or what happens if gamemode is unavailable. For a no-parameter status query with annotations covering safety, this leaves one meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies. The description correctly adds no parameter prose, since there is nothing to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Check') and resource ('gamemode'), and clarifies with the parenthetical '(performance mode)' that gamemode is a performance setting rather than a media or gaming mode. It does not distinguish itself from the sibling toggle_gamemode, which is the obvious confusion risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus toggle_gamemode or when the check is warranted. The read-only nature is implied by 'Check', but there is no explicit statement that this must be called before toggling, or that it is a query-only sibling of the toggle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gpu_infoARead-only
Get GPU model, usage, temperature, and VRAM usage
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered by structured data. The description adds the content of the response (model, usage, temperature, VRAM) but says nothing about failure modes when no GPU/tooling is present or about formatting/pagination. Some added value, but modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Slight redundancy between 'usage' and 'VRAM usage', but overall tight and 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by listing exactly which GPU metrics are returned, which is what an agent needs to decide whether to call it. The only gap is behavioral context for the no-GPU case, which annotations do not cover.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline this lands at 4. The description correctly spends its words on outputs rather than inventing parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Get' with a clearly scoped resource (GPU) and an enumeration of the four returned data points: model, usage, temperature, VRAM usage. This is trivially distinguishable from siblings like get_cpu_info and get_memory_info by resource alone, though it never explicitly references them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance, no prerequisites (e.g. driver/GPU presence), no mention of alternatives. For a zero-parameter read getter the invocation context is largely self-evident, so implied usage is adequate but nothing more.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hypr_bindsBRead-only
List all active Hyprland keybindings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds one useful behavioral fact — only active bindings are returned, not the full config — but says nothing about return shape or whether runtime-added binds are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word (including 'active') carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial no-param read tool with annotations covering safety, this is nearly adequate. However, there is no output schema, so the description could have stated what a keybinding entry looks like (mods, key, dispatcher, args) — the agent has no idea what it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema leaves nothing to explain. Baseline 4 applies; no parameter-level context is needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'List all active Hyprland keybindings' names a specific verb (List) and resource (Hyprland keybindings) with a scope qualifier ('active'). It is distinguishable from neighbors like get_hypr_option or get_keyboard_layout, though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus related Hyprland tools such as get_hypr_option, hypr_reload, or get_keyboard_layout. The agent must infer the use case purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hypr_optionARead-only
Get a Hyprland config option's current value (e.g. 'general:border_size', 'decoration:rounding')
| Name | Required | Description | Default |
|---|---|---|---|
| option | Yes | Option name (e.g. 'general:border_size') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that it returns the option's current value and shows the expected 'section:name' naming convention, which is useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. The examples are brief and directly support correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with read-only annotations, the description is nearly complete. The only missing element is explicit routing advice versus the corresponding setter, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'option' parameter is already fully documented in the schema. The description's examples reinforce the naming format but do not add meaning beyond what the schema provides; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a Hyprland config option's current value') and gives concrete example option names. It implicitly contrasts with set_hypr_option by emphasizing 'current value', but does not explicitly name the sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Read-only retrieval is implied, and an agent can infer that this is for checking configuration rather than changing it. However, it never explicitly says when to prefer this over set_hypr_option or hypr_reload, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_addressesBRead-only
Get all network interface IP addresses
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and locality are covered. The description only adds the 'all interfaces' scope; it says nothing about return shape, ordering, or whether virtual/down interfaces are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is arguably too terse given the ambiguity with get_network_status, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only getter with annotations covering the safety profile, the description tells the agent enough to call it. The only gap is the absent output shape, which is bounded by the tool's simplicity and the lack of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Schema coverage is 100% and the empty schema is consistent with the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('network interface IP addresses') with scope ('all'), so the agent knows exactly what is returned. It does not distinguish itself from the sibling get_network_status, which is the nearest ambiguous alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus get_network_status or when not to use it. A single trivial getter needs little guidance, but nothing here helps the agent choose between the two network-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyboard_layoutARead-only
Get the current keyboard layout
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds no further behavioral context (return format, whether layout is per-keyboard, latency), but a zero-param read has little to disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that front-loads the verb and resource with no waste. Appropriately sized for a trivial getter, though it borders on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description would ideally hint at the return value (e.g., a layout identifier such as 'us' or 'de'). As written it does not, leaving the return shape ambiguous, though the tool is simple enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema carries all the necessary structure and the baseline is 4. Nothing in the description is needed to clarify inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and resource ('current keyboard layout'), so the agent knows exactly what the tool retrieves. It does not mention the sibling that changes this state (switch_keyboard_layout), so differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Read-only query intent is implied by 'current', and the surrounding sibling names make the read/write split inferable. However, no explicit when-to-use or pointing to switch_keyboard_layout as the counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_macroBRead-only
Get full details of a specific macro
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Macro name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds only that it returns "full details," saying nothing about error behavior for missing macros or the shape of the return. Adequate but thin given the lower bar set by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with no filler. It is efficient, though the terseness leaves little room for routing context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only, single-parameter lookup with full schema coverage and annotations covering safety, the description is sufficient to call correctly. Minor gap: no statement of behavior when the named macro does not exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema description coverage, the schema already documents the name field. The description's phrase "specific macro" confirms the name identifies the target but adds no format or lookup semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Get full details of a specific macro"), which is unambiguous about the operation. It does not differentiate itself from siblings like list_macros or run_macro, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this over list_macros (for discovery) or run_macro (for execution). The single-macro-by-name usage is only weakly implied by "specific macro" and the required name parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_statusARead-only
Get currently playing track info: title, artist, album, player, status, position
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safe-read profile is covered. The description's contribution is the field list, which is useful since no output schema exists, but it omits edge-case behavior (no active player, paused vs stopped, position units).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the resource stated first and the returned fields enumerated after a colon. No filler and nothing misplaced.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the inline field list carries the return-value burden well. What remains uncovered is degenerate-state behavior — what the agent sees when no track is playing — which matters for a status tool an agent may poll blindly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing for the description to clarify about inputs, and it correctly focuses on outputs instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and resource ('currently playing track info') and enumerates the fields returned. It implicitly differs from list_media_players, but never states that distinction explicitly, so an agent must infer which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'currently playing' — it suits status polling. There is no explicit when-to-use guidance, no mention of the related media_play_pause/list_media_players siblings, and no statement of what happens when nothing is playing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memory_infoARead-only
Get RAM usage: used, total, available, swap
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds the set of memory metrics returned, which is useful, but says nothing about units (bytes/percent), swap semantics, or whether swap is null when absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded line with zero waste, listing the key returned fields inline. Nothing could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only annotations for safety, the description carries the return-value burden and does so at a high level by naming the four metrics. Units and swap edge cases are the only meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate. No misleading parameter references are present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get RAM usage') and enumerates the metrics returned (used, total, available, swap). It is clear enough to distinguish from get_cpu_info or get_disk_info, though it never explicitly contrasts with get_system_info, which could plausibly report memory too.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not guidance, and no mention of how it relates to sibling get_system_info. Usage is only implied by the resource name 'RAM usage', which is generally enough for an agent to infer this is the memory-specific query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mic_volumeARead-only
Get microphone input volume percentage and mute state
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, establishing a safe local read. The description adds value by specifying the two pieces of data returned (volume percentage and mute state), which matters because there is no output schema. It does not cover error cases or unavailable-device behavior, but for a simple local getter that is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word contributes: the resource, the two return values, and the implicit read nature.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, annotation-covered local getter with no output schema, the description supplies the missing return-value information. An agent can call it correctly without further detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document and the baseline is 4. The description correctly implies no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get microphone input volume percentage and mute state. The word 'microphone' distinguishes it from the sibling get_volume, which handles output volume, though it does not explicitly name that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: it is the read-only status check for microphone input, complementary to set_mic_volume and toggle_mic_mute. However, it offers no explicit when-to-use guidance or named alternatives, leaving the agent to infer the distinction from the names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_statusARead-only
Get current network connection status (WiFi SSID, IP, signal strength, device type)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real value by disclosing the shape of the returned data (SSID, IP, signal strength, device type), which matters here because there is no output schema. It stops short of noting whether it reports only the active connection or fails when offline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first and the returned fields parenthesized after. Zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the burden of telling the agent what comes back, and it does so by naming the four fields. It would be complete at 5 if it clarified behavior when disconnected or how it differs from the narrower network siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to document and the baseline of 4 applies. Nothing in the description misdescribes inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get current network connection status') and enumerates the payload (WiFi SSID, IP, signal strength, device type). It's clear on its own, but it doesn't distinguish itself from overlapping siblings like get_ip_addresses, list_wifi_networks, or get_bluetooth_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'current' — an agent can infer this is a point-in-time snapshot versus the enumerating siblings, but the description never says when to prefer it over get_ip_addresses or list_wifi_networks. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_power_profileARead-only
Get the current power profile (performance, balanced, power-saver)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds the domain of possible return values (performance, balanced, power-saver), which is genuinely beyond annotations — though it doesn't state the exact response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and the value domain in parentheses; nothing superfluous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter with no output schema, the description supplies the key missing piece — the set of possible profile values. Only the exact return format (string vs object) is left unstated, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There are no parameter semantics for the description to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (get the current power profile) that is unmistakably distinct from the setter in the sibling list, set_power_profile. It does not explicitly name the sibling, but the read nature is clear from 'Get the current'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'current' — read state rather than change it — which naturally routes the agent away from set_power_profile. No explicit when/when-not guidance or named alternative is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rofi_styleARead-only
Get the current rofi launcher style number
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that the value is read from the 'current' state and that the result is a style number, which hints at the return type, but says nothing about valid ranges or what the number means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero filler, and the resource is front-loaded. It is minimally sized rather than padded, though it stops short of adding routing or return-value context that would justify a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-param read with annotation coverage and no output schema, the description is adequate but bare. It could note the valid style range or point to set_rofi_style for modification, which would make it complete rather than merely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter gaps exist to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('the current rofi launcher style number'), so the agent knows exactly what is retrieved. It pairs implicitly with the sibling set_rofi_style but never names it, so the differentiation is left to inference rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the get/set naming symmetry with set_rofi_style in the sibling list. There is no explicit statement of when to call this versus set_rofi_style, and no prerequisite or exclusion noted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_screen_timeoutARead-only
Get the current screen idle timeout and lock timeout
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description's one piece of added value is naming the two distinct returned values (idle timeout vs lock timeout), but it gives no units, defaults, or format for them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; both returned values are named immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the return-value burden and it does identify both outputs. The remaining gap is units/format (seconds vs minutes, how lock timeout relates to idle timeout), which an agent might want before presenting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. Nothing in the description misleads about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (get) and two specific resources (screen idle timeout, lock timeout), so the agent knows exactly what values it retrieves. It does not explicitly differentiate itself from siblings, though no sibling overlaps with this resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the read-only getter naming; there are no conditions, prerequisites, or named alternatives. For a trivial no-parameter getter this is adequate but nothing is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_infoARead-only
Get OS, kernel version, hostname, Hyprland version, and shell
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond the field list — no mention of permissions, environment assumptions, or caching — but for a zero-parameter read-only getter this is only a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundant or filler content. Every listed field earns its place by clarifying the return scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only getter, the enumerated fields provide enough context to invoke the tool correctly, and annotations cover the safety profile. Minor gaps remain around return formatting or environment caveats, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and schema description coverage is 100%, so parameter semantics are inherently complete. The baseline for zero-parameter tools is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and names the exact system fields returned: OS, kernel version, hostname, Hyprland version, and shell. It is clearly distinguishable from narrower sibling tools like get_cpu_info or get_gpu_info by the field list, but it does not explicitly state sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the returned fields, but there is no explicit guidance on when to use this versus get_cpu_info, get_gpu_info, get_uptime, or other system-related siblings. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_thermal_infoARead-only
Get CPU and GPU temperatures
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds nothing beyond the resource name — no mention of units, sensor source, refresh/liveness, or value format — so it earns only minimal credit given the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word earns its place for a no-param read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no params, no output schema, and safety annotations, the description covers the core purpose. However, with no output schema, it could have added expected return values (units, per-core vs package, availability when sensors are missing) and does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, which is the baseline-4 case. No parameter-level semantics are needed or expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'get' and resource 'CPU and GPU temperatures' clearly state what the tool returns. It is reasonably distinguishable from siblings like get_cpu_info and get_gpu_info, though the description never clarifies whether those siblings already include temperature, leaving some overlap ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource (thermal readings), but there is no explicit guidance on when to use this versus get_cpu_info or get_gpu_info, which likely surface related data. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uptimeARead-only
Get system uptime and load averages
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true and openWorldHint=false already establish this as a safe, local read, so the description's burden is low. It adds that load averages are included alongside uptime, which is modestly useful return-content context, but says nothing about the machine's time units or the load-average windows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming both outputs with no filler. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, well-annotated read tool with no output schema, the description covers what an agent needs in order to choose and call it. Only minor detail, such as the units of uptime and the 1/5/15-minute load windows, is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No misleading parameter hints are present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb plus resource ('Get system uptime') and it also names the secondary data returned ('load averages'). It does not distinguish itself from the similar read-only siblings get_system_info, get_cpu_info, or get_memory_info, so an agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied only: it's clearly a diagnostic read, but the description never says when to prefer it over get_cpu_info or get_system_info, nor any exclusions. For a zero-parameter info tool that gap is small but real.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_volumeARead-only
Get current audio output volume percentage and mute state
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. With no output schema, the description adds real value by stating what the return contains: a volume percentage and the mute state. It stops short of describing default-sink scope or the unit/type of the value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loading the action and the two pieces of state returned. Nothing could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-arg read tool with no output schema, the description covers the essential return fields. A small gap remains: it does not say whether the volume reflects the default sink or the active device, which matters given the sibling set includes list_audio_sinks and set_default_sink.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline of 4 applies. There is nothing for the description to disambiguate, and it correctly implies no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb ('Get') plus a precisely scoped resource ('current audio output volume percentage and mute state'). It clearly distinguishes itself from get_mic_volume, list_audio_sinks, and the set/increase/decrease/toggle siblings by naming the output-volume read explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: it is the read counterpart to set_volume/increase_volume/toggle_mute, so an agent can infer 'call this to read state before adjusting'. But no explicit when-to-use or when-not guidance, and no alternative is named (e.g., versus get_mic_volume or list_audio_sinks).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallbash_modeARead-only
Get current wallbash color mode (theme/auto/dark/light)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, non-open-world operation, so the description does not need to restate safety behavior. The description adds useful detail by naming the possible mode values (theme/auto/dark/light), which helps the agent interpret the result. It does not describe edge cases or output structure beyond those values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It immediately states the action, the target, and the possible values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only getter with no output schema, the description is complete enough: it says what is retrieved and lists the likely return values. The annotations cover safety and open-world behavior, so no important context is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to document. The schema is empty and complete for this operation, and the description correctly does not introduce any parameter-related expectations. Baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get current wallbash color mode.' It also enumerates the possible modes (theme/auto/dark/light), making the purpose unambiguous. It does not explicitly name or differentiate itself from siblings like get_current_theme or get_waybar_mode, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a read-only getter for the current wallbash mode, but it does not state when to use this tool instead of related siblings such as get_current_theme, get_waybar_mode, or set_wallbash_mode. The implied context is adequate but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallpaperARead-only
Get the file path of the currently active wallpaper
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description's added value is disclosing the return value (a file path), which matters because there is no output schema, but it says nothing about behavior when no wallpaper is set or what format the path takes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single ten-word sentence with the resource and return value front-loaded and zero filler. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument, read-only lookup with no output schema, naming the returned artifact (file path) is the essential piece an agent needs to chain it into later calls such as read_file or set_wallpaper. Missing only edge-case behavior (no wallpaper set, path format).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so per the baseline this scores 4. There is no parameter surface for the description to clarify or omit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('currently active wallpaper') plus the exact return ('file path'), so the agent knows precisely what comes back. It does not distinguish itself from siblings such as list_wallpapers or get_wallpaper_colors, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this versus list_wallpapers (enumerate options) or get_wallpaper_colors (read the derived palette). The read-only 'current value' framing implies usage, but the agent must infer it from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallpaper_colorsARead-only
Get the extracted color palette from the current wallpaper (wallbash colors)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safe-read nature is covered. The description adds that the colors are 'extracted' and tied to 'wallbash', which hints at derivation, but says nothing about what happens if no wallpaper is set or how stale the palette may be.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The parenthetical 'wallbash colors' is the only mildly jargon-y addition, but it earns its place by disambiguating the source of the palette.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema and read-only annotations, the definition is close to complete, but because there is no output schema the return shape (list of hex strings? named colors?) is left unclear, and 'wallbash' is unexplained for an agent unfamiliar with the environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline of 4 applies; there is no parameter semantics to document and the description doesn't need to carry any.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (extracted color palette from the current wallpaper), with the parenthetical 'wallbash colors' clarifying the derivation. It is distinguishable from siblings like get_wallpaper, list_theme_wallpapers and pick_color, though it doesn't explicitly mention them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the getter framing: call it when you need the wallpaper-derived palette. There is no statement of when to prefer it over pick_color or get_current_theme, nor any preconditions (e.g., whether a wallpaper must be set).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_waybar_modeARead-only
Get the currently active waybar layout mode (line number in config.ctl)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is clear. The description adds useful behavioral context by specifying that the result is a line number in config.ctl, which helps an agent interpret the return value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every phrase contributes either the action, the target resource, or the meaning of the returned value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, side-effect-free getter with no input parameters and no output schema, the description is complete: it says what is fetched and what the result represents. Nothing else is needed for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to document. Per the rubric baseline for zero-parameter tools, a 4 is appropriate, and the description correctly does not invent parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Get the currently active waybar layout mode') and clarifies the return value as 'line number in config.ctl.' It clearly distinguishes this read operation from siblings like set_waybar_mode, next_waybar_mode, and toggle_waybar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the read-oriented verb and by contrast with mutating siblings, but the description does not explicitly state when to prefer this tool over get_wallbash_mode or the mode-changing siblings. It provides enough context to infer the intended use but lacks explicit alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
group_windowB
Toggle window grouping (tabbed mode) on the focused window
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description usefully confirms the operation is a toggle (reversible state change) and that it targets the focused window, but it doesn't explain what happens when no group exists or how existing groups are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb and target appear immediately with the clarifying parenthetical in place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param toggle this is reasonably complete, and annotations carry the safety profile with no output schema needed. However, it omits the behavioral edge cases (what grouping does to the current layout, whether a minimum window count is required) that an agent would need to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly clarifies that the target is implicitly the focused window, which is the only 'input' semantics that matters here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Toggle') and a specific resource ('window grouping (tabbed mode)') with an explicit target ('the focused window'), so the agent knows exactly what operation it performs. It stops short of naming how it differs from the similar-looking toggle_split or toggle_float siblings, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. whether multiple windows must already exist), and no mention of alternatives such as toggle_split. The agent must infer the usage context entirely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hypr_reloadA
Reload the Hyprland configuration
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the agent knows this is a local mutation that is not destructive. The description confirms the action but does not explain effects, error conditions, or what happens to running applications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a zero-parameter action tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter reload tool with annotations covering safety and no output schema, the description is nearly complete. It could add a brief note about expected effects or prerequisites, but the essential information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics burden. The baseline for zero-parameter tools is 4, and the description does not need to compensate for missing schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: reload the Hyprland configuration. It is distinguishable from siblings like get_hypr_option or toggle_animations, though it does not explicitly call out those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool, what prerequisites are required, or which sibling tools to prefer in related situations. The context of reloading after config changes is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
increase_brightnessA
Increase screen brightness by N percent (default 5)
| Name | Required | Description | Default |
|---|---|---|---|
| step | No | Percentage to increase (default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as a non-readOnly but non-destructive mutation, and the description reinforces the relative-increment semantics and supplies the default step of 5. It does not say what happens at maximum brightness (clamping vs error), whether the change is per-monitor or global, or whether it is reversible via decrease_brightness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the action, unit, and default all present, and no redundant or trailing clauses. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter, no-output-schema utility with annotations covering safety, this is close to sufficient. The only meaningful gap is boundary behavior at 0% and 100% brightness, which an agent would need to know before chaining calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'step' parameter is fully documented there, including the default. The description only restates '(default 5)' and adds no units, ranges, or bounds beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Increase screen brightness') with the unit of change ('by N percent'), which is enough to distinguish it from set_brightness (absolute) and decrease_brightness. It stops short of naming those siblings explicitly, so an agent must infer the relative-vs-absolute distinction from the word 'increase'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Because the operation is relative, it is implied that this is the right tool when the user wants a nudge up rather than an absolute level, but the description never says when to use it instead of set_brightness or get_brightness. There are no exclusions or prerequisite notes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
increase_volumeA
Increase audio output volume by N percent (default 5)
| Name | Required | Description | Default |
|---|---|---|---|
| step | No | Percentage to increase by (default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only but non-destructive local mutation, so the description need not restate safety. However, it does not mention clipping at maximum volume, mute-state interaction, or whether it applies to the default sink.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. The verb, resource, and parameter behavior are conveyed immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-parameter volume mutation, the description plus annotations and schema are largely sufficient. Minor behavioral gaps remain around volume limits, mute state, and sink targeting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents that step is a percentage with default 5. The description repeats the same default and unit but adds no extra parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: increase audio output volume. It is clear what the tool does, though it does not explicitly contrast itself with siblings such as decrease_volume or set_volume.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the operation name and the increment semantics, but the description does not state when to use this instead of set_volume or decrease_volume. No explicit alternatives or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
is_recordingARead-only
Check if a screen recording is currently in progress
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that it's a status check, but says nothing about return format (boolean?) or behavior. With annotations carrying the burden, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the verb, zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotation covering return values; the description doesn't state what the check returns (boolean? status string?). Minor gap for a simple query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline is 4. No param details needed and none given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (check) + resource (screen recording) + state (in progress). Clearly distinguishable from start_recording/stop_recording siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is clear from the name, but no explicit guidance on when to use versus start_recording/stop_recording or how to interpret results. For a simple boolean query, this is minimally viable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kill_appBDestructive
Kill a running application by name or PID
| Name | Required | Description | Default |
|---|---|---|---|
| pid | No | Process ID to kill (takes precedence over name) | |
| name | No | Process name to kill | |
| signal | No | Signal to send (default TERM) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, so the destructive nature is carried by structured data, and the description is at least consistent with them ("Kill"). It adds no extra context such as whether unsaved work is lost, whether child processes are terminated, or what happens when no process matches, so it contributes little 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action front-loaded and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive action with full annotation and schema coverage, this is minimally adequate. It is missing practical context such as behavior on no-match, whether it is forceful or graceful by default, and how it differs from the window-level kill siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, including the precedence rule for pid and the default TERM signal, so the heavy lifting is done by the schema. The description only restates the two selector types without adding format or precedence detail, which is the expected baseline case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Kill a running application") plus the two selector modes. It is understandable without the schema. It doesn't explicitly contrast itself with the sibling kill_window/close_window, so an agent could hesitate between killing the app process and closing the window.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative guidance is given. The siblings kill_window and close_window overlap conceptually, and the description does nothing to route the agent between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kill_windowBDestructive
Force kill a window by address (use as last resort)
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Window address (hex). Omit for focused. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a destructive write. The description adds the "last resort" framing and the force semantics, but does not say what is lost (unsaved work, process state) or whether the underlying app is terminated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded clause with zero filler; the force/last-resort caveat is attached directly to the action. Only slightly terse for a destructive operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive single-param tool with annotations covering the safety profile, the description is nearly sufficient, but it omits the escalation relationship to close_window and any note about consequences to the target application.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself documents the address format (hex) and the omit-for-focused default more precisely than the description does. The description adds no meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Force kill a window") with the key qualifier "force" that distinguishes it from the graceful sibling close_window. It does not name close_window explicitly, so the differentiation is implied rather than spelled out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use as last resort" gives a hint about escalation but never names the alternative (close_window) or the condition that should trigger escalation, so the agent must infer the workflow from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
launch_appA
Launch an application by name or command (runs detached via hyprctl dispatch exec)
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | App name or full command to launch (e.g. 'firefox', 'kitty', 'code') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (not read-only, not destructive), and the description adds meaningful context beyond them: it says the process is launched detached, which tells the agent it is fire-and-forget and will not receive a PID or lifecycle handle. It doesn't disclose failure behavior for unknown commands, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb and resource front-loaded; the parenthetical mechanism earns its place by explaining how the launch behaves rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with annotations present and no output schema, the definition covers what to pass and how the process is spawned. Only the outcome on bad input or already-running apps is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already gives examples ('firefox', 'kitty', 'code'), so the description's 'by name or command' merely restates the dual input mode. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Launch an application') and discloses the underlying mechanism ('hyprctl dispatch exec'). It doesn't explicitly contrast with near-siblings like open_terminal, open_url, or list_desktop_apps, but the action itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'By name or command' implies the input shape, but there is no statement of when to prefer this over open_terminal, open_url, or list_running_apps, and no note on what happens if the app is already running.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
led_effectA
Run a LED animation effect: rainbow (color cycle), pulse (brightness breathing), or wave (smooth color transition)
| Name | Required | Description | Default |
|---|---|---|---|
| loops | No | Number of loops (default 3) | |
| effect | Yes | Effect to run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable context by explaining what each enum value entails, such as 'rainbow (color cycle)' and 'pulse (brightness breathing).' This functional explanation goes beyond just listing the enum names, enhancing behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, highly efficient sentence that immediately delivers all critical information—the function, the available modes, and the nature of those modes—with no superfluous wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 100% schema coverage and the list of available effects, the description provides all necessary context. The semantic definitions of the effects are the only thing that could be added, which is already present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though the schema coverage is 100%, the description significantly enhances the semantics by providing human-readable definitions for the enumerated 'effect' parameter. This helps the agent understand the nature of the input beyond the required string value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: running an LED animation effect. It distinguishes itself from sibling tools like led_set_color by specifying that it handles animations (e.g., 'rainbow', 'pulse', 'wave').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it does not explicitly state when *not* to use the tool, the description inherently guides usage by detailing that it is for 'animation effect,' which contrasts with static configuration tools like led_set_color. This context is sufficient to guide a user toward the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
led_powerC
Turn LED strip on or off
| Name | Required | Description | Default |
|---|---|---|---|
| on | Yes | true = on, false = off |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, openWorld=false, so the agent knows this is a local, non-destructive write. The description adds nothing beyond that: it doesn't say whether the previous color/brightness state is preserved, whether the call is idempotent, or what happens if no strip is connected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action front-loaded and zero filler. There's no wasted text, though also no structure beyond the bare action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, fully documented toggling tool with safety annotations, one sentence is arguably sufficient. However, given the surrounding LED suite, it omits whether a device must be discovered/connected first and what the visible state change or failure mode is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single boolean parameter already documents 'true = on, false = off'. The description adds no extra semantics beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: powering an LED strip on or off. That cleanly separates it from siblings like led_set_color, led_set_brightness, led_effect, and led_scan, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus the other LED tools, no prerequisites (e.g., whether led_scan/connection must happen first), and no conditions for when not to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
led_scanARead-only
Scan for BLE LED strips nearby
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
annotations already declare readOnlyHint=true, so the agent knows no state is mutated, and the description is consistent with that. It adds no behavioral context of its own, though: scan duration, whether Bluetooth must be enabled (see toggle_bluetooth / get_bluetooth_status siblings), and whether results are transient are all unstated. The mild tension between "scan nearby" and openWorldHint=false is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single four-word sentence with the verb and scope front-loaded and zero filler. Nothing superfluous and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description is the only place an agent could learn what a scan returns (device names, addresses, count) and how long it takes, and it says none of that. Combined with zero-parameter input and only light annotations, a single purpose sentence leaves the agent guessing about the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No parameters are mentioned, which is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Scan for BLE LED strips nearby") that an agent can act on immediately. It implicitly separates discovery from the control siblings (led_set_color, led_power, led_effect), but never says so explicitly, so the sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scan-before-control workflow is only implied by the name and the presence of led_* control siblings; the description never states that this should be called first to discover devices, nor what to do if no strips are found. No when-not-to-use guidance or prerequisite conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
led_set_brightnessB
Set LED strip brightness (0-100%)
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | Brightness percentage (0-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of device state requirements, whether the value persists, whether an LED device must be discovered via led_scan, or what happens on out-of-range input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded fragment with no wasted words; the range is stated immediately. Slight redundancy with the schema's identical range description, but nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter setter with annotations covering the safety profile and a fully described schema, the description is sufficient to invoke the tool correctly. Minor gaps remain around LED device readiness, but the core call is unambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema coverage is 100% — the schema already documents 'level' as a 0-100 percentage. The description merely repeats that range, adding no new semantics such as clamping behavior or integer/float expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb + resource ('Set LED strip brightness') with a value range, which cleanly separates it from the generic set_brightness sibling that targets screen brightness. It stops short of explicitly naming that sibling, so an agent must infer the distinction from the 'LED strip' qualifier alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus set_brightness/increase_brightness/decrease_brightness, nor on prerequisites such as whether the strip must be powered on via led_power first. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
led_set_colorA
Set LED strip to a specific RGB color (0-255 each) or a named color (red, green, blue, white, purple, cyan, yellow, orange, pink, warm, magenta)
| Name | Required | Description | Default |
|---|---|---|---|
| b | No | Blue (0-255) | |
| g | No | Green (0-255) | |
| r | No | Red (0-255) | |
| name | No | Named color instead of RGB: red, green, blue, white, purple, cyan, yellow, orange, pink, warm, magenta |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive operation. The description adds useful format context, but it does not explain whether setting color overrides an active pattern/effect or what happens if both RGB and name are supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single well-structured sentence with no wasted prose, and it front-loads the action and accepted input formats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple LED color-setting tool with full schema coverage and annotations, the description is largely complete. It leaves minor gaps around parameter interaction and hardware state, but no output schema is needed here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are already documented in the schema. The description repeats the RGB range and named-color list with little additional semantic guidance such as mutual exclusivity or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: setting an LED strip to RGB or a named color. It is clearly distinct from siblings like led_set_brightness and led_set_pattern, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the action, and the description clarifies that RGB or a named color may be used. However, it gives no explicit guidance on when to choose named colors versus RGB, or when to use this tool instead of sibling LED tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
led_set_patternB
Set LED strip to a built-in animation pattern by index (0-210) or name. Examples: rainbow, strobe, wave, breathing, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Pattern name (e.g. fwd_dreaming, strobe_7c, gradual_7c, hop_rgb) | |
| index | No | Pattern index (0-210) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only but non-destructive local operation. The description adds useful context that the pattern is built-in and that indexes range from 0 to 210, but it does not disclose error behavior for invalid indexes or whether a parameter is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and scope, followed by helpful examples. No sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setter with full schema coverage and no output schema, this is mostly sufficient for invocation. However, it omits routing guidance against led_effect and does not state that at least one of name or index must effectively be provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so name and index are already documented. The description repeats the index range and gives pattern-name examples, but it does not add important semantics such as whether name and index are mutually exclusive, whether both may be supplied, or which takes precedence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource: set the LED strip to a built-in animation pattern by index or name. It distinguishes this from color/brightness/power siblings, but does not clarify how it differs from the led_effect sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no explicit guidance on when to use it versus led_effect or other LED tools. Usage is only implied by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_audio_sinksARead-only
List all audio output devices (speakers, headphones, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true and openWorldHint=false already declare this as a safe, local read, so the description doesn't need to restate safety. It adds only the domain scope (output devices), with nothing about whether sinks are ordered, whether one is flagged as default, or what identifies the device.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource named first and the clarifying examples attached; no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with annotations and no output schema, the description tells the agent what it enumerates. It stops short of describing the returned fields or noting that an entry can be passed to set_default_sink, which would have closed the loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the schema and description are already aligned at baseline 4. No parameter meaning is left undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all audio output devices') and the parenthetical (speakers, headphones) disambiguates it from list_audio_sources, which would cover microphones/inputs. It does not name the sibling explicitly, so differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus list_audio_sources or in relation to set_default_sink; the only signal is the implicit 'list' semantics. An agent must infer that this is the discovery step before choosing a default sink.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_audio_sourcesARead-only
List all audio input devices (microphones)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds only that the devices are input devices/microphones; it says nothing about what the listing returns (names, IDs, default source marker) or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb and resource, with no filler whatsoever.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, annotation-covered listing tool this is close to sufficient, but with no output schema the description is the only place to learn what a listed source looks like, and it doesn't say.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies because the schema is empty and self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List all audio input devices', with the parenthetical '(microphones)' pinning down that these are capture sources rather than sinks. That implicitly separates it from the sibling list_audio_sinks, though it never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name only – an agent can infer it should call this before set_default_source, but the description gives no explicit trigger, prerequisites, or alternative to compare against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bluetooth_devicesARead-only
List paired and nearby bluetooth devices
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the useful detail that both paired and nearby devices are returned, but says nothing about whether a scan is triggered, latency, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with zero waste, and the key scope qualifier ('paired and nearby') is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool with strong annotations, this is nearly complete. A note on scanning behavior or expected output would make it fully sufficient, but nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters there is no parameter semantics to explain; the baseline of 4 applies. The description does not need to add parameter detail because the schema is empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List ... bluetooth devices') and adds meaningful scope ('paired and nearby'), which differentiates it from get_bluetooth_status and connect_bluetooth. It stops short of naming a sibling explicitly, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied—listing devices before connecting—but there is no explicit 'use this when' guidance and no reference to alternatives like get_bluetooth_status. An agent can infer the purpose but is given no disambiguation rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_clipboard_historyCRead-only
List recent clipboard history entries
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max entries to return (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds only the word 'recent', with no mention of ordering, truncation behavior, or what an entry contains — minimal added context beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no waste and the scope word front-loaded. It is arguably under-specified rather than bloated, but structurally clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial read-only list tool with full schema coverage and annotations, this is adequate but leaves open how results are ordered and what fields an entry has, which matters for an agent deciding between it and paste_from_history.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema coverage is 100%; the schema already documents 'limit' with its default of 20. The description adds nothing about ordering or whether limit caps a broader history, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('clipboard history entries') with a scope qualifier ('recent'). It is distinguishable from siblings like clear_clipboard_history or delete_clipboard_entry, but does not explicitly differentiate from get_clipboard or paste_from_history, which also read clipboard state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus get_clipboard (current entry) or paste_from_history (restore an entry). The agent must infer the distinction from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_desktop_appsARead-only
List all installed .desktop applications (filterable by name)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 30) | |
| filter | No | Filter by app name substring (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered and the bar is lower. The description adds little beyond the resource: it says 'all' installed apps while the schema defaults limit to 30, and it never mentions the cap, ordering, or that results are truncated unless a limit is passed — a gap worth flagging for a 'list all' claim.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource front-loaded and the filter hint in parentheses. It earns its space, though the 'all' vs. default-limit tension is a minor structural imprecision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-optional-parameter read-only list tool with full schema coverage and safety annotations, the description covers what is needed to call it. The only substantive omission is clarifying that 'all' is bounded by the default limit of 30.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented. The description still reinforces the filter semantics by noting results are 'filterable by name', which tells the agent the filter is a substring match on app name — a small value-add over the schema, fitting a 4 rather than the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'List all installed .desktop applications'. The word 'installed' implicitly separates it from list_running_apps, but it never names siblings like launch_app, list_running_apps, or list_installed_packages to make that distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'installed' (as opposed to running apps) and the parenthetical note about name filtering. There is no explicit guidance on when to pick this over list_running_apps or when to follow up with launch_app, so the agent has to infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoryARead-only
List files and directories at a path (sandboxed to home directory)
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Directory path (absolute or ~/relative) | |
| details | No | Include file sizes and modification times (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description contributes one genuinely useful behavioral fact beyond that — sandboxing to the home directory — which constrains what paths will work. It says nothing about hidden files, sorting, symlinks, or error behavior on a missing path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero padding; the core action comes first and the sandbox constraint follows. Nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only listing tool with full schema coverage and annotations, the key operational constraint (home-directory sandbox) is stated. The only remaining gap is the shape of the returned listing, which matters slightly more since no output schema exists, but the tool's nature makes it largely self-evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, including a description for the optional `details` flag, so the schema already carries full parameter meaning. The description mentions only the path concept and adds no syntax or format detail beyond the schema. Baseline 3 applies when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb ("List") plus resource ("files and directories at a path") that clearly separates it from siblings like read_file and file_info, which operate on a single file's contents. The parenthetical adds the operating scope. It stops short of naming a sibling alternative, but the verb/resource pairing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: "at a path" signals directory exploration, and the sibling read_file covers file contents, but the description never states when to prefer this over read_file or file_info, nor any exclusions. An agent can infer the use case but gets no explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_installed_packagesBRead-only
List explicitly installed packages, optionally filtered by name
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 50) | |
| filter | No | Filter by package name substring (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is fully covered. The description adds one genuinely useful behavioral fact beyond that — only explicitly installed packages are returned, not dependencies — but says nothing about default result capping, truncation, or ordering, which matter for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is appropriately sized for a two-parameter read tool, though it spends its only clause on optionality that the schema already conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full schema documentation and no output schema, the essentials are present. The gap is sibling disambiguation against search_package and any hint about result ordering or completeness, which an agent choosing among these listing tools would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both 'limit' (default 50) and 'filter' (substring match) fully described in the schema. The description only restates that filtering is optional and by name, adding no syntax, matching rules, or interaction with limit, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (installed packages) with a meaningful qualifier: 'explicitly installed', which excludes dependencies. An agent can distinguish it from general listing tools, though it never names the closest sibling (search_package) to sharpen the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'explicitly installed' implicitly signals when this is preferred over a broad package search, and 'optionally filtered by name' hints at the filter parameter's use. But there is no explicit when-to-use/when-not guidance nor any mention of search_package as the alternative for broader or non-installed queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_macrosARead-only
List all available macros with their descriptions and steps
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds that each entry includes descriptions and steps, but says nothing about ordering, whether steps are fully expanded, or what happens when no macros exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is lean to the point that it omits return-shape detail, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey what comes back; it says 'descriptions and steps' but not the structure of a step (command? parameters?) or whether macro identifiers are returned for use with run_macro/get_macro. Adequate but leaves a real gap for chaining calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing for the description to disambiguate. Baseline of 4 applies; no misleading parameter talk.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all available macros') and specifies the payload ('with their descriptions and steps'). It implicitly distinguishes itself from get_macro/create_macro/delete_macro, but never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'all available macros' — an agent can infer this is for discovery/enumeration rather than fetching one macro. There is no explicit statement of when to use this versus get_macro or run_macro.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_playersARead-only
List all active MPRIS2 media players
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds only that results are limited to 'active' players, which is useful filtering context, but says nothing about whether an empty list is possible or what identifying fields each player carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single six-word sentence with the scope qualifier front-loaded. There is no filler and nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description is the only place an agent can learn what a returned player looks like (name, bus ID, playback state) or whether the call can return an empty list. For a zero-param enumeration tool that gap is the main remaining deficiency, but the core contract is still intelligible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics for the description to compensate for. Baseline 4 applies; nothing is missing on this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('MPRIS2 media players') with a scope qualifier ('all active'). An agent knows exactly what it enumerates, though it never names or contrasts itself with the related siblings get_media_status, media_play_pause, or media_next.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'list all active' suggests a discovery use case, e.g. before targeting a specific player. It never says when to prefer this over get_media_status, which returns playback state and is the closest sibling, so the agent must infer the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_monitorsARead-only
List all monitors with resolution, refresh rate, scale, and position
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds value by naming the returned fields, which matters since there is no output schema. It does not say whether inactive/disabled monitors are included, what order results come in, or whether it can return empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler; the returned attributes are packed into the same clause rather than a separate bullet list. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, annotation-covered lister with no output schema, knowing the returned fields is the main missing piece and the description supplies it. Minor gaps around scope (all monitors vs. connected only) and ordering keep it from 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and schema coverage is trivially 100%, so there is nothing for the description to disambiguate. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('List all monitors') with the enumerated attributes returned (resolution, refresh rate, scale, position). It is distinguishable from get_focused_monitor and the mutation siblings (set_monitor_scale, enable_monitor, mirror_monitor), though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to call this versus get_focused_monitor or the monitor-configuration tools, and no prerequisites. The only inference available is that a lister precedes set_monitor_scale/mirror_monitor, which the description never says.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notification_historyARead-only
Get recent notification history from dunst
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max entries (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds little beyond that: it doesn't say whether currently displayed notifications are included, the ordering of results, or how far back 'recent' reaches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource front-loaded and no filler. Nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, optional-parameter read tool with annotations and a fully documented schema, this is close to sufficient. The only remaining gap is what 'recent' means and whether results are ordered, which an agent could reasonably want before relying on output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the limit parameter already documents its default of 20 in the schema. The description adds no syntax or semantic detail (ordering, cap, pagination) beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get recent notification history') and names the backend ('from dunst'), which no sibling does. It is unambiguous against siblings such as send_notification or close_all_notifications, though it does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent infers this is the read-side counterpart to send_notification / close_all_notifications. There is no statement of when to prefer this over get_dnd_status or set_notification_paused, and no exclusions offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_processesARead-only
List running processes, optionally filtered and sorted by CPU or memory usage
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort by cpu or mem (default cpu) | |
| limit | No | Max number of processes (default 20) | |
| filter | No | Filter by process name substring (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that filtering/sorting are optional, but says nothing about return shape, ordering guarantees, or pagination behavior beyond the schema defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the core verb and the optional modifiers appear in the right order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with fully documented parameters and annotations covering safety, this is nearly complete. The only genuine gap is that with no output schema, the description never indicates what a process entry contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents sort, limit, and filter in detail. The description only echoes that results can be filtered and sorted by CPU or memory usage, adding no syntax or semantics beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('running processes') plus the capabilities (filter, sort by CPU/memory), so the operation is unambiguous. However, it offers no differentiation from the very similar sibling list_running_apps, leaving an agent to guess which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (inspect running processes, optionally filtered/sorted) but never says when to use this versus list_running_apps or the get_cpu_info/get_memory_info siblings. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_running_appsARead-only
List running GUI applications (from Hyprland's client list)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful provenance ('from Hyprland's client list'), but says nothing about what a client entry contains or how running apps are identified (window vs. process), which would matter for interpreting results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the resource first and the source qualifier in parentheses. No filler, no repetition of the tool name as a standalone clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-arg, read-only list tool with no output schema, the definition supplies the essentials plus data provenance. The only real gap is sibling disambiguation against list_windows and list_desktop_apps, which an agent working in a 130-tool namespace would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless schema applies. No misleading parameter language is present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List running GUI applications') and names the data source (Hyprland's client list), which goes beyond a bare restatement of the name. It does not, however, explicitly distinguish itself from close siblings like list_windows or list_desktop_apps, leaving the agent to infer that one is window-level and the other is installed .desktop entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can guess this is the tool for enumerating currently open GUI apps. No when-to-use/when-not guidance or named alternative (e.g. list_windows for per-window details, list_processes for non-GUI processes) is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_themesBRead-only
List all installed HyDE themes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and locality are covered structurally. The description adds the meaningful qualifier 'installed', indicating only locally present themes are returned rather than remote ones. It does not say whether output is a flat name list, ordering, or whether themes are grouped, which would be useful extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource and scope front-loaded and no wasted words. It is arguably too terse rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-argument read-only list tool this is close to adequate, and annotations carry the safety profile. However, no output schema exists, so the description is the only place to indicate what the returned list looks like, and it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the schema baseline applies; there is nothing for the description to clarify. The description correctly implies the tool takes no arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and scoped resource (all installed HyDE themes), so an agent knows it enumerates not fetches a single theme. It doesn't explicitly distinguish itself from get_current_theme or list_theme_wallpapers, leaving the sibling routing to be inferred from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent would call this to discover valid theme names before set_theme. There is no explicit statement of when to prefer get_current_theme, list_theme_wallpapers, or next_theme/prev_theme instead, and no preconditions given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_theme_wallpapersARead-only
List all wallpaper files for a specific theme
| Name | Required | Description | Default |
|---|---|---|---|
| theme | Yes | Theme name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, covering safety. The description adds the theme-scoping behavior but omits what happens if the theme is invalid, whether results include file paths, or any ordering/caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. The core action and scope are immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one fully documented parameter and safety annotations, the description is mostly complete. It could optionally mention that it returns file paths or what an empty theme yields, but those are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented as 'Theme name'. The description's 'for a specific theme' merely restates this without adding format, validation, or example details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb (List) and resource (wallpaper files) scoped to a theme. It implicitly distinguishes from list_wallpapers and list_themes by the 'for a specific theme' scope, but does not name the sibling alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The requirement of a 'theme' parameter implies usage when a theme is known, but there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives like list_wallpapers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_timersARead-only
List all active timers with their remaining time
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds the useful scope word 'active' (only running timers are returned) and mentions remaining time, but says nothing about ordering, formatting, or what happens when no timers exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loaded with the action and resource. Nothing in it is redundant given the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the full burden of describing the result, and it does so at a high level ('timers with their remaining time'). Slightly more detail on return shape or empty-state behavior would make it complete, but it is sufficient to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema leaves nothing to explain and the description doesn't need to add parameter detail. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('List all active timers') plus a scope qualifier ('active') and a hint at returned content ('remaining time'). It doesn't explicitly contrast with siblings like set_timer or cancel_timer, though those are clearly distinct operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: a read-only listing, so an agent can infer it's for inspecting timers rather than modifying them. There is no explicit when-to-use or when-not-to-use statement, and no reference to cancel_timer/cancel_all_timers as complementary tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wallpapersARead-only
List all wallpaper files in the current theme directory
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the useful scoping fact that results are confined to the current theme directory, but says nothing about return format, ordering, or how empty themes are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the verb and scope front-loaded; there is no filler and nothing an agent must scan past to find the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool with no output schema, the description covers what is enumerated and where. It could go one step further and clarify the relationship to list_theme_wallpapers, but nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate beyond the implicit 'current theme' input, which the schema does not express. Baseline 4 applies for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all wallpaper files') plus a scoping qualifier ('in the current theme directory'), so an agent knows exactly what is enumerated. It is not fully differentiated from the nearby list_theme_wallpapers or get_wallpaper siblings, which leaves a small ambiguity about scope overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope phrase 'current theme directory' implicitly tells the agent when this tool applies (inspecting the active theme's wallpaper pool), but there is no explicit when-not condition and no named alternative for enumerating wallpapers of a different theme.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wifi_networksARead-only
Scan and list available WiFi networks with signal strength
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint already establishes that this is a safe read operation, and the description adds that it scans and reports signal strength. It does not mention scan duration, hardware/driver requirements, or potential permission prompts, so it adds only moderate behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single clear sentence with the core action front-loaded and no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only query with annotations covering safety, the description is almost complete. It could mention that scanning may take time or require WiFi hardware, but for a simple list operation it provides enough to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so parameter semantics are not a meaningful burden. The description correctly focuses on the operation rather than inventing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: scan/list available WiFi networks, and adds that signal strength is included. It is clearly separable from siblings such as connect_wifi, disconnect_wifi, and get_network_status, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: call this to discover nearby networks, likely before connect_wifi. However, it does not state when to prefer it over get_network_status or when not to use it, and no prerequisites such as WiFi being enabled are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_windowsARead-only
List all open windows with title, class, workspace, position, and size
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true and openWorldHint=false already tell the agent this is a safe local read, so the description's main added value is naming the returned fields (title, class, workspace, position, size). It says nothing about ordering, whether hidden/minimized windows are included, or result size, which an agent would want to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence that front-loads the verb and scope, then lists the return fields. Nothing is wasted and nothing essential is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input parameters and no output schema, the description carries the burden of describing the return shape, and it does so by naming the five fields. Missing only secondary details like ordering or inclusion of minimized windows.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is no parameter semantics to explain; the baseline for a zero-parameter schema is 4. The description correctly does not invent options that don't exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('all open windows') and enumerates the fields returned, so an agent immediately knows this is an enumeration tool. It doesn't explicitly differentiate itself from nearby siblings like get_focused_window or list_running_apps, which keeps it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'all' implicitly signals use this when you need the full window set rather than the single focused window, but there is no explicit when-to-use, when-not, or named alternative. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesARead-only
List all active workspaces with their IDs, names, and window counts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds value by disclosing the return contents (IDs, names, window counts) and the 'active' filtering behavior, but says nothing about ordering or whether hidden/inactive workspaces are excluded beyond the 'active' label.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence carrying verb, scope, and return fields with zero filler. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description is nearly complete because it names the fields returned. Minor gap: no mention of result ordering or how empty workspace lists are handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters at 100% schema coverage, so the baseline is 4. There are no parameter semantics to clarify, and the description correctly implies a no-argument list call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (workspaces) with clear scope ('all active') and enumerates the returned fields (IDs, names, window counts). This distinguishes it from get_active_workspace (single) and switch_workspace (mutation), though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'active' hints at scope, but there is no explicit when-to-use guidance, no exclusion criteria, and no reference to alternatives like get_active_workspace or switch_workspace. The agent must infer the use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lock_screenA
Lock the screen using the configured screen locker (swaylock/hyprlock)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the mutation/safety profile is covered. The description adds which locker binaries are used, which is useful context, but says nothing about unlock requirements (password re-entry), whether it is idempotent if already locked, or whether it affects active recordings — real behavioral concerns for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action front-loaded and the mechanism in parentheses. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output tool, the description is sufficient to invoke correctly. It could go further by noting that unlocking requires user credentials or that locking is immediate/irreversible from the agent's perspective, but the core is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The mention of swaylock/hyprlock hints at the implementation but adds nothing parameter-wise, which is fine for an argument-less tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lock) and resource (the screen) and identifies the underlying mechanism (swaylock/hyprlock). No sibling tool competes for this action, so an agent can route to it unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is strongly implied by the nature of a zero-parameter lock action, but the description gives no explicit conditions, prerequisites, or notes about when not to use it (e.g. during recording or projector sessions where siblings exist). Adequate but not instructive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_nextB
Skip to the next track
| Name | Required | Description | Default |
|---|---|---|---|
| player | No | Specific player name (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is known. The description adds nothing beyond the action itself: no note on what happens with no active player, whether it errors, or which player is targeted by default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero filler. It is efficient, though arguably under-specified rather than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial single-action tool with a fully documented optional parameter and no output schema, the description is minimally sufficient. It omits the multi-player targeting case and failure behavior, which an agent may need when several players are available.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional 'player' parameter is documented in the schema, so the baseline of 3 applies. The description never mentions the player-targeting option, adding no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('skip') and resource ('next track'), which is clearly distinct from media_previous and media_play_pause in the sibling list. It does not explicitly name those alternatives, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intent to advance playback is implied by the name and description, but there is no explicit guidance on when to prefer this over media_play_pause, media_seek, or media_previous, nor any note about requiring an active player.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_play_pauseB
Toggle play/pause on the active media player
| Name | Required | Description | Default |
|---|---|---|---|
| player | No | Specific player name (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation/safety profile is covered. The description adds one genuinely useful behavioral detail — that it acts on the *active* player by default — but says nothing about what happens when no player is active or about the toggle's stateful nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with zero filler; every word carries meaning for a tool this simple.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-param, no-output-schema toggle this is nearly sufficient; only the no-active-player fallback is missing. Nothing about return values is needed since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional `player` param is documented in the schema, so the baseline is 3. The phrase "active media player" implicitly clarifies the default when `player` is omitted, a small but real addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Toggle play/pause on the active media player") that an agent can map directly to an action. It does not explicitly distinguish itself from media_stop/media_next/media_seek, but the verb itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named; the agent must infer from sibling names that media_next/media_previous/media_stop are the non-toggle counterparts. No prerequisite or no-active-player behavior is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_previousC
Go to the previous track
| Name | Required | Description | Default |
|---|---|---|---|
| player | No | Specific player name (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false. The description adds no behavioral context beyond the implied action—it does not mention what state changes occur, whether an active player is required, or what happens if no player is available. It does not contradict annotations, but it adds little value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words and is front-loaded with the action. It could be slightly more informative without losing conciseness, but it is structurally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple playback action with full schema coverage and annotations covering safety, the description is minimally adequate. However, it omits useful context such as whether the tool requires an active media player or how the optional 'player' parameter affects behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for the single optional 'player' parameter, so the schema already documents it. The description does not mention the parameter, but baseline 3 is appropriate when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Go to the previous track') with a clear verb and resource. It implicitly distinguishes itself from media_next, but does not explicitly name or contrast with sibling tools such as media_seek or media_play_pause.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives like media_next, media_seek, or media_play_pause. The intended usage is obvious from the name, but the description does not add any context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_seekB
Seek to a position in the current track (in seconds)
| Name | Required | Description | Default |
|---|---|---|---|
| player | No | Specific player name (optional) | |
| position | Yes | Position in seconds (use +N or -N for relative seek) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the mutation profile is covered structurally. The description adds nothing beyond the schema – it doesn't say what happens if no track is active, whether it resumes playback, or how out-of-range positions behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with the key restriction ('current track') front-loaded and zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with full schema coverage and no output schema, the description is close to sufficient. It only lacks edge-case behavior, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents the relative-seek syntax ('+N or -N') and the optional player parameter. The description merely repeats 'in seconds', adding no meaning the schema doesn't already carry, so it sits below the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Seek') plus resource ('position in the current track') lets an agent distinguish it from media_next/media_previous, which change tracks rather than position. It stops short of explicitly naming those siblings, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the media-control vocabulary and the 'current track' scoping. There is no explicit statement of when to use seek versus media_play_pause or media_next, nor any precondition such as requiring an active player.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_stopC
Stop media playback
| Name | Required | Description | Default |
|---|---|---|---|
| player | No | Specific player name (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, and the description adds no behavioral context beyond restating the verb. It doesn't explain playback state after stopping, whether it targets all players or one, or any error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero filler and the action front-loaded. It is efficient, though the brevity comes at the cost of any context that would help selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no required parameters and adequate annotations, so a terse description is defensible. Still, the ambiguity of the optional 'player' argument and the overlap with media_play_pause leave an agent with unanswered questions before invoking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional 'player' parameter is documented in the schema, so the baseline 3 applies. The description doesn't clarify what omitting 'player' means, which is the one thing the schema can't say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Stop media playback'), so the action is unambiguous. It does not differentiate from the closely related sibling media_play_pause or stop_recording, so an agent cannot tell from the description alone which is the right stop-like tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus media_play_pause (which also halts playback) or whether stop differs from pause/resume semantics. Nothing says what happens with no player specified — stop all players, or only the default one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirror_monitorC
Mirror one monitor to another
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source monitor name | |
| target | Yes | Target monitor to mirror to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and closedWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not say whether mirroring persists across reboots, what happens to the target's existing layout/workspaces, or how to undo. For a display-configuration mutation, that is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single six-word sentence with the verb and both operands front-loaded and zero filler. It is efficient, though the terseness edges into under-specification rather than crispness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a system-mutating display tool with no output schema and no annotations explaining effects, the description should say what changes, whether it is reversible, and how it interacts with workspaces. None of that is present, so an agent cannot predict the outcome of the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters documented as monitor names, so the schema does the heavy lifting and the baseline of 3 applies. The description contributes no extra detail such as name format or how to discover valid names via list_monitors.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Mirror one monitor to another'), which distinguishes it from adjacent siblings such as set_monitor_scale, move_workspace_to_monitor, and enable_monitor. It is slightly ambiguous whether this is display duplication or workspace mirroring, but the monitor-domain sibling set makes the intent readable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no conditions for when to use this over alternatives, no prerequisites (e.g., both monitors must be enabled), and no note on how to revert the mirroring. The agent is left to infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_to_scratchpadA
Move the focused window to the special scratchpad workspace
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive mutation (readOnlyHint=false, destructiveHint=false, openWorldHint=false). The description adds the useful fact that the destination is a special scratchpad workspace rather than a numbered one, but says nothing about whether the window becomes hidden, how it is retrieved, or whether it is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler and no redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, non-destructive action with annotations covering the safety profile and no output schema to explain, the description gives the essential scope. Only scratchpad-specific behavior (visibility, retrieval) is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is no schema semantics for the description to compensate for. Baseline 4 applies; nothing is misleading.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Move') and resource ('the focused window') plus the destination ('the special scratchpad workspace'), which clearly separates it from move_window_to_workspace. It does not name the sibling explicitly, but the qualifier 'special scratchpad' is enough for an agent to tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this should be used instead of move_window_to_workspace when the goal is parking a window out of the way. There is no explicit when-to-use/when-not statement or mention of an alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_windowB
Move a floating window by a pixel delta
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Pixel delta for X axis | |
| y | Yes | Pixel delta for Y axis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state this is a non-read-only, non-destructive, closed-world mutation, so safety framing is covered. The description adds the relative-delta nature of the change, but omits key behavioral facts: which window is targeted, what happens if the window is tiled, and whether movement is clamped to screen bounds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no filler and the key constraint ('floating') front-loaded. It is efficient, though the terseness leaves room for a clarifying clause at no real length cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter, no-output-schema tool this is nearly adequate, but the agent still cannot determine the target window or the behavior on non-floating windows from description, schema, or annotations alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both properties are documented as 'Pixel delta for X axis'/'Y axis'. The description's 'by a pixel delta' merely restates that, adding no new meaning such as sign conventions or whether negative values move left/up.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Move a floating window') plus the unit of motion ('by a pixel delta'), which cleanly separates it from resize_window and move_window_to_workspace. Sibling differentiation is implied by 'floating' but the description never explicitly says tiled windows are excluded.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'floating' hints at the precondition, but there is no explicit 'use this when…' guidance, no mention of which window is affected (focused window assumed), and no named alternative for windows that are tiled or for absolute positioning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_window_to_workspaceB
Move the focused window to a specific workspace number
| Name | Required | Description | Default |
|---|---|---|---|
| silent | No | If true, don't follow the window (default false) | |
| workspace | Yes | Target workspace number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the mutation/safety profile is carried by structured fields. The description adds nothing beyond them: it does not say whether the window follows to the new workspace (the schema's 'silent' does), what happens if the target workspace does not exist, or how the move affects the current workspace. With annotations covering safety, a middling 3 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero padding, and the subject ('focused window') and target ('workspace number') are front-loaded. Nothing in it is wasted or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with full schema coverage, no output schema, and annotations supplying the safety profile, this is close to sufficient. The remaining gap is behavioral edge cases (invalid workspace numbers, whether the workspace must already exist) that an agent might want before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented inline (workspace as 'Target workspace number', silent as 'If true, don't follow the window'). The description adds no format or edge-case detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and object ('Move the focused window') plus the target resource ('a specific workspace number'), which is more precise than a bare name restatement. It is distinguishable from switch_workspace or move_window by the 'focused window' subject, though it never names those siblings to sharpen the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance appears beyond the implicit action itself. Nothing tells the agent how this differs from move_window, move_workspace_to_monitor, or switch_workspace when choosing among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_workspace_to_monitorA
Move a workspace to a different monitor
| Name | Required | Description | Default |
|---|---|---|---|
| monitor | Yes | Monitor name (e.g. 'eDP-1', 'HDMI-A-1') | |
| workspace | Yes | Workspace number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-open-world operation, and the description aligns with that. However, it does not explain side effects such as whether the workspace must already exist, what happens to windows on it, or whether invalid monitor names fail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no wasted words and the action is front-loaded. It is perhaps overly terse, but it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter operation with full schema descriptions and clear annotations, the description is mostly sufficient. Minor edge-case behavior is omitted, but an agent has enough to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters and their meanings are already documented in the schema. The description adds no additional parameter semantics beyond the operation itself, matching the baseline for fully documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: moving a workspace to a different monitor. It is clearly distinguishable from window-moving and workspace-switching siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied by the action itself, but the description does not state when to use this instead of switch_workspace, move_window_to_workspace, or monitor-related tools. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
next_themeB
Cycle to the next HyDE theme
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false with destructiveHint=false, so the agent knows state changes, but the description adds nothing about what actually changes (wallpaper, colors, waybar?), whether cycling wraps at the last theme, or whether the change is immediate. For a zero-param mutation with no output schema, the return value is also unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. Brevity here is appropriate for a zero-argument tool; the shortfall is in substance, not structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple signature and no output schema keep the bar low, but the description still omits wrap-around behavior and the scope of the theme change, which an agent needs to avoid surprising side effects. Adequate but with a visible gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the schema baseline is 4. There is nothing parameter-related the description could clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Cycle') and resource ('HyDE theme') with directional qualifier 'next', which implicitly separates it from prev_theme and set_theme. It is clear what the tool does, though it never names the sibling it contrasts with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus set_theme (explicit selection), list_themes (discovery), or prev_theme (reverse direction). The agent must infer that this is a relative stepping operation from the word 'next' alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
next_wallpaperA
Switch to the next wallpaper in the current theme rotation
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as non-read-only, non-destructive, and closed-world, so the safety profile is covered. The description usefully adds that the change is confined to the current theme's rotation, but it omits behavior at the end of the rotation (wrap-around or error), side effects, and any return confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; every phrase (verb, resource, rotation scope) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-arg, non-destructive action with annotations carrying the safety profile and no output schema, the description is nearly sufficient. The one real gap is edge-case behavior at the last wallpaper in the rotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters with 100% schema coverage, so nothing needs documenting. The description adds no parameter meaning because none exist, which meets the baseline for a no-arg tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('switch to the next') and resource ('wallpaper'), plus the scope constraint 'in the current theme rotation', which separates it from set_wallpaper and prev_wallpaper without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this over alternatives such as set_wallpaper, next_theme, or list_theme_wallpapers. The 'current theme rotation' phrase hints at the rotation context, but nothing states when-not or references a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
next_waybar_modeA
Cycle to the next waybar layout mode
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clarifies that this is a mutation action ('Cycle'), which the annotations confirm by setting readOnlyHint: false. This adds necessary behavioral context that a simple 'null' schema could not convey, ensuring the agent understands the state change involved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise, consisting of a single, highly effective sentence. It includes zero superfluous words and is front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (0 parameters, high sibling context), the description provides a complete operational definition. The agent needs nothing more to understand the tool's function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero input parameters, the baseline score is high. The description successfully captures the semantic intent of the action—what happens to the waybar layout—in a concise manner, adding value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Cycle') and resource ('waybar layout mode'), making the purpose immediately clear. It distinguishes this sequential action from other siblings like 'get_waybar_mode' or 'set_waybar_mode'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description serves as a direct guide on when to use the tool: specifically to move to the subsequent layout state. Given the existence of 'prev_waybar_mode' as a sibling, the guidance is clear enough to differentiate its purpose as a forward-cycle operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
next_workspaceB
Switch to the next workspace
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds nothing beyond those annotations: no statement of wrap-around behavior at the last workspace, whether a new workspace is created, or whether it follows monitor focus.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the action front-loaded. It is arguably too terse rather than bloated, so it loses a point only for missing useful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, non-destructive tool with annotated safety hints, the description is close to sufficient, but the notable behavioral question (wrapping at the last workspace) is left unanswered and no output schema exists to cover it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate and the schema is trivially complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Switch to the next workspace') that clearly identifies the action, and it is readily distinguishable from prev_workspace by the word 'next'. It does not, however, contrast itself with switch_workspace (absolute) in the text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer it cycles forward one workspace, but there is no explicit statement of when to prefer this over switch_workspace or prev_workspace, and no mention of edge cases like being on the last workspace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_file_managerC
Open the file manager at a given path
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Directory path to open (default: home) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of whether the call blocks, what happens with an invalid or non-existent path, or whether it launches a new process or focuses an existing window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the key action is front-loaded. It is efficiently sized, though so terse that it omits behaviorally useful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter GUI-launch tool with annotations and no output schema, the description is barely sufficient. It does not address error behavior on invalid paths or whether the operation is synchronous, which an agent would want to know before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'path' carries its own description including the home default. The description's 'at a given path' merely restates the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Open the file manager at a given path'. This is distinguishable from siblings like open_url, open_terminal, and launch_app because it names the file manager explicitly, though it never contrasts itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus open_terminal or open_url, and no mention of prerequisites (e.g., a desktop session must exist). Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_terminalC
Open a new terminal window, optionally with a command or working directory
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory (optional) | |
| title | No | Terminal window title (optional) | |
| command | No | Command to run in the terminal (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say it is a non-read-only, non-destructive, closed-world call. The description adds nothing about what actually happens: whether the command runs in an interactive shell, whether it blocks, which emulator/shell is used, or what is returned (no output schema exists to fill that gap).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the action and its optional modifiers come first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a process-spawning tool with no output schema and no annotations covering side effects, the description leaves out the information that matters most to an agent: whether the call returns immediately or waits, and what handle/result it yields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has its own description, so the baseline applies. The description echoes 'command' and 'working directory' but omits 'title' and adds no format detail (e.g., shell syntax, whether command is run via sh -c).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Open a new terminal window'. The optional command/cwd mention scopes it further. It does not distinguish itself from near-neighbors like launch_app or open_url, but no sibling appears to be a competing terminal tool, so ambiguity is low.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over launch_app/open_url/open_file_manager, nor any note that it spawns a terminal emulator process. The agent must infer the use case entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_urlB
Open a URL in the default browser
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to open |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds only the useful detail that the URL opens in the default browser; it says nothing about scheme handling, whether the call blocks, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero waste and the key information front-loaded. It is arguably too terse for a side-effecting tool, but nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with a complete schema and safety annotations, the basics are covered. Missing are the edge behaviors an agent would want before calling: URL validation/scheme requirements and whether the call confirms the browser actually launched.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single required parameter with 100% schema description coverage, so the schema already documents it. The description adds no format or validation detail (e.g., required scheme prefix) beyond 'URL to open', which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource: 'Open a URL in the default browser' tells an agent exactly what happens and where it happens (default browser, not a specific app). It doesn't distinguish from siblings like launch_app or projector_open_url, but the action itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus launch_app, open_file_manager, or projector_open_url. The agent must infer that this is for http(s)-style links and the projector variant is for the projector surface, with no stated exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paste_from_historyA
Copy a specific clipboard history entry to the active clipboard by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Cliphist entry ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the annotations: it writes to the active clipboard, matching readOnlyHint=false, and it does not destroy the history entry, matching destructiveHint=false. It does add the useful note that an existing clipboard value is replaced, but says nothing about error behavior for invalid IDs or what is returned on success.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero wasted words, and the action and target are front-loaded so an agent can act immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with a fully documented schema, this is nearly complete. The only remaining gap is what happens on an invalid ID or whether a confirmation is returned, which a brief clause could have covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented as 'Cliphist entry ID'. The description's 'by its ID' adds no format or sourcing detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Copy') and resource ('clipboard history entry') with the mechanism ('to the active clipboard by its ID'). This clearly distinguishes it from list_clipboard_history, get_clipboard, and delete_clipboard_entry, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by its ID' implies the agent must first obtain an ID (e.g. via list_clipboard_history), but this workflow is left implicit. There is no stated exclusion or named alternative for the other clipboard tools in the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pick_colorARead-only
Open an on-screen color picker and return the selected hex color
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds that a picker window is shown and a hex string returned, but omits the key behavioral traits: that the call blocks until the user acts, and what is returned if the user cancels or dismisses the dialog.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action and result front-loaded. No filler, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an interactive, human-in-the-loop tool with no output schema, the description should cover blocking behavior and the cancellation/error case. Neither is present, leaving an agent unable to anticipate a hang or an empty result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; the description does not need to explain any inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Open'), resource ('on-screen color picker') and outcome ('return the selected hex color'). It implicitly differentiates from pick_color_to_clipboard by emphasizing the returned hex value, but never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for grabbing a color via a user-facing picker. There is no statement of when to prefer this over pick_color_to_clipboard, nor any precondition (e.g., that a GUI session and human interaction are required).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pick_color_to_clipboardA
Pick a color from the screen and copy the hex value to clipboard
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with annotations: readOnlyHint=false because it writes the clipboard, destructiveHint=false because the picker itself is harmless. It adds what gets written (the hex value) but not that existing clipboard contents are overwritten, nor that the operation is interactive and may block waiting for a screen selection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a clear verb, source, and destination. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should say whether the hex value is also returned or only placed on the clipboard, and whether the call is interactive/blocking. For a trivially simple tool this is a modest gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies the operation is parameterless and driven by on-screen interaction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (pick color from screen) and its side effect (copy hex to clipboard), which is more than the bare name conveys. It partially distinguishes itself from the sibling pick_color by naming the clipboard write, but never explicitly contrasts the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied – an agent can infer this is the variant that puts the result on the clipboard. There is no explicit when-to-use versus pick_color, and no statement of prerequisites such as needing an interactive user click or a display server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pin_windowA
Toggle always-on-top pin on the focused window
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so safety is covered. The description adds two genuinely useful traits: the operation targets the implicitly focused window (no selector parameter), and it is a toggle, meaning a second call reverts state and there is no way to set pinning explicitly. It omits return-value/confirmation behavior, but that is minor for this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the effect and the target are both stated in the first few words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter action tool with annotations covering safety and no output schema, the description provides what an agent needs to call it. Only minor gaps remain (behavior with no focused window, whether success is reported).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline there is nothing for the description to disambiguate; the schema is fully descriptive in that it is empty. The description correctly signals the target is implicit rather than parameterized.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and effect ('Toggle always-on-top pin') plus the exact target ('the focused window'), which is enough to distinguish it from siblings like toggle_float or toggle_fullscreen. It does not explicitly name those siblings as alternatives, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'focused window' — the agent must have a window focused, and the operation is a toggle, not an explicit on/off set. No guidance is given on when to prefer this over toggle_float/toggle_fullscreen or what happens when no window is focused.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prev_themeB
Cycle to the previous HyDE theme
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered, and the description is consistent with a state-changing op. Beyond that, the one-line description adds little: it doesn't say whether cycling wraps around at the first theme, whether wallpaper/colors change alongside the theme, or whether the choice persists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the verb and direction front-loaded and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param tool with annotation coverage and no output schema, the definition is minimally workable, but important behaviors (wrap-around, side effects on wallpaper/colors, persistence) are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with direction ("cycle to the previous HyDE theme"), which cleanly separates it from next_theme and set_theme. It doesn't explicitly name those siblings, keeping it just 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the directional wording 'previous'; there is no statement of when to prefer this over set_theme or next_theme, and no prerequisites mentioned. An agent can infer intent from the name and siblings, but nothing is spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prev_wallpaperA
Switch to the previous wallpaper in the current theme rotation
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as non-read-only but non-destructive, so the mutation profile is covered. The description adds that it operates within the current theme rotation, which is useful scope context, but says nothing about wrap-around at the first wallpaper or whether the change is immediate/persistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with the action and scope stated immediately and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, no-output-schema toggle tool with annotations covering its safety profile, the description is nearly sufficient. Only edge behavior (wrap-around, applied immediately) is unstated, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing for the description to clarify; baseline 4 applies. The 'current theme rotation' phrasing gives a small hint about which selection space is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (switch to previous wallpaper) and scopes it to the current theme rotation. The 'previous' qualifier implicitly distinguishes it from next_wallpaper/set_wallpaper/get_wallpaper without naming them, so an agent can still route correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'previous' — step backward in the rotation — but there are no explicit when-to-use/when-not conditions and no sibling alternatives (e.g. next_wallpaper) named. Adequate but leaves the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prev_waybar_modeA
Cycle to the previous waybar layout mode
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the mutation-but-safe profile is covered. The description adds nothing about whether cycling wraps around at the first mode, how many modes exist, or whether the new mode is reported back — real behavioral gaps for a state-changing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the action and target, with no filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and non-destructive read-write annotations, the definition is minimally sufficient. It still leaves open the wrap-around behavior at the end of the list and whether the resulting mode is surfaced to the caller, both of which matter for chained agent actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate beyond what the empty schema already shows; baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Cycle to the previous') and resource ('waybar layout mode'), which an agent can immediately distinguish from next_waybar_mode and set_waybar_mode. It does not explicitly name those siblings, but the directional wording makes the distinction obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'previous' signals directional stepping versus a direct set_waybar_mode call, but the description never states when to prefer one over the other or what happens at the boundary of the mode list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prev_workspaceB
Switch to the previous workspace
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this mutates state (readOnlyHint=false) without being destructive, so the description need only add context — yet it adds none. It does not say what happens when already on the first workspace (wrap-around vs no-op), whether focus follows, or whether any confirmation/response is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is arguably too terse rather than padded, which is a completeness issue rather than a structure issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter navigation tool with no output schema this is close to sufficient, but the one behavior an agent actually needs — edge-of-list behavior and side effects on focus — is left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing parameter-related the description could usefully add, and it correctly implies no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('switch to') and resource ('previous workspace'), and the directionality distinguishes it from next_workspace and switch_workspace. It is clear without needing to open any schema, though it never names the siblings it differs from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus switch_workspace (absolute) or next_workspace (opposite direction). An agent must infer the distinction from naming convention alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_brightnessC
Set the projector screen brightness (0-255).
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | Brightness level 0-255 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: it doesn't say whether the setting persists, which output is targeted when multiple projectors exist, or what happens if the projector is asleep, and the 0-255 range it mentions is already in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler, but the '(0-255)' parenthetical duplicates the schema and thus doesn't earn its place. Efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-param setter with full annotation coverage and no output schema, the description is minimally adequate. It omits error/edge behavior (no projector present, projector asleep) and any indication of the resulting state, which would be the only value it could add here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single documented 'level' parameter (0-255), so the description's range restatement is redundant rather than additive. Baseline 3 applies when the schema fully carries parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Set the projector screen brightness') plus the value range, so the action is unambiguous. It does not distinguish itself from the system-brightness siblings (set_brightness, increase_brightness), leaving the agent to infer 'projector' vs. display scope from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no prerequisites (e.g., projector must be awake/connected), and never names an alternative such as set_brightness or projector_wake. Usage is only inferable from the tool name, not from the description text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_fullscreenA
Enable fullscreen immersive mode on the projector (hide status bar and navigation).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-readOnly but non-destructive, closed-world action, and the description usefully adds what actually changes on screen (status bar and navigation hidden). However, it omits whether the state persists, whether there is any way to exit immersive mode, and whether an active projector session is required — important for a mutation with no undo path documented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and then the visible effect. No filler, no redundancy with the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param state-changing command this is close to sufficient, but it leaves out how to reverse the immersive mode and how it relates to the various other projector_* and toggle_fullscreen siblings. There is no output schema, so nothing needs explaining about return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema confirms an empty object, so there is nothing for the description to disambiguate; baseline 4 applies. No misleading parameter hints are present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Enable fullscreen immersive mode on the projector') plus the concrete effect (hides status bar and navigation). It is clear what it does, but it does not distinguish itself from the sibling toggle_fullscreen, which an agent could easily confuse this with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Enable' (a one-way activation, not a toggle), but the description never says when to prefer this over toggle_fullscreen or projector_setup, nor whether the projector must be set up/woken first. No alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_open_urlC
Open a URL on the projector browser.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to open on the projector |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is not read-only, not destructive, and closed-world, so the safety profile is covered. The description adds nothing further: no mention of whether the page replaces the current one, whether it steals focus, whether a projector session must exist, or what is returned. For a mutation tool that reroutes display state, this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb and resource. It is efficient, though so terse that the brevity borders on under-specification rather than genuine economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one string param, no output schema, annotations present), so heavy documentation isn't needed. Still, an agent cannot tell from this description whether the projector must be awake or set up beforehand, or whether opening a URL disrupts current projector content — both relevant given the surrounding projector_* tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One required parameter with 100% schema description coverage, so the schema already defines 'url' as the URL to open. The description contributes no format constraints (scheme requirements, local file vs http, length limits), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Open a URL') and scopes it to 'the projector browser', which helps separate it from the generic sibling open_url. It's clear but does not fully articulate how it differs from open_url beyond the target surface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this rather than open_url, or whether the projector must be awake/configured first (siblings projector_wake, projector_setup, projector_status imply prerequisites). No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_reloadA
Reload the current page on the projector browser.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the agent knows this is a non-destructive local state change. The description adds nothing further — it does not mention that reloading discards the page's in-memory state (scroll position, unsaved form input) or what happens if the browser is asleep. Adequate but thin given annotations carry the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb, with zero redundant clauses. Nothing could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema tool with a non-destructive annotation profile, this is close to complete; the agent can call it correctly from the description alone. The only missing piece is behavioral detail about what the reload does to page state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies. There is no argument syntax an agent could get wrong, and the description's 'current page' wording confirms no target needs to be supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (reload) and a specific resource (the current page in the projector browser), which is enough to distinguish it from siblings like projector_open_url, projector_sleep, or projector_wake. It stops short of anything beyond the bare action, but the action itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to reload versus, say, calling projector_open_url again or waking the projector. The usage is only implied by the verb 'reload' and the 'current page' scope, leaving the agent to infer the trigger conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_scanARead-only
Scan the local network for Android devices that could be projectors. Uses nmap to find devices on port 5555.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true), so the bar is lower. The description adds useful context about the nmap dependency and the port-5555 probing strategy, but omits scan duration, network-permission requirements, and how candidates are identified—real gaps for a network scan.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the primary purpose is front-loaded and the implementation detail follows as supporting context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There's no output schema, so the description is the only place an agent could learn what a scan returns (IP addresses, device names, counts, or empty results). It never describes the result shape or failure modes, leaving a meaningful hole for a discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case; the description correctly implies the scan target is implicit (the local network, not a caller-supplied range).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb plus resource: scans the local network for Android devices that might be projectors, and names the discovery mechanism (nmap on port 5555). It clearly differs from the projector_* siblings, which act on an already-known projector, though it doesn't say so explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the discovery step that precedes projector_setup/connect, but the description never states when to run it, whether it should precede setup, or what to do if multiple candidates are found.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_screenshotCRead-only
Take a screenshot of the projector screen and save it locally.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Output file path (default: /tmp/projector-screenshot.png) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, but the description says 'save it locally', which creates a file and is a write side effect inconsistent with read-only semantics. The description also gives no details about overwrite behavior, permissions, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It is appropriately sized for a low-complexity screenshot tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers the sole parameter and the annotations cover safety/open-world context, so the basic shape is complete. However, the description omits alternative-selection guidance and does not reconcile the local file write with the readOnlyHint=true annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'output', is fully described in the schema with its default path, so schema coverage is 100%. The description adds only 'save it locally' and does not provide path or format details beyond what the schema already supplies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('take a screenshot') and resource ('projector screen'), plus local saving. It is clear, but it does not explicitly distinguish this from sibling screenshot tools such as screenshot_full, screenshot_monitor, or screenshot_to_clipboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many other screenshot tools or projector tools. An agent must infer that it is specifically for the projector screen rather than a generic monitor/full-screen capture, and no alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_setupA
Configure projector connection. Sets IP address, ADB port, Fully Kiosk Browser password and the dashboard URL. Run this first before using other projector tools.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | Projector IP address on local network | |
| adb_port | No | ADB port (default: 5555) | |
| fkb_port | No | Fully Kiosk Browser port (default: 2323) | |
| fkb_password | No | Fully Kiosk Browser remote admin password | |
| dashboard_url | No | Page that projector_show_dashboard opens |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false, readOnlyHint=false and openWorldHint=false, so the safety profile is covered. The description adds the valuable prerequisite/ordering constraint, but says nothing about whether settings persist, whether re-invocation overwrites previous values, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose and ending with the critical ordering instruction. No redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, 1-required setup tool with no output schema, the description covers purpose, fields, and the prerequisite. The main gap is behavior on re-run (does it replace or merge config), which matters for a stateful setup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter carries its own description including defaults (5555, 2323). The description only restates the field names, so it adds no semantics beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (configure) and resource (projector connection) and enumerates the exact settings it controls (IP, ADB port, FKB password, dashboard URL). This clearly separates it from the projector_* action siblings like projector_wake or projector_show_dashboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to run this first before using other projector tools, which is a strong ordering/prerequisite cue. It does not state when not to use it (e.g., re-running overwrites existing config) or name alternatives, so it stops 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.
projector_show_dashboardA
Open the configured dashboard URL on the projector in fullscreen.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false and readOnlyHint=false, so the safety profile is covered. The description adds the useful facts that the URL is pre-configured and the display will be fullscreen, but it omits what happens if no dashboard is configured or which monitor is targeted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause (open, configured dashboard URL, projector, fullscreen) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, non-destructive action with no output schema and annotations covering safety, this is nearly complete. Only the failure mode (no configured dashboard) and the return/confirmation behavior are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. The description still adds value by making clear the URL is configured rather than supplied, telling the agent not to look for a URL argument.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (open), a specific resource (the configured dashboard URL), the target device (projector), and the mode (fullscreen). It implicitly distinguishes itself from projector_open_url by emphasizing the URL is pre-configured rather than passed in, though it never names that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of the nearest alternative, projector_open_url, nor any stated prerequisite such as a dashboard needing to be configured first. Usage is only inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_sleepA
Put the projector screen to sleep (turn off display).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is not read-only, not destructive, and closed-world, so the agent knows it changes state safely. The description adds that the action turns off the display, but it does not mention how the screen is woken (e.g., projector_wake) or whether this affects projector state beyond display output. With annotations carrying the safety profile, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the key operation front-loaded and a clarifying parenthetical. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema action, the description is nearly complete. It could improve by mentioning the counterpart wake tool or any state implications, but nothing critical is missing for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description does not need to explain parameter meaning, and no parameter details are missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Put to sleep') and resource ('projector screen'), with a parenthetical clarifying that this means turning off the display. It is clear what the tool does, though it does not explicitly distinguish itself from sibling tools like projector_wake or set_monitor_dpms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the word 'sleep' and the parenthetical, but there is no explicit statement of when to use this instead of related tools such as projector_wake or disable_monitor. The context is clear enough for a simple action, but alternatives are not named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_speakC
Make the projector speak text using text-to-speech.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to speak |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-destructive, non-open-world behavior, so the safety profile is covered. The description adds only that audio is produced via TTS, which is implied by the name, and says nothing about blocking behavior, duration, or whether a projector/TTS dependency must be active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficient sentence with the action front-loaded and no filler. It is bordering on under-specified rather than verbose, but structurally it is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with annotations covering safety, the definition is minimally adequate. It omits whether the call is synchronous, what happens on failure if the projector is off, and any volume/length considerations, which a user of a physical-output tool would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter with 100% schema description coverage ('Text to speak'), so the schema carries the full burden and baseline 3 applies. The description adds no formatting, length, or voice hints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('make the projector speak text') plus the mechanism (text-to-speech), which distinguishes it from the other projector_* siblings like projector_show_dashboard or projector_screenshot. It does not explicitly name an alternative, but the action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives (e.g., send_notification for text output, or other projector tools), and no preconditions such as needing the projector running or a TTS engine available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_statusARead-only
Check projector connection status. Tests ADB and Fully Kiosk Browser connectivity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is clear. The description adds that the tool actually tests ADB and Fully Kiosk Browser connectivity, which is useful behavioral context beyond the annotations, but it does not describe failure behavior, timeout characteristics, or what a successful status report contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste. The core purpose is front-loaded, and the second sentence adds specific context about which connectivity layers are checked.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only diagnostic with no parameters and no annotations beyond readOnly/openWorld, the description is adequate but thin. It does not say what the status result includes (e.g., whether each connectivity layer reports connected/disconnected separately), which would help an agent interpret the output since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to clarify. Baseline score of 4 applies for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Check projector connection status') and adds what connectivity is tested (ADB and Fully Kiosk Browser). It is clearly a read-only diagnostic, distinguishable from siblings like projector_wake or projector_scan, though it does not explicitly name or contrast those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the diagnostic nature of the tool: an agent would call it to verify projector connectivity. However, the description gives no explicit when-to-use guidance, prerequisites, or alternatives such as whether to call projector_scan first or what to do if the check fails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projector_wakeA
Wake up the projector screen (turn on display).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a mutating but non-destructive, non-open-world operation, so the safety profile is covered. The description adds only that the effect is turning on the display; it does not say whether the call is idempotent when already awake, how long wake takes, or what happens if the projector is unreachable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with a parenthetical that adds real disambiguation rather than redundancy. No wasted words, and the action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, single-effect tool with no output schema, the description covers what the agent needs, but it omits the state/failure behavior an agent would want before invoking a hardware action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema takes zero parameters, which is the baseline-4 case; there is nothing for the description to add or omit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (wake) and resource (projector screen) plus a clarifying gloss '(turn on display)', which disambiguates from set brightness or fullscreen siblings. It doesn't explicitly reference the complementary projector_sleep, so it falls short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The name and description imply when to use it (to turn the display on), and the sibling set contains projector_sleep which makes the inverse obvious, but the description itself names no alternatives, prerequisites, or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileARead-only
Read the contents of a file (sandboxed to home directory). Use for configs, logs, scripts.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path (absolute or ~/relative) | |
| max_lines | No | Max lines to return (default 200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds important behavioral context by noting that reads are sandboxed to the home directory, though it does not discuss truncation, errors, or binary handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted text. The core action and sandbox constraint are front-loaded, and the usage examples follow efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple file-read tool with rich schema coverage and clear annotations, the description supplies the key scope and use-case context. It could be slightly more complete by mentioning return/truncation behavior, but no output schema exists and the description remains adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are documented in the schema. The description does not add parameter-specific meaning beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Read the contents of a file') and adds scope ('sandboxed to home directory'). This clearly separates it from write_file, list_directory, and file_info by intent, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete usage context ('Use for configs, logs, scripts'), which helps an agent decide when this is appropriate. It does not explicitly state exclusions or point to alternatives such as list_directory or file_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_windowA
Resize the focused window by a pixel delta
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | Pixel change for width (negative to shrink) | |
| height | Yes | Pixel change for height (negative to shrink) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive, non-open-world mutation, so the safety profile is covered. The description adds the important behavioral detail that the operation targets the currently focused window and applies a relative delta, but says nothing about size clamping, minimum dimensions, or failure modes (e.g., no focused window).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource, with zero filler. Nothing could be removed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-output-schema window mutation with annotations covering safety, the description plus schema is close to sufficient. Minor gap: it doesn't note that a focused window must exist or what happens on extremes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already explains that width/height are pixel changes with negatives shrinking. The description reinforces the delta semantics with 'by a pixel delta', but adds no format, unit, or range detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (resize) and resource (the focused window) plus the mode of operation (pixel delta), which is far more precise than the name alone. It doesn't explicitly differentiate itself from siblings like move_window or toggle_fullscreen, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'focused window' – the agent infers a window must be focused first – but there is no explicit when-to-use guidance, no mention of alternatives such as move_window for position changes or toggle_fullscreen for size toggling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_macroB
Run a named macro (predefined chain of tools). Macros are defined in ~/.config/hypr/macros.json
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Macro name to run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false; the description usefully explains that a macro is a chain of tools, which accounts for the non-read-only flag while promising no destruction. It does not say what happens when the name is unknown, whether execution stops on a failing step, or how results are reported back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that are front-loaded with the action and waste nothing. The second sentence is genuinely informative rather than filler, though the config-path detail is more context than an agent typically needs to make the call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that fans out into an arbitrary chain of other tools with no output schema, the description should describe the shape of the result and error behavior on a bad or partially failing macro. It covers what a macro is and where it lives but leaves the execution semantics opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'name' parameter is already documented as 'Macro name to run'. The description adds the useful fact that names resolve against ~/.config/hypr/macros.json, but supplies no naming format or case-sensitivity detail beyond that. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run a named macro') and clarifies that a macro is a predefined chain of tools, which separates it from the sibling list_macros/get_macro/create_macro/delete_macro set by verb alone. It never names those siblings explicitly, so the differentiation is implicit rather than spelled out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to invoke this versus calling the underlying tools directly, and no mention that a macro name must first be discovered via list_macros or get_macro. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshot_fullA
Take a screenshot of all monitors and save to ~/Pictures/Screenshots/
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the non-read-only, non-destructive, local-only profile; the description adds the concrete output directory, which is real added value. It stays silent on what the call returns (no output schema exists) and on the generated filename, so the agent cannot know whether a path comes back or must be guessed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the action, scope and destination in order; nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a side-effecting capture tool with no output schema and no annotations about returns, the description should state what is returned (file path? confirmation?) and whether the directory is created if missing. The destination is covered; the result contract is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline for a parameterless tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource with a scope qualifier ('all monitors') that implicitly separates it from screenshot_monitor, screenshot_region and screenshot_window. It never names those siblings, so the differentiation is left for the agent to infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'all monitors' scope implies when this is the right choice versus the single-monitor/region/window variants, but no alternative is named and there is no explicit when-to-use or when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshot_monitorA
Take a screenshot of the currently focused monitor
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false and openWorldHint=false, lowering the disclosure bar. However, the single most important behavioral fact for a capture tool — where the image is written (path, filename, clipboard?) — is absent, and readOnlyHint=false suggests a side effect the description never explains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and the scope, with no filler or restated title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description must carry the burden of explaining the result, and it does not say where the screenshot goes or what is returned. It is adequate to invoke but incomplete for predicting the outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; the description does contribute the one meaningful semantic fact, that the target is the focused monitor rather than any other screen.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Take a screenshot') and a precisely scoped resource ('the currently focused monitor'), which implicitly contrasts with the sibling variants screenshot_full, screenshot_region and screenshot_window. It stops short of naming those siblings, so the distinction is inferred rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'currently focused monitor' implies when to choose this over the full/region/window variants, but the description never states an explicit alternative or a when-not condition. An agent can guess the routing but is not told it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshot_regionA
Take a screenshot of a user-selected region (opens slurp selector)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The parenthetical '(opens slurp selector)' usefully discloses that the tool is interactive and blocks on a user selection — valuable context beyond the annotations, which only say it is non-read-only and non-destructive. But it never says what happens to the captured image (saved to disk, returned, or placed on the clipboard), which is the single most important behavioral fact for a screenshot tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the scope stated first and the interactivity note as a compact parenthetical. Nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool the description covers what it does and how the region is chosen. The remaining gap is the fate of the resulting image, which matters more here because no output schema exists to convey it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline of 4 applies; the description correctly implies the region is supplied interactively rather than via arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (take screenshot) and a precise scope (user-selected region), which implicitly separates it from screenshot_full, screenshot_monitor, and screenshot_window. It does not name those siblings, so the differentiation is inferred rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'user-selected region' implies the condition for use, but there is no explicit when/when-not guidance and no alternatives are named despite four closely related screenshot siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshot_to_clipboardA
Take a screenshot of a region and copy directly to clipboard (no file saved)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (destructiveHint=false, openWorldHint=false, readOnlyHint=false), so the description need only add context; it does add that no file artifact is created. However, the two traits that matter most are missing: it silently overwrites whatever is currently on the clipboard, and 'a region' with zero parameters implies an interactive user-driven selection that may block the call. Neither is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the action front-loaded and the key differentiator (clipboard, no file) in a compact parenthetical. No filler, nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no parameters, so the description carries the full burden for a zero-arg tool, and it omits the things an agent actually needs: whether the call blocks on user interaction, and whether it returns anything (dimensions, path, success flag). It is adequate to know what the tool does, but not to predict what invoking it will do to the session or the clipboard.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4 and there is no schema surface for the description to compensate for. The one thing worth explaining — how the region is determined without any region argument — is left unaddressed, which is a small deduction from an otherwise trivially satisfied dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource + destination: 'take a screenshot of a region' and 'copy directly to clipboard (no file saved)'. The 'no file saved' clause implicitly separates it from the screenshot_full/region/window siblings, which presumably write files, though it never names them. An agent can tell what the tool produces, but must infer the distinction from the sibling family rather than being told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'no file saved' parenthetical implies the selection condition (want the image on the clipboard, not on disk), but no alternative is named and no explicit when-to-use guidance is given. No prerequisites or preconditions (e.g. an interactive selection step) are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshot_windowB
Take a screenshot of the currently focused window
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the agent knows this is non-destructive but has a side effect. The description adds nothing about that side effect: it does not say whether the image is saved to a file, returned as data, or placed on the clipboard (especially relevant given screenshot_to_clipboard exists as a sibling). No capture timing, display, or failure behavior is described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the scope qualifier up front and zero filler. For a zero-parameter tool this is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-param capture tool with no output schema, the missing piece is the destination of the captured image and any return value, which the description is silent on. Annotations cover the safety profile, but the agent still cannot predict what it gets back or where the file lives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case; there are no argument semantics to explain. The description correctly conveys that the target is implicit ('currently focused window') rather than selectable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Take a screenshot of the currently focused window'), and the scope qualifier 'currently focused window' implicitly separates it from screenshot_full, screenshot_monitor, and screenshot_region. It never names those siblings, so differentiation relies on the agent noticing the scope wording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope phrase implies when this tool applies (window-level rather than full-screen/monitor/region capture), but there is no explicit when-to-use, when-not-to-use, or named alternative. With four closely related screenshot siblings, an explicit routing sentence would have been valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_packageARead-only
Search for a package by name in official repos and AUR
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Package name or search term |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe, non-mutating read. The description adds useful context by revealing that both official repos and AUR are queried, but says nothing about result ordering, whether AUR results require an AUR helper, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero waste, leading with the action and resource, with source scope appended. Nothing an agent must read past.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only search tool with full schema coverage and safety annotations, the description covers the essentials. Only return-format and result-ordering details are unspecified, and with no output schema those are minor for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is documented as 'Package name or search term'. The description's 'by name' adds little beyond that, so the schema is doing the heavy lifting and the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search for a package by name') and adds scope by naming the two sources searched: official repos and AUR. That implicitly separates it from siblings like list_installed_packages and check_updates, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (finding a package by name across repos and AUR), but gives no explicit when-not conditions, prerequisites, or alternatives such as list_installed_packages for already-installed software.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_notificationC
Send a desktop notification with title, body, and optional urgency/icon
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Notification body text | |
| icon | No | Icon name or path (optional) | |
| title | Yes | Notification title | |
| urgency | No | Urgency level (default normal) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive, closed-world operation, so the description is not contradicting anything, but it adds no behavioral context of its own. It says nothing about whether the notification is logged to history, how 'critical' urgency behaves (persistence, override of DND), or delivery failure modes — all relevant given the sibling notification tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler and the resource stated first. It is efficient, though it spends most of its words duplicating schema field names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple four-parameter tool with full schema coverage and annotations covering the mutation profile, the description is minimally sufficient. It could have been complete by noting history/DND interaction, which is the one thing an agent cannot derive from the structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters including the urgency enum are already documented in the input schema. The description merely restates the field names without adding format, defaults, or semantics beyond what the schema provides, which is the baseline case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Send) and resource (desktop notification) plus the data it carries, so an agent can immediately tell it apart from the notification-management siblings (list_notification_history, close_all_notifications, toggle_dnd). It stops short of explicitly naming those siblings as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to send a notification versus using other channels like set_timer or projector_speak, and no note about interaction with DND/paused-notification siblings. The agent must infer usage entirely from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_brightnessA
Set screen brightness to a specific percentage (1-100)
| Name | Required | Description | Default |
|---|---|---|---|
| percent | Yes | Brightness percentage (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive, non-open-world mutation, so the safety profile is covered. The description adds only the valid input range, which the schema already carries, and says nothing about what happens on hardware without backlight control or whether the change is persisted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the action and the constraint front-loaded; nothing redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, non-destructive setter with full schema coverage and annotations, the definition is essentially complete — the only real caveat an agent might need, failure on unsupported displays, is the sole gap. No output schema exists, but a brightness setter needs no return detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter already documents 'Brightness percentage (1-100)'. The description merely repeats that exact range, adding no new meaning such as clamping behavior for out-of-range values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Set screen brightness') with the value range, so an agent can tell it sets an absolute level rather than adjusting relatively. It does not explicitly name the sibling alternatives, but the name and verb make the distinction from get_brightness / increase_brightness / decrease_brightness obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'set to a specific percentage' hints at absolute-setting versus the relative increase/decrease siblings, but no when-to-use or when-not-to-use is stated and no sibling is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_clipboardC
Copy text to the clipboard
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to copy to clipboard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, which is consistent with the copy semantics. However, the description adds nothing beyond restating the name: it does not say the previous clipboard contents are overwritten, whether the clipboard is the X11/Wayland selection, or whether a success value is returned. For a state-mutating tool it leaves the only non-obvious behavior undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the action and free of padding. It is efficiently sized for a trivial one-parameter tool, though it is so terse that it borders on under-specification rather than genuine tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, non-open-world tool with annotations covering the safety profile and no output schema, the essentials are present. What is missing is the one behavior an agent could get wrong: that this replaces the current clipboard contents (and thus interacts with list_clipboard_history / paste_from_history).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required string parameter with 100% schema description coverage ('Text to copy to clipboard'), so the schema already does the full job. The description's 'Copy text' merely mirrors it and adds no format, length, or encoding detail — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Copy') and resource ('text to the clipboard'), which clearly distinguishes it from sibling reads like get_clipboard and list_clipboard_history. It does not explicitly name those alternatives, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this versus get_clipboard, paste_from_history, or pick_color_to_clipboard — tools in the same family that also write to the clipboard. There is no context, prerequisite, or exclusion stated anywhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_default_sinkA
Set the default audio output device by name or ID
| Name | Required | Description | Default |
|---|---|---|---|
| sink | Yes | Sink name or numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows it mutates state non-destructively; the description adds nothing beyond that. It doesn't say whether the change persists across sessions, what happens with an unknown sink name, or whether the current default is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the action and identifier forms front-loaded and zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter setter with annotations and no output schema the essentials are present, but the description omits how the agent obtains a valid sink identifier and what the call returns or changes on failure — practical gaps for an agent using this cold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter 'sink' is documented as 'Sink name or numeric ID', matching the description. Baseline 3 applies since the schema already carries the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Set') plus resource ('default audio output device') with the accepted identifier forms (name or ID). The one thing it doesn't do is distinguish itself from the sibling set_default_source, which differs only in source-vs-sink — the description never says 'output, not input'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'audio output device', but there's no explicit guidance such as 'call list_audio_sinks first to discover valid names' or when to prefer this over set_default_source. An agent must infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_default_sourceA
Set the default audio input device by name or ID
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source name or numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the agent knows this is a non-destructive local state change. The description adds nothing further — it doesn't say whether the change persists across sessions, whether it requires PulseAudio/PipeWire, or what happens if the name doesn't match.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the key distinguishing word ('input') front and center; nothing redundant or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, non-destructive setter with a fully documented schema and no output schema, the description covers the essentials. Minor gaps remain around discovering valid sources and failure behavior, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'source' parameter is documented as 'Source name or numeric ID', which the description only echoes. Baseline 3 applies since the schema carries the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Set) plus resource (default audio input device), with the 'input' qualifier distinguishing it from the sibling set_default_sink which handles output. It never names that sibling directly, but an agent can infer the split from resource wording alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'default audio input device' implies the use case (microphone selection) and implicitly contrasts with the sink counterpart, but there is no explicit when-to-use statement, no prerequisite (e.g. the source must appear in list_audio_sources), and no error guidance for an unknown name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_hypr_optionA
Set a runtime Hyprland config option via keyword (non-persistent, resets on reload)
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Value to set | |
| option | Yes | Option name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds real value beyond them: changes are non-persistent and reset on reload, which is exactly the behavioral trait an agent needs before mutating compositor state. It stops short of saying whether invalid options error out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the key caveat parenthesized immediately after the action. No filler, nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param generic setter with no output schema, the critical missing piece is what makes a valid option/value pair and what happens on failure - neither the schema nor the description covers it. Annotations plus the non-persistence note make it workable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the schema's own descriptions ('Option name', 'Value to set') are near-vacuous, so the description carries some burden. It says 'via keyword', hinting at the expected format, but supplies no example option names or value syntax. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Set') and resource ('runtime Hyprland config option') plus the mechanism ('via keyword'). It is clearly distinguishable from get_hypr_option, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical implies the runtime/non-persistent use case, which is genuine usage context, but it never states when to prefer get_hypr_option, hypr_reload, or editing config files, and gives no prerequisites (e.g., that the option name must be a valid Hyprland keyword).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_mic_volumeB
Set microphone input volume to a specific percentage (0-100)
| Name | Required | Description | Default |
|---|---|---|---|
| volume | Yes | Mic volume percentage (0-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the agent knows this is a non-destructive local mutation. The description adds the absolute-percentage framing but says nothing about out-of-range clamping, whether setting the volume also unmutes the microphone, or persistence across sessions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource, with the valid range included. Nothing is padded and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter local mutation with full schema coverage and annotations covering the safety profile, the description supplies what is needed to select and call the tool. The only meaningful gap is interaction with the mute state, which toggle_mic_mute suggests is a real concern.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already carries 'Mic volume percentage (0-100)', so the schema does the documentation work. The description restates the range but adds no unit, precision, or clamping behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and description state a specific verb (Set) plus a specific resource (microphone input volume), and the 'microphone input' qualifier distinguishes it from the sibling tool set_volume, which controls output volume. The differentiation is implicit through wording rather than an explicit 'not to be confused with' statement, so it stays at 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool rather than increase_volume, decrease_volume, or toggle_mic_mute, and it states no preconditions. The agent must infer from the name that this tool sets an absolute level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_monitor_dpmsB
Turn monitor display on or off (DPMS power management)
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | on or off | |
| monitor | No | Monitor name (optional, all monitors if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that this is DPMS display power rather than a hardware enable/disable, but it says nothing about what happens to windows, session state, or whether output is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding. It is efficient, though the parenthetical acronym could be spent instead on distinguishing behavior from the enable/disable monitor siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small two-parameter tool with full schema coverage and no output schema, the description is adequate. The main gap is routing guidance against closely named monitor sibling tools, which is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the enum is defined for state; the optional monitor parameter is also documented as 'all monitors if omitted.' The description adds nothing beyond this, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: turn monitor display on or off via DPMS power management. The purpose is clear, but it does not distinguish itself from the sibling tools enable_monitor/disable_monitor, which sound like they do something similar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use DPMS power control versus enable_monitor/disable_monitor, nor any preconditions (e.g., whether the monitor must be connected/active). The agent must infer selection from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_monitor_scaleC
Change a monitor's scaling factor
| Name | Required | Description | Default |
|---|---|---|---|
| scale | Yes | Scale factor (e.g. 1, 1.25, 1.5, 2) | |
| monitor | Yes | Monitor name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive, closed-world mutation, but the description adds nothing beyond that: no mention of whether scaling takes effect live, whether it survives reload/logout, how invalid values or unsupported scales are handled, or what the caller sees on success/failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; it is efficient, though its brevity edges toward under-specification rather than exemplary compactness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity two-parameter tool with full schema coverage and annotations, the definition covers the essential purpose. Missing are the behavioral details an agent would want before mutating display settings (immediacy, persistence, validation), which is a clear but modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are documented, including example scale values (1, 1.25, 1.5, 2) and the fact that monitor is a name. The description adds nothing beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Change a monitor's scaling factor'), which is unambiguous and distinguishable from the sibling monitor tools (enable/disable/mirror/dpms). It doesn't need to name an alternative because no sibling overlaps this function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus other monitor tools, no prerequisites (does the monitor need to be enabled first?), and no note about whether the change applies immediately or persists. The agent must infer all usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_notification_pausedB
Pause or unpause notification display
| Name | Required | Description | Default |
|---|---|---|---|
| paused | Yes | true to pause, false to unpause |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is known. The description adds that the operation is a reversible pause of display rather than of history, but it does not say whether in-flight or queued notifications are affected, whether the state survives restarts, or how it relates to DND.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste, pairing both directions of the toggle compactly. It is arguably too terse for a tool that overlaps a sibling, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-boolean tool with annotations covering safety, the essentials are present. The notable gap is the absence of any routing versus toggle_dnd and get_dnd_status, which an agent needs when selecting among notification-suppression tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single boolean's meaning ('true to pause, false to unpause') is fully documented in the schema. The description adds nothing beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (pause/unpause) and resource (notification display), so the agent knows exactly what changes. It does not, however, distinguish itself from the sibling toggle_dnd, which appears to control a closely related behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to pause notifications versus using toggle_dnd, nor whether the state persists or interacts with DND. The agent must infer the choice between two notification-suppression tools from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_power_profileC
Set the power profile
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | Power profile to set |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, openWorld=false, so the agent knows the safety profile. The description adds nothing beyond that — it doesn't say whether the change persists across reboots, whether it requires privileges, or what it affects downstream (fan curve, battery life, performance).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero waste, but it is under-specified rather than concise — every word merely echoes the name. There's room for a clarifying clause at no length cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A one-parameter mutation tool with full schema coverage and annotations has a low bar, but the description still omits what the profile change actually does to the system and how it interacts with sibling power-related tools. It is technically callable but not intelligently so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the enum already enumerates performance/balanced/power-saver with a description on the property. The description adds no extra meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Set the power profile" restates the tool name word-for-word, adding no detail about what a power profile controls (CPU governor, TLP/ppd profile, etc.). The only differentiation from the sibling get_power_profile comes from the verb in the name itself, not the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives (toggle_gamemode, suspend_system, set_hypr_option) or when system-wide effects make it inappropriate. The enum implies three choices but the description never says when each is warranted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_rofi_styleB
Set rofi launcher style by number (1-12)
| Name | Required | Description | Default |
|---|---|---|---|
| style | Yes | Rofi style number (1-12) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-destructive, non-open-world mutation, so the safety profile is covered. The description adds nothing about whether the change persists in config, applies immediately, or requires a reload — the main behavioral question for a style setter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with verb and resource, zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial one-param setter with full schema coverage and clear annotations, this is nearly sufficient, but it omits persistence and whether the style takes effect immediately, which matters before invoking a mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single param is documented as 'Rofi style number (1-12)'; the description merely restates that range. No enumeration of what each style number looks like, but the enum list lives nowhere, so there is nothing more expected at this level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Set') and resource ('rofi launcher style') along with the accepted value domain. It is clearly distinct from the sibling get_rofi_style (read) and from set_theme/set_waybar_mode (different surface).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this rather than get_rofi_style, set_theme, or the waybar mode tools, and no prerequisites or side-effect context. The only hint is the implicit 'you must supply a number' framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_themeA
Switch to a specific HyDE theme by name
| Name | Required | Description | Default |
|---|---|---|---|
| theme | Yes | Theme name to switch to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as a non-read-only, non-destructive local mutation. The description adds little behavioral context beyond that, but it is consistent with the annotations and sufficient for this simple operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. The action and identifying parameter are immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter local mutation with complete schema coverage and safety annotations, the definition provides enough to invoke the tool correctly. Minor gaps remain around invalid theme names and whether the change persists, but they are not critical for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single parameter is fully documented in the schema. The description reinforces that the theme is identified by name but does not add syntax, matching, or validation details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: switching to a HyDE theme. The phrase 'by name' distinguishes it from siblings like next_theme and prev_theme, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this when you know the exact theme name. It does not explicitly say when to prefer this over next_theme, prev_theme, or list_themes, nor does it mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_timerA
Set a countdown timer. Sends a desktop notification when it fires.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Timer label (default: 'Timer') | |
| minutes | No | Timer duration in minutes (converted to seconds) | |
| seconds | No | Timer duration in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-read-only, non-destructive, closed-world, so the description's job is to add context — and it does, disclosing the asynchronous side effect (a desktop notification fires on completion). It stops short of saying whether the timer persists across sessions or how a created timer is later identified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the core action front-loaded and the side effect immediately after. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, 3-optional-parameter tool this is close, but with no output schema the description should say what a successful call yields (e.g., a timer id) since that is plausibly what cancel_timer needs, and should clarify the minutes/seconds interplay. Annotations cover the safety profile, so the remaining gap is about return/identity, not risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains the default label and the minutes-to-seconds conversion, so the baseline is 3. The description adds nothing beyond this and leaves an important semantic open: no parameter is required, so what happens if neither minutes nor seconds is supplied is undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb and resource ("Set a countdown timer") and adds the observable outcome ("Sends a desktop notification when it fires"). It does not explicitly name the timer siblings (list_timers, cancel_timer, cancel_all_timers) to differentiate, but the name plus description leaves no ambiguity about what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the sibling set: this creates a timer, whereas list_timers/cancel_timer manage existing ones. There is no explicit 'use this when…' guidance and no exclusions (e.g., that this does not replace an existing timer or that cancellation requires another tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_volumeA
Set audio output volume to a specific percentage (0-150)
| Name | Required | Description | Default |
|---|---|---|---|
| volume | Yes | Volume percentage (0-150) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only but non-destructive, non-open-world mutation. The description adds the accepted volume range but does not mention clamping behavior, persistence, or immediate effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It communicates the action, target, and range efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation with annotations covering safety and no output schema, the description is nearly complete. Minor gaps around clamping and side effects remain but are not critical for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents the sole volume parameter as a percentage from 0 to 150. The description repeats the same range without adding further parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: setting audio output volume to a specific percentage. It adds the supported 0-150 range, though it does not explicitly distinguish itself from increase_volume, decrease_volume, or get_volume.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "to a specific percentage" implies absolute volume-setting rather than relative adjustment, which distinguishes it implicitly from increase_volume and decrease_volume. However, there is no explicit when-to-use guidance or mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_wallbash_modeC
Set wallbash color mode
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Wallbash mode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, closed-world mutation, and the description adds no further behavioral context such as whether the setting persists across restarts or what visual effect each mode produces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four words, front-loaded with the verb, zero filler. Its brevity is appropriate even if the content is thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-enum-parameter setter with annotations covering the safety profile, the definition is barely sufficient to invoke correctly, but an agent still cannot tell what "wallbash" means or how the modes differ without outside knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is a four-value enum (theme/auto/dark/light), so the schema carries the meaning. The description adds nothing about what each mode does, which is the one thing it could have contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb ("Set") and resource ("wallbash color mode"), so the action is identifiable, but "wallbash" is never explained and the description does nothing to distinguish it from sibling get_wallbash_mode or set_theme beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus get_wallbash_mode/set_theme, no mention of whether the change is persistent, and no prerequisites or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_wallpaperC
Set wallpaper to a specific image file path
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute path to image file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context of its own: it doesn't say what happens with an invalid or non-existent path, whether the wallpaper persists across restarts, or whether animated images are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is efficient, though the terseness is part of why non-obvious behaviors go unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with full schema coverage and annotations, the description is minimally sufficient to invoke correctly. It still leaves failure modes and persistence behavior unexplained, which matters for a mutation of the desktop state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema coverage, the schema already specifies 'Absolute path to image file'. The description restates 'specific image file path' without adding format constraints or examples, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs the specific verb 'Set' with the resource 'wallpaper' and the target 'specific image file path', which is unambiguous. It is not explicitly distinguished from siblings like next_wallpaper/prev_wallpaper or set_theme, but the phrase 'specific image file path' implicitly contrasts with cycling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to prefer this over next_wallpaper, prev_wallpaper, list_wallpapers, or set_theme. Nothing states prerequisites such as the file needing to exist or being a supported image format.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_waybar_modeA
Switch to a specific waybar layout by config.ctl line number
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Layout line number in config.ctl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive, closed-world operation. The description adds that it changes the waybar layout from a config.ctl line, but does not state persistence, reload behavior, or what happens with an invalid line; with annotations covering the safety profile, this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is appropriately sized for a one-parameter setter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with annotations and a fully documented parameter, the core action is clear. However, it leaves gaps around how to obtain a valid config.ctl line number and what the switch affects over time, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter and schema coverage is 100%; the schema already defines 'mode' as a layout line number in config.ctl. The description repeats that wording without adding indexing, valid range, or discovery guidance, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb 'Switch to' and resource 'waybar layout', and the line-number mechanism implicitly distinguishes it from relative next/prev and read-only get siblings. It does not explicitly name those siblings, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and it never points to next_waybar_mode or prev_waybar_mode as alternatives. The line-number mechanism only implies that the caller should use it when a specific config.ctl line is known.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_desktopB
Minimize all windows to show the desktop
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, and the description does not contradict them: minimizing is a state change but non-destructive. Beyond that the description correctly discloses the scope of the effect ('all windows'), which is the key behavioral fact. It omits reversibility (there is no sibling to restore windows) and any note that window stacks/positions are preserved, so it adds only moderate value over annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single seven-word sentence with the action front-loaded and zero filler. Nothing could be removed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is trivial (no params, no output schema, no nesting) so the description covers the core call. However, the surrounding toolkit has extensive window management but no counterpart for un-minimizing, and the description says nothing about how windows are restored or whether the action is a toggle — a real gap for an agent planning a workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The schema is an empty object and the description correctly implies no input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource action ('Minimize all windows to show the desktop') that an agent can match to a user intent without ambiguity. It does not need to name a sibling because no sibling performs the inverse or an overlapping action, but it also does not position itself relative to the surrounding window tools (list_windows, focus_window) which stops it being a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use framing, no mention of prerequisites (e.g. an active window manager session), and no statement about how or whether the user gets their windows back. Usage is only inferable from the name. For a one-shot action tool this is tolerable but it is genuinely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_reading_modeC
Start key remapping for reading mode (evremap)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the agent knows it mutates local state non-destructively. The description adds nothing beyond that: it doesn't say what keys get remapped, whether the change persists after the session, whether evremap must be installed, or how the mode is exited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single compact phrase with no padding, but it is terse to the point of under-specification for a state-changing system tool; the one clause present does little work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the full explanatory burden for a mode-switching tool, yet it never says what entering reading mode changes, whether it can be reverted, or what the agent should expect afterward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify; the baseline for a parameterless tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'start' and resource 'key remapping for reading mode' are stated, and the parenthetical '(evremap)' hints at the underlying tool. However, 'reading mode' and what the remapping actually does are never defined, so an agent knows the general category but not the effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternative given. The obvious counterpart stop_reading_mode exists in the sibling list but the description never references it or states that this toggles into a mode the sibling exits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_recordingA
Start recording the screen to a video file in ~/Videos/Recordings/
| Name | Required | Description | Default |
|---|---|---|---|
| audio | No | Include audio (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-readonly, non-destructive, non-open-world operation, so the mutation profile is covered. The description adds the concrete output location (~/Videos/Recordings/), which is genuinely useful context, but says nothing about what happens if a recording is already in progress, session duration, or how the file is finalized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and followed by the storage location; there is no filler. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, no-output-schema tool this is close to sufficient, but a recording tool needs the stop/finalize path and already-recording behavior to be callable correctly end-to-end. Those gaps keep it at a minimum-viable level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one optional parameter, so the schema already documents 'audio (default false)'. The description does not mention audio capture at all, leaving the default behavior for sound to be read from the schema alone — acceptable, but no added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Start recording the screen') and names the artifact type and destination ('video file in ~/Videos/Recordings/'), which implicitly separates it from the sibling start_recording_gif. It does not explicitly name that sibling or contrast with stop_recording/is_recording, so sibling differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and by the presence of start_recording_gif, stop_recording, and is_recording in the sibling list, but the description never says when to call this vs. the gif variant or that stop_recording must be called to finalize. The agent must infer the full lifecycle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_recording_gifB
Start recording the screen as a GIF file
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the state-changing nature is known. The description adds nothing beyond that: it doesn't say whether an in-progress recording is interrupted, where the GIF is written, whether there is a duration/size cap, or how the capture is terminated — all material for a long-running capture operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is not padded, though the brevity reflects missing content rather than efficient packaging of complete content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no parameters, and annotations cover only the safety profile, so the description carries the burden of explaining the lifecycle. It omits where the file lands, how to stop, and what happens if a recording is already running — the agent cannot complete the operation correctly without consulting siblings by guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing for the description to disambiguate and the baseline applies. The phrase "the screen" is the only scoping information, and it correctly signals full-screen capture with no monitor/region selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource+output format ("Start recording the screen as a GIF file"), which implicitly separates it from the sibling start_recording (presumably video). However it never names start_recording or explains the format difference explicitly, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose GIF capture over start_recording, no prerequisites, and no mention that stop_recording must be called to finalize the file. The agent is left to infer the entire workflow from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_reading_modeA
Stop key remapping for reading mode
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, consistent with a local state toggle, and the description's 'stop key remapping' matches a mutation that is not destructive. However, it does not say whether original keybindings are restored or whether the call is idempotent/no-op when reading mode is inactive, which is the main behavioral question for a stop tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action front-loaded and no padding. It is efficient, though the 'for reading mode' qualifier restates what the name plus sibling set already imply.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter state-off tool with annotations covering the safety profile and no output schema, the description gives enough to call it correctly. The only gap is the absence of any note on the resulting state or behavior when already stopped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema carries no semantic burden and the description has nothing extra to document. Baseline 4 applies for a zero-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (stop) and resource (key remapping for reading mode), and by naming 'reading mode' it implicitly points to the sibling start_reading_mode. The scope is clear enough for an agent to distinguish it from other state-changing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent infers this is the inverse of start_reading_mode. There is no explicit statement of when to call it, whether it's safe to call when reading mode is already off, or what the alternative is.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_recordingB
Stop the current screen recording
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing behavioral beyond the verb: it doesn't say where the resulting file lands, whether the recording is finalized/saved, or how it behaves when nothing is recording — the key unknowns for a stop/commit action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, appropriately sized for a no-argument action. It is efficient but stops short of carrying any extra operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema and annotations covering the safety profile, the definition is minimally sufficient to invoke the tool. However, an agent cannot tell from the definition whether stopping saves the file, where it goes, or what an error/no-active-recording case looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline 4 case; there is no argument semantics for the description to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Stop the current screen recording"), which cleanly separates it from siblings start_recording, start_recording_gif and is_recording by verb alone. It doesn't name those siblings explicitly, so differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word "current" hints that a recording must be active, but there is no explicit when-to-use, no statement of what happens if no recording is running, and no reference to start_recording or is_recording as the pairing/verification tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suspend_systemADestructive
Suspend the system to RAM (sleep). WARNING: This will suspend your machine immediately.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the description's added value is the immediacy and lack of confirmation, plus the RAM/sleep semantics (session preserved, machine goes down now). It stops short of noting that the call may not return normally or how the system resumes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, action front-loaded and the warning immediately after. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output tool this is nearly sufficient, but an agent is left unsure whether the call returns a success result before suspending or hangs, and whether the destructive hint means unsaved state is at risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the description correctly says nothing about inputs. Baseline 4 applies since there is no parameter surface to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Suspend the system to RAM (sleep)"), making the exact effect unambiguous and clearly distinct from siblings like lock_screen, set_power_profile, or projector_sleep. It does not explicitly name a nearest-alternative, keeping it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The warning "This will suspend your machine immediately" functions as an implicit cue that this should only be called on explicit user intent, but there is no stated when-to-use, no exclusions, and no mention of the gentler alternative (lock_screen) or preconditions such as unsaved work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_keyboard_layoutA
Cycle to the next keyboard layout
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a non-destructive, non-open-world mutation, so the safety profile is covered. The description adds nothing beyond the name: it doesn't say whether the change affects only the focused window or the whole session, whether it wraps around at the end of the list, or that the effect is immediately visible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the action and target are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, non-destructive action with annotations covering safety, this is nearly complete. The only meaningful gap is the absence of a pointer to get_keyboard_layout for checking the resulting state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The input schema is empty and there is nothing for the description to disambiguate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('cycle to the next') paired with a concrete resource ('keyboard layout'), so an agent knows exactly what it does. It implicitly distinguishes itself from the sibling get_keyboard_layout, but never names it, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'next' suggests cycling through layouts when the current one is wrong. There is no explicit when-to-use, when-not-to-use, or pointer to get_keyboard_layout for reading the current layout.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_workspaceB
Switch to a specific workspace by number
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | Workspace number to switch to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the description only needed to add context such as index base (0- vs 1-based), behavior when the workspace does not exist, or whether it is created on demand. None of that is present, so the description adds essentially nothing beyond the annotations and the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, appropriate for a one-parameter tool. It is a fragment rather than a full sentence, which limits how much structure it can carry but wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-param tool with no output schema, the definition is minimally viable. It omits the two things an agent would actually need to succeed: whether workspace numbering starts at 0 or 1, and what happens if the number is out of range.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes "workspace" as the workspace number to switch to. The description's "by number" restates the schema rather than adding range, index base, or validity constraints, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Switch to a specific workspace") plus the selection mechanism ("by number"), which implicitly separates it from next_workspace/prev_workspace. It never names those siblings, so an agent must infer the contrast rather than being told it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"By number" implies the tool is for direct jumps when the target workspace ID is known, versus relative navigation, but no when-to-use or when-not guidance is given and no alternative is named. Usage is inferable from the phrasing rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_animationsA
Toggle Hyprland animations on or off
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is a non-destructive, non-read-only, closed-world mutation. The description adds the important behavioral detail that the tool flips state rather than accepting a desired state parameter, but it does not say whether it returns the new state or what happens if Hyprland is unavailable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It immediately states the action and the target resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter toggle tool with no output schema and annotations covering safety, the description is nearly complete. It is slightly thin on prerequisites (Hyprland availability) and whether the resulting state is reported back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is no parameter semantics burden on the description. Baseline score of 4 applies because nothing is missing at the parameter level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ("toggle") and names the resource ("Hyprland animations"), making the effect clear. It does not explicitly distinguish itself from the generic set_hypr_option sibling, but no other sibling is dedicated to animations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the word "toggle": the tool flips animation state without a parameter. However, the description gives no explicit guidance on when to use it versus set_hypr_option or what prerequisites exist (e.g., Hyprland must be running).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_bluetoothA
Toggle bluetooth power on or off
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare that this is not a read-only operation and is non-destructive, so the safety profile is covered. The description adds that the tool toggles power, but does not clarify whether it requires privileges, what happens if Bluetooth is already in the requested state, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a zero-parameter toggle operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter toggle with no output schema and clear annotations, the description is largely complete. It could optionally state whether the new state is returned, 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.
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 semantics burden on the description. The baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('toggle bluetooth power on or off'), making the operation immediately clear. It does not explicitly name sibling alternatives like connect_bluetooth or get_bluetooth_status, but the distinct action is still easy to separate 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as connect_bluetooth, disconnect_bluetooth, or get_bluetooth_status. The implied use case is changing the adapter's power state, but no explicit conditions or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_dndB
Toggle Do Not Disturb mode for notifications
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a non-read-only, non-destructive, non-open-world mutation, so the safety bar is largely carried for it. The description adds the notification scope but omits the key behavioral trait of a toggle: it flips the current state regardless of whether DND is on or off, so the resulting state is unknown without checking. It also doesn't say whether this affects already-delivered notifications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the key noun front-loaded after the verb. It is appropriately sized, though it is so terse that nothing beyond the headline is conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-param, no-output-schema mutation this is close to sufficient, but the ambiguity against set_notification_paused and the missing note that the result state is indeterminate leave real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing to disambiguate; the baseline applies. The description doesn't need to explain any inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (toggle) and resource (Do Not Disturb mode for notifications), so the action is unambiguous. It doesn't differentiate from the nearby get_dnd_status or set_notification_paused siblings, which is the only reason it stops short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus get_dnd_status (to check state) or set_notification_paused (to set state explicitly). An agent must infer the relationship from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_floatA
Toggle floating mode on the focused window
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this is a non-read-only, non-destructive, non-open-world operation. The description adds that the action applies to the focused window, but it does not explain edge cases such as what happens when no window is focused or whether toggling affects window size/position.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It states the action and target immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter toggle, the description plus annotations provide enough context to invoke it correctly. Minor edge-case behavior is omitted, but the core operation is sufficiently covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics burden. The baseline score of 4 is appropriate because no additional parameter explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: toggling floating mode on the focused window. It is clear what the tool does, though it does not explicitly distinguish itself from similar window-management siblings such as toggle_fullscreen or toggle_split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action name and target window imply when this tool should be used, but there is no explicit guidance about alternatives or conditions such as whether a window must already be focused. The usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_fullscreenB
Toggle fullscreen on the focused window
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 0=real, 1=maximize, 2=no gaps (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare mutating (readOnlyHint=false) but non-destructive and local-scope behavior, so the description's main added value is naming the target as the focused window. It does not say what happens when no window is focused, whether the toggle is reversible, or that it only applies in a Wayland/Hyprland session.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, which is appropriate for a one-action tool. It is borderline terse, leaving no room for the usage or state caveats that would make it more actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter toggle with annotations present and no output schema, the definition covers the essentials and the schema covers the rest. Only the edge case of no focused window and the interaction with sibling window tools remain unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the mode enum is fully documented in the schema (0=real, 1=maximize, 2=no gaps). The description adds nothing about mode, which is acceptable given the schema does the work, but no extra value is contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (toggle) and a specific resource/target (fullscreen on the focused window), so an agent knows exactly what effect to expect. It does not name or differentiate from related siblings like toggle_float, resize_window, or projector_fullscreen, which keeps it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no pointer to alternatives such as toggle_float or projector_fullscreen. The only implicit condition is that a window must be focused, which the agent must infer from the phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_gamemodeA
Toggle gamemode: disables animations, blur, and other effects for performance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the fact that this mutates system state is covered. The description adds which subsystems are affected (animations, blur, other effects), which is genuine value. However, it describes only the enabling direction of a toggle, never clarifying that a second call flips the effects back on, and 'other effects' leaves the blast radius undefined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with the verb-resource pair first and the effect list second; nothing is padded. Minor deduction because 'and other effects' is vague filler that could have been replaced with a concrete statement about reversibility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema and non-destructive annotations already present, the minimum coverage is met. Still missing is what the agent needs to wield a state-flipping tool confidently: whether the call returns the new state and that get_gamemode_status exists to check it beforehand.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case: there is nothing for the description to disambiguate in the schema. No param semantics are missing because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (toggle) and resource (gamemode) and defines what gamemode concretely means: 'disables animations, blur, and other effects for performance.' That goes beyond restating the name. It does not distinguish itself from the close sibling toggle_animations, which changes a subset of the same effects, nor does it mention get_gamemode_status for checking the current state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'for performance' implies the reason to use it, so usage is inferable but never stated. There is no explicit when-to-use guidance, no mention of the alternative of checking state first via get_gamemode_status, and no note on which effects are restored when toggled back.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_idle_inhibitorB
Prevent or allow the screen from timing out / going idle
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a non-read-only, non-destructive, closed-world operation, so the safety profile is covered. The description adds the useful detail that the effect is a binary prevent/allow of idle timeout, but omits key behavior for a toggle: that each call flips state, whether the inhibition persists indefinitely, and that no status-read counterpart exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the effect front-loaded and no filler. It is arguably too terse for a state-mutating toggle, but nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, non-destructive tool with annotations covering safety, little is strictly required, and no output schema is needed. However, the description never resolves whether calling it twice returns to the original state or how the agent can verify the current inhibition status, leaving a real operational gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The absence of a duration or explicit on/off argument is consistent with the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (screen timeout / idle inhibition) and the two resulting states (prevent vs. allow), which is clear enough to act on. It does not explicitly say this is a single flip-toggle nor distinguish itself from nearby siblings such as get_screen_timeout or set_monitor_dpms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to invoke this versus alternatives like set_monitor_dpms or get_screen_timeout, and no prerequisites or typical scenarios (e.g., watching video, long downloads) are given. The agent must infer the trigger condition entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_mic_muteA
Toggle microphone mute on/off
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds that this toggles between two states, but does not disclose further behavioral details such as current-state reporting or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with the action and target front-loaded and no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter toggle with annotations covering safety, the description is nearly sufficient. A small gap remains because it does not explicitly distinguish the microphone mute toggle from the sibling output mute toggle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema fully defines the input contract. Per calibration, a zero-parameter tool receives a baseline of 4 even though the description adds no parameter-specific detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Toggle microphone mute on/off." It clearly identifies microphone mute, distinguishing it from the sibling toggle_mute, but does not explicitly name the alternative or clarify the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the toggle action, but the description gives no explicit when-to-use guidance, prerequisites, or comparison to related tools such as toggle_mute.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_muteA
Toggle audio output mute on/off
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, closed-world operation. The description adds that it toggles mute on/off, which usefully implies reversibility, but it does not mention return state, default sink behavior, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with zero waste. Every word contributes to identifying the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter toggle tool with no output schema, the description is nearly complete. A minor gap is that it does not clarify whether the new mute state is returned or which audio output is affected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to document. The description correctly does not invent parameters or misdescribe the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair: toggling audio output mute. It clearly distinguishes this from sibling tools like toggle_mic_mute and set_volume by naming the exact target and action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The toggle semantics imply when to use it, but there is no explicit guidance contrasting it with set_volume or toggle_mic_mute. An agent can infer correct use, but the description does not state when-not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_splitA
Toggle horizontal/vertical split direction for the focused window
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a mutation (readOnlyHint=false) that is non-destructive and local. The description adds which property changes and on which window, which is useful. However, it does not disclose behavior when the window is not split, whether the change is persisted, or what the effect on neighbors is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It conveys verb, target, and effect immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter toggle whose safety profile is fully covered by annotations and which has no output schema, the description is nearly complete. A brief note on preconditions (focused tiled window) would make it fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to document. The description correctly implies no arguments are needed; baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Toggle') and resource ('horizontal/vertical split direction') with an explicit target ('focused window'). This clearly distinguishes it from siblings like toggle_float and toggle_fullscreen, which affect different window properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: call it when the focused window's split orientation should flip. There is no explicit when-to-use/when-not guidance, no mention of prerequisites (e.g., the window must be in a split/tiled layout), and no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_waybarA
Show or hide waybar (toggle visibility)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it as a non-read-only, non-destructive, closed-world operation, so the safety profile is covered. The description adds that the effect is on visibility (reversible by construction), but says nothing about whether it affects all bars/monitors or what state is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no padding. The parenthetical restates 'toggle' from the name, so it is slightly redundant rather than fully earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the only remaining unknown is the return value (e.g., whether the new visibility state is reported), which the description does not clarify. Annotations cover safety, so the residual gap is modest but real.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly signals a no-argument action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (show/hide) on a specific resource (waybar), and the parenthetical confirms the semantics are visibility toggling rather than a mode change. It does not, however, distinguish itself from neighbors like get_waybar_mode or set_waybar_mode, which an agent could confuse with visibility control.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'toggle' — call it to flip visibility. There is no statement of when to prefer it over set_waybar_mode/next_waybar_mode, nor any suggestion to check state first with get_waybar_mode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_wifiB
Toggle WiFi radio on or off
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive, closed-world operation. The description adds that it toggles a WiFi radio, but does not disclose whether active connections are dropped or whether the change is immediate and reversible; with annotations present, this is adequate but with clear behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It immediately communicates the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter toggle with annotations covering safety, the description is minimally sufficient to invoke the tool. However, it omits what happens to existing WiFi connections and when this should be preferred over connect/disconnect operations, leaving a meaningful context gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to clarify beyond the action itself. The schema is empty and the description does not contradict it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Toggle WiFi radio on or off." It is clear enough to separate this from connect_wifi and disconnect_wifi by focusing on the radio rather than a network connection, but it does not explicitly name or exclude any sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this instead of siblings such as connect_wifi, disconnect_wifi, list_wifi_networks, or get_network_status. It leaves the agent to infer that this changes the WiFi radio state rather than managing networks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trash_fileADestructive
Move a file to trash (recoverable, NOT permanent delete). Uses gio trash.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File or directory path to trash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is not read-only and is destructive. The description adds valuable context beyond that: the operation is recoverable rather than permanent, and it specifies the underlying mechanism ('Uses gio trash'). It does not describe error behavior or whether directories are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and its most important safety distinction. Every phrase adds useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation, the description covers the key behavior, recoverability, and mechanism. It is slightly incomplete because it says 'file' while the schema allows directories, and it does not mention what happens if the path does not exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter already documents that it accepts a file or directory path. The description does not add additional path syntax, constraints, or handling details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Move a file to trash'. It also explicitly distinguishes this operation from permanent deletion, which is the most important semantic distinction for an agent to understand.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'recoverable, NOT permanent delete' gives clear usage context and implicitly excludes permanent deletion. It does not name an alternative tool, but there is no obvious sibling trash/delete tool in the provided list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wa_list_chatsARead-only
List visible WhatsApp chat names from the sidebar via Firefox Bridge
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds a dependency not present in annotations — the call goes 'via Firefox Bridge' — and scopes results to 'visible' chats, warning the agent that results are limited to what is currently rendered rather than the full chat history.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the resource, scope qualifier and delivery mechanism, with no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-arg read tool with annotations covering safety and no output schema, the description supplies what is returned (chat names), where it comes from (sidebar) and the transport (Firefox Bridge). It could still state failure conditions, e.g., what happens when Firefox or the sidebar is unavailable, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline applies. The description does not introduce any spurious arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('List visible WhatsApp chat names') plus the exact source ('from the sidebar'), so an agent knows it returns chat labels rather than message bodies. It does not explicitly distinguish itself from wa_read_messages or wa_send_message, though the resource difference is self-evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the word 'visible' hints that only currently rendered sidebar entries are returned and that the sidebar must be open, which an agent could infer as a prerequisite. There is no explicit when-to-use/when-not statement or named alternative (e.g., use wa_read_messages for content).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wa_read_messagesBRead-only
Read the last N messages from a WhatsApp chat via Firefox Bridge
| Name | Required | Description | Default |
|---|---|---|---|
| chat | Yes | Chat name to read from (substring match) | |
| count | No | Number of recent messages to read (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds one genuinely useful behavioral clue — reads happen 'via Firefox Bridge', implying a browser must be running — but says nothing about what happens if the bridge is unavailable or whether reads are rate-limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is arguably too terse for a tool with an external dependency, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two fully described parameters and a simple read operation, the description covers what the agent needs to invoke it. The missing piece is the shape of a returned message (sender, timestamp, text), which matters since there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, documenting both 'chat' (substring match) and 'count' (default 10). The description's 'last N messages' and 'chat' echo the schema without adding format or syntax detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (last N messages from a WhatsApp chat), which is clear enough to separate it from wa_send_message and wa_list_chats. It doesn't explicitly name those siblings as alternatives, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus wa_list_chats (to discover a chat name) or wa_send_message. The dependency on Firefox Bridge is mentioned but not framed as a prerequisite or failure condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wa_send_messageA
Send a WhatsApp message via Firefox Bridge. Requires Firefox with WhatsApp Web open and the bridge extension active.
| Name | Required | Description | Default |
|---|---|---|---|
| chat | Yes | Chat name to send to (substring match) | |
| message | Yes | Message text to send |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false. The description adds a critical runtime dependency not captured by annotations or schema: the Firefox Bridge, WhatsApp Web, and the bridge extension must be active. It does not explain delivery semantics or failure behavior, but the prerequisite is a meaningful behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences: the first front-loads the action, and the second supplies the necessary prerequisite. There is no redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter send tool with full schema coverage and safety-relevant annotations, the description covers the purpose and the key environmental requirement. It could say more about expected output or failure modes, but no output schema exists and the tool is low-complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents both parameters, including that 'chat' is a substring match and 'message' is the text to send. The description adds no further parameter semantics beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Send a WhatsApp message via Firefox Bridge.' This clearly distinguishes it from sibling tools like wa_list_chats and wa_read_messages, which list and read rather than send.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear operational prerequisite: Firefox must be running with WhatsApp Web open and the bridge extension active. It does not explicitly name when-not to use it or point to alternatives, but the context is sufficient for this simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_fileA
Write content to a file (sandboxed to home directory). Creates parent directories if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path (absolute or ~/relative) | |
| content | Yes | Full file content to write |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=false, and destructiveHint=false. The description adds useful behavior beyond annotations by saying files are sandboxed to the home directory and parent directories are created automatically. However, it omits critical write semantics such as whether an existing file is overwritten or truncated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences and front-loads the main action and scope. Every phrase adds useful information: the write action, the sandbox constraint, and parent-directory creation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter write tool with annotations and full schema coverage, the description covers the sandbox and parent-directory behavior. It still leaves a notable gap around overwrite/truncation behavior, which matters when an agent invokes a write operation against an existing file.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both path and content are already documented. The description adds a meaningful path constraint by saying the operation is sandboxed to the home directory, but it does not add content-specific semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Write content to a file.' It also gives the scope constraint '(sandboxed to home directory),' which clearly distinguishes it from read-oriented siblings such as read_file and file_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the clear write verb and file scope, but the description gives no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives such as read_file or trash_file, so the agent must infer context from the tool name and purpose.
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.
178 tool updates
v2.0.0- First observed
cancel_all_timers - First observed
cancel_timer - First observed
check_updates - First observed
clear_clipboard_history - First observed
close_all_notifications - First observed
close_window - First observed
connect_bluetooth - First observed
connect_wifi - First observed
create_macro - First observed
create_workspace - First observed
decrease_brightness - First observed
decrease_volume - First observed
delete_clipboard_entry - First observed
delete_macro - First observed
disable_monitor - First observed
disconnect_bluetooth - First observed
disconnect_wifi - First observed
enable_monitor - First observed
file_info - First observed
focus_window - First observed
get_active_workspace - First observed
get_battery_info - First observed
get_bluetooth_status - First observed
get_brightness - First observed
get_clipboard - First observed
get_cpu_info - First observed
get_current_theme - First observed
get_disk_info - First observed
get_dnd_status - First observed
get_focused_monitor - First observed
get_focused_window - First observed
get_gamemode_status - First observed
get_gpu_info - First observed
get_hypr_binds - First observed
get_hypr_option - First observed
get_ip_addresses - First observed
get_keyboard_layout - First observed
get_macro - First observed
get_media_status - First observed
get_memory_info - First observed
get_mic_volume - First observed
get_network_status - First observed
get_power_profile - First observed
get_rofi_style - First observed
get_screen_timeout - First observed
get_system_info - First observed
get_thermal_info - First observed
get_uptime - First observed
get_volume - First observed
get_wallbash_mode - First observed
get_wallpaper - First observed
get_wallpaper_colors - First observed
get_waybar_mode - First observed
group_window - First observed
hypr_reload - First observed
increase_brightness - First observed
increase_volume - First observed
is_recording - First observed
kill_app - First observed
kill_window - First observed
launch_app - First observed
led_effect - First observed
led_power - First observed
led_scan - First observed
led_set_brightness - First observed
led_set_color - First observed
led_set_pattern - First observed
list_audio_sinks - First observed
list_audio_sources - First observed
list_bluetooth_devices - First observed
list_clipboard_history - First observed
list_desktop_apps - First observed
list_directory - First observed
list_installed_packages - First observed
list_macros - First observed
list_media_players - First observed
list_monitors - First observed
list_notification_history - First observed
list_processes - First observed
list_running_apps - First observed
list_theme_wallpapers - First observed
list_themes - First observed
list_timers - First observed
list_wallpapers - First observed
list_wifi_networks - First observed
list_windows - First observed
list_workspaces - First observed
lock_screen - First observed
media_next - First observed
media_play_pause - First observed
media_previous - First observed
media_seek - First observed
media_stop - First observed
mirror_monitor - First observed
move_to_scratchpad - First observed
move_window - First observed
move_window_to_workspace - First observed
move_workspace_to_monitor - First observed
next_theme - First observed
next_wallpaper - First observed
next_waybar_mode - First observed
next_workspace - First observed
open_file_manager - First observed
open_terminal - First observed
open_url - First observed
paste_from_history - First observed
pick_color - First observed
pick_color_to_clipboard - First observed
pin_window - First observed
prev_theme - First observed
prev_wallpaper - First observed
prev_waybar_mode - First observed
prev_workspace - First observed
projector_brightness - First observed
projector_fullscreen - First observed
projector_open_url - First observed
projector_reload - First observed
projector_scan - First observed
projector_screenshot - First observed
projector_setup - First observed
projector_show_dashboard - First observed
projector_sleep - First observed
projector_speak - First observed
projector_status - First observed
projector_wake - First observed
read_file - First observed
resize_window - First observed
run_macro - First observed
screenshot_full - First observed
screenshot_monitor - First observed
screenshot_region - First observed
screenshot_to_clipboard - First observed
screenshot_window - First observed
search_package - First observed
send_notification - First observed
set_brightness - First observed
set_clipboard - First observed
set_default_sink - First observed
set_default_source - First observed
set_hypr_option - First observed
set_mic_volume - First observed
set_monitor_dpms - First observed
set_monitor_scale - First observed
set_notification_paused - First observed
set_power_profile - First observed
set_rofi_style - First observed
set_theme - First observed
set_timer - First observed
set_volume - First observed
set_wallbash_mode - First observed
set_wallpaper - First observed
set_waybar_mode - First observed
show_desktop - First observed
start_reading_mode - First observed
start_recording - First observed
start_recording_gif - First observed
stop_reading_mode - First observed
stop_recording - First observed
suspend_system - First observed
switch_keyboard_layout - First observed
switch_workspace - First observed
toggle_animations - First observed
toggle_bluetooth - First observed
toggle_dnd - First observed
toggle_float - First observed
toggle_fullscreen - First observed
toggle_gamemode - First observed
toggle_idle_inhibitor - First observed
toggle_mic_mute - First observed
toggle_mute - First observed
toggle_split - First observed
toggle_waybar - First observed
toggle_wifi - First observed
trash_file - First observed
wa_list_chats - First observed
wa_read_messages - First observed
wa_send_message - First observed
write_file
TDQS
Scored across 178 tools
Most tools target distinct resources and actions, but the 178-tool surface creates several overlapping areas: list_windows vs list_running_apps, close_window/kill_window vs kill_app, get_network_status vs get_ip_addresses, and led_set_pattern vs led_effect. Descriptions usually clarify the boundaries, but an agent could still misselect in these clusters.
The dominant pattern is action_resource (get_, set_, list_, toggle_, start_, stop_), but there are many mixed conventions such as hypr_reload, media_play_pause, media_next, screenshot_full, wa_send_message, led_set_color, and projector_setup. The names remain readable, but the convention is not predictable across the whole set.
178 tools is an extreme mismatch for a single MCP server, even for a broad Hyprland desktop-automation domain. The surface is far too large to navigate reliably and bundles many unrelated subsystems into one toolset.
The server covers an unusually broad set of desktop workflows: audio, brightness, clipboard, screenshots, recording, wallpapers/themes, windows, workspaces, monitors, media, network, Bluetooth, system info, packages, Waybar, Hyprland config, files, macros, LEDs, timers, and projector control. Minor lifecycle gaps exist (e.g., workspace deletion, richer window/workspace management), but most domains have workable coverage.
Maintenance
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Remote MCP for RunComfy: ComfyUI deployments, hosted models, LoRA training. 31 tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to capture screenshots, inspect windows, and interact with the Hyprland desktop environment through mouse clicks and keyboard input.1-
- AlicenseAqualityCmaintenanceEnables AI assistants to inspect, control, and automate Arch Linux/CachyOS and the Niri Desktop Environment through natural language, featuring tools for window management, system administration, package queries, and hardware control.351MIT
- AlicenseBqualityBmaintenanceEnables any LLM to fully control an Omarchy Linux desktop, including themes, apps, screenshots, reminders, audio, brightness, and Hyprland window tiling, with safety guards on destructive operations.1081MIT
- AlicenseNot gradedqualityDmaintenanceEnables an AI agent to see and control a Linux desktop via Wayland/Hyprland, providing screenshots, structured desktop state, pointer/keyboard input, semantic window/workspace tools, and a policy engine for safe execution.Apache 2.0