Skip to main content
Glama

Altic MCP

Features

90+ tools for macOS automation:

  • 📱 Messages & Contacts - Send/read iMessages, list chats, send file attachments, search/get/create/update contacts

  • 📝 Notes & Reminders - Create, list, search, update, show, move, complete, and delete notes/reminders

  • 📅 Calendar - Create, list, search, update, delete, check availability, and create recurring events

  • 🗂️ Files & Finder - Find, inspect, copy, move, rename, reveal, and trash files safely; streaming paginated search sessions

  • 📋 Clipboard - Read/write text, copy file paths for Finder paste, and save/set clipboard images

  • 🪟 Window & Workspace - List/focus apps and windows, move/resize/center/tile windows, minimize windows, hide apps, and quit apps

  • 🌐 Safari - Control tabs, navigate, execute JavaScript

  • 🌍 Chrome (CDP) - Open sessions, navigate, click/type, extract data, screenshots

  • 📸 Screen Capture - Capture the active display and share image output with the model

  • 🖥️ System - Open apps, adjust brightness/volume, visual effects

  • ⚙️ Configuration - Get/set runtime config (timeouts, limits, allowed directories) without restarting

  • 📊 Audit & Observability - Automatic tool-call logging with rotation and recent-call history

  • 🔒 Path Security - Optional allowed-directories allowlist with symlink traversal prevention

  • 📎 Resources & Prompts - MCP resources for frontmost app, Finder selection, clipboard; prompts for calendar summaries, iMessage replies, note search

Related MCP server: macOS Automation MCP Server

Available Skills

This repo currently includes one shareable skill:

  • altic-studio (skills/altic-studio/)

    • Runs local AppleScript automations via osascript through the Bash tool

    • Covers Messages, Contacts, Notes, Reminders, Calendar, Safari, window management, system controls, screenshots, and Chrome CDP browser control

    • Main skill manifest: skills/altic-studio/SKILL.md

Skill Setup (Any Agent)

Install altic-studio directly from this repo with the Skills CLI:

# Preview available skills in this repo
npx skills add altic-dev/altic-mcp --list

# Install skill with interactive mode 
npx skills add altic-dev/altic-mcp 

Restart your coding agent after installation.

Requirements

Python note: altic-mcp requires Python 3.13+ internally, but uvx manages this automatically — you do not need to install Python yourself when using the uvx or bash installer options below.

Security & Runtime Configuration

Allowed Directories (Path Allowlist)

By default, altic-mcp has full filesystem access for file operations. To restrict file tools to specific directories, set the ALLOWED_DIRECTORIES environment variable (colon-separated) or use the set_config_value tool:

# Via environment variable
export ALLOWED_DIRECTORIES="/Users/you/Documents:/Users/you/Desktop"
// Or via the set_config_value MCP tool
{"key": "allowed_directories", "value": ["/Users/you/Documents", "/Users/you/Desktop"]}

All file paths are resolved with symlink traversal prevention — a symlink inside an allowed directory that points outside will be rejected.

Runtime Config

altic-mcp stores runtime configuration at ~/.config/altic-mcp/config.json. Use the get_config and set_config_value MCP tools to inspect and change settings without restarting:

Key

Default

Description

osascript_timeout_seconds

60

Timeout for AppleScript manager calls

file_search_max_results

25

Max results for find_files

clipboard_max_chars

20000

Max chars for clipboard text reads

include_hidden_default

false

Include hidden files in searches by default

allowed_directories

[]

Allowed path roots (empty = full FS)

audit_log_enabled

false

Log tool calls to audit file when enabled

search_visit_limit

50000

Max entries to walk per search batch

Audit Logging

When audit logging is enabled, every tool call is logged to ~/.cache/altic-mcp/audit.jsonl (rotated at 10 MB). Use the get_recent_tool_calls tool to retrieve recent call history with timing and success status.

How to Install

Install in Claude Desktop

altic-mcp offers multiple installation methods for Claude Desktop.

📋 Update & Uninstall Information: Options 1 and 2 have automatic updates. See Updating & Uninstalling below for details.

Option 1: Add to claude_desktop_config manually ⭐ Auto-Updates (Requires UV)

Add this entry to your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "altic-mcp": {
      "command": "uvx",
      "args": ["--refresh", "--from", "git+https://github.com/altic-dev/altic-mcp.git", "altic-mcp"]
    }
  }
}

Restart Claude if running.

✅ Auto-Updates: Yes — uvx --refresh re-fetches the latest version from GitHub each time Claude starts 🔄 Manual Update: uv cache clean altic-mcp then restart Claude 🗑️ Uninstall: Remove the "altic-mcp" entry from your claude_desktop_config.json

Performance tip: --refresh ensures you always run the latest version but adds a few seconds to startup. Remove --refresh for faster startup (update manually with uv cache clean altic-mcp).

Option 2: Using bash script installer ⭐ Auto-Updates (Installs UV if needed)

curl -fsSL https://raw.githubusercontent.com/altic-dev/altic-mcp/refs/heads/main/install.sh | bash

This script checks for UV (installs it if missing), backs up your existing Claude config, and adds the altic-mcp server entry automatically.

✅ Auto-Updates: Yes — same uvx --refresh mechanism as Option 1 🔄 Manual Update: Re-run the bash installer command above, or uv cache clean altic-mcp 🗑️ Uninstall: Remove the "altic-mcp" entry from your claude_desktop_config.json

Install in Other Clients

altic-mcp works with any MCP-compatible client. The standard JSON configuration is:

{
  "mcpServers": {
    "altic-mcp": {
      "command": "uvx",
      "args": ["--refresh", "--from", "git+https://github.com/altic-dev/altic-mcp.git", "altic-mcp"]
    }
  }
}

Add this to your client's MCP configuration file at the locations below:

Cursor

Install MCP Server

Or add manually to ~/.cursor/mcp.json (global) or .cursor/mcp.json in your project folder (project-specific).

See Cursor MCP docs for more info.

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json. See Windsurf MCP docs for more info.

VS Code / GitHub Copilot

Add to .vscode/mcp.json in your project or VS Code User Settings (JSON). Make sure MCP is enabled under Chat > MCP. Works in Agent mode.

See VS Code MCP docs for more info.

Cline

Configure through the Cline extension settings in VS Code. Open the Cline sidebar, click the MCP Servers icon, and add the JSON configuration above. See Cline MCP docs for more info.

Roo Code

Add to your Roo Code MCP configuration file. See Roo Code MCP docs for more info.

Claude Code

claude mcp add --scope user altic-mcp -- uvx --refresh --from git+https://github.com/altic-dev/altic-mcp.git altic-mcp

Remove --scope user to install for the current project only. See Claude Code MCP docs for more info.

Trae

Use the "Add manually" feature and paste the JSON configuration above. See Trae MCP docs for more info.

Kiro

Navigate to Kiro > MCP Servers, click + Add, and paste the JSON configuration above. See Kiro MCP docs for more info.

Codex (OpenAI)

Codex uses TOML configuration. Run this command to add altic-mcp:

codex mcp add altic-mcp -- uvx --refresh --from git+https://github.com/altic-dev/altic-mcp.git altic-mcp

Or manually add to ~/.codex/config.toml:

[mcp_servers.altic-mcp]
command = "uvx"
args = ["--refresh", "--from", "git+https://github.com/altic-dev/altic-mcp.git", "altic-mcp"]

See Codex MCP docs for more info.

JetBrains (AI Assistant)

In JetBrains IDEs, go to Settings → Tools → AI Assistant → Model Context Protocol (MCP), click + Add, select As JSON, and paste the JSON configuration above. See JetBrains MCP docs for more info.

Gemini CLI

Add to ~/.gemini/settings.json:

{
  "mcpServers": {
    "altic-mcp": {
      "command": "uvx",
      "args": ["--refresh", "--from", "git+https://github.com/altic-dev/altic-mcp.git", "altic-mcp"]
    }
  }
}

See Gemini CLI docs for more info.

OpenCode

Add to your opencode.json (project-level) or ~/.config/opencode/opencode.json (global):

{
  "mcp": {
    "altic-mcp": {
      "type": "local",
      "command": ["uvx", "--refresh", "--from", "git+https://github.com/altic-dev/altic-mcp.git", "altic-mcp"],
      "enabled": true
    }
  }
}

See OpenCode MCP docs for more info.

Updating & Uninstalling Altic MCP

Automatic Updates (Options 1 & 2)

Both the manual config (Option 1) and bash installer (Option 2) use uvx --refresh, which automatically re-fetches the latest version from GitHub whenever you restart Claude. No manual intervention needed.

Manual Updates

If you removed --refresh for faster startup, force an update with:

uv cache clean altic-mcp

Then restart Claude Desktop.

Uninstalling Altic MCP

Manual Uninstallation

  1. Locate your Claude Desktop config file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  2. Edit the config file:

    • Open the file in a text editor

    • Find and remove the "altic-mcp" entry from the "mcpServers" section

    • Save the file

Example — remove this section:

"altic-mcp": {
  "command": "uvx",
  "args": ["--refresh", "--from", "git+https://github.com/altic-dev/altic-mcp.git", "altic-mcp"]
}

Close and restart Claude Desktop to complete the removal.

Troubleshooting

If Claude won't start after editing the config:

  • Check that your JSON is valid (no trailing commas, matched braces)

  • Restore from the backup created by the bash installer (.bak.* file next to your config)

  • Re-run the bash installer to regenerate a valid config

Local Development

For contributors who want to run altic-mcp from a local checkout:

# Install UV if needed
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone and setup
git clone https://github.com/altic-dev/altic-mcp.git
cd altic-mcp
uv sync

# Run the server directly
uv run server.py

# Or build and run via the installed entry point
uv build
uvx --from dist/altic_mcp-0.1.0-py3-none-any.whl altic-mcp

❌ Auto-Updates: No — requires manual git pull to update 🔄 Manual Update: cd altic-mcp && git pull && uv sync 🗑️ Uninstall: Remove the cloned directory and the MCP server entry from your client config

Permissions Required

System Preferences → Privacy & Security:

  • Contacts - For search_contacts

  • Calendars - For calendar events

  • Reminders - For creating reminders

  • Automation - Allow Claude to control apps (Messages, Notes, Safari)

  • Finder Automation - For Finder selection, reveal, and Trash file tools

  • Accessibility - Required for screen glow, system controls, and window management tools such as focus_window, move_window, resize_window, center_window, tile_windows, minimize, hide_app, and quit_app

  • Screen Recording - Required for screenshot capture tools and improves window title/id discovery for list_windows on recent macOS versions

Clipboard text operations normally do not require extra permissions. Clipboard file and image operations use macOS pasteboard APIs and may prompt for security approval depending on the host app and OS settings.

Safari Settings:

Safari → Develop → Allow JavaScript from Apple Events ✅ (Required for Safari tools)

Note: If "Develop" menu is not visible, enable it in Safari → Settings → Advanced → Show Develop menu

Chrome Setup (for CDP tools):

  • Install Google Chrome

  • The MCP server can auto-start Chrome with --remote-debugging-port when opening a CDP session

  • If auto-start fails, launch manually:

open -a "Google Chrome" --args --remote-debugging-port=9222

macOS will prompt for permissions when first used. Grant them to enable full functionality.

Available Tools

91 tools
add_screen_glowA

Add a visual feedback indicator (orange glow around screen edges) to show that automated actions are in progress.

IMPORTANT: Call this FIRST before performing any automated actions to provide visual feedback to the user that the tool is actively working. This serves as a clear indicator that operations are being executed.

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

The description discloses the visual effect (orange glow), its purpose (feedback for automated actions), and the return type (success/error message). No annotations are provided, but the description adequately covers the basic behavior without contradictions.

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

Conciseness5/5

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

The description is concise with three sentences plus a returns line. The important usage note is highlighted with 'IMPORTANT', making it well-structured and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully covers what the tool does, when to use it, and what it returns. It is complete for a simple tool with no parameters and a clear purpose, especially given the existence of a complementary sibling tool to remove the glow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the schema coverage is trivially 100%. Following guidelines, the baseline is 4. The description does not need to add parameter information since none exist.

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

Purpose5/5

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

The description clearly states the tool adds an orange glow around screen edges to indicate automated actions in progress. It uses a specific verb 'add' and resource 'screen glow', and the purpose is distinguishable from its sibling 'remove_screen_glow'.

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

Usage Guidelines5/5

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

The description explicitly instructs to call this tool FIRST before performing automated actions, providing clear usage context and timing. It implies when not to use (after actions) and the complementary sibling tool is implied.

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

append_to_noteA

Append plain text to a note by id or title.

Args: identifier: Note id or title text body: Plain text to append

Returns: Structured JSON with the updated note or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral disclosure. It states it appends plain text but fails to disclose important traits: behavior when note does not exist, handling of identifier ambiguity (multiple notes with same title), impact on rich text notes, or if it creates the note if missing. Error handling is not detailed.

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

Conciseness4/5

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

Description is concise at two sentences plus bullet-style Args and Returns. It is front-loaded with the main action. Every sentence provides value, though the Args section could be integrated for brevity. Overall efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return value details are not needed. However, given the tool's simplicity and lack of annotations, the description omits critical behavioral context: what happens if identifier matches multiple notes, if note not found, or if body is not plain text. It is minimally viable but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has two required string parameters with 0% description coverage. The description adds meaning: 'identifier' can be a note id or title, and 'body' is plain text. This clarifies usage beyond the schema. However, it could specify the expected format for identifier (e.g., UUID) or constraints on body length.

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

Purpose5/5

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

Description clearly states 'Append plain text to a note by id or title.' This specifies a concrete verb 'append' and resource 'note,' with the method 'by id or title.' It distinguishes from sibling tools like 'update_note' (which likely modifies or replaces content) and 'create_note' (which creates a new note).

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

Usage Guidelines3/5

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

The description implies usage for appending text, but it does not explicitly state when to use this tool over alternatives like 'update_note' (which might replace content) or 'create_note.' No guidance on prerequisites (e.g., note must exist) or exclusion criteria. Usage is implied but not clarified.

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

capture_active_screenA

Capture a full screenshot of the display containing the frontmost app and share the image directly with the model.

Args: output_path: Optional file path for output PNG

Returns: A text status plus image content, or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
output_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

The description discloses that it captures the display of the frontmost app and returns a text status plus image. It does not mention permissions or side effects, but for a read-like screenshot tool, this is largely sufficient.

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

Conciseness5/5

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

The description is concise, front-loaded with the main purpose, and uses a clear Args/Returns structure. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool, the description covers the main function, parameter, and return format. It could mention prerequisites like permissions, but overall it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must add meaning. It clearly explains the single optional parameter 'output_path' as a file path for output PNG, which the schema lacks.

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

Purpose5/5

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

The description clearly states it captures a full screenshot of the display containing the frontmost app and shares it with the model, which distinguishes it from sibling tools like chrome_screenshot that capture specific browser content.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as chrome_screenshot or save_clipboard_image. The description lacks explicit context or exclusions for usage.

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

center_windowA

Center a macOS window on its current display or a selected display.

Args: app_name: Optional app name, bundle id, or process name window_id: Optional CoreGraphics window id window_index: Optional 1-based index among the app's windows display_index: Optional 1-based display index width: Optional width to apply before centering height: Optional height to apply before centering

Returns: JSON string with final window metadata, or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
app_nameNo
window_idNo
window_indexNo
display_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries full burden for behavioral disclosure. It explains centering behavior, optional resizing before centering, and return value. However, it omits edge cases like what happens when multiple selection params are provided (e.g., window_id vs. app_name) or precise 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.

Conciseness5/5

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

The description is concise (two sentences plus bullet-like list) and front-loaded with the core action. Every sentence serves a purpose; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 optional parameters, no annotations, and an output schema. The description covers each parameter and the return format. It is nearly complete, but a note on selection precedence when multiple window identifiers are given would elevate it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description's parameter explanations add significant value, specifying the meaning of each field (e.g., app_name can be name, bundle id, or process name). However, it lacks clarity on how parameters interact (e.g., selection priority).

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

Purpose5/5

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

The description clearly states the verb 'center' and the resource 'macOS window', and distinguishes it from sibling tools like 'move_window' (move without centering) and 'resize_window' (resizing only). The action is precise and unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs. alternatives such as 'move_window' or 'resize_window'. It lists parameters but does not explain conditions for choosing this tool over siblings, leaving 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.

check_calendar_availabilityA

Check whether a Calendar time slot conflicts with existing events.

Args: start_datetime: Slot start in "YYYY-MM-DD HH:MM" format duration_minutes: Slot duration in minutes calendar_name: Optional calendar name

Returns: Structured JSON with availability and conflicts or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
calendar_nameNo
start_datetimeYes
duration_minutesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations exist, so the description carries full burden. It discloses that the tool returns 'Structured JSON with availability and conflicts or an error message', providing insight into the tool's behavior. It also lists parameters with format hints. However, it does not mention any side effects, though for a read-only check like this, that is acceptable. The transparency is good but not exhaustive.

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

Conciseness5/5

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

The description is extremely concise: a one-sentence summary followed by a brief list of arguments. Every sentence adds value, and the key purpose is front-loaded. There is no fluff or repetition, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 3 parameters, all described; an output schema is mentioned (though not shown); and the description explains return values. However, it lacks details such as whether checking applies to all calendars or just the specified one, timezone handling, or how conflicts are determined. For a simple checking tool, it is largely complete but has minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, meaning no parameter descriptions. The tool description compensates fully by explaining the format for 'start_datetime' ('YYYY-MM-DD HH:MM'), the unit for 'duration_minutes' (in minutes), and that 'calendar_name' is optional. This adds significant meaning beyond the raw schema types and defaults.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Check whether a Calendar time slot conflicts with existing events.' It uses a specific verb ('check') and a well-defined resource ('Calendar time slot'). This purpose is distinct from sibling tools like 'create_calendar_event' or 'list_calendar_events', as it focuses on conflict detection rather than creation or listing.

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

Usage Guidelines3/5

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

The description implies the tool is used for checking availability, but does not explicitly provide guidance on when to use it versus alternatives (e.g., before creating an event). There is no mention of when not to use it or references to other tools. The usage is clear from context but lacks explicit direction.

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

chrome_clickB

Click an element in an active Chrome CDP session using a CSS selector.

Args: session_id: Session returned by chrome_open_session selector: CSS selector for target element

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYes
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only mentions 'Click an element' and return type. It fails to disclose behaviors such as effects on page state, timing, error handling (e.g., element not found), or whether it uses native events vs JavaScript.

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

Conciseness5/5

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

The description is concise (two sentences plus Args/Returns), front-loaded with the core purpose, and contains no superfluous information. Every sentence is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description covers the basic action and parameters. However, it omits usage guidelines, behavioral details, and fails to fully describe error states or return value format, leaving some gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description explains session_id as 'Session returned by chrome_open_session' and selector as 'CSS selector for target element'. This adds basic meaning beyond the schema (which only has types), but lacks details like selector format or session_id validation.

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

Purpose5/5

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

The description states 'Click an element in an active Chrome CDP session using a CSS selector,' clearly specifying the action (click), target (element), context (active Chrome CDP session), and method (CSS selector). It distinguishes from sibling tools like chrome_type (typing) and chrome_navigate (navigation).

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

Usage Guidelines2/5

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

The description does not explicitly state when to use this tool versus alternatives like chrome_type or chrome_wait_for. It implies a requirement for an active session from chrome_open_session but offers no guidance on exclusions or comparative use cases.

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

chrome_close_sessionA

Close a Chrome automation session.

Args: session_id: Session returned by chrome_open_session

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations provided; description carries full burden. Discloses that it closes a session and returns success/error, but does not mention side effects, state requirements, or error behavior.

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

Conciseness5/5

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

Very concise: one-line purpose, then args and returns. No redundant information, easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple close operation with one parameter and an output schema, the description covers purpose, argument, and return. Could mention that the session must be open, but still adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema only specifies 'session_id' as string; description adds 'Session returned by chrome_open_session', providing important context beyond the schema. With 0% schema description coverage, this compensates well.

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

Purpose5/5

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

Clearly states verb 'Close' and resource 'Chrome automation session'. Distinct from siblings like chrome_open_session and chrome_list_sessions.

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

Usage Guidelines3/5

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

Advises that session_id should come from chrome_open_session, but does not explicitly state when to use or alternatives. Implicitly, use when you want to close a session, but no guidance on prerequisites or when not to use.

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

chrome_extractA

Extract data from a page by selector or by JavaScript expression.

Args: session_id: Session returned by chrome_open_session selector: CSS selector to query attribute: Attribute name to read from selected element javascript_expression: JavaScript expression to evaluate directly

Returns: Extracted value as JSON or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorNo
attributeNo
session_idYes
javascript_expressionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses that output is JSON or error message but fails to clarify precedence when both selector and javascript_expression are provided, or behavior when neither is specified. Side effects are not addressed.

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

Conciseness4/5

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

The description is concise with a clear purpose statement, an args list, and return info. It is front-loaded with the main action. Minor formatting (bullet-like lines) but no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 0% schema coverage and no annotations, the description should cover parameter interactions and error scenarios. It explains basic usage but lacks details on mutual exclusivity of selector and javascript_expression, and does not describe potential failure modes or output schema content.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It explains each parameter (session_id, selector, attribute, javascript_expression) briefly, adding meaning beyond empty defaults. However, it does not clarify mutual exclusivity or dependency requirements, leaving ambiguity.

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

Purpose5/5

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

The description explicitly states 'Extract data from a page by selector or by JavaScript expression,' clearly specifying the verb (extract) and resource (data from a page). It distinguishes the two methods, avoiding tautology and providing specific purpose.

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

Usage Guidelines3/5

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

The description implies usage for extracting data but provides no explicit guidance on when to use this tool versus siblings like chrome_click or chrome_screenshot. No exclusions or alternative tools are mentioned.

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

chrome_list_sessionsA

List active Chrome automation sessions.

Returns: A list of active session IDs

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It accurately states the return type but offers no additional context about side effects, safety, or operational characteristics.

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

Conciseness5/5

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

The description is extremely concise with two sentences that convey the tool's purpose and output without any wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of parameters and the presence of an output schema, the description is sufficient to understand what the tool does and what it returns, completing the picture for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the baseline score of 4 applies. The description does not need to compensate for missing parameter information.

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

Purpose5/5

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

The description clearly states the verb 'List' and resource 'active Chrome automation sessions,' which distinguishes it from sibling tools like chrome_open_session and chrome_close_session.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention scenarios where it should not be used. The purpose is implied but not clarified.

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

chrome_navigateA

Navigate an active Chrome CDP session to a URL.

Args: session_id: Session returned by chrome_open_session url: URL to load

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only mentions navigation to a URL, but omits details like whether it waits for page load, handles redirects, or reports errors. This is insufficient for an agent to predict side effects.

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

Conciseness5/5

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

The description is extremely concise: three clear sentences in a structured format. Every word is necessary; no redundant information. It earns its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and presence of an output schema (describing return values), the description provides minimally viable information. It mentions inputs, output type, and session dependency, but lacks detailed behavior or error handling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate. It explains that 'session_id' comes from 'chrome_open_session' and 'url' is a URL to load, which adds meaningful context beyond the schema's type-only definitions. However, it could specify expected URL format or call behavior.

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

Purpose5/5

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

The description clearly states the action ('Navigate') and the resource ('an active Chrome CDP session to a URL'). It distinguishes from sibling tools like 'chrome_click' or 'navigate_safari' by specifying Chrome CDP context.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives, prerequisites (e.g., needing an active session from 'chrome_open_session'), or scenarios where it should be avoided. It only states inputs and outputs.

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

chrome_open_sessionA

Open a Chrome automation session for browser control.

Args: start_url: Initial page URL to open debug_port: Chrome remote debugging port for CDP sessions headless: Launch Chrome headless if debugger needs to be started

Returns: Session identifier and connection details or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
headlessNo
start_urlNoabout:blank
debug_portNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It mentions starting a session and debugging port, but lacks details on side effects (e.g., launching a new Chrome process), resource usage, or error conditions beyond a generic error message.

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

Conciseness5/5

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

The description is concise and well-structured, with a clear purpose statement followed by an Args/Returns section. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers basic purpose, parameters, and return type, it omits important context like persistence of the session, prerequisites (Chrome installation), or how it interacts with existing sessions. An output schema exists but does not compensate for these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description bridges the gap by explaining each parameter's purpose (e.g., debug_port for CDP sessions, headless launch if debugger needed), adding meaning beyond the schema's types and defaults.

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

Purpose5/5

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

The description clearly states the verb 'Open' and resource 'Chrome automation session', which is distinct from sibling tools like chrome_click or chrome_navigate that operate within a session.

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

Usage Guidelines3/5

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

The description implies when to use this tool (to start a session for browser control), but does not explicitly state when not to use it or mention alternatives like reusing an existing session via chrome_list_sessions.

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

chrome_screenshotB

Capture a screenshot of the active page in a Chrome CDP session.

Args: session_id: Session returned by chrome_open_session output_path: Optional file path for output PNG

Returns: Saved path or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
output_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

The description discloses basic behavior (capture screenshot) and return type, but lacks details on what exactly is captured (viewport vs full page), side effects, permissions required, or state dependencies (e.g., session must be open). No annotations are provided to compensate.

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

Conciseness5/5

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

The description is very concise: a single sentence for purpose, followed by structured Args and Returns sections. No unnecessary information is present, and the most important details are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple screenshot tool with an output schema (suggested by context), the description is adequate but not complete. It covers purpose and parameters but lacks behavioral details like what happens when output_path is empty, whether errors are specific, or how the screenshot is captured (e.g., viewport only).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains that 'session_id' is the session returned by chrome_open_session and 'output_path' is an optional file path for output PNG. This adds meaning beyond the schema, which only defines types and default values. Schema description coverage is 0%, so the description effectively compensates.

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

Purpose4/5

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

The description clearly states it captures a screenshot of the active page in a Chrome CDP session, distinguishing it from sibling tools like capture_active_screen. However, it does not explicitly differentiate from other Chrome-specific tools like chrome_navigate or chrome_click.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like capture_active_screen or other screenshot tools. There is no mention of prerequisites or when to avoid using it.

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

chrome_typeA

Type text into an input element in an active Chrome CDP session.

Args: session_id: Session returned by chrome_open_session selector: CSS selector for input element text: Text to type clear_first: Clear existing value before typing

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
selectorYes
session_idYes
clear_firstNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral disclosure burden. It mentions 'clear_first: Clear existing value before typing,' which is a useful trait. However, it does not describe side effects such as error handling (e.g., if element not found), timing (e.g., waits for element), or whether it simulates keypresses versus setting value. The return is vaguely 'Success or error message.'

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

Conciseness5/5

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

The description is a single, purpose-defining sentence followed by a clear, bullet-like list of parameters. Every sentence is informative, no filler. The structure is front-loaded with the main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (4 parameters, no annotations, output schema exists), the description covers the essential aspects: purpose, parameter explanations, and return value. It lacks details on prerequisites (must have active session) and error scenarios, but overall is adequate for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description compensates well by explaining each parameter: session_id (returned by chrome_open_session), selector (CSS selector), text (text to type), clear_first (clear existing value). This adds meaning beyond the property names, though further specificity (e.g., 'valid CSS selector') would improve it.

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

Purpose5/5

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

The description clearly states 'Type text into an input element in an active Chrome CDP session,' specifying a verb ('type'), resource ('input element'), and context ('active Chrome CDP session'). This distinguishes it from sibling tools like chrome_click (click) and chrome_extract (extract).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., session must be open), exclusions, or conditions under which other tools might be preferred. The agent must infer usage context from the tool name alone.

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

chrome_wait_forA

Wait for a CSS selector to exist and be visible in the page.

Args: session_id: Session returned by chrome_open_session selector: CSS selector to wait for timeout_ms: Max wait time in milliseconds poll_ms: Poll interval in milliseconds

Returns: Success or timeout/error message

ParametersJSON Schema
NameRequiredDescriptionDefault
poll_msNo
selectorYes
session_idYes
timeout_msNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Without annotations, the description covers basic behavior: it waits for a selector to exist and be visible, returning success or error. However, it omits details like whether it scrolls to element, what 'visible' means (e.g., in viewport), or specific timeout behavior.

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

Conciseness5/5

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

The description is well-structured with a clear first line, followed by an Args list and Returns. Every sentence is informative and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a wait tool with 4 parameters and an existing output schema (as indicated), the description adequately covers purpose, parameters, and return behavior. It lacks some nuance but is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 0%, the description explicitly explains the role of each parameter (session_id, selector, timeout_ms, poll_ms) beyond the schema's types and defaults. This adds meaningful usage context.

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

Purpose5/5

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

The description clearly states the verb 'wait for' and the resource 'CSS selector', specifying existence and visibility. It distinguishes itself from sibling tools like chrome_click or chrome_extract which perform different actions.

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

Usage Guidelines3/5

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

The description implies usage for waiting on element presence before interaction, but does not explicitly state when to use or when not to use it compared to alternatives. As the only wait tool among siblings, it scores a moderate 3.

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

clear_clipboardA

Clear clipboard contents.

Returns: JSON string with operation metadata, or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses the action and return format (JSON with operation metadata or error), which is sufficient for a simple tool with no annotations. It doesn't conflict with any annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and output schema implied, the description covers the action and return value adequately. No missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description correctly has no param details, meeting the baseline for zero-parameter tools.

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

Purpose5/5

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

The description clearly states 'Clear clipboard contents' with a specific verb and resource, distinguishing it from sibling tools like get_clipboard_text or set_clipboard_text.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like get_clipboard_text or set_clipboard_text. The description lacks context for when clearing is appropriate.

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

close_safari_tabA

Close a Safari tab. Use -1 for current tab or specify tab index (1-based)

Args: tab_index: Tab index to close (-1 for current tab, or 1-based index)

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
tab_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions the return type ('Success or error message') but does not disclose potential side effects, such as whether closing the last tab closes the window, or any permissions needed.

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

Conciseness4/5

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

The description is short and front-loaded with the core action. The docstring format with Args and Returns is clear, though slightly verbose for such a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter, the description is mostly complete. However, it could mention that Safari must be running and what happens if an invalid index is provided. The output schema is not explicitly defined, but the description covers the return type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the meaning of 'tab_index' and its special value -1, adding context beyond the input schema (which only specifies type and default). This is valuable for the agent.

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

Purpose5/5

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

The description clearly states the action ('Close') and the resource ('a Safari tab'), and specifies how to use the parameter (-1 for current tab, 1-based index). This distinguishes it from sibling tools like 'close_safari_window' and 'switch_safari_tab'.

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

Usage Guidelines3/5

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

The description explains how to specify the tab index, including the special -1 value for the current tab. However, it does not explicitly state when to use this tool versus alternatives like 'switch_safari_tab' or 'close_safari_window', leaving some ambiguity.

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

close_safari_windowB

Close the current Safari window

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits. It only states it returns a success or error message but does not mention if unsaved changes are handled, if confirmation is needed, or any side effects.

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

Conciseness4/5

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

The description is short and front-loaded, but the return value line is redundant given the output schema. Still, efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and an output schema, the description provides the essential purpose. However, it lacks context about when the action might fail or behave unexpectedly (e.g., minimized windows).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the schema already fully defines the interface. The description adds no additional parameter information, but baseline is 4 due to 100% schema coverage.

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

Purpose4/5

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

The description clearly states the action (close) and the resource (Safari window), distinguishing it from sibling tools like close_safari_tab. However, 'current' could be more precise (e.g., 'frontmost').

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like close_safari_tab. The description does not mention context or prerequisites.

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

complete_reminderA

Mark an exact or uniquely matching reminder as complete.

Args: identifier: Reminder id or name/title text list_name: Optional Reminders list name

Returns: Structured JSON with the updated reminder or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_nameNo
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description must cover behavior. Does not disclose side effects, uniqueness handling, or error conditions beyond 'error message'.

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

Conciseness5/5

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

Concise, structured with Args and Returns sections. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists but not detailed; description summarizes return. Lacks clarity on uniqueness constraints and error scenarios. Adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, description adds meaning: identifier can be id or text, list_name narrows search. Lacks details on case sensitivity or id format.

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

Purpose5/5

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

Clearly states action ('Mark as complete') on resource ('reminder') with specificity ('exact or uniquely matching'). Distinguishes from siblings like delete_reminder and update_reminder.

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

Usage Guidelines3/5

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

Provides parameter usage hints ('id or name/title text', 'optional list name') but lacks guidance on when to use this tool over update_reminder or other alternatives.

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

copy_directoryA

Copy a directory tree. Existing destinations fail unless overwrite is true.

Args: source: Existing source directory path destination: Destination directory path overwrite: Allow merging into an existing destination dry_run: Return the planned action without copying

Returns: JSON string with operation details or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
dry_runNo
overwriteNo
destinationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description explains failure behavior on existing destinations and the dry_run option. However, it lacks details on merging semantics, permissions, or potential side effects, leaving some ambiguity.

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

Conciseness5/5

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

The description is concise, with a front-loaded purpose statement and clear bullet-pointed arguments. Every sentence adds value without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (implied), the description adequately covers core behavior and arguments. It could mention error handling more explicitly, but overall is sufficient for a directory copy tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains each parameter in the Args block, adding meaning beyond the empty schema descriptions. However, source and destination descriptions are minimal ('existing source directory path').

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

Purpose5/5

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

The description clearly states it copies a directory tree, which is a specific verb (copy) and resource (directory tree). It is distinct from sibling tools like copy_file and move_file.

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

Usage Guidelines4/5

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

The description notes that existing destinations fail unless overwrite is true, providing a clear condition for use. It does not explicitly compare with siblings but implies context through the action and arguments.

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

copy_fileA

Copy a file with metadata. Directories require copy_directory.

Args: source: Existing source file path destination: Destination file path overwrite: Allow replacing an existing destination dry_run: Return the planned action without copying

Returns: JSON string with operation details or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
dry_runNo
overwriteNo
destinationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool copies with metadata, supports overwrite and dry-run, and returns a JSON string. It does not mention potential side effects (e.g., overwrite deleting destination) but these are implied by the overwrite parameter.

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

Conciseness5/5

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

The description is very concise: one sentence summarizing the action, followed by a structured Args and Returns block. Every sentence is necessary and earns its place. No redundant or vague text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (copy file with options), the description covers parameters and output reasonably well. The output schema existence is noted but not detailed. Missing error cases or exactly what 'metadata' includes, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It provides clear explanations for all four parameters: source, destination, overwrite, and dry_run. This adds value beyond the schema, though could include format expectations (e.g., absolute paths).

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

Purpose5/5

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

The description clearly states 'Copy a file with metadata' and explicitly distinguishes from 'copy_directory' for directories. The verb 'copy' and resource 'file' are specific, and the sibling differentiation is explicit.

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

Usage Guidelines4/5

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

The description provides a clear when-not-to-use guideline: 'Directories require copy_directory.' However, it does not differentiate from 'move_file' or other file operations, which could cause confusion. The parameter descriptions (overwrite, dry_run) imply usage context.

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

create_calendar_eventB

Create a calendar event in the macOS Calendar app

Args: title: The event title start_datetime: Start date and time in format 'YYYY-MM-DD HH:MM' (e.g., '2025-10-30 14:30') duration_minutes: Duration of the event in minutes calendar_name: Optional calendar name (uses default calendar if not specified)

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
calendar_nameNo
start_datetimeYes
duration_minutesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose permissions needed, whether it overwrites existing events, error handling for invalid calendar names, or synchronization behavior. Only return type (success/error) is mentioned.

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

Conciseness4/5

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

Description is concise, uses clear bullet points for args and returns, and front-loads the main action. No superfluous text, but could be slightly more structured (e.g., grouping optional params).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple creation tool with 4 parameters and an output schema, the description covers basic usage but lacks behavioral details. Given no annotations, it is adequate but leaves gaps about edge cases (e.g., invalid calendar name, event conflicts).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 0% description coverage, so the description adds substantial value by explaining the format for start_datetime (with example), duration in minutes, and optional calendar_name. This helps the agent correctly format parameters.

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

Purpose4/5

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

Description clearly states it creates a calendar event in the macOS Calendar app. However, it does not differentiate from the sibling 'create_recurring_event' tool. Distinguishing between simple and recurring events would improve clarity.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. For example, there is no mention of conditions for using 'create_recurring_event' or handling of default calendars. The description only notes that calendar_name is optional.

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

create_contactA

Create a Contacts record with optional organization, phone, email, and note.

Args: first_name: Contact first name last_name: Contact last name organization: Optional organization/company phone: Optional phone number to add with mobile label email: Optional email to add with home label note: Optional contact note

Returns: Structured JSON with the created contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
emailNo
phoneNo
last_nameYes
first_nameYes
organizationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It only states creation but does not disclose potential side effects, ID generation, or whether existing contacts are checked. No contradiction with annotations.

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

Conciseness4/5

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

The description is concise with clear Args and Returns sections. Every sentence adds value. Minor redundancy: defaults in schema could be inferred, but not burdensome.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (though not provided), the description adequately describes return as 'Structured JSON with the created contact'. Parameter descriptions are complete for required and optional fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description's parameter list is essential. It adds meaning: e.g., 'optional organization/company', 'optional phone number to add with mobile label', and 'optional email to add with home label'. This contextualizes the parameters beyond the schema's type/default.

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

Purpose5/5

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

The description clearly states 'Create a Contacts record' and lists specific optional fields. It distinguishes from sibling tools like update_contact, get_contact, and search_contacts by focusing on creation.

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

Usage Guidelines3/5

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

The description implies use when creating a new contact but does not explicitly state when to use alternatives or conditions for use. No exclusion criteria or when-not-to-use guidance is provided.

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

create_noteB

Create a note

Args: name: Title of the note body: Content of the note folder: Use this if the note has to be created in a specific folder. Uses default folder if none is specified

Returns: A success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
nameYes
folderNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

Returns only 'success or error message' without details. No disclosure of overwrite behavior, concurrency, or limitations. Annotations absent, so description should carry more burden.

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

Conciseness4/5

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

Single sentence followed by clear Args block. No waste, but could be more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers 3 parameters, but output is vague. Output schema exists, so return value details are less critical, but still lacks specifics on error types or response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions are absent (0% coverage), but the description explains each parameter: name, body, and folder with default folder behavior. Adds significant meaning beyond bare schema.

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

Purpose5/5

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

Clearly states 'Create a note' with verb and resource. Distinguishes from siblings like update_note and delete_note.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like append_to_note or move_note. Only default folder behavior mentioned.

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

create_recurring_eventA

Create a recurring Calendar event.

Args: title: Event title start_datetime: Start date and time in "YYYY-MM-DD HH:MM" format duration_minutes: Duration in minutes frequency: daily, weekly, monthly, or yearly interval: Recurrence interval count: Optional occurrence count until_date: Optional recurrence end date in "YYYY-MM-DD" format calendar_name: Optional target calendar name location: Optional event location notes_text: Optional event notes

Returns: Structured JSON with the created recurring event or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo
titleYes
intervalNo
locationNo
frequencyNoweekly
notes_textNo
until_dateNo
calendar_nameNo
start_datetimeYes
duration_minutesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It explains the tool creates a recurring event and returns structured output, but lacks details on side effects, required permissions, default calendar behavior, or error handling. The parameter list and return type are covered, but behavioral traits beyond creation are omitted.

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

Conciseness4/5

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

The description is well-structured with Args and Returns sections, front-loading the purpose. It is clear but a bit verbose; each line contributes meaning. Minor redundancy (e.g., 'Optional' for count is clear from schema). Overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters) and the presence of an output schema (though not shown), the description covers required and optional parameters, return type, and format hints. It lacks information about timezone handling or default calendar, but is sufficient for an AI agent to understand input expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description compensates well by listing all parameters with brief explanations, formats (e.g., YYYY-MM-DD HH:MM for dates), and allowed values (daily, weekly, monthly, yearly for frequency). This adds meaning beyond the schema's type and range constraints, though defaults are not explicitly stated.

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

Purpose5/5

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

The description clearly states the tool creates a recurring Calendar event. It uses a specific verb ('Create') and resource ('recurring Calendar event'), distinguishing it from sibling tools like create_calendar_event (non-recurring) and update_calendar_event.

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

Usage Guidelines3/5

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

The description implies use for recurring events but does not explicitly specify when to use this tool over alternatives like create_calendar_event or provide exclusion criteria. No guidance on prerequisites or scenarios where this tool is appropriate.

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

Args: amount: Amount to decrease brightness by (0.0 to 1.0 scale). Default is 0.0625 (6.25%)

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Describes the basic behavior (decreases brightness) and return type (success/error), but with no annotations, lacks details on side effects, prerequisites, or scope (e.g., display support). Adequate but minimal.

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

Conciseness5/5

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

Docstring format with Args and Returns sections, no unnecessary words. All sentences add value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple brightness adjustment tool. Output schema exists, so return format is handled. Could mention display compatibility but not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description fully explains the 'amount' parameter with scale, default, and percentage, while the input schema only provides type, default, min, max with no description. Fully compensates for 0% schema description coverage.

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

Purpose5/5

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

Clearly states the action 'decrease screen brightness' with a specific verb and resource. Distinguishes from sibling 'increase_brightness' and other volume/brightness tools by naming the resource.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives guidance. The context implies decreasing brightness when needed, but no comparison with 'increase_brightness' or 'turn_down_volume' is provided.

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

delete_calendar_eventA

Delete an exact or uniquely matching Calendar event. Defaults to dry-run.

Args: identifier: Event id or title text start_date: Optional date-range start in "YYYY-MM-DD" format end_date: Optional date-range end in "YYYY-MM-DD" format calendar_name: Optional calendar name dry_run: Return matching event without deleting when true

Returns: Structured JSON with deletion details or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
end_dateNo
identifierYes
start_dateNo
calendar_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description takes on the full disclosure burden. It explains the dry-run default and returns JSON with details, but does not mention irreversibility, permissions, or behavior on ambiguous matches (e.g., multiple events with same title).

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

Conciseness5/5

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

The description is front-loaded with the core action, followed by a clean list of arguments and return value. Every sentence adds value with no redundant or verbose phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (though not shown), the description appropriately notes the return type. It covers the main parameters and their roles, but could better explain edge cases like multiple matches or calendar_name scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the schema: it explains the purpose of each parameter, provides date format hints ('YYYY-MM-DD'), and clarifies the dry_run flag's effect. Since schema coverage is 0%, this compensation is strong, though it could be more explicit about optional filtering behavior.

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

Purpose5/5

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

The description uses a specific verb ('delete') and resource ('Calendar event'), and clarifies it can delete an exact or uniquely matching event. This clearly distinguishes it from sibling tools like 'update_calendar_event' or 'create_calendar_event'.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., 'update_calendar_event', 'list_calendar_events'). The description does not specify when not to use it or what to do if multiple events match.

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

delete_noteA

Delete a note by id or title. Defaults to dry-run.

Args: identifier: Note id or title text dry_run: Return matching note without deleting when true

Returns: Structured JSON with deletion details or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Given no annotations, the description carries the full burden. It discloses the crucial safety feature of a dry-run default and explains the behavior of the dry_run parameter. However, it omits details on permanence of deletion and 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.

Conciseness5/5

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

The description is concise and well-structured with clearly separated sections (Args, Returns). Every sentence contributes essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core functionality, parameters, and return value. It is sufficient for a delete tool, but could mention error cases like note not found. The presence of an output schema mitigates this gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by clearly explaining what 'identifier' (note id or title text) and 'dry_run' (return matching note without deleting) mean, adding significant value beyond the schema's type-only definitions.

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

Purpose5/5

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

The description clearly states the action ('Delete'), the resource ('a note'), and the method ('by id or title'). It effectively distinguishes from sibling tools like 'create_note', 'update_note', and 'move_note'.

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

Usage Guidelines3/5

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

The description implies usage for deleting notes, but does not explicitly state when to use this tool versus alternatives like 'trash_file' or when not to use it. There is no guidance on prerequisites or context.

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

delete_reminderA

Delete an exact or uniquely matching reminder. Defaults to dry-run.

Args: identifier: Reminder id or name/title text list_name: Optional Reminders list name dry_run: Return matching reminder without deleting when true

Returns: Structured JSON with deletion details or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
list_nameNo
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses the dry-run default behavior and that it returns structured JSON with deletion details or error. This is good transparency for a destructive operation.

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

Conciseness5/5

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

The description is well-structured with Args and Returns sections, each sentence is informative and concise. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 parameters, output schema present), the description covers purpose, parameters, default behavior, and return type adequately. No gaps for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaningful semantics: identifier is 'Reminder id or name/title text', list_name is optional list name, dry_run returns matching reminder without deleting when true. This compensates well for the missing schema descriptions.

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

Purpose5/5

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

The description clearly states 'Delete an exact or uniquely matching reminder' with a specific verb and resource. It distinguishes from sibling tools like 'complete_reminder' or 'update_reminder' by focusing on deletion.

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

Usage Guidelines4/5

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

It explains defaults and parameter usage (identifier as id/name, optional list_name, dry_run). While it doesn't explicitly compare to alternatives, the context makes it clear this is for deletion. Could improve by mentioning when not to use (e.g., if you only want to mark complete).

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

find_filesA

Find files by name using Spotlight first, with Python filesystem fallback.

Args: query: File name or Spotlight query text root: Optional directory to search within max_results: Maximum number of results to return include_hidden: Include hidden files and folders kind: Search backend: auto, name, or spotlight

Returns: JSON string with file metadata results or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoauto
rootNo
queryYes
max_resultsNo
include_hiddenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Describes the search mechanism (Spotlight first, fallback) and return format (JSON with metadata or error). Lacks disclosure of permissions needed or side effects, but covers key behavioral aspects beyond no annotations.

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

Conciseness5/5

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

Well-structured with Args and Returns sections. Front-loaded with main purpose. Every sentence adds value; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all parameters and return type. With output schema present, doesn't need to detail return structure. Lacks error handling or performance limitations, but sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description provides essential one-line explanations for all 5 parameters, including allowed values for 'kind', making the tool usable.

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

Purpose5/5

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

Clearly states it finds files by name using Spotlight first with Python fallback. Distinguishes from sibling tools like list_directory and search_notes by emphasizing name-based search across a filesystem.

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

Usage Guidelines3/5

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

Implies usage for file name searches but does not explicitly say when to prefer this over alternatives like list_directory or when to use different search backends. No 'when not to use' guidance.

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

focus_windowA

Focus a macOS window by window id, app name, or frontmost fallback.

Args: app_name: Optional app name, bundle id, or process name window_id: Optional CoreGraphics window id window_index: Optional 1-based index among the app's windows

Returns: JSON string with focused window metadata, or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameNo
window_idNo
window_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It mentions the frontmost fallback behavior and return format (metadata or error), but does not disclose side effects (e.g., brings window to front, changes keyboard focus), permissions needed, or potential failure modes beyond an error message.

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

Conciseness5/5

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

The description is concise and front-loaded with the core purpose. Parameters and return value are clearly listed in a structured format. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the three optional parameters and the existence of an output schema, the description covers the main functionality well. It explains the three ways to specify the target window and notes the return value. However, it could be strengthened by clarifying what 'focus' means in practice (e.g., bringing to front) and providing minimal usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaning for all three parameters: app_name (optional app name, bundle id, or process name), window_id (CoreGraphics id), and window_index (1-based index). It explains their optionality and default values, compensating for the schema's lack of inline documentation.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Focus a macOS window by window id, app name, or frontmost fallback.' It specifies the verb (Focus) and the resource (macOS window), distinguishing it from siblings like move_window or resize_window.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as list_windows or minimize. It lists parameters but does not explain prerequisites or scenarios where one parameter combination is preferable over another.

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

get_clipboard_filesA

Return file URLs currently available on the macOS clipboard.

Returns: JSON string with copied file paths, or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states it returns file paths or an error, but does not explicitly disclose that the operation is read-only (non-destructive) or mention any privacy/security concerns. It is adequate but minimal.

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

Conciseness5/5

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

The description is extremely concise: two sentences, one for purpose and one for return format. Every sentence adds value with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and an output schema (though not provided), the description is complete. It explains what the tool returns (file URLs or error message), covering all necessary context for a simple read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and schema coverage is 100% (trivially). The description does not need to add param info. Baseline for zero parameters is 4, and the description is correct and sufficient.

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

Purpose5/5

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

The description clearly states the tool returns file URLs from the macOS clipboard. It uses a specific verb ('Return') and resource ('file URLs on macOS clipboard'), which distinguishes it from siblings like get_clipboard_text (returns text) and set_clipboard_files (sets files).

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

Usage Guidelines3/5

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

The description implies when to use (when file URLs are needed from clipboard), but does not explicitly state when not to use or mention alternatives. No guidance on distinguishing from get_clipboard_text or set_clipboard_files, though the name and description hint at the distinction.

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

get_clipboard_textA

Read plain text from the macOS clipboard.

Args: max_chars: Maximum number of characters to return

Returns: JSON string with clipboard text and truncation metadata, or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
max_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool reads plain text and returns a JSON with truncation metadata or an error message, which is adequate for a read-only operation. No contradictions.

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

Conciseness5/5

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

The description is extremely concise with two sentences plus structured args/returns. No irrelevant information, and the key purpose and parameters are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool, the description covers the return format and error handling. With an output schema present (though not shown), it is sufficiently complete. Could optionally specify the JSON keys for truncation metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero description coverage for parameters. The description adds 'Maximum number of characters to return' for max_chars, which provides clarity beyond the schema's type and bounds. However, it does not explain truncation metadata or the exact JSON structure.

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

Purpose5/5

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

The description clearly states 'Read plain text from the macOS clipboard', specifying the verb 'read' and resource 'clipboard'. This distinguishes it from sibling tools like get_clipboard_files and set_clipboard_text.

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

Usage Guidelines4/5

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

The description implies the tool is for reading clipboard text, and the context of siblings (e.g., get_clipboard_files for files) provides implicit differentiation. However, no explicit guidance on when not to use or alternatives is provided.

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

get_contactA

Get a unique Contacts record by id or name match.

Args: identifier: Contact id or name text

Returns: Structured JSON with contact fields, phone numbers, and emails.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It mentions return structure ('structured JSON with contact fields, phone numbers, and emails') but doesn't disclose read-only nature, permissions, or side effects. Adequate but could improve.

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

Conciseness5/5

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

The description is concise (two sentences plus docstring-style args/returns) with no wasted words. Front-loaded key information and efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, output schema exists), the description adequately covers purpose, parameter semantics, and return structure. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description adds crucial meaning: 'identifier: Contact id or name text' clarifies the flexible input type. This compensates for the schema gap well.

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

Purpose5/5

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

The description clearly states 'Get a unique Contacts record by id or name match,' which specifies the verb (get), resource (Contacts record), and method (by id or name). This distinguishes it from sibling 'search_contacts' for listing.

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

Usage Guidelines4/5

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

It indicates usage via 'by id or name match,' implying use when you have a specific identifier. Although it doesn't explicitly exclude alternatives, the context with sibling tools makes it clear when to use this vs. 'search_contacts'.

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

get_file_infoA

Get metadata for a file, directory, or missing path.

Args: path: File or directory path

Returns: JSON string with path metadata or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

No annotations are provided, but the description discloses that the tool handles missing paths (returns error) and returns a JSON string with metadata. This is adequate for a simple read-only tool, though it could be more specific about what 'metadata' includes.

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

Conciseness5/5

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

The description is front-loaded with the purpose, followed by clear Args and Returns sections. Every sentence is necessary and there is no redundancy or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, no nested objects, output schema present), the description covers purpose, parameter, and return format adequately. The output schema can provide further metadata field details, so this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It adds 'File or directory path' for the single parameter, which clarifies its context beyond the bare 'string' type. However, this is minimal and avoids further detail like format or examples.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'metadata', and specifies it applies to 'a file, directory, or missing path.' This distinguishes it from sibling tools like 'find_files' (search) or 'list_directory' (list contents).

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. Context signals show many file-related siblings, but the description does not mention when to prefer 'get_file_info' over 'find_files' or 'list_directory'.

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

get_finder_selectionA

Get the currently selected Finder items as paths and metadata.

Returns: JSON string with selected Finder items or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It states returntype (JSON string) and error handling, but lacks disclosure of platform dependency (macOS Finder), requirement for Finder to be running, or behavior when nothing is selected.

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

Conciseness5/5

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

Two sentences, no redundancy, perfectly sized for a zero-parameter read tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and no annotations, the description is nearly complete: it explains purpose and output. Missing platform context or edge cases, but sufficient for a simple read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so baseline is 4. The description adds value by specifying return content (paths and metadata) beyond the schema.

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

Purpose5/5

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

The description uses specific verb 'Get' and resource 'currently selected Finder items as paths and metadata', clearly distinguishing it from sibling tools like get_file_info (single file) and list_directory (directory contents).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives such as get_file_info or list_directory. The description does not mention any preconditions or context for use.

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

get_frontmost_appA

Get the currently frontmost macOS application.

Returns: JSON string with app name, bundle id, pid, and active state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It states the return type and fields, but does not mention any permissions needed, side effects, or edge cases. The behavior is simple and read-only, but the description lacks full transparency beyond the return.

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

Conciseness5/5

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

The description is extremely concise, with two sentences covering the action and return value. Every word adds value, and it is front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with no parameters and an output schema, the description covers the key return fields. It is complete enough for a straightforward tool, though some edge case handling is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the baseline is 4. The description adds meaning beyond the empty schema by specifying the purpose and return, justifying the score.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get the currently frontmost macOS application.' It uses a specific verb and resource, and distinguishes it from sibling tools which perform different actions.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of context or exclusions, leaving the agent without clear direction.

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

get_noteA

Get a note by id or title.

Args: identifier: Note id or title text

Returns: Structured JSON with note content or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses return format (JSON with content or error) but does not mention behavior on missing note or duplicate titles.

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

Conciseness5/5

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

Extremely concise: two purposeful sentences with Args/Returns. No fluff, front-loaded with action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple tool with one param and output schema hinted, description is adequate but could clarify return format specifics (e.g., full note vs summary) and error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only parameter 'identifier' with 0% schema coverage. Description adds meaning: 'Note id or title text' beyond type=string, helping agent understand acceptable values.

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

Purpose5/5

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

Clearly states 'Get a note by id or title.' This is a specific verb+resource and distinguishes from search_notes and create_notes.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like search_notes or list_notes. Missing when-not-to-use and context.

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

get_safari_page_infoA

Get information about the current Safari page including URL, title, text content, and HTML source

Returns: Page information including URL, title, text, and source or error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It does not disclose whether the tool is read-only, requires Safari to be frontmost, or what happens if no page is loaded. It only mentions error message return, leaving significant 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.

Conciseness5/5

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

Two sentences, no wasted words. Purpose is front-loaded, return format briefly described. Exceptionally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists (context signal true), the description adequately lists return fields. However, it omits contextual prerequisites like requiring Safari to be open or active, and does not specify whether it works for all page types.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is 100% trivially. Per calibration, 0 params yields baseline 4. The description does not need to add parameter info and it doesn't.

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

Purpose5/5

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

The description clearly states the tool gets information about the current Safari page, listing specific fields (URL, title, text, source). It distinguishes itself from sibling tools like get_safari_tabs, which lists tabs, and reload_safari_page, which refreshes.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. For example, it does not mention that for dynamic content run_safari_javascript might be more appropriate, or that it requires Safari to be active.

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

get_safari_tabsA

Get a list of all open Safari tabs with their URLs and titles

Returns: List of tabs with URLs and titles or error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Without annotations, the description discloses that it returns a list of tabs or an error. It does not mention whether it covers all windows or only the frontmost, nor does it address side effects. Adequate but not thorough.

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

Conciseness5/5

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

The description is very concise—two clear sentences with a separate 'Returns' line. No wasted words, and the structure is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an existing output schema, the description adequately covers the tool's function. It specifies the returned data (list of tabs with URLs and titles) and that an error message is possible. Slight improvement could clarify window scope, but it's mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the schema provides full coverage. The description adds no parameter information, which is acceptable here. Baseline of 4 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves a list of all open Safari tabs with URLs and titles. It uses a specific verb ('Get') and resource ('Safari tabs'), distinguishing it from siblings like 'navigate_safari' or 'close_safari_tab'. There is no ambiguity.

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

Usage Guidelines3/5

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

The description explains what the tool does but does not provide guidance on when to use it versus alternatives like 'get_safari_page_info'. Since it has no parameters, usage is straightforward, but explicit context is missing.

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

hide_appA

Hide a running macOS app.

Args: app_name: App name, bundle id, or process name

Returns: JSON string with hidden app metadata, or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description must disclose behavior. It states it hides an app and returns metadata or error. However, it does not detail side effects (e.g., reversibility, impact on windows). Adequate but not thorough.

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

Conciseness5/5

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

Description is very concise: two sentences for purpose, then clearly structured Args and Returns. No unnecessary words. Front-loads key info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with one parameter. Description covers what the parameter accepts and the return type. Could specify return format more precisely, but sufficient for a straightforward action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema only defines 'app_name' as string. Description adds valuable context: 'App name, bundle id, or process name.' This expands meaning beyond schema. With 1 parameter and 0% schema coverage, description compensates well.

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

Purpose5/5

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

Description clearly states 'Hide a running macOS app.' The verb 'hide' and resource 'app' are specific. Distinguishes from siblings like 'quit_app' (quits) and 'minimize' (minimizes window).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'quit_app' or 'minimize'. Does not specify prerequisites or when not to use.

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

increase_brightnessA

Increase screen brightness

Args: amount: Amount to increase brightness by (0.0 to 1.0 scale). Default is 0.0625 (6.25%)

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description bears full burden. It discloses the mutation nature and parameter details, but does not mention side effects, permissions, or limits. Adequate but minimal.

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

Conciseness4/5

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

Concise: one-line purpose followed by Args and Returns sections. Front-loaded and no extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with one parameter and output schema (not provided). Description explains parameter adequately but returns only 'Success or error message' without elaboration. Adequate for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, but the description adds clear meaning for the 'amount' parameter: range (0.0 to 1.0), default (0.0625) with percentage explanation. This compensates well.

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

Purpose5/5

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

Description clearly states 'Increase screen brightness' which is a specific verb and resource. It directly distinguishes from the sibling 'decrease_brightness' tool.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No mention of context, prerequisites, or when not to use it.

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

list_calendar_eventsA

List Calendar events across a date range.

Args: start_date: Start date in "YYYY-MM-DD" format end_date: End date in "YYYY-MM-DD" format calendar_name: Optional calendar name

Returns: Structured JSON with events or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYes
start_dateYes
calendar_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states it lists events and returns JSON/error, lacking details on read-only nature, authentication, pagination, timezone, or response structure beyond a generic 'Structured JSON.'

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

Conciseness5/5

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

The description is extremely concise: one purpose line followed by a bullet-like Args block. Every sentence adds value, and the most important info is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and presence of output schema, the description is adequate but not fully complete. It lacks usage guidance and behavioral details (e.g., date range limits, recurrence handling) that would help an agent decide to invoke it reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description compensates for 0% schema coverage by documenting all three parameters with format ('YYYY-MM-DD') and optionality, adding significant meaning beyond the bare schema types.

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

Purpose5/5

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

The description clearly states 'List Calendar events across a date range,' which is a specific verb+resource and distinguishes from the sibling tool 'list_calendar_events_for_day' that operates on a single day.

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

Usage Guidelines2/5

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

No usage guidelines are provided. The description does not mention when to use this tool instead of alternatives like 'search_calendar_events' or 'check_calendar_availability,' nor does it give any conditions or exclusions.

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

list_calendar_events_for_dayA

List all calendar events for a specific day

Args: date: Date in format 'YYYY-MM-DD' (e.g., '2025-10-30')

Returns: List of events for the specified day or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It states it returns a list or error, but does not confirm read-only nature, side effects, or required permissions. For a list operation, safety is implied but not explicit.

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

Conciseness5/5

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

Extremely concise: three sentences covering purpose, parameter format, and return type. No wasted words, front-loaded with action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single param, list output) and presence of an output schema (unseen but noted), the description adequately covers purpose, param format, and return type. Error conditions and event fields are not detailed, but acceptable for a straightforward list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 0%, but the description adds a clear date format ('YYYY-MM-DD') and an example. This provides meaningful guidance beyond the simple string type in the schema.

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

Purpose5/5

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

Clearly states it lists calendar events for a specific day, using the verb 'list' and resource 'calendar events for a specific day'. This distinguishes it from siblings like 'list_calendar_events' (likely for ranges) and 'check_calendar_availability'.

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

Usage Guidelines3/5

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

The description implies usage for a single day via the date parameter, but does not explicitly mention when to use this versus alternatives (e.g., 'list_calendar_events' for ranges, 'check_calendar_availability' for time slots). No exclusions or guidance on prerequisites.

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

list_calendarsB

List Apple Calendar calendars.

Returns: Structured JSON with calendar names or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the action and return format, which is adequate for a simple listing tool. However, it does not disclose potential implications like requiring calendar access or that it only returns names, not full details.

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

Conciseness5/5

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

The description is extremely concise, with only two sentences that convey the essential information without any filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of parameters and the presence of an output schema, the description is adequate but lacks context about when to use this tool over sibling calendar tools or about potential limitations (e.g., listing only calendars the user owns).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description does not need to explain them. The schema coverage is 100%, and the baseline for zero parameters is 4. The description adds minimal value beyond the schema by mentioning the output format, which is sufficient.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'Apple Calendar calendars', making the purpose obvious. However, it does not differentiate from sibling tools like list_calendar_events or search_calendar_events, which also operate on calendars.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as list_calendar_events for events or create_calendar_event for creation. There is no mention of prerequisites or context for use.

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

list_chatsA

List Messages chats available to the macOS Messages app.

Args: limit: Maximum number of chats to return

Returns: Structured JSON with chat ids, names, and account metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description bears full burden. It mentions output structure but does not disclose any side effects, required permissions, or failure modes. It implies read-only but not explicitly.

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

Conciseness5/5

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

Very concise with no extra words. Uses bullet points for arguments and returns, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool, the description adequately covers purpose, parameter, and output. Could mention relationship to read_recent_messages for completeness, but not necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, but the tool description explains the 'limit' parameter meaning and default behavior. Adding return value description compensates for missing schema notes.

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

Purpose5/5

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

Description clearly states 'List Messages chats available to the macOS Messages app.' It is a specific verb+resource and distinguishes from siblings like read_recent_messages or send_imessage.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention prerequisites, context, or complementary tools.

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

list_directoryA

List immediate children of a directory with metadata.

Args: path: Directory path to list include_hidden: Include hidden files and folders max_results: Maximum number of children to return

Returns: JSON string with directory entries or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
max_resultsNo
include_hiddenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are present, so the description must carry full behavioral disclosure. It mentions returning a JSON string with directory entries or an error message, but lacks details on side effects, permissions, or what metadata is included, which is minimal 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.

Conciseness5/5

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

The description is concise, front-loaded with a clear one-liner purpose, followed by structured Args and Returns sections. Every sentence is necessary and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters and an output schema, the description provides adequate purpose and parameter details. However, it does not specify the structure of the returned JSON or what 'metadata' includes, which could aid the agent in understanding the output without inspecting the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by providing an 'Args' section that clearly explains each parameter (path, include_hidden, max_results) with their purposes and defaults, adding significant value beyond the input schema.

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

Purpose5/5

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

The description clearly states 'List immediate children of a directory with metadata,' specifying the verb 'List' and resource 'immediate children,' distinguishing it from recursive file search tools like 'find_files' and other file operations.

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

Usage Guidelines3/5

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

The description implies usage for listing directory contents but does not provide explicit guidance on when to use this tool versus alternatives like 'find_files' or 'get_file_info', nor does it mention any prerequisites or limitations.

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

list_note_foldersA

List Apple Notes folders.

Returns: Structured JSON with folder names or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits. It only mentions return type (structured JSON with folder names or error). It does not state that it is read-only, or any authorization or side effects. For a tool with no annotations, this is insufficient.

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

Conciseness5/5

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

The description is exceptionally concise—two sentences—and front-loaded with the primary action. Every word is necessary, no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless tool with an output schema, the description is minimally adequate. It states the action and return type, but lacks any additional context about folder hierarchy, scope, or error handling beyond the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and schema coverage is 100%. With no parameters to describe, the description need not add parameter details. Baseline for 0 params is 4.

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

Purpose5/5

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

The description clearly states the action (list) and resource (Apple Notes folders). It is specific and distinguishes this tool from siblings like list_notes or search_notes which operate on notes, not folders.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as list_notes or search_notes. No context about prerequisites, when not to use it, or which sibling tools might be more appropriate.

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

list_notesA

List Apple Notes, optionally filtered by folder.

Args: folder: Optional Notes folder name max_results: Maximum notes to return

Returns: Structured JSON with note metadata or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNo
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states a read operation ('List'), but does not disclose any behavioral traits such as authentication requirements, rate limits, performance implications, or whether the operation is safe. Minimal transparency.

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

Conciseness5/5

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

The description is short and well-structured: a one-line purpose, then Args section, then Returns. Every sentence provides necessary information, no redundancy. Front-loaded with the main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 2 optional parameters, no annotations, and an output schema present (so return values are covered), the description is adequate for a simple listing tool. However, it lacks details on pagination, ordering, or whether folder supports wildcards. Given many sibling tools, slightly more context would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It explains 'folder' as an optional folder name and 'max_results' as a maximum notes limit (with default 25, max 200). This adds meaning beyond the schema's property definitions. However, it doesn't clarify if folder is name or ID, or any format constraints.

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

Purpose5/5

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

The description clearly states 'List Apple Notes, optionally filtered by folder.' The verb 'list' and resource 'Apple Notes' are specific. It distinguishes from sibling tools like 'search_notes', 'get_note', 'create_note', etc., which have different purposes.

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

Usage Guidelines3/5

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

The description implies usage (listing notes, optionally filtering), but does not explicitly state when to use this tool vs alternatives like 'search_notes' or 'get_note'. No prerequisites or exclusions are mentioned. Adequate but lacks explicit guidance.

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

list_reminder_listsB

List Apple Reminders lists.

Returns: Structured JSON with list names or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only states it returns structured JSON or an error, but does not disclose whether the operation is read-only, requires permissions, or has side effects. Basic transparency is lacking.

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

Conciseness4/5

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

The description is concise with two sentences, front-loading the purpose. However, it could be slightly more structured, but for a simple tool it is adequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, output schema mentioned), the description is minimally complete. It does not cover error conditions or edge cases, but for a list operation it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, and schema description coverage is 100% (vacuously). The description adds no parameter info because none is needed. Baseline 4 is appropriate for a no-parameter tool.

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

Purpose5/5

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

The description clearly states the tool's action: 'List Apple Reminders lists.' It uses a specific verb (List) and resource (Apple Reminders lists), distinguishing it from sibling tools like 'list_reminders' which lists reminders within lists.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'list_reminders' or 'search_reminders'. There is no context about prerequisites or typical scenarios.

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

list_remindersA

List reminders, optionally filtered by list and completion state.

Args: list_name: Optional Reminders list name include_completed: Include completed reminders

Returns: Structured JSON with reminder matches or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_nameNo
include_completedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose whether the tool is read-only, destructive, or any behavioral traits such as error handling, rate limits, or side effects. The read-only nature is implied but not explicit.

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

Conciseness5/5

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

The description is concise, with a single sentence and a brief docstring for parameters and return value, front-loading the core function without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with an output schema, the description adequately covers the basic functionality but omits details on error handling, pagination, or behavior when no matches are found.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to the parameters beyond the schema (which has no descriptions), specifying list_name as an optional list name and include_completed as including completed reminders. However, it lacks details on format or allowed values.

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

Purpose5/5

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

The description clearly states the verb 'List reminders' and specifies optional filters by list and completion state, differentiating it from sibling tools like list_reminder_lists and search_reminders.

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

Usage Guidelines3/5

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

The description implies usage for retrieving reminders with optional filters but does not provide explicit guidance on when to use this tool versus alternatives like search_reminders, nor when not to use it.

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

list_windowsA

List manageable macOS windows.

Args: app_name: Optional app name, bundle id, or process name filter include_minimized: Include minimized windows when available

Returns: JSON string with window ids, app metadata, titles, frames, and display indexes.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameNo
include_minimizedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose behavioral traits such as performance impact, permissions required, or what 'manageable' means. It only states the action and return format.

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

Conciseness5/5

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

The description is concise with four sentences, front-loaded with the main purpose. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description provides sufficient context for the return value listing. However, it lacks explanation of 'manageable' and edge cases, but overall is reasonably complete for a simple listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaningful context for both parameters: app_name accepts multiple identifier types, and include_minimized explains its purpose. This compensates well for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states 'List manageable macOS windows' with a specific verb and resource. It distinguishes from sibling window manipulation tools like focus_window or move_window by focusing on listing.

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

Usage Guidelines3/5

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

The description implies usage for listing windows but does not explicitly state when to use or when not to use it, nor does it mention alternatives. However, the sibling tools context provides some differentiation.

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

minimizeB

Minimize a macOS window.

Args: app_name: Optional app name, bundle id, or process name window_id: Optional CoreGraphics window id window_index: Optional 1-based index among the app's windows

Returns: JSON string with minimized window metadata, or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameNo
window_idNo
window_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description only states basic action and return type. Does not disclose safety, permissions, or effects like whether the window becomes hidden.

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

Conciseness5/5

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

Description is short, front-loaded with purpose, and efficiently lists parameters. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with optional parameters and an output schema. Lacks detail on parameter selection logic and return metadata beyond minimal description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds basic semantics for each parameter (app_name, window_id, window_index) beyond the schema, which has 0% description coverage. However, does not explain interaction or priority.

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

Purpose5/5

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

Description clearly states 'Minimize a macOS window' with a specific verb and resource. Distinguishes from sibling window tools like focus_window, move_window, resize_window.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives or how to choose among parameters. Lacks when-not-to-use or preferred usage context.

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

move_fileA

Move a file or directory. Existing destinations fail unless overwrite is true.

Args: source: Existing source path destination: Destination path overwrite: Allow replacing an existing destination dry_run: Return the planned action without moving

Returns: JSON string with operation details or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
dry_runNo
overwriteNo
destinationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description fully covers behavior: it discloses that overwrite controls failure vs replacement, describes dry_run to preview actions, and mentions return format. This exceeds the burden without annotations.

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

Conciseness5/5

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

The description is highly concise: a single sentence defines purpose, followed by a bullet-point list of parameters and a return line. Every sentence adds value, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, the presence of an output schema, and no annotations, the description is complete: it explains all parameters, behaviors (overwrite, dry_run), and return format. No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since schema description coverage is 0%, the description compensates by explicitly defining each parameter's meaning (e.g., 'source: Existing source path', 'dry_run: Return the planned action without moving'), adding crucial context beyond type-only schema.

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

Purpose5/5

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

The description clearly states 'Move a file or directory', providing a specific verb and resource. It distinguishes from sibling tools like copy_file or rename_file by explicitly naming the action as moving.

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

Usage Guidelines4/5

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

The description explains that existing destinations fail unless overwrite is true, giving clear usage context. However, it does not explicitly state when not to use this tool or mention alternatives, though the behavior is well-defined.

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

move_noteB

Move a note by id or title to an existing folder.

Args: identifier: Note id or title text folder: Destination folder name

Returns: Structured JSON with moved note metadata or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderYes
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided; description implies mutation but lacks details on side effects, permissions, error handling, or behavior when folder doesn't exist.

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

Conciseness4/5

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

Two sentences plus bullet list for args and returns; no extraneous content. Could be more compact but acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers action, params, return type, but lacks prerequisites, folder existence handling, or example usage. Output schema exists but description doesn't leverage it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds meaning to the schema: clarifies that identifier can be note id or title, and folder is destination name. Compensates for 0% schema description coverage.

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

Purpose5/5

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

Clearly states the action (move), resource (note), and scope (by id or title to folder). Distinguishes from create, delete, update, append siblings.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like append_to_note or update_note. Does not provide context or exclusions.

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

move_windowA

Move a macOS window to a display-aware top-left position.

Args: x: Target top-left x coordinate y: Target top-left y coordinate app_name: Optional app name, bundle id, or process name window_id: Optional CoreGraphics window id window_index: Optional 1-based index among the app's windows display_index: Optional 1-based display index for clamping placement

Returns: JSON string with final window metadata, or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
app_nameNo
window_idNo
window_indexNo
display_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses that the position is display-aware, with clamping via display_index, and returns JSON with final metadata or an error. However, it does not detail behavior for invalid coordinates, missing windows, or system requirements.

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

Conciseness5/5

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

The description is concise with a front-loaded summary line, structured Args and Returns sections, and no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters (2 required) and an output schema mentioned, the description covers all parameters and return format. It could elaborate on 'display-aware clamping' and absolute vs relative movement, but it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds value by explaining each parameter's purpose (e.g., 'target top-left x coordinate', 'Optional app name, bundle id, or process name'). This compensates for the schema's lack of descriptions.

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

Purpose5/5

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

The description clearly states it moves a macOS window to a display-aware top-left position, using a specific verb and resource. It distinguishes from sibling tools like focus_window, resize_window, tile_windows, etc.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like resize_window, tile_windows, or focus_window. While optional identifiers are listed, there is no discussion of prerequisites or when to prefer one identifier over another.

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

open_appA

Open any mac application by specifying its name. Use this tool if you encounter any error or issue mentioning that the app is not open

Args: name: Name of the mac app. e.g. "Mail", "Contacts", "Messages" etc.

Returns: A success or failure message

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions opening an app and returning a success/failure message, but omits details like whether already-open apps are brought to front, required permissions, or error handling for missing apps.

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

Conciseness5/5

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

The description is concisely structured with a clear purpose, usage guideline, args, and returns section. Every sentence adds value with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one parameter, no nested objects) and the presence of an output schema (implied), the description adequately covers the essentials. It lacks details on error conditions but is sufficient for a basic open-app tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides a 'name' parameter with no description (0% coverage). The description adds value by giving examples: 'Mail', 'Contacts', 'Messages', clarifying the expected format beyond the bare schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Open any mac application by specifying its name.' This verb+resource combination is specific and distinct from sibling tools like hide_app or quit_app.

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

Usage Guidelines4/5

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

The description provides a specific scenario: 'Use this tool if you encounter any error or issue mentioning that the app is not open.' This gives clear context for when to use it, though it doesn't list alternatives or exclusions for other common cases.

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

open_safari_tabB

Open a new tab in Safari with optional URL

Args: url: Optional URL to open in the new tab

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are present, and the description only covers the basic action. It does not disclose whether Safari is focused, if it launches Safari when closed, or error conditions beyond a generic 'error message'. This is insufficient for full behavioral transparency.

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

Conciseness5/5

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

The description is extremely concise with a single core sentence and minimal structure (Args/Returns). It is well front-loaded and contains no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter), the description covers basic input/output. However, it lacks behavioral context like prerequisites (e.g., Safari must be running) and detailed error handling, which limits completeness for an autonomous agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden. While it adds that 'url' is optional and expects a URL, it does not specify accepted URL formats, provide examples, or clarify constraints, leaving ambiguity.

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

Purpose5/5

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

The description clearly states the action (open a new tab), the application (Safari), and the optional nature of the URL. It is specific enough to distinguish from siblings like open_safari_window (window vs. tab) and close_safari_tab (opposite action).

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

Usage Guidelines3/5

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

The description implies usage for opening a tab, but it does not explicitly guide when to use this tool versus alternatives such as navigate_safari or switch_safari_tab. No exclusions or when-not-to-use context is provided, so guidance is minimal.

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

open_safari_windowA

Open a new Safari window with optional URL

Args: url: Optional URL to open in the new window

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description only states it opens a window with an optional URL. It does not disclose important behaviors like whether the window becomes focused, what happens if Safari is not running, or if it reuses existing windows. The description carries the full burden but is minimal.

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

Conciseness5/5

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

The description is extremely concise, using just two sentences. It front-loads the main action and parameter, with no redundant words. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has low complexity (one optional parameter) and an output schema exists (though not shown). The description covers the basic action and return type but lacks details on prerequisites (e.g., Safari must be running) or behavioral effects (e.g., window focus). It is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description adds value by explaining the 'url' parameter as 'Optional URL to open in the new window'. This clarifies its optional nature and purpose, compensating for the lack of schema documentation.

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

Purpose5/5

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

The description states the specific action 'Open a new Safari window' with an optional URL, clearly distinguishing it from sibling tools like 'open_safari_tab' (opens a tab) and 'close_safari_window'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'open_safari_tab' or 'navigate_safari'. Usage context is implied but lacks explicit when-to-use or when-not-to-use instructions.

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

quit_appA

Quit a running macOS app.

Args: app_name: App name, bundle id, or process name

Returns: JSON string with quit app metadata, or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavior. It mentions return format but omits key details: what happens if app not found, permissions required, or if it's a graceful termination.

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

Conciseness5/5

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

The description is extremely concise, with the purpose stated upfront and no extraneous text. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (1 param, output schema present) and no annotations, the description is adequate but lacks behavioral caveats (e.g., force quit, error handling). Could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, adding 'App name, bundle id, or process name' provides critical context beyond the schema's generic string type, significantly aiding the agent.

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

Purpose5/5

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

The description clearly states the action ('Quit a running macOS app') with a specific verb and resource. It distinguishes from sibling tools like 'hide_app' (hides but not quits) and browser-specific close tools.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives (e.g., hide_app). No prerequisites or context provided for when to quit versus force quit.

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

read_recent_messagesA

Read the recent X messages from the iMessage app between the user and the person with the phone number. X is defined based on the value of recent_message_count

Args: phone_number: The phone number of the person you want to retrieve the chat from recent_message_count: The recent messages to retrieve, can be a maximum of 200

Returns: A list of recent messages in the chat

ParametersJSON Schema
NameRequiredDescriptionDefault
phone_numberYes
recent_message_countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description only notes the maximum of 200 messages. It lacks disclosure of permissions, error handling, 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.

Conciseness4/5

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

The description is structured with Args and Returns sections, clear but slightly wordy. It efficiently conveys the tool's purpose without extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool, the description covers purpose, parameters, and return type adequately. The existence of an output schema (not shown) further supports completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, the description explains both parameters with their roles and constraints, adding significant value beyond the raw schema.

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

Purpose5/5

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

The description clearly states the tool reads recent messages from iMessage using a phone number, distinguishing it from sibling tools like send_imessage or list_chats.

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

Usage Guidelines3/5

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

The description implies usage for retrieving recent messages but does not explicitly guide when to use this versus alternatives like list_chats.

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

reload_safari_pageA

Reload the current Safari page

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It only mentions return type ('Success or error message'), but fails to disclose side effects like discarding unsaved form data or requiring an active page. For a mutation action, this is insufficient.

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

Conciseness5/5

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

The description is extremely concise with two lines: one for purpose and one for return. No redundant information, every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (0 parameters, output schema exists), the description is mostly complete. However, it lacks mention of prerequisites like Safari being open or a page being loaded, which are implied but not explicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so no parameter documentation is needed. Baseline is 4; the description does not add or miss anything regarding parameters.

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

Purpose5/5

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

The description uses a specific verb 'Reload' and resource 'current Safari page', clearly conveying the action. It distinguishes from sibling tools like navigate_safari (which changes URL) and close_safari_tab (which closes the tab).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. Context signals show many Safari-related siblings, but no when-to-use or when-not-to-use information is given.

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

remove_screen_glowA

Remove the visual feedback indicator (screen glow) when automated actions are complete.

IMPORTANT: Call this when all automated actions are complete to stop the visual feedback indicator and signal to the user that operations have finished.

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states the action and return type (Success or error message) but does not disclose idempotency, side effects, or prerequisites. Adequate for a simple toggle-off operation.

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

Conciseness5/5

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

Description is very concise, with only two short paragraphs and a returns line. Every sentence adds value: purpose, usage importance, and return type. Front-loaded with the key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema (though not detailed), the description covers purpose, usage, and return. Minor gap: no mention of behavior if called multiple times or when glow is not active.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters, and description implicitly confirms no parameters needed. No further explanation required.

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

Purpose5/5

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

The description clearly states 'Remove the visual feedback indicator (screen glow)' with a specific verb and resource. It distinguishes itself from the sibling tool 'add_screen_glow' by being the inverse operation.

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

Usage Guidelines4/5

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

Explicitly says 'Call this when all automated actions are complete' which provides clear context. It does not discuss when not to use or 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.

rename_fileA

Rename a file or directory within its current parent directory.

Args: path: Existing file or directory path new_name: New file name only, not a path overwrite: Allow replacing an existing destination dry_run: Return the planned action without renaming

Returns: JSON string with operation details or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
dry_runNo
new_nameYes
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description bears the full burden. It explains key behaviors: overwrite allows replacing existing, dry_run returns planned action, and returns JSON with operation details. However, it does not disclose potential errors (e.g., if overwrite is false and destination exists) or permissions needed.

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

Conciseness5/5

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

The description is a well-structured docstring with Args and Returns sections. The purpose is stated upfront in a single sentence. Every sentence adds value and there is no redundancy or excess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all four parameters and the return type (JSON string with operation details or error). An output schema exists, so detailed return structure is not needed. It could mention error scenarios (e.g., file not found) but is sufficient for a rename operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only types and defaults (0% coverage). The description adds crucial meaning: path must be existing, new_name is a name not a path, overwrite controls replacement, dry_run suppresses real action. This significantly enhances parameter understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the verb (rename) and resource (file or directory), and the constraint 'within its current parent directory' distinguishes it from moving or copying. Sibling tools include move_file, copy_file, and trash_file, so this tool's purpose is distinct.

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

Usage Guidelines4/5

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

The description provides context that the rename occurs within the current parent directory and that new_name must be a name only, not a path. It implicitly guides usage by differentiating from move_file (which changes parent). However, it lacks explicit instructions on when to choose this tool over alternatives.

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

reschedule_reminderB

Reschedule an exact or uniquely matching reminder.

Args: identifier: Reminder id or name/title text datetime: New due date/time in "YYYY-MM-DD HH:MM" format list_name: Optional Reminders list name

Returns: Structured JSON with the updated reminder or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
datetimeYes
list_nameNo
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

The description discloses that it returns a structured JSON with the updated reminder or an error message, but lacks details on side effects, permissions, or what happens if the identifier matches multiple reminders. Since no annotations are provided, the description carries the burden but is only partially complete.

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

Conciseness5/5

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

The description is concise, front-loaded with the purpose, and uses a clear args/returns structure with no wasted words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and the tool's moderate complexity, the description covers basic functionality and return type but omits edge cases (e.g., non-unique identifier, rescheduling completed reminders). It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description adds significant meaning beyond the schema, explaining each parameter's role and format (e.g., 'identifier' can be id or name, 'datetime' format specified). This compensates well for the missing schema descriptions.

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

Purpose4/5

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

The description clearly states the verb 'reschedule' and the resource 'reminder', and specifies that it works for an exact or uniquely matching reminder. However, it does not explicitly distinguish itself from the sibling tool 'update_reminder', which likely serves a similar purpose.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs. alternatives such as 'update_reminder' or 'set_reminder'. It does not mention prerequisites or when not to use it, leaving the agent to infer usage context.

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

resize_windowA

Resize a macOS window and clamp it to the selected or current display.

Args: width: Target width in points height: Target height in points app_name: Optional app name, bundle id, or process name window_id: Optional CoreGraphics window id window_index: Optional 1-based index among the app's windows display_index: Optional 1-based display index for clamping placement

Returns: JSON string with final window metadata, or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYes
heightYes
app_nameNo
window_idNo
window_indexNo
display_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

The description mentions clamping behavior and returns metadata, which adds some context beyond the schema. However, with no annotations, it does not fully disclose side effects (e.g., whether the window is also moved) or edge cases, leaving the agent to infer behavior.

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

Conciseness4/5

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

The description is concise with a front-loaded main sentence followed by parameter list and return note. Every sentence contributes to understanding, though the docstring format is slightly verbose for the parameter descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is an output schema and 6 parameters (2 required), the description covers all parameters and return value. It provides sufficient context for resizing, though deeper details about clamping logic (e.g., what happens when display_index is null) could improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides brief parameter explanations (e.g., 'Target width in points') that add basic meaning beyond the schema. However, with 0% schema coverage, the descriptions are minimal and do not elaborate on default behaviors or parameter interactions (e.g., how app_name and window_id resolve).

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

Purpose5/5

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

The description clearly states the tool resizes a macOS window and clamps it to the display, distinguishing it from siblings like move_window or center_window. The verb 'Resize' and resource 'macOS window' are specific and unambiguous.

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

Usage Guidelines3/5

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

The description implies usage for resizing windows with optional display clamping, but does not explicitly state when to use this tool over alternatives like move_window or tile_windows. No exclusions or when-not-to-use guidance is provided.

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

reveal_in_finderA

Reveal a file or directory in Finder.

Args: path: Existing file or directory path

Returns: JSON string with operation details or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, description should disclose behavioral traits. It mentions 'Existing file or directory path' but does not explain what 'reveal' entails (e.g., opening Finder, selecting the item, focusing the window). The return type is noted but lacks detail on side effects or prerequisites.

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

Conciseness5/5

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

Description is extremely concise with a clear one-line purpose and structured Args/Returns sections. No unnecessary words, front-loaded with the key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description meets minimum viability but lacks behavioral context (e.g., what 'reveal' does). The existing output schema reduces the need to explain return values, but the description could still be more informative about the action's effect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds 'Existing file or directory path' to the single parameter 'path', which is a string in the schema. This clarifies that the path must be valid, compensating for the schema's lack of description (0% coverage). Could be more specific about path format but is generally helpful.

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

Purpose5/5

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

Description clearly states it reveals a file or directory in Finder, a specific action on a specific resource. This distinguishes it from sibling tools like copy, move, or find operations.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_finder_selection or other file operations. Use must be inferred 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.

run_safari_javascriptC

Execute JavaScript code in the current Safari tab and return the result

Args: javascript_code: JavaScript code to execute

Returns: JavaScript execution result or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
javascript_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description should detail behavioral traits. It mentions returning a result or error, but omits security implications, permissions required, or that the code runs in the page context. This is inadequate for a potentially dangerous mutation tool.

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

Conciseness4/5

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

The description is very concise with a single clear sentence and brief Args/Returns sections. However, it sacrifices necessary detail for brevity, which reduces effectiveness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (arbitrary code execution), the description lacks critical context about security, permissions, and environment. Even with an output schema, the missing details make it incomplete for safe and proper use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It merely restates the parameter name and type ('JavaScript code to execute') without adding syntax, limitations, or encoding details, adding almost no value beyond the schema.

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

Purpose4/5

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

The description clearly states the tool executes JavaScript in the current Safari tab and returns results, distinguishing it from other Safari tools like navigation or tab listing. However, it doesn't emphasize the 'current tab' aspect explicitly which is important for clarity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, prerequisites, or contexts where execution might fail. This leaves the agent without needed context for decision-making.

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

safari_go_backA

Navigate back in Safari history

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits beyond the action. It only states it navigates back and returns a success/error message, omitting edge cases like when history is empty or whether it modifies state meaningfully.

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

Conciseness5/5

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

Extremely concise: two lines with the action clearly front-loaded. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless tool with an output schema, the description adequately covers purpose and return type. However, it lacks usage context and edge-case behavior, making it slightly less than fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the schema fully defines the interface. The description adds no parameter information, but baseline for 0 params is 4.

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

Purpose5/5

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

The description clearly states the action ('Navigate back') and the resource ('Safari history'), distinguishing it from siblings like safari_go_forward and navigate_safari.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as safari_go_forward or navigate_safari. The description does not provide any context for appropriate usage.

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

safari_go_forwardA

Navigate forward in Safari history

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

The description mentions return type (success or error message) but does not disclose behavior when no forward history exists or any side effects. No annotations provided, so description carries full burden, but the tool is simple.

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

Conciseness4/5

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

Very short and front-loaded, every sentence is meaningful. However, it could be slightly more descriptive without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and presence of an output schema, the description sufficiently explains purpose and return. It is complete for the simplicity of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. Description adds no parameter info, but none needed. Baseline 4 applies.

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

Purpose5/5

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

The description clearly states 'Navigate forward in Safari history', which is a specific verb and resource. It distinguishes from sibling tools like safari_go_back and navigate_safari.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as safari_go_back or navigate_safari. No mention of prerequisites or conditions like requiring forward history.

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

save_clipboard_imageA

Save an image from the macOS clipboard to a PNG file and share it with the model.

Args: output_path: Optional output path for the PNG

Returns: A text status plus image content, or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
output_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It describes saving to a PNG file, returning status and image content or error. However, it omits details about file overwriting behavior and whether the clipboard is modified.

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

Conciseness4/5

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

The description is well-structured with a summary sentence followed by Args and Returns sections. It is clear and concise, though the 'Args' and 'Returns' formatting adds a bit of verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter and returns status with image content or error. The description covers input, output, and functionality. For a simple tool, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'output_path' is described as 'Optional output path for the PNG', which adds meaning beyond the schema's type and default. Given 0% schema coverage, this description compensates adequately.

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

Purpose5/5

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

The description clearly states the tool saves an image from the macOS clipboard to a PNG file and shares it with the model. It distinguishes itself from sibling tools like 'set_clipboard_image' and 'capture_active_screen' by specifying the output format and sharing behavior.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives such as 'set_clipboard_image' or 'capture_active_screen'. Usage context is implied but not clearly defined.

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

search_calendar_eventsA

Search Calendar events by title, location, or notes.

Args: query: Search text start_date: Optional start date in "YYYY-MM-DD" format end_date: Optional end date in "YYYY-MM-DD" format calendar_name: Optional calendar name

Returns: Structured JSON with matching events or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
end_dateNo
start_dateNo
calendar_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It explains it returns structured JSON with matching events or an error message, but does not mention side effects, authorization, or rate limits. Basic but not misleading.

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

Conciseness3/5

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

Description is structured with Args and Returns sections, but slightly verbose. Main sentence is concise, but the Args block could be integrated more succinctly. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and a output schema present, the description adequately explains the search functionality and return type. However, lacks details on matching behavior (exact/partial) and default calendar scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaning to all four parameters with brief descriptions (e.g., 'Search text' for query, date format for start_date). Adds value beyond schema.

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

Purpose5/5

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

The description clearly states the tool searches calendar events by title, location, or notes, with optional filters. It distinguishes itself from sibling tools like list_calendar_events and create_calendar_event.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_calendar_events or check_calendar_availability. No explicit 'when-to-use' or 'when-not-to-use' instructions.

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

search_contactsA

Search for a phone number from contacts by name. Returns multiple options if more than one contact is found or more than one number is found. Ask clarifying questions on which number if any following actions are required

Args: name: The name of contact to search for ctx: FastMCP context for logging

Returns: A list of matching contacts

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Although no annotations are provided, the description discloses that the tool may return multiple options and requires clarification, which is key behavioral context. It also mentions logging via FastMCP context. No mention of rate limits or auth, but acceptable for a search tool.

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

Conciseness4/5

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

The description is well-structured with Args and Returns sections, but could be slightly more concise. The key information is front-loaded in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter) and the presence of an output schema (not shown but inferred), the description sufficiently explains the behavior, return format, and the need for disambiguation. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, but the description explicitly documents the 'name' parameter's purpose ('The name of contact to search for'), fully compensating for the missing schema descriptions.

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

Purpose5/5

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

The description clearly states the tool searches for a phone number by name, a specific verb-resource pair. It distinguishes from siblings like 'get_contact' (which likely retrieves by ID) and 'create_contact'.

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

Usage Guidelines4/5

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

The description instructs the agent to ask clarifying questions when multiple results are returned, providing clear user interaction guidance. It does not explicitly state when not to use this tool vs alternatives like 'get_contact', but the sibling context implies this distinction.

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

search_notesB

Search Apple notes based on a query

Args: query: The query string max_results: The maximum number of results returned from the tool, defaults to 10

Returns: A list of notes based on search

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states basic functionality (search returns a list) without detailing search granularity, case sensitivity, or performance. The tool's behavior beyond the schema is opaque.

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

Conciseness4/5

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

The description is brief and structured with a main sentence, Args, and Returns. The Returns section is somewhat redundant given the output schema exists, but overall no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is simple (2 parameters, output schema present), the description omits important usage context like whether search is full-text, supports operators, or is limited to note titles. This leaves gaps for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description should provide meaningful semantics. It merely restates the parameter names and default value for max_results, adding minimal insight. For example, it does not clarify query syntax, length limits, or search scope.

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

Purpose5/5

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

The description clearly states the tool searches Apple notes based on a query, which is a distinct operation from sibling tools like list_notes, get_note, create_note, etc. The verb 'search' and resource 'Apple notes' are specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as list_notes or get_note. The description does not specify search behavior (e.g., full-text vs title-only) or context where search is appropriate.

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

search_remindersB

Search reminders by name.

Args: query: Text to match in reminder names list_name: Optional Reminders list name include_completed: Include completed reminders

Returns: Structured JSON with reminder matches or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
list_nameNo
include_completedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are present, so the description must carry the full burden. It states the tool returns structured JSON with matches or errors, implying a read-only operation, but does not explicitly clarify non-destructive behavior, permissions, or other traits.

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

Conciseness4/5

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

The description is brief and structured with Args/Returns sections. It is front-loaded with the main purpose and provides parameter details without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and a brief output schema (only mentioned in text), the description provides basic return info but omits potential limitations, error handling, or performance characteristics. For a search tool among many siblings, more context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds meaningful context: 'Text to match in reminder names' for query, 'Optional Reminders list name' for list_name, and 'Include completed reminders' for include_completed. This compensates well for the schema's lack of descriptions.

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

Purpose4/5

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

The description clearly states it searches reminders by name. The verb 'search' and resource 'reminders' are explicit, and parameters confirm it filters by name. It distinguishes from siblings like 'list_reminders' and 'show_reminder', but could be more precise about the search scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'list_reminders' or 'show_reminder'. The description does not specify preferred scenarios or exclusions.

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

send_file_messageA

Send a file attachment with Messages to a handle or chat id.

Args: recipient: Phone/email handle, or chat id when recipient_type is "chat" path: Existing local file path to send message: Optional text message to send before the file recipient_type: "handle" or "chat"

Returns: Structured JSON with send metadata or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
messageNo
recipientYes
recipient_typeNohandle

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

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

No annotations exist, so the description must cover behavioral traits. It explains parameters and return value but lacks details on destructive potential, permissions, file size limits, or what happens if the file does not exist. Minimal transparency beyond basic purpose.

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

Conciseness5/5

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

The description is concise with a one-line summary followed by structured Args and Returns sections. Front-loaded with the core purpose, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no annotations, and presence of an output schema, the description covers purpose, parameters, and return format. It misses details like prerequisites (e.g., Messages app running) or error handling specifics, but is generally complete for use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It adds meaning by explaining each parameter: recipient as phone/email or chat id, path as existing local file, message as optional text, recipient_type as handle/chat. This is useful but still brief.

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

Purpose5/5

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

The description clearly states the action ('Send a file attachment with Messages') and identifies the target resource ('handle or chat id'). It distinguishes from sibling tools like 'send_imessage' which sends text-only messages.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool (to send file attachments), but does not explicitly exclude text-only messages or mention alternative tools like 'send_imessage'. Still, the context is clear enough for an agent.

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

send_imessageB

Send an imessage to someone in your contacts

Args: phone_number: The phone number of the recipient message: The message text to send

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
phone_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

The description states it sends an iMessage and returns success/error, but does not discuss failure conditions (invalid number, non-iMessage recipient), idempotency, or rate limits. With no annotations, this is moderate but incomplete.

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

Conciseness5/5

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

The description is extremely concise: one line for purpose, then a clear Args/Returns format. Every sentence serves a purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with an output schema, the description covers purpose, parameters, and return type. However, it omits usage guidelines, edge case handling, and differentiation from siblings, which are needed for a complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for parameters, so the description provides essential semantic value by explaining 'phone_number' (the phone number of the recipient) and 'message' (the message text). However, it lacks format constraints like country code requirements.

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

Purpose4/5

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

The description clearly states the action ('send') and resource ('imessage to someone in your contacts'), but does not explicitly differentiate from similar siblings like 'send_file_message' which also sends via iMessage. This reduces clarity when multiple sending options exist.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., send_file_message, read_recent_messages). There are no prerequisites mentioned, such as requiring iMessage enabled or the recipient being an Apple ID.

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

set_clipboard_filesB

Put one or more filesystem paths on the macOS clipboard for Finder paste.

Args: paths: Existing file or directory paths to place on the clipboard

Returns: JSON string with operation metadata, or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description does not disclose whether clipboard is overwritten, path validation, permissions, or side effects; Returns section mentions metadata but not detailed.

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

Conciseness4/5

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

Single sentence for purpose plus structured Args and Returns; front-loaded and no redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one param and output schema, description covers action and parameter meaning but lacks details on return format and edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%; description adds 'Existing file or directory paths' beyond schema's array of strings, but lacks format constraints or error handling.

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

Purpose5/5

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

Clearly states the tool puts filesystem paths on the clipboard for Finder paste, distinguishing it from other clipboard tools like set_clipboard_text and set_clipboard_image.

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

Usage Guidelines2/5

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

No guidance on when to use versus alternatives like set_clipboard_text; only implies usage for file operations with 'for Finder paste', but no explicit when/why.

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

set_clipboard_imageA

Put an image file on the macOS clipboard.

Args: path: Existing image file path

Returns: JSON string with operation metadata, or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. Description only mentions operation and return type but does not disclose side effects, permissions, or what happens if file is invalid.

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

Conciseness5/5

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

Extremely concise: one sentence for purpose, then structured args and returns. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool but description omits details on 'operation metadata' and validation behavior. Could be more complete given the output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% but description adds 'Existing image file path' for the only parameter, clarifying it expects a path to an existing file.

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

Purpose5/5

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

Clear verb+resource: 'Put an image file on the macOS clipboard.' Distinguishes from sibling tools like set_clipboard_text and set_clipboard_files by specifying image files.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like set_clipboard_files or save_clipboard_image. Lacks when/why context.

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

set_clipboard_textA

Write plain text to the macOS clipboard.

Args: text: Text to place on the clipboard

Returns: JSON string with operation metadata, or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Description states it writes plain text and returns JSON metadata/errors, but does not explicitly mention overwriting existing clipboard content or any required permissions. Without annotations, it is adequate but not detailed.

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

Conciseness5/5

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

Extremely concise: a single front-loaded sentence followed by a brief docstring. Every sentence provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description fully covers the purpose, argument, and return value. No information gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, but the description includes a clear parameter explanation in the docstring: 'text: Text to place on the clipboard', adding meaning beyond the schema.

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

Purpose5/5

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

Description clearly states the verb 'Write' and the resource 'plain text to the macOS clipboard', distinguishing it from sibling tools like set_clipboard_files and set_clipboard_image.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like get_clipboard_text or clear_clipboard. Lacks when-not or conditional usage hints.

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

set_reminderA

Set a reminder

Args: name: The reminder text datetime: The time to set the reminder for, must in the following format "YYYY-MM-DD HH:MM" list_name: Reminder list, e.g. Work, Personal etc. Defaults to "Reminders"

Returns: A success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
datetimeYes
list_nameNoReminders

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses the datetime format and that it returns a success/error message. However, it does not mention potential errors (e.g., invalid datetime), permissions, or side effects beyond creating the reminder.

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

Conciseness4/5

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

The description is structured with Args/Returns and is reasonably concise, though the formatting adds some verbosity. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity and presence of an output schema, the description covers purpose, parameters, and return value. However, it lacks usage guidelines and behavioral details like time constraints, making it slightly incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining each parameter's meaning, providing an explicit datetime format, and giving an example for list_name with a default value.

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

Purpose4/5

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

The description clearly states the tool sets a reminder with parameters for name, datetime, and list_name. While it distinguishes from siblings implicitly, it does not explicitly differentiate from update_reminder or reschedule_reminder.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus its siblings (e.g., update_reminder, complete_reminder, delete_reminder). The agent must infer 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.

show_reminderA

Reveal an exact or uniquely matching reminder in the Reminders app.

Args: identifier: Reminder id or name/title text list_name: Optional Reminders list name

Returns: Structured JSON with the shown reminder or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_nameNo
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It states the operation is a reveal (read) and returns JSON or an error, but it does not detail matching logic or potential side effects. The behavior is adequately described but not exhaustive.

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

Conciseness5/5

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

The description is short and well-structured with a clear opening sentence, then Args and Returns sections. Every sentence adds value, and there is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 2 parameters, one required, and an output schema. The description covers both parameters and the return type. It does not mention prerequisites or potential errors, but given the simplicity, it is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. The Args section adds meaning by describing 'identifier' as 'Reminder id or name/title text' and 'list_name' as 'Optional Reminders list name.' This goes beyond the schema, though it lacks format details.

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

Purpose5/5

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

The description clearly states 'Reveal an exact or uniquely matching reminder in the Reminders app,' using a specific verb and resource. This distinguishes it from sibling tools like list_reminders (which lists all) and search_reminders (which may be more fuzzy).

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

Usage Guidelines4/5

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

The description implies usage for retrieving a single known reminder by identifier, contrasting with list/search siblings. However, it does not explicitly state when not to use or name alternatives, so it lacks clear exclusions.

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

switch_safari_tabB

Switch to a specific Safari tab by index (1-based)

Args: tab_index: Tab index to switch to (must be greater than 0)

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
tab_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the tool switches tabs and returns a success or error message, but it does not disclose what happens with invalid indices, whether Safari needs to be frontmost, or any side effects.

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

Conciseness5/5

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

The description is extremely concise with a clear structure: a one-sentence purpose followed by Args and Returns sections. Every sentence is necessary and there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description is reasonably complete for basic use. However, it lacks error handling details and prerequisites (e.g., listing tabs first). The output schema exists but is not described, missing an opportunity to clarify return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It adds the constraint that tab_index must be greater than 0, which is not in the schema. However, it does not provide additional context like valid range or how to obtain valid indices.

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

Purpose4/5

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

The description clearly states the tool switches to a specific Safari tab by index, with a 1-based index. It is a specific verb+resource combination. However, it does not distinguish itself from siblings like get_safari_tabs or open_safari_tab beyond the method of selection (by index).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as listing tabs first or handling out-of-range indices. It does not mention prerequisites or caveats.

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

tile_windowsA

Tile multiple macOS windows on a display.

Args: layout: Tile layout: columns, rows, or grid app_names: Optional app names to tile in order; defaults to visible windows display_index: Optional 1-based display index padding: Gap around and between windows

Returns: JSON string with final window metadata for tiled windows, or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutNocolumns
paddingNo
app_namesNo
display_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description bears full disclosure burden. It mentions default behavior for app_names ('defaults to visible windows') and return format (JSON string with window metadata or error), but does not cover other traits like permission requirements, handling of invalid inputs, or interaction with display configurations.

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

Conciseness5/5

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

Description is concise, with a clear purpose statement, structured Args section, and Returns note. No redundant information; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all parameters and return behavior adequately. However, for a tool with 4 parameters and no output schema structure, it could mention edge cases (e.g., invalid layout string handling) to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters have meaningful descriptions in the Args section despite zero schema coverage. Layout gets valid values ('columns, rows, or grid'), padding's purpose ('Gap around and between windows'), and display_index clarified as '1-based'. This fully compensates for the lack of schema descriptions.

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

Purpose5/5

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

Description clearly states the verb 'tile' and resource 'multiple macOS windows on a display'. It distinguishes from sibling tools like 'move_window' and 'resize_window' by specifying a distinct operation (arranging multiple windows in a layout).

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

Usage Guidelines2/5

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

No explicit guidelines on when to use this tool versus alternatives. It does not mention prerequisites, when not to use, or comparisons to siblings like 'center_window' or 'focus_window'.

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

trash_fileA

Move a file or directory to the macOS Trash. Permanent delete is not supported.

Args: path: Existing file or directory path dry_run: Return the planned action without moving to Trash

Returns: JSON string with operation details or an error message

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
dry_runNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the action (moving to Trash), support for dry_run, and return type, but lacks details on permissions, error handling, or behavior for paths already in Trash.

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

Conciseness5/5

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

The description is short and well-structured: a one-sentence purpose, followed by bullet-point argument descriptions, and a one-line return specification. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity and the presence of an output schema (not shown), the description covers purpose, parameters, and return format adequately. It could mention error handling or path validation, but is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It adds meaningful context: 'path: Existing file or directory path' and 'dry_run: Return the planned action without moving to Trash', which significantly clarifies the parameters beyond their types and defaults.

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

Purpose5/5

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

The description clearly states the tool moves a file or directory to the macOS Trash and explicitly says permanent delete is not supported, which distinguishes it from other file operations like move_file or delete.

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

Usage Guidelines3/5

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

The description implies when to use it (to move to Trash) and notes a limitation (no permanent delete), but does not explicitly compare to sibling tools or state when to choose this over alternatives.

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

turn_down_volumeA

Turn down system volume

Args: amount: Amount to decrease volume by (0-100 scale). Default is 6.25 (6.25%)

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose all behavioral traits. It mentions the parameter and return value, but does not specify behavior at volume bounds (e.g., minimum 0) 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.

Conciseness5/5

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

The description is concise, front-loaded with purpose, and structured with Args and Returns. Every sentence is useful and no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple volume control tool with one parameter and an output schema (success/error), the description covers essential information. It could mention system-level effects or default audio device, but is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully explains the 'amount' parameter: scale, default, and percent. This adds significant value beyond the schema's min/max/default.

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

Purpose5/5

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

The description 'Turn down system volume' clearly states the action and resource. It is specific and distinct from sibling tools like 'turn_up_volume'.

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

Usage Guidelines4/5

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

The description implies usage for decreasing volume but does not explicitly state when not to use or alternatives. However, the sibling 'turn_up_volume' provides clear context for when to use each.

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

turn_up_volumeA

Turn up system volume

Args: amount: Amount to increase volume by (0-100 scale). Default is 6.25 (6.25%)

Returns: Success or error message

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full weight. It does not disclose potential side effects (e.g., volume clamping at 0/100), permission requirements, or whether the action is immediate. This lack of detail is a gap.

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

Conciseness5/5

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

The description is concise and well-structured with a clear title, args, and returns section. Every sentence is necessary and no extraneous information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter, and the description covers basic use. However, it lacks details on behavior at extremes, feedback, or integration with system settings. The output is vaguely described as 'success or error message', lacking specifics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only provides type, default, min, and max. The description adds meaningful context: the 0-100 scale and default increment of 6.25%. This goes beyond the schema, aiding proper parameter selection.

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

Purpose5/5

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

The description states 'Turn up system volume' with a specific verb and resource, clearly indicating the action. It naturally distinguishes from the sibling 'turn_down_volume'.

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

Usage Guidelines3/5

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

The description implies usage for increasing volume but provides no explicit guidance on when to use versus alternatives, such as 'increase_brightness' or when volume might already be at maximum.

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

update_calendar_eventA

Update an exact or uniquely matching Calendar event.

Args: identifier: Event id or title text title: Optional replacement title start_datetime: Optional replacement start in "YYYY-MM-DD HH:MM" format duration_minutes: Optional replacement duration calendar_name: Optional calendar name for matching location: Optional replacement location notes_text: Optional replacement notes

Returns: Structured JSON with updated event metadata or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
locationNo
identifierYes
notes_textNo
calendar_nameNo
start_datetimeNo
duration_minutesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description bears full burden. It mentions returning updated metadata or errors but lacks behavioral details such as whether partial updates are supported, idempotency, 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.

Conciseness4/5

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

The description is concise with a clear main sentence followed by a bulleted list of arguments and return type. It is front-loaded with purpose, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all parameters and return format adequately for a basic understanding. However, lacking usage guidelines and behavioral transparency reduces completeness. It does not explain matching semantics or error handling beyond an error message.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description adds meaning for all 7 parameters, explaining each with examples (e.g., 'identifier: Event id or title text' and 'start_datetime: Optional replacement start in YYYY-MM-DD HH:MM format').

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

Purpose5/5

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

The description clearly states the tool updates a calendar event, specifying the verb 'Update' and resource 'Calendar event'. It distinguishes from siblings like 'create_calendar_event' and 'delete_calendar_event' by requiring an exact or uniquely matching event.

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

Usage Guidelines3/5

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

The description implies usage for updating events with matching criteria but does not explicitly state when to use this versus alternatives like search_calendar_events or list_calendar_events. No exclusions or context provided.

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

update_contactA

Update a unique Contacts record by id or name match.

Args: identifier: Contact id or name text first_name: Optional replacement first name last_name: Optional replacement last name organization: Optional replacement organization/company phone: Optional phone number to add email: Optional email address to add note: Optional replacement note

Returns: Structured JSON with the updated contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
emailNo
phoneNo
last_nameNo
first_nameNo
identifierYes
organizationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description must disclose behavioral traits. It states update operation and returns updated contact, but does not address handling of multiple name matches, permissions, or side effects. Could be more transparent.

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

Conciseness4/5

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

Two sentences plus clean arg list. Purpose stated upfront, concise. Well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema available, description sufficiently covers input parameters and return value. Lacks error handling or edge cases, but adequate for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description compensates by listing all 7 parameters with brief explanations. Adds meaning beyond type and default values, though could include format constraints.

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

Purpose5/5

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

Clearly states 'Update a unique Contacts record by id or name match.' Specific verb and resource, distinct from sibling tools like create_contact and get_contact.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this vs alternatives like create_contact or search_contacts. Usage is implied from the description, but lacks when-not or context differentiation.

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

update_noteA

Replace a note body by id or title.

Args: identifier: Note id or title text body: Replacement plain text/HTML body

Returns: Structured JSON with the updated note or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided. The description discloses replacement behavior and return format but lacks details on side effects, reversibility, or behavior when identifier matches multiple notes.

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

Conciseness5/5

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

The description is concise with a clear front-loaded purpose, followed by parameter and return details. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with output schema, the description covers key aspects. However, it could mention ambiguous matching behavior or required permissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaning by detailing 'identifier: Note id or title text' and 'body: Replacement plain text/HTML body', though format specifics are missing.

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

Purpose5/5

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

The description clearly states 'Replace a note body by id or title,' using a specific verb and resource. It distinguishes from siblings like append_to_note and create_note.

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

Usage Guidelines4/5

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

The description implies use for replacing note content, contrasting with append_to_note, but does not explicitly state when not to use it or suggest alternatives.

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

update_reminderA

Update an exact or uniquely matching reminder.

Args: identifier: Reminder id or name/title text list_name: Optional Reminders list name name: Optional replacement reminder name body: Optional replacement reminder notes datetime: Optional due date/time in "YYYY-MM-DD HH:MM" format completed: Optional completion state priority: Optional priority from 0 to 9 flagged: Optional flagged state

Returns: Structured JSON with the updated reminder or an error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
nameNo
flaggedNo
datetimeNo
priorityNo
completedNo
list_nameNo
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It lists updated fields and mentions 'Returns: Structured JSON with the updated reminder or an error message.' However, it does not clarify what happens to unprovided parameters (e.g., do defaults overwrite existing values?), nor does it explain matching behavior when multiple reminders match. Key behavioral details are missing.

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

Conciseness5/5

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

The description is well-structured with 'Args:' and 'Returns:' sections, each parameter on its own line with concise explanation. No redundant or extraneous information, earning its place efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all parameters and return type, but lacks details on matching semantics (how 'uniquely matching' works with identifier and list_name) and the effect of omitting fields. Given the tool's complexity and presence of output schema, more context on behavior is needed for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given 0% schema description coverage, the description fully compensates by providing clear explanations for all 8 parameters, including types and optionality (e.g., 'Optional Reminders list name', 'Optional replacement reminder name', 'Priority from 0 to 9'). This adds significant meaning beyond the raw schema defaults.

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

Purpose5/5

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

The description clearly states 'Update an exact or uniquely matching reminder.' The verb 'update' and resource 'reminder' are explicit, and 'exact or uniquely matching' adds specificity. It distinguishes from sibling tools like 'set_reminder' (create?), 'complete_reminder', and 'reschedule_reminder' by offering modification of multiple fields.

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

Usage Guidelines3/5

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

The description implies usage for updating reminders by identifier, but lacks explicit when-to-use or when-not-to-use guidance. It does not compare with alternatives like 'reschedule_reminder' for date-only changes or 'complete_reminder' for completion state, leaving 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 91 tool updatesv0.1.0
    • First observedadd_screen_glow
    • First observedappend_to_note
    • First observedcapture_active_screen
    • First observedcenter_window
    • First observedcheck_calendar_availability
    • First observedchrome_click
    • First observedchrome_close_session
    • First observedchrome_extract
    • First observedchrome_list_sessions
    • First observedchrome_navigate
    • First observedchrome_open_session
    • First observedchrome_screenshot
    • First observedchrome_type
    • First observedchrome_wait_for
    • First observedclear_clipboard
    • First observedclose_safari_tab
    • First observedclose_safari_window
    • First observedcomplete_reminder
    • First observedcopy_directory
    • First observedcopy_file
    • First observedcreate_calendar_event
    • First observedcreate_contact
    • First observedcreate_note
    • First observedcreate_recurring_event
    • First observeddecrease_brightness
    • First observeddelete_calendar_event
    • First observeddelete_note
    • First observeddelete_reminder
    • First observedfind_files
    • First observedfocus_window
    • First observedget_clipboard_files
    • First observedget_clipboard_text
    • First observedget_contact
    • First observedget_file_info
    • First observedget_finder_selection
    • First observedget_frontmost_app
    • First observedget_note
    • First observedget_safari_page_info
    • First observedget_safari_tabs
    • First observedhide_app
    • First observedincrease_brightness
    • First observedlist_calendar_events
    • First observedlist_calendar_events_for_day
    • First observedlist_calendars
    • First observedlist_chats
    • First observedlist_directory
    • First observedlist_note_folders
    • First observedlist_notes
    • First observedlist_reminder_lists
    • First observedlist_reminders
    • First observedlist_windows
    • First observedminimize
    • First observedmove_file
    • First observedmove_note
    • First observedmove_window
    • First observednavigate_safari
    • First observedopen_app
    • First observedopen_safari_tab
    • First observedopen_safari_window
    • First observedquit_app
    • First observedread_recent_messages
    • First observedreload_safari_page
    • First observedremove_screen_glow
    • First observedrename_file
    • First observedreschedule_reminder
    • First observedresize_window
    • First observedreveal_in_finder
    • First observedrun_safari_javascript
    • First observedsafari_go_back
    • First observedsafari_go_forward
    • First observedsave_clipboard_image
    • First observedsearch_calendar_events
    • First observedsearch_contacts
    • First observedsearch_notes
    • First observedsearch_reminders
    • First observedsend_file_message
    • First observedsend_imessage
    • First observedset_clipboard_files
    • First observedset_clipboard_image
    • First observedset_clipboard_text
    • First observedset_reminder
    • First observedshow_reminder
    • First observedswitch_safari_tab
    • First observedtile_windows
    • First observedtrash_file
    • First observedturn_down_volume
    • First observedturn_up_volume
    • First observedupdate_calendar_event
    • First observedupdate_contact
    • First observedupdate_note
    • First observedupdate_reminder

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, with only minor overlap (e.g., list_calendar_events vs list_calendar_events_for_day, update_reminder vs reschedule_reminder). The large number of window management tools are well-differentiated by action verb.

Naming Consistency4/5

The majority follow a consistent verb_noun pattern (create_note, delete_reminder, turn_up_volume). Minor deviations like append_to_note and reveal_in_finder break the pattern slightly, but overall naming is predictable.

Tool Count2/5

91 tools is excessive for most domains. While the server covers many macOS automation areas, the number far exceeds the 3–15 recommended range, making the surface overwhelming and hard to navigate.

Completeness4/5

Covers CRUD and common operations for Calendar, Notes, Reminders, Contacts, Messages, files, windows, Safari, and Chrome. Missing features like contact list retrieval, note folder creation, and volume mute are minor gaps in an otherwise comprehensive set.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/altic-dev/altic-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server