Skip to main content
Glama

Build NPM Version License Issues Last Commit

mcp-appium-visual is an AI-powered mobile automation platform with Model Context Protocol (MCP) integration. It enables seamless control of Android and iOS devices through Appium, featuring intelligent visual element detection and recovery.

Features

  • Integration with Appium for device control

  • Visual element detection and recovery (AI-based)

  • MCP support for advanced agent-driven testing workflows

  • Supports Android and iOS platforms

  • Designed for use with AI agents for intelligent automation

Related MCP server: MCP Android Agent

Prerequisites

  1. Node.js (v14 or higher)

  2. Java Development Kit (JDK)

  3. Android SDK (for Android testing)

  4. Xcode (for iOS testing, macOS only)

  5. Appium Server

  6. Android device or emulator / iOS device or simulator

Environment Setup

Before executing any commands, ensure your environment variables are properly set up:

  1. Make sure your .bash_profile, .zshrc or other shell configuration file contains the necessary environment variables:

# Example environment variables in ~/.bash_profile
export JAVA_HOME=/path/to/your/java
export ANDROID_HOME=/path/to/your/android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
  1. Source your environment file before running MCP-Appium:

source ~/.bash_profile  # For bash
# OR
source ~/.zshrc         # For zsh

Note: The system will attempt to source your .bash_profile automatically when initializing the driver, but it's recommended to ensure proper environment setup manually before running tests in a new terminal session.

Xcode Command Line Tools Configuration

For iOS testing, proper Xcode command line tools configuration is essential:

  1. Install Xcode command line tools if not already installed:

xcode-select --install
  1. Verify the installation and check the current Xcode path:

xcode-select -p
  1. If needed, set the correct Xcode path (especially if you have multiple Xcode versions):

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
  1. Accept Xcode license agreements:

sudo xcodebuild -license accept
  1. For iOS real device testing, ensure your Apple Developer account is properly configured in Xcode:

    • Open Xcode

    • Go to Preferences > Accounts

    • Add your Apple ID if not already added

    • Download the necessary provisioning profiles

  2. Set up environment variables for iOS development:

# Add these to your ~/.bash_profile or ~/.zshrc
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
export PATH="$DEVELOPER_DIR/usr/bin:$PATH"
  1. Source your updated configuration:

source ~/.bash_profile  # For bash
# OR
source ~/.zshrc         # For zsh

Setup

  1. Install dependencies:

npm install
  1. Install and start Appium server:

npm install -g appium
appium
  1. Set up Android device/emulator:

    • Enable Developer Options on your Android device

    • Enable USB Debugging

    • Connect device via USB or start an emulator

    • Verify device is connected using adb devices

  2. For iOS testing (macOS only):

    • Ensure Xcode command line tools are installed: xcode-select --install

    • Set up iOS simulator or connect a real device

    • Trust the development computer on the iOS device if using a real device

Running Tests

  1. Build the project:

npm run build
  1. Start the MCP server:

npm run dev
  1. In a new terminal, run the test:

npm test

Test Configuration

Android Configuration

The example test uses the Android Settings app as a demo. To test your own app:

  1. Edit examples/appium-test.ts:

    • Update deviceName to match your device

    • Set app path to your APK file, or

    • Update appPackage and appActivity for an installed app

  2. Common capabilities configuration:

const capabilities: AppiumCapabilities = {
  platformName: "Android",
  deviceName: "YOUR_DEVICE_NAME",
  automationName: "UiAutomator2",
  // For installing and testing an APK:
  app: "./path/to/your/app.apk",
  // OR for testing an installed app:
  appPackage: "your.app.package",
  appActivity: ".MainActivity",
  noReset: true,
};

iOS Configuration

For iOS testing using the new Xcode command line support:

  1. Example configuration in examples/xcode-appium-example.ts:

const capabilities: AppiumCapabilities = {
  platformName: "iOS",
  deviceName: "iPhone 13", // Your simulator or device name
  automationName: "XCUITest",
  udid: "DEVICE_UDID", // Get this from XcodeCommands.getIosSimulators()
  // For installing and testing an app:
  app: "./path/to/your/app.app",
  // OR for testing an installed app:
  bundleId: "com.your.app",
  noReset: true,
};

Available Actions

The MCP server supports various Appium actions:

  1. Element Interactions:

    • Find elements

    • Tap/click elements with W3C Actions API (See "W3C Standard Gestures" section)

    • Type text

    • Scroll to element with W3C Actions API

    • Long press

  2. App Management:

    • Launch/close app

    • Reset app

    • Get current package/activity

  3. Device Controls:

    • Screen orientation

    • Keyboard handling

    • Device lock/unlock

    • Screenshots

    • Battery info

  4. Advanced Features:

    • Context switching (Native/WebView)

    • File operations

    • Notifications

    • Custom gestures

  5. Xcode Command Line Tools (iOS only):

    • Manage iOS simulators (boot, shutdown)

    • Install/uninstall apps on simulators

    • Launch/terminate apps

    • Take screenshots

    • Record videos

    • Create/delete simulators

    • Get device types and runtimes

W3C Standard Gestures

The MCP-Appium library now implements the W3C WebDriver Actions API for touch gestures, which is the modern standard for mobile automation.

W3C Actions for Tap Elements

The tapElement method now uses the W3C Actions API with intelligent fallbacks:

// The method will try in this order:
// 1. Standard WebdriverIO click()
// 2. W3C Actions API
// 3. Legacy TouchAction API (fallback for backward compatibility)
await appium.tapElement("//android.widget.Button[@text='OK']");
// or using the click alias
await appium.click("//android.widget.Button[@text='OK']");

W3C Actions for Scrolling

The scrollToElement method now uses W3C Actions API:

// Uses W3C Actions API for more reliable scrolling
await appium.scrollToElement(
  "//android.widget.TextView[@text='About phone']", // selector
  "down", // direction: "up", "down", "left", "right"
  "xpath", // strategy
  10 // maxScrolls
);

Custom W3C Gestures

You can create your own custom W3C gestures using the executeMobileCommand method:

// Create custom W3C Actions API gesture
const w3cActions = {
  actions: [
    {
      type: "pointer",
      id: "finger1",
      parameters: { pointerType: "touch" },
      actions: [
        // Move to start position
        { type: "pointerMove", duration: 0, x: startX, y: startY },
        // Press down
        { type: "pointerDown", button: 0 },
        // Move to end position over duration milliseconds
        {
          type: "pointerMove",
          duration: duration,
          origin: "viewport",
          x: endX,
          y: endY,
        },
        // Release
        { type: "pointerUp", button: 0 },
      ],
    },
  ],
};

// Execute the W3C Actions using executeScript
await appium.executeMobileCommand("performActions", [w3cActions.actions]);

See examples/w3c-actions-swipe-demo.ts for more examples of W3C standard gesture implementations.

Using Xcode Command Line Tools

The new XcodeCommands class provides powerful tools for iOS testing:

import { XcodeCommands } from "../src/lib/xcode/xcodeCommands.js";

// Check if Xcode CLI tools are installed
const isInstalled = await XcodeCommands.isXcodeCliInstalled();

// Get available simulators
const simulators = await XcodeCommands.getIosSimulators();

// Boot a simulator
await XcodeCommands.bootSimulator("SIMULATOR_UDID");

// Install an app
await XcodeCommands.installApp("SIMULATOR_UDID", "/path/to/app.app");

// Launch an app
await XcodeCommands.launchApp("SIMULATOR_UDID", "com.example.app");

// Take a screenshot
await XcodeCommands.takeScreenshot("SIMULATOR_UDID", "/path/to/output.png");

// Shutdown a simulator
await XcodeCommands.shutdownSimulator("SIMULATOR_UDID");

Using the Click Function

The click() method provides a more intuitive alternative to tapElement():

// Using the click method
await appium.click("//android.widget.Button[@text='OK']");

// This is equivalent to:
await appium.tapElement("//android.widget.Button[@text='OK']");

Troubleshooting

  1. Device not found:

    • Check adb devices output

    • Verify USB debugging is enabled

    • Try reconnecting the device

  2. App not installing:

    • Verify APK path is correct

    • Check device has enough storage

    • Ensure app is signed for debug

  3. Elements not found:

    • Use Appium Inspector to verify selectors

    • Check if elements are visible on screen

    • Try different locator strategies

  4. Connection issues:

    • Verify Appium server is running

    • Check port conflicts

    • Ensure correct capabilities are set

  5. iOS Simulator issues:

    • Verify Xcode command line tools are installed: xcode-select -p

    • Check simulator UDID is correct using xcrun simctl list devices

    • Close and restart simulator if it becomes unresponsive

Contributing

Feel free to submit issues and pull requests for additional features or bug fixes.

License

MIT

Available Tools

110 tools
appium-screenshotC

Take a screenshot using Appium

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBase name for the screenshot file

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Take a screenshot' implies a read operation, it doesn't specify whether this requires specific device states, what happens if the device is locked, whether it saves files locally or returns data, or any error conditions. The description is minimal and lacks important operational context.

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

Conciseness5/5

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

The description is extremely concise with just 4 words that directly convey the core function. There's zero wasted language or unnecessary elaboration. It's front-loaded with the essential action and context in a single efficient statement.

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?

For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (file path, binary data, success status), doesn't mention dependencies on Appium session state, and doesn't differentiate from similar screenshot tools in the sibling list. The minimal description leaves too many operational questions unanswered.

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

Parameters3/5

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

The input schema has 100% description coverage with the 'name' parameter clearly documented as 'Base name for the screenshot file'. The description adds no additional parameter information beyond what the schema provides, which is acceptable given the high schema coverage. The baseline score of 3 reflects adequate but not enhanced parameter documentation.

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

Purpose3/5

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

The description 'Take a screenshot using Appium' clearly states the action (take) and resource (screenshot) with the technology context (Appium). However, it doesn't differentiate from the sibling tool 'take-screenshot' - the distinction between 'appium-screenshot' and 'take-screenshot' is unclear from this description alone.

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 'take-screenshot' or 'xcode_take_screenshot'. There's no mention of prerequisites, appropriate contexts, or comparison with sibling tools that perform similar functions.

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

capture-ui-locatorsC

Capture all UI elements and their locators for future use

ParametersJSON Schema
NameRequiredDescriptionDefault
elementTypeNoFilter elements by type (e.g., android.widget.Button)
saveToFileNoWhether to save the locators to a file
refreshSourceNoWhether to refresh page source before capture

TDQS

C2.9/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 of behavioral disclosure. It mentions capturing 'all UI elements' but doesn't specify what 'capture' entails (e.g., does it return a list, save to memory, or require permissions?), potential side effects (e.g., performance impact), or error conditions. For a tool with 3 parameters and 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.

Conciseness4/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and easy to parse, though it could be slightly more structured (e.g., by hinting at parameters) to enhance clarity without sacrificing brevity.

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 complexity of a UI capture tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on behavior, output format, error handling, and differentiation from siblings. While concise, it doesn't provide enough context for an agent to use the tool effectively without guesswork.

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

Parameters3/5

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

Schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description adds no additional context about the parameters, such as default behaviors or interactions between them. Since the schema handles the heavy lifting, the baseline score of 3 is appropriate, though no extra value is provided.

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's purpose: 'Capture all UI elements and their locators for future use.' It specifies the verb ('capture'), resource ('UI elements and their locators'), and intended outcome ('for future use'). However, it doesn't explicitly differentiate from sibling tools like 'extract-locators' or 'generate-element-locators,' which appear to have related functionality, preventing a score of 5.

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. With sibling tools like 'extract-locators' and 'generate-element-locators' present, there's no indication of scenarios where 'capture-ui-locators' is preferred, nor any mention of prerequisites or exclusions. This lack of context leaves usage ambiguous.

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

clear-elementC

Clear text from an input element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesElement selector (e.g., xpath, id)
strategyNoSelector strategy: xpath, id, accessibility id, class name (default: xpath)

TDQS

C2.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 the full burden of behavioral disclosure. It states the action ('clear text') but doesn't describe how it behaves: e.g., does it simulate user input or directly set value? Does it require the element to be focused? What happens on failure? For a mutation tool with zero annotation coverage, this is a significant gap in 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 a single, efficient sentence with zero waste. It's front-loaded with the core action and target, making it easy to scan. No unnecessary words or redundancy are present.

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 complexity of a UI automation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavior (e.g., error handling, interaction method), usage context (e.g., when to prefer this over other tools), and output (e.g., what's returned on success/failure). For a mutation tool in a rich sibling set, this is inadequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('selector' and 'strategy') with descriptions. The description doesn't add any parameter-specific details beyond what's in the schema (e.g., examples of selectors, default behavior). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose3/5

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

The description 'Clear text from an input element' states a clear action ('clear text') and target ('input element'), but it's somewhat vague about scope (e.g., does it clear all text or specific text?) and doesn't differentiate from sibling tools like 'send-keys' (which might input text) or 'tap-element' (which might focus an element). It avoids tautology but lacks specificity for a UI automation 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?

No guidance is provided on when to use this tool versus alternatives (e.g., 'send-keys' with empty string, 'tap-element' to focus then clear, or other UI interaction tools). The description implies usage for clearing text but doesn't mention prerequisites (e.g., element must be interactable) or exclusions (e.g., not for non-input elements).

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

close-appB

Close the app associated with the current Appium session

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 of behavioral disclosure. It states the action ('close') but doesn't explain what 'close' entails—e.g., whether it gracefully terminates the app, leaves it in background, affects app state, or requires specific permissions. For a mutation tool with zero annotation coverage, 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 a single, clear sentence with zero waste—it directly states the tool's action and scope. It's front-loaded and appropriately sized for a simple tool with no parameters.

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 (a mutation operation with no annotations and no output schema), the description is incomplete. It lacks details on behavior (e.g., what 'close' means, side effects), prerequisites (e.g., requires an active session), and output (e.g., success/failure indication). For a tool in a testing/automation context, this leaves critical 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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, which is appropriate. A baseline of 4 is given since the schema fully handles parameters, and the description doesn't need to compensate.

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 target ('the app associated with the current Appium session'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'close-appium' (which likely closes the Appium server/session) or 'terminate-app' (which might force-quit an app), leaving room for ambiguity.

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 doesn't mention prerequisites (e.g., requires an active Appium session), exclusions (e.g., not for closing the Appium server itself), or comparisons to siblings like 'close-appium' or 'xcode_terminate_app'. This lack of context could lead to misuse.

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

close-appiumB

Close the current Appium driver session

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Close' implies a destructive operation that terminates a session, but it doesn't specify whether this is reversible, what happens to associated resources, or if there are side effects like losing connection to the device. For a session management tool with zero annotation coverage, this is inadequate.

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, direct sentence with no wasted words. It's front-loaded with the core action and target, making it immediately understandable without unnecessary elaboration.

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?

For a session management tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'close' entails behaviorally, what happens after closure, or what (if anything) is returned. Given the complexity of managing Appium sessions and the lack of structured documentation, more context is needed.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to add parameter information, and it correctly doesn't mention any parameters. Baseline 4 is appropriate for zero-parameter tools.

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 target ('current Appium driver session'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'close-app' or 'xcode_shutdown_simulator', which might have overlapping purposes in the Appium testing 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 provides no guidance on when to use this tool versus alternatives like 'close-app' or 'xcode_shutdown_simulator'. It doesn't mention prerequisites (e.g., requires an active Appium session) or consequences of closing the session versus other termination methods.

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

element-existsC

Check if an element exists on the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesElement selector (e.g., xpath, id)
strategyNoSelector strategy: xpath, id, accessibility id, class name (default: xpath)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic function. It doesn't disclose behavioral traits like whether this is a read-only operation (implied but not stated), if it returns a boolean or detailed result, error handling (e.g., invalid selector), performance characteristics, or dependencies (e.g., requires Appium session). For a tool with zero annotation coverage, 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 a single, direct sentence with zero wasted words. It's front-loaded with the core purpose and efficiently communicates the essential action. Every word earns its place, making it highly scannable and easy to parse.

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 moderate complexity (checking element existence in a UI automation context), no annotations, no output schema, and rich sibling tools, the description is incomplete. It lacks context on return values (e.g., boolean vs. element details), error conditions, typical workflows, and differentiation from similar tools. This leaves significant gaps for effective agent use.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('selector' and 'strategy') well-documented in the schema. The description adds no parameter-specific information beyond what the schema provides, such as examples of common selectors or when to choose different strategies. This meets the baseline for high schema coverage but doesn't enhance understanding.

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 ('Check if') and resource ('an element exists on the current page'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'find-by-text' or 'wait-for-element', but the checking vs. finding distinction is somewhat implied. This is clear but lacks explicit sibling differentiation.

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

Usage 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 'find-by-text', 'wait-for-element', or 'inspect-element'. It doesn't mention prerequisites (e.g., requires an active page/session) or typical use cases (e.g., validation before interaction). This leaves the agent with minimal context for tool selection.

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

execute-adb-commandC

Execute a custom ADB command

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe ADB command to execute (without 'adb' prefix)

TDQS

C2.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 the full burden. It mentions execution but does not disclose behavioral traits like required permissions, potential side effects (e.g., device changes), error handling, or output format. This is inadequate for a tool that likely interacts with device systems.

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 a single, efficient sentence with no wasted words. It is front-loaded and clear, though it could benefit from more detail given the tool's complexity.

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 potential complexity (executing arbitrary ADB commands), lack of annotations, no output schema, and incomplete behavioral disclosure, the description is insufficient. It does not provide enough context for safe or effective use, such as command examples, safety warnings, or expected results.

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

Parameters3/5

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

Schema description coverage is 100%, with the parameter 'command' documented as 'The ADB command to execute (without 'adb' prefix).' The description adds no additional meaning beyond this, such as examples or constraints, so it meets the baseline for high schema coverage.

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

Purpose3/5

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

The description states the tool 'Execute[s] a custom ADB command,' which clearly indicates the verb (execute) and resource (ADB command). However, it does not differentiate from sibling tools like 'execute-mobile-command' or specify what ADB commands are suitable, making it vague in 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?

There is no guidance on when to use this tool versus alternatives, such as 'execute-mobile-command' or other ADB-related siblings. The description provides no context, prerequisites, or exclusions, leaving usage unclear.

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

execute-mobile-commandC

Execute a custom mobile command for iOS or Android

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesMobile command name (without 'mobile:' prefix)
argsNoArguments for the command (optional)

TDQS

C2.7/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 of behavioral disclosure. It states the tool executes commands but lacks critical details: it doesn't specify if this requires device setup, what permissions are needed, potential side effects (e.g., app state changes), error handling, or response format. This leaves significant gaps in understanding how the tool behaves in practice.

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, efficient sentence with no wasted words. It's front-loaded with the core action and scope, making it easy to parse quickly, which is ideal for conciseness in a tool definition.

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 complexity of executing mobile commands (which could involve device interaction, varied outputs, or errors), the description is inadequate. With no annotations, no output schema, and minimal behavioral details, it fails to provide enough context for safe and effective use, especially compared to more specific siblings in the list.

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

Parameters3/5

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

The input schema has 100% description coverage, with 'command' and 'args' clearly documented. The description adds minimal value beyond this, mentioning 'mobile command name' and 'arguments' but not elaborating on command syntax, examples, or platform-specific nuances. This meets the baseline for high schema coverage but doesn't enhance parameter understanding.

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

Purpose3/5

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

The description states the tool 'Execute[s] a custom mobile command for iOS or Android', which provides a basic verb ('execute') and resource ('custom mobile command') with platform scope. However, it's vague about what constitutes a 'custom mobile command' and doesn't distinguish it from sibling tools like 'execute-adb-command' or other command-execution tools in the list, leaving ambiguity about its specific role.

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 offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., device connection), exclusions, or comparisons to siblings like 'execute-adb-command', leaving the agent to infer usage context from the tool name alone, which is insufficient for effective selection.

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

extract-locatorsC

Extract element locators from UI XML source

ParametersJSON Schema
NameRequiredDescriptionDefault
xmlSourceYesXML source to analyze
elementTypeNoFilter elements by type (e.g., android.widget.Button)
maxResultsNoMaximum number of elements to return

TDQS

C2.9/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 provides minimal behavioral insight. It doesn't disclose output format (e.g., list of locators, structured data), error conditions (e.g., invalid XML), performance traits (e.g., processing time for large sources), or side effects (likely none, but unspecified). The phrase 'extract' implies read-only analysis, but this isn't explicitly confirmed.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero wasted words. It directly states the tool's function without redundancy or fluff, making it highly efficient for quick comprehension by an AI agent.

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?

For a tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It lacks details on return values (critical for 'extract' operations), error handling, and integration with sibling tools (e.g., how it complements 'get-page-source'). Given the complexity of UI testing contexts, more guidance is needed for effective agent use.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional semantic context beyond implying analysis of XML for locators, which is already inferred from the tool name. It doesn't explain parameter interactions (e.g., how elementType filtering works with maxResults) or provide examples, so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb ('extract') and resource ('element locators'), specifying the source ('from UI XML source'). It distinguishes from some siblings like 'capture-ui-locators' (which likely captures live UI) and 'generate-element-locators' (which may generate rather than extract), but doesn't explicitly contrast with all relevant alternatives like 'get-element-tree' or 'inspect-element'.

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 is provided. The description doesn't mention prerequisites (e.g., needing XML source from 'get-page-source' or 'save-ui-hierarchy'), nor does it clarify use cases like static analysis versus dynamic inspection, leaving the agent to infer context from sibling tool names alone.

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

find-by-ios-class-chainC

Find an element using iOS class chain (iOS only)

ParametersJSON Schema
NameRequiredDescriptionDefault
classChainYesiOS class chain (e.g., '**/XCUIElementTypeButton[`name == "Login"`]')
timeoutMsNoTimeout in milliseconds (default: 10000)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose whether this is a read-only operation, what happens on timeout, if it returns a single element or multiple, or error conditions. The mention of 'iOS only' is useful context but insufficient for a mutation/query tool.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and includes essential platform constraint. Every word earns its place.

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?

For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'Find an element' returns (e.g., element reference, attributes, or null), error handling, or interaction with sibling tools. The platform limitation is noted, but other critical context is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no parameter semantics beyond what's in the schema (e.g., no examples beyond the schema's example, no clarification on timeout behavior). Baseline 3 is appropriate when schema does the heavy lifting.

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 ('Find an element') and the method ('using iOS class chain'), with explicit platform limitation ('iOS only'). However, it doesn't distinguish this from sibling tools like 'find-by-ios-predicate' or 'find-by-text', which serve similar element-finding purposes but use different methods.

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 'find-by-ios-predicate' or 'find-by-text', nor does it mention prerequisites (e.g., iOS environment, Appium session). It only states the platform limitation without context for tool selection.

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

find-by-ios-predicateB

Find an element using iOS predicate string (iOS only)

ParametersJSON Schema
NameRequiredDescriptionDefault
predicateStringYesiOS predicate string (e.g., 'name == "Login"')
timeoutMsNoTimeout in milliseconds (default: 10000)

TDQS

B3.2/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 of behavioral disclosure. It mentions the iOS-only restriction but doesn't describe what happens when an element is found (e.g., returns element reference), what happens on timeout, whether it waits for element appearance, or error conditions. For an element-finding tool with zero annotation coverage, this leaves 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?

The description is extremely concise (one sentence) with zero wasted words. It's front-loaded with the core purpose and includes the important platform restriction. Every word earns its place in this minimal but complete statement.

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?

For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (element reference, success/failure, error details), doesn't describe behavioral aspects like waiting behavior or timeout handling, and doesn't provide guidance on predicate string syntax beyond the minimal example in the schema. Given the complexity of element finding and the lack of structured metadata, the description should do more.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters well-documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema descriptions. The baseline of 3 is appropriate when the schema does the heavy lifting, though the description could have provided context about predicate string syntax beyond the basic example.

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 ('Find') and resource ('an element') with the specific method ('using iOS predicate string'). It distinguishes from siblings like 'find-by-text' or 'find-by-ios-class-chain' by specifying the iOS predicate approach. However, it doesn't explicitly contrast with these alternatives in the description text itself.

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

Usage Guidelines3/5

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

The description provides some context with '(iOS only)', which implicitly suggests platform restrictions. However, it doesn't explicitly state when to use this tool versus alternatives like 'find-by-text' or 'find-by-ios-class-chain', nor does it mention prerequisites or typical use cases for predicate-based element finding.

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

find-by-textC

Generate XPath to find element by text

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to search for
platformNameYesPlatform to generate XPath for
exactMatchNoWhether to match the text exactly (default: true)
elementTypeNoFilter by element type (e.g., android.widget.Button)

TDQS

C2.9/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 the tool generates XPath but doesn't disclose behavioral traits: whether it's read-only or mutative (likely read-only, but unspecified), if it has side effects, rate limits, authentication needs, or what happens on failure (e.g., if no element matches). For a tool with no annotation coverage, this is a significant 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 a single, efficient sentence with zero waste. It's front-loaded with the core purpose and uses precise terminology ('XPath', 'element', 'text'). Every word earns its place, making it easy for an agent to parse quickly.

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 no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a string XPath, an error if no match), behavioral constraints, or error handling. For a tool that likely interacts with mobile testing frameworks, more context on usage and output is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description adds no parameter-specific information beyond implying 'text' is the search criterion. Since the schema does the heavy lifting, the baseline score of 3 is appropriate—the description doesn't compensate but doesn't need to.

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 'Generate XPath to find element by text' clearly states the action (generate XPath) and target (find element by text). It distinguishes from many siblings like 'find-elements-by-text' (which likely returns elements rather than XPath) and 'tap-element-by-text' (which performs an action). However, it doesn't explicitly contrast with all similar tools like 'find-by-ios-class-chain' or 'find-by-ios-predicate'.

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. With siblings like 'find-elements-by-text' and 'find-by-ios-predicate', there's no indication of trade-offs (e.g., XPath vs. direct element retrieval, platform-specific optimizations). The agent must infer usage 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.

find-elements-by-textC

Find all elements containing specific text

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to search for

TDQS

C2.9/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 mentions 'find all elements' but doesn't disclose behavioral traits like whether it returns a list, handles partial matches, requires UI visibility, has performance implications, or what happens if no elements are found. This is inadequate for a tool with no annotation coverage.

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, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly.

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 no annotations, no output schema, and a simple parameter, the description is incomplete. It doesn't explain return values, error conditions, or behavioral context, leaving significant gaps for an AI agent to understand how to use the tool effectively.

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

Parameters3/5

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

Schema description coverage is 100%, with the parameter 'text' fully documented in the schema. The description adds no additional meaning beyond what the schema provides, such as text matching rules or examples. Baseline 3 is appropriate since the schema does the heavy lifting.

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 ('find') and resource ('elements'), specifying the search criterion ('containing specific text'). It distinguishes from some siblings like 'find-by-text' by emphasizing 'all elements' rather than a single match, but doesn't explicitly differentiate from similar tools in the list.

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 'find-by-text', 'has-text-in-screen', or 'element-exists'. The description lacks context about prerequisites, timing, or comparison with sibling tools.

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

generate-element-locatorsC

Generate multiple types of locators for an element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesBase selector to find the element (e.g., xpath)
strategyNoBase selector strategy: xpath, id, accessibility id, class name (default: xpath)

TDQS

C2.9/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 of behavioral disclosure. It states what the tool does but doesn't describe how it behaves: no information about output format, whether it modifies state, error conditions, or performance characteristics. For a tool with no annotation coverage, this leaves 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?

The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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 complexity of generating multiple locator types and the absence of both annotations and output schema, the description is insufficient. It doesn't explain what types of locators are generated, the output format, or how the generation process works. For a tool with no structured behavioral information, the description should provide more context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds no additional parameter information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

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 ('generate') and target ('multiple types of locators for an element'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'capture-ui-locators' or 'extract-locators', which appear related to locator generation, so it doesn't fully distinguish from alternatives.

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 'capture-ui-locators' or 'extract-locators'. There's no mention of prerequisites, context, or exclusions, leaving the agent with no usage direction beyond the basic purpose.

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

generate-test-scriptC

Generate Appium test script from actions

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNameYesPlatform to generate script for
appPackageNoApp package name (Android)
bundleIdNoBundle ID (iOS)
actionsYesList of actions to perform

TDQS

C2.9/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 of behavioral disclosure. It states what the tool does but lacks critical details: it doesn't specify if this is a read-only generation or if it modifies state, what the output format is (e.g., code file, text), any rate limits, or error handling. For a tool with no annotations, this leaves significant gaps in understanding its 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 extremely concise and front-loaded with a single sentence: 'Generate Appium test script from actions'. It wastes no words and directly communicates the core function, making it easy to parse quickly. Every part of the sentence earns its place by specifying key elements.

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 (generating scripts from actions) and lack of annotations and output schema, the description is incomplete. It doesn't explain what the generated output looks like (e.g., a Python file, JSON), how to use it, or any behavioral traits. For a tool that likely produces code, more context is needed to be fully helpful to an 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?

The input schema has 100% description coverage, clearly documenting all parameters like 'platformName', 'actions', and their sub-properties. The description adds no additional semantic context beyond the schema, such as example usage or constraints not in the schema. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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's purpose: 'Generate Appium test script from actions'. It specifies the verb ('generate'), resource ('Appium test script'), and source ('from actions'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'generate-element-locators' or 'capture-ui-locators', which might involve related test automation tasks, so it misses full sibling distinction.

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 doesn't mention prerequisites (e.g., needing initialized Appium), exclusions (e.g., not for real-time execution), or compare to siblings like 'execute-mobile-command' or 'perform-element-action'. Without such context, an agent might struggle to select this tool appropriately in a workflow.

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

get-battery-infoB

Get the device battery information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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. 'Get' implies a read operation, but it doesn't disclose behavioral traits like whether this requires device connectivity, what format the information returns (percentage, health, etc.), or if there are any prerequisites (e.g., device must be unlocked). This leaves significant gaps for an agent.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose and appropriately sized for a simple tool with no parameters.

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 complexity (simple read operation) but lack of annotations and output schema, the description is incomplete. It doesn't explain what battery information is returned (e.g., level, status, health) or any behavioral context, leaving the agent with insufficient information to understand the tool's full behavior.

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 0 parameters with 100% schema description coverage, so the schema already fully documents the absence of parameters. The description doesn't need to add parameter semantics, and it correctly doesn't mention any parameters. Baseline for 0 parameters is 4.

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 ('Get') and resource ('device battery information'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools that might also retrieve device information (like 'get-device-time' or 'get-orientation'), so it's not a perfect 5.

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. With many sibling tools that retrieve device information (e.g., 'get-device-time', 'get-orientation'), there's no indication of when battery info is specifically needed versus other device metrics.

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

get-contextsB

Get all available contexts (NATIVE_APP, WEBVIEW, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 retrieves contexts but doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires specific device states, potential errors, or the format of the returned data. For a tool with zero annotation coverage, this is a significant gap in 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 a single, efficient sentence that front-loads the core purpose ('Get all available contexts') and provides clarifying examples. There is no wasted verbiage, making it highly concise and well-structured for quick understanding.

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 (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on behavior, output format, or usage context. For a tool in a complex Appium/Xcode environment, more completeness would be helpful, but it meets the baseline for a basic retrieval function.

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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param details, which is appropriate, but it could have mentioned that no inputs are required. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.

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 ('Get') and resource ('all available contexts'), with specific examples like 'NATIVE_APP, WEBVIEW, etc.' This distinguishes it from other tools that perform actions on contexts rather than retrieving them. However, it doesn't explicitly differentiate from 'get-current-context' which retrieves only the active context, so it misses full sibling differentiation.

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

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 'get-current-context' or 'switch-context'. It lacks any mention of prerequisites, typical use cases, or exclusions, leaving the agent to infer usage 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.

get-current-activityB

Get the current Android activity name

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose whether this requires specific device states, what happens if no activity is running, whether it returns structured data or just a string, or any error conditions. For a diagnostic tool with zero annotation coverage, 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 a single, focused sentence that states exactly what the tool does with zero wasted words. It's front-loaded with the core functionality and doesn't include unnecessary elaboration for such a simple tool.

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 has no annotations, no output schema, and operates in a complex Android/Appium testing context with many similar sibling tools, the description is inadequate. It should explain what format the activity name returns in, when this tool is applicable versus alternatives, and any prerequisites or limitations for successful execution.

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 0 parameters with 100% schema description coverage, so the schema already fully documents the absence of parameters. The description appropriately doesn't discuss parameters since none exist, earning a baseline 4 for not creating confusion about non-existent inputs.

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 ('Get') and resource ('current Android activity name'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get-current-package' or 'get-contexts' that might retrieve related but different information about the Android environment.

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. With many sibling tools related to Android/Appium testing (like 'get-current-package', 'get-contexts', 'get-page-source'), there's no indication of when this specific activity retrieval is appropriate versus other diagnostic tools.

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

get-current-contextC

Get the current context

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/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 but offers minimal behavioral insight. It doesn't disclose if this is a read-only operation, what format the context information returns, potential errors, or dependencies like requiring an active Appium session. The description is too basic for a tool in a complex mobile testing environment.

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?

The description is extremely concise ('Get the current context'), which is efficient but under-specified. While it avoids unnecessary words, it fails to provide essential context that would help an AI agent, making it feel incomplete rather than optimally concise.

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?

For a tool in a complex Appium/mobile testing server with no annotations and no output schema, the description is inadequate. It doesn't explain what 'context' means, what data is returned, or how it fits with sibling tools like 'get-contexts' and 'switch-context', leaving significant gaps for agent 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 tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add parameter semantics, but this is acceptable given the lack of parameters, aligning with the baseline expectation for zero-parameter tools.

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

Purpose2/5

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

The description 'Get the current context' is a tautology that restates the tool name 'get-current-context' without adding meaningful specificity. It doesn't clarify what 'context' refers to in this mobile testing environment (e.g., WebView vs. native context) or what information is retrieved, making it vague despite the simple name.

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. Given sibling tools like 'get-contexts' (plural) and 'switch-context', the description doesn't explain if this tool retrieves a single active context versus listing all available contexts, or when it's appropriate compared to those siblings.

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

get-current-packageB

Get the current active app package name

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but reveals nothing about behavior: no indication of whether this requires an active appium session, what happens if no app is running, error conditions, or return format. 'Get' implies a read operation, but without annotations, the description doesn't confirm safety or provide operational context.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable. Every word earns its place in this minimal but complete statement.

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?

For a tool with no annotations and no output schema, the description is insufficiently complete. While concise, it doesn't address what the tool returns (just the package name? with metadata?), error conditions, dependencies, or behavioral context. Given the Appium testing context implied by sibling tools, more operational guidance would be helpful for agent decision-making.

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 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description appropriately doesn't waste space discussing parameters. Baseline for 0 parameters is 4, as no parameter information is needed and the description doesn't attempt to add unnecessary details.

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 ('Get') and resource ('current active app package name'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'list-installed-packages' or 'get-current-activity', but the specificity of 'current active' provides some implicit distinction. This is clear but lacks explicit sibling comparison.

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. There's no mention of prerequisites (e.g., whether an app must be running), comparison to similar tools like 'get-current-activity' or 'list-installed-packages', or context about when this information is needed. The agent must infer usage from the name alone.

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

get-device-timeB

Get the current device time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 action ('Get') but doesn't disclose behavioral traits such as whether this requires device access permissions, if it works offline, what format the time is returned in, or potential errors. This leaves significant gaps for a tool that interacts with a device.

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

Conciseness5/5

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

The description is a single, clear sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse.

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

Completeness2/5

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

Given the complexity of device interaction and lack of annotations or output schema, the description is incomplete. It doesn't explain what 'device time' means (e.g., system time, uptime), the return format, or error conditions. For a tool in a mobile testing/automation context, this leaves too much ambiguity.

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 0 parameters, and schema description coverage is 100%, so no parameter information is needed. The description appropriately doesn't mention parameters, which aligns with the schema. A baseline of 4 is applied since it doesn't add or detract from parameter understanding.

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 'Get the current device time' clearly states the verb ('Get') and resource ('current device time'), making the purpose immediately understandable. It doesn't distinguish from siblings (e.g., get-system-info tools), but it's specific enough to avoid vagueness or tautology.

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

Usage 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. In a context with many device-related tools (e.g., get-battery-info, get-orientation), it doesn't specify scenarios where retrieving device time is appropriate or mention prerequisites like device connectivity.

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

get-element-attributesC

Get all available attributes of an element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesElement selector (e.g., xpath, id)
strategyNoSelector strategy: xpath, id, accessibility id, class name (default: xpath)

TDQS

C2.9/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 it 'gets' attributes, implying a read-only operation, but doesn't disclose behavioral traits like whether it requires element visibility, what happens if the element doesn't exist, error handling, or the format of returned attributes. For a tool with no annotation coverage, this leaves significant gaps in understanding its 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 a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place without redundancy or unnecessary elaboration.

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 complexity (a read operation with parameters) and lack of annotations and output schema, the description is incomplete. It doesn't explain what 'attributes' include (e.g., HTML attributes like 'id', 'class'), the return format, or error conditions. For a tool with no structured output documentation, more context is needed to guide effective use.

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

Parameters3/5

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

The input schema has 100% description coverage, with clear documentation for both parameters ('selector' and 'strategy'). The description adds no additional meaning beyond what the schema provides, such as examples of attribute output or parameter interactions. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

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

Purpose4/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 resource ('all available attributes of an element'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get-element-text' or 'get-element-tree', which also retrieve element properties but focus on different aspects. The purpose is specific but lacks sibling distinction.

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. With siblings like 'get-element-text' (for text content) and 'get-element-tree' (for hierarchical structure), there's no indication of when retrieving attributes is preferred. No context, exclusions, or prerequisites are mentioned.

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

get-element-textC

Get text content from a UI element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesElement selector (e.g., xpath, id)
strategyNoSelector strategy: xpath, id, accessibility id, class name (default: xpath)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure but provides minimal information. It doesn't mention what happens if the element doesn't exist, whether it waits for the element to appear, what format the returned text is in, or any error conditions. For a tool that interacts with UI elements, this leaves significant behavioral unknowns.

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, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized for a straightforward tool and gets straight to the point with zero wasted verbiage.

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?

For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (text format, null handling), error behavior, or how it differs from similar text-related tools in the extensive sibling list. Given the complexity of UI automation and the many alternative tools available, more context is needed.

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 description coverage is 100%, with both parameters well-documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema, so it meets the baseline expectation but doesn't provide extra value. The description doesn't explain parameter interactions or provide examples of selector usage.

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 ('Get text content') and target ('from a UI element'), making the purpose immediately understandable. It doesn't specifically differentiate from sibling tools like 'get-element-attributes' or 'find-by-text', but the verb+resource combination is precise enough for basic understanding.

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 about when to use this tool versus alternatives like 'get-element-attributes' (which might include text among other attributes) or 'find-by-text' (which searches for elements containing text). The description offers no context about prerequisites, limitations, or appropriate scenarios for this specific text extraction method.

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

get-element-treeC

Get a hierarchical view of the UI elements (similar to Appium Inspector)

ParametersJSON Schema
NameRequiredDescriptionDefault
maxDepthNoMaximum depth to traverse in the element tree (default: 5)

TDQS

C2.9/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 of behavioral disclosure. It mentions the output is a 'hierarchical view' but doesn't specify format (e.g., JSON, XML), whether it's read-only (implied by 'Get'), performance implications, or error conditions. For a tool with no annotation coverage, this leaves significant gaps in understanding its 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 a single, efficient sentence that directly states the tool's purpose with a helpful analogy. It's front-loaded with the core functionality and has zero wasted words, making it easy to parse quickly.

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?

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain the return format, error handling, or how the hierarchical view relates to other UI inspection tools in the sibling list. Given the complexity of UI testing and the rich sibling context, more completeness is needed to guide effective use.

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

Parameters3/5

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

The description adds no parameter information beyond what's in the schema, which has 100% coverage for the single parameter 'maxDepth'. The schema description explains it well ('Maximum depth to traverse in the element tree (default: 5)'), so the baseline score of 3 is appropriate as the schema does the heavy lifting.

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's purpose: 'Get a hierarchical view of the UI elements' with a helpful analogy to 'Appium Inspector'. This specifies the verb ('Get') and resource ('hierarchical view of UI elements'), making it understandable. However, it doesn't explicitly differentiate from siblings like 'get-page-source' or 'save-ui-hierarchy', which might offer similar functionality.

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. With many sibling tools for UI inspection (e.g., 'get-page-source', 'inspect-element', 'save-ui-hierarchy'), there's no indication of when this hierarchical view is preferred over other methods, nor any prerequisites or exclusions mentioned.

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

get-orientationB

Get the current device orientation

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It states the tool retrieves orientation but doesn't describe what orientation values to expect (e.g., portrait, landscape), whether it requires an active device session, or potential errors. This is inadequate for a tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently communicates the essential action. Every word earns its place, making it highly concise and well-structured.

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

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 (0 parameters, no output schema, no annotations), the description is minimally adequate but lacks depth. It doesn't explain the return format or behavioral context, which could be important for integration. For a read-only tool with no structured output, more detail on expected results 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?

The tool has zero parameters, and schema description coverage is 100%, so the schema fully documents the absence of inputs. The description doesn't need to compensate for any parameter gaps, making it appropriately minimal in this dimension. A baseline of 4 is justified as no parameter information is required.

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 ('Get') and resource ('current device orientation'), making the purpose immediately understandable. It distinguishes itself from siblings like 'set-orientation' by focusing on retrieval rather than modification. However, it doesn't explicitly contrast with other device info tools like 'get-battery-info' or 'get-device-time', which would have earned a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., device connectivity), timing considerations, or relationships to sibling tools like 'set-orientation' for changing orientation. This leaves the agent with minimal 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.

get-page-sourceB

Get the XML representation of the current UI

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 of behavioral disclosure. It states the tool retrieves XML representation but doesn't clarify if this is a read-only operation, whether it requires specific UI state, potential side effects, or output format details. This is inadequate for a tool with zero annotation coverage.

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, efficient sentence that directly states the tool's function without any fluff. It's front-loaded and appropriately sized for a simple tool, with every word contributing to understanding.

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 complexity (a UI inspection tool with no annotations and no output schema), the description is insufficient. It lacks details on behavioral traits, output format, or usage context, making it incomplete for an agent to reliably invoke this tool without additional assumptions.

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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, but that's acceptable here. A baseline of 4 is appropriate since the schema fully covers the absence of parameters, and the description doesn't need to compensate.

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 ('Get') and resource ('XML representation of the current UI'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-element-tree' or 'save-ui-hierarchy', which might provide similar UI structure data, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools related to UI inspection (e.g., 'get-element-tree', 'save-ui-hierarchy'), there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on the name alone.

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

has-text-in-screenA

Check if specific text exists anywhere on the current screen

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to search for

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 carries full burden. It mentions the action ('Check if specific text exists') but lacks behavioral details like whether it's case-sensitive, if it searches hidden elements, timeout behavior, return format, or performance implications. For a tool with no annotation coverage, 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 a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and efficiently conveys the essential information without unnecessary elaboration.

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

Completeness3/5

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

Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description covers the basic purpose but lacks behavioral context and usage guidance. It's minimally adequate but leaves gaps in understanding how the tool behaves in practice.

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

Parameters3/5

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

Schema description coverage is 100%, with the single parameter 'text' documented as 'Text to search for'. The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb ('Check if') and resource ('specific text exists anywhere on the current screen'), making the purpose explicit. It distinguishes from siblings like 'find-by-text' or 'get-element-text' by focusing on existence checking rather than location retrieval or text extraction.

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

Usage Guidelines3/5

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

The description implies usage context ('on the current screen') but doesn't explicitly state when to use this tool versus alternatives like 'element-exists' or 'find-by-text'. No guidance on prerequisites, exclusions, or specific scenarios is provided.

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

hide-keyboardB

Hide the keyboard if it's currently visible

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full behavioral disclosure burden. It states the conditional behavior ('if it's currently visible') but doesn't mention what happens if the keyboard isn't visible (error? no-op?), whether this requires specific device states, or any side effects. For a UI manipulation tool with zero annotation coverage, this is inadequate.

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, efficient sentence that states exactly what the tool does with no wasted words. It's appropriately sized for a simple, parameter-less tool and front-loads the essential 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?

For a simple UI control tool with no parameters and no output schema, the description is minimally adequate. However, with no annotations and behavioral gaps (like not specifying what happens when the keyboard isn't visible), it leaves important context uncovered. The description works for basic understanding but doesn't provide complete operational guidance.

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 0 parameters with 100% schema description coverage, so the schema already fully documents the empty input. The description doesn't need to add parameter information, and it correctly doesn't mention any parameters. Baseline for 0 parameters is 4.

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 ('hide') and target ('keyboard') with a conditional ('if it's currently visible'), providing specific verb+resource. It doesn't explicitly distinguish from sibling tools, but given the unique nature of keyboard hiding among many UI/device control tools, the purpose is sufficiently clear.

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

Usage Guidelines3/5

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

The description implies usage when the keyboard is visible, but doesn't provide explicit when-not scenarios or alternatives. Among siblings like 'send-keys' or 'tap-element' that might involve keyboard interaction, there's no guidance on when to choose this tool over others or prerequisites for its use.

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

initialize-appiumC

Initialize an Appium driver session for mobile automation

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNameYesThe mobile platform to automate
deviceNameYesThe name of the device to target
udidNoDevice unique identifier (required for real devices)
appNoPath to the app to install (optional)
appPackageNoApp package name (Android)
appActivityNoApp activity name to launch (Android)
bundleIdNoBundle identifier (iOS)
automationNameNoAutomation engine to use
noResetNoPreserve app state between sessions
fullResetNoPerform a full reset (uninstall app before starting)
appiumUrlNoURL of the Appium server
screenshotDirNoDirectory to save screenshots

TDQS

C2.9/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 of behavioral disclosure. It states the tool initializes a session but omits critical details such as whether this is a one-time setup, if it requires specific permissions or server availability, potential side effects (e.g., app installation), or error handling. This is inadequate for a tool with 12 parameters and no output schema.

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

Conciseness5/5

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

The description is a single, clear sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and efficiently communicates the core function, making it highly concise and well-structured.

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

Completeness2/5

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

Given the complexity (12 parameters, no annotations, no output schema) and the critical nature of session initialization in mobile automation, the description is insufficient. It lacks details on behavioral traits, usage context, return values, or error scenarios, leaving significant gaps for an AI agent to understand how to invoke it correctly.

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

Parameters3/5

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

The input schema has 100% description coverage, with each parameter well-documented (e.g., 'platformName' with enum values, 'udid' as required for real devices). The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline for high schema coverage without compensating 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 action ('Initialize') and resource ('Appium driver session for mobile automation'), making the purpose evident. However, it does not explicitly differentiate this tool from its many siblings, such as 'close-appium' or 'launch-appium-app', which might involve related session management, so it falls short of a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, prerequisites, or context for invocation. Given the extensive list of sibling tools, including session-related ones like 'close-appium', this lack of usage direction is a significant gap.

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

inspect-and-actC

Inspect UI to identify element locators and then perform an action

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform on the element
elementIdentifierNoText, partial resource-id, or other identifier to search for
textNoText to input if action is sendKeys
longPressMsNoDuration in ms if action is longPress
timeoutMsNoTimeout in milliseconds (default: 10000)
strategyNoInitial strategy to try if provided: id, accessibility id, xpath
refreshSourceNoWhether to refresh page source before inspection
saveLocatorsNoWhether to save found locators for future reference

TDQS

C2.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 the full burden of behavioral disclosure. It mentions inspecting UI and performing actions but fails to describe critical behaviors like error handling, performance implications, or what happens if elements are not found. For a tool with 8 parameters and no annotations, this is a significant gap in transparency.

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 a single, concise sentence that efficiently states the tool's purpose. It is front-loaded and wastes no words, though it could benefit from more detail given the tool's complexity. The structure is clear but minimal.

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 (8 parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavioral traits, return values, error cases, and how it integrates with sibling tools. For a multi-step tool involving UI inspection and actions, more context is needed to guide effective use.

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

Parameters3/5

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

The schema description coverage is 100%, meaning all parameters are documented in the input schema. The description does not add any additional meaning or context beyond what the schema provides, such as explaining parameter interactions or usage examples. With high schema coverage, the baseline score of 3 is appropriate as the description adds no extra value.

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

Purpose3/5

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

The description states the tool's purpose as inspecting UI to identify element locators and then performing an action, which is clear but vague. It specifies the general function but lacks specificity about what types of actions or how it distinguishes from similar sibling tools like 'inspect-and-tap' or 'perform-element-action'. The description is not tautological but could be more precise.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It mentions 'inspect UI' and 'perform an action' but does not specify scenarios, prerequisites, or exclusions compared to sibling tools such as 'inspect-element' or 'tap-element'. This leaves the agent without clear usage context.

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

inspect-and-tapC

Inspect an element using one locator, then tap using the best available locator

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesBase selector to find the element (e.g., text content)
strategyNoInitial strategy to locate element: xpath, id, accessibility id, text (default: xpath)
preferredOrderNoPreferred order of locator strategies to try (e.g., ['id', 'accessibilityId', 'xpath'])

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral disclosure. It mentions 'best available locator' which suggests some intelligent selection logic, but doesn't explain what makes a locator 'best', error handling, whether it retries failed locators, or what happens if the element isn't found. For a tool with potential complexity, 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 a single, efficient sentence that communicates the core functionality without waste. It's appropriately sized for what it does convey, though it could benefit from additional context about when and how to use it.

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?

For a tool that combines inspection and action with potential complexity (selecting 'best available locator'), the description is inadequate. No annotations exist, no output schema is provided, and the description doesn't explain what happens after tapping, error conditions, or performance characteristics. Given the rich sibling tool ecosystem, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain how 'selector' and 'strategy' interact, or how 'preferredOrder' influences the 'best available locator' logic. Baseline 3 is appropriate when schema does the heavy lifting.

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 ('inspect an element' then 'tap') and specifies the resource ('using one locator' and 'best available locator'). It distinguishes from simpler tools like 'tap-element' by combining inspection and tapping, but doesn't explicitly differentiate from 'inspect-and-act' which might have similar functionality.

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 'tap-element', 'smart-tap', or 'inspect-and-act'. The description implies it's for tapping after inspection, but doesn't specify scenarios where this combined approach is preferred over separate inspection and tapping steps.

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

inspect-elementC

Get detailed information about an element (for debugging)

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesElement selector (e.g., xpath, id)
strategyNoSelector strategy: xpath, id, accessibility id, class name (default: xpath)

TDQS

C2.9/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 mentions 'detailed information' and debugging purpose but fails to disclose critical behaviors: what information is returned, format, permissions needed, side effects, or error handling. This leaves significant gaps for a tool with potential complexity.

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?

Single sentence, zero waste, front-loaded with core purpose. Every word earns its place without redundancy or fluff, making it efficient for quick comprehension.

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 no annotations and no output schema, the description is incomplete. It lacks details on return values, error cases, or behavioral nuances needed for effective debugging. For a tool with potential complexity in mobile/app testing context, this is insufficient.

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

Parameters3/5

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

Schema description coverage is 100%, providing clear documentation for both parameters. The description adds no additional parameter semantics beyond implying element inspection, which the schema already covers. Baseline 3 is appropriate as the schema does the heavy lifting.

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 ('Get') and resource ('detailed information about an element'), specifying it's for debugging. It distinguishes from siblings like 'get-element-attributes' or 'get-element-text' by emphasizing debugging focus, though not explicitly naming alternatives.

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

Usage 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 similar siblings (e.g., 'get-element-attributes', 'get-element-tree'), no prerequisites, and no explicit exclusions. The debugging hint implies a specific context but lacks actionable alternatives or constraints.

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

install-appC

Install an Android application APK

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe device ID to install the app on
apkPathYesThe local path to the APK file

TDQS

C2.9/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 of behavioral disclosure. While 'Install' implies a write/mutation operation, the description doesn't mention permission requirements, whether the installation is reversible, potential side effects, or what happens if installation fails. For a tool that modifies device state, this is a significant gap in 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 at just 5 words, front-loading the essential information with zero wasted words. Every word earns its place by specifying the action, target, and platform. The structure is optimal for quick comprehension.

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?

For a tool that performs device modification (installing applications) with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after installation, whether verification occurs, what errors might be returned, or how to handle installation failures. Given the complexity of device operations and the lack of structured metadata, the description should provide more complete context.

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

Parameters3/5

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

With 100% schema description coverage, both parameters are already documented in the schema. The description doesn't add any additional semantic context about the parameters beyond what's in the schema descriptions. It doesn't explain APK file format requirements, device connectivity prerequisites, or installation behavior details. The baseline of 3 is appropriate given the schema does the parameter documentation work.

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 ('Install') and resource ('Android application APK'), making the purpose immediately understandable. It doesn't specifically differentiate from sibling tools like 'xcode_install_app' or 'uninstall-app', but the Android focus provides some distinction. The description avoids tautology by specifying what's being installed.

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. With sibling tools like 'xcode_install_app' (for iOS) and 'uninstall-app' (for removal), there's no indication of when this Android-specific installation tool is appropriate versus other installation methods. No prerequisites or contextual usage information is provided.

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

is-device-lockedA

Check if the device is currently locked

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 carries full burden. It states the tool's function but lacks behavioral details: it doesn't specify what 'locked' means (screen lock, authentication lock), whether this requires device permissions, potential errors (e.g., if device is unreachable), or the return format (boolean, status object).

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, efficient sentence that front-loads the core purpose without unnecessary words. Every word earns its place, making it easy to parse quickly.

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 (0 parameters, no output schema, no annotations), the description is minimally adequate. However, it lacks context about the return value (e.g., boolean vs. detailed status) and behavioral nuances, which could be important for integration. It's complete enough for basic understanding 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?

The tool has 0 parameters with 100% schema description coverage. The description doesn't need to explain parameters, and it correctly implies no inputs are required. A baseline of 4 is appropriate since there are no parameters to document.

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

Purpose5/5

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

The description 'Check if the device is currently locked' clearly states the action (check) and resource (device lock status). It distinguishes from siblings like 'lock-device' and 'unlock-device' by focusing on status inquiry rather than state modification.

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. While the purpose is clear, there's no mention of prerequisites (e.g., device connectivity), timing considerations, or related tools like 'get-device-time' or 'list-devices' that might provide context.

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

launch-appC

Launch an app on an Android device

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe device ID to launch the app on
packageNameYesThe package name of the app to launch
activityNameNoOptional activity name to launch

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Launch an app' implies an action that changes device state, it doesn't specify what happens (e.g., does it bring app to foreground, does it require specific permissions, what errors might occur). The description lacks details about side effects, error conditions, or expected outcomes.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It's appropriately sized for a straightforward tool and gets directly to the point without unnecessary elaboration.

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?

For a tool that performs device operations with 3 parameters and no annotations or output schema, the description is insufficient. It doesn't explain what 'launch' entails operationally, what happens on success/failure, or how it differs from similar sibling tools. The context demands more behavioral and usage information.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter information beyond what's in the schema (deviceId, packageName, activityName). This meets the baseline expectation when schema coverage is complete.

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 ('Launch') and target ('an app on an Android device'), providing a specific verb+resource combination. However, it doesn't distinguish itself from sibling tools like 'launch-appium-app' or 'xcode_launch_app', which appear to serve similar purposes on different platforms or contexts.

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 'launch-appium-app' or 'xcode_launch_app' from the sibling list. It also doesn't mention prerequisites (e.g., device must be connected, app must be installed) or usage constraints.

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

launch-appium-appB

Launch the app associated with the current Appium session

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 of behavioral disclosure. It states the action ('Launch') but doesn't explain what happens during launch (e.g., app state, permissions, errors), whether it requires an active session, or any side effects. This is inadequate for a tool with potential operational dependencies.

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

Conciseness5/5

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

The description is a single, clear sentence that directly states the tool's function without unnecessary words. It's front-loaded and efficiently conveys the essential information, making it highly concise and well-structured.

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

Completeness3/5

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

Given the tool has 0 parameters, no annotations, and no output schema, the description is minimally adequate but lacks depth. It explains what the tool does but doesn't cover behavioral aspects like session requirements or error handling, which are important for a launch operation in a testing context. It meets the bare minimum for such a simple tool.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the inputs. The description doesn't need to add parameter details, and it appropriately doesn't mention any, earning a baseline score near the top of the scale for this dimension.

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 ('Launch') and the target ('the app associated with the current Appium session'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'launch-app' or 'xcode_launch_app', which appear to serve similar functions in different contexts, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'launch-app' or 'xcode_launch_app' from the sibling list. It mentions 'current Appium session' but doesn't clarify prerequisites or exclusions, leaving usage context implied rather than explicit.

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

list-devicesB

List all connected Android devices

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 of behavioral disclosure. It states the action but doesn't describe what 'list' entails (e.g., format of returned data, whether it includes offline devices, or if it requires specific permissions). For a tool with zero annotation coverage, this is a significant gap in 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 a single, efficient sentence with no wasted words. It's appropriately sized for a simple tool and front-loads the core action, making it easy to parse quickly.

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 (0 parameters, no output schema), the description is minimally adequate but lacks depth. It doesn't explain the return format or behavioral nuances, which could be important for an agent to use it correctly. With no annotations and no output schema, 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?

The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and a baseline of 4 is appropriate as it doesn't mislead or omit necessary details about inputs.

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 resource ('all connected Android devices'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'list-ios-simulators' or 'list-installed-packages', which would require a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'list-ios-simulators' or 'get-device-time'. It lacks context about prerequisites (e.g., whether Appium must be initialized) or exclusions, leaving the agent to infer usage 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.

list-installed-packagesB

List all installed packages on an Android device

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe device ID to list packages from

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 states a read operation ('List'), implying non-destructive behavior, but lacks details on permissions needed, output format (e.g., list structure, package details), error conditions, or whether it requires an active device session. This leaves 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?

The description is a single, direct sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse.

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

Completeness3/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 (single parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks behavioral context (e.g., output details, error handling) and usage guidance, leaving room for improvement despite the simple schema.

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

Parameters3/5

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

Schema description coverage is 100%, with the single parameter 'deviceId' fully documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema, so it meets the baseline of 3 without compensating or detracting.

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 resource ('all installed packages on an Android device'), making the purpose unambiguous. However, it doesn't differentiate from potential siblings like 'list-devices' or 'xcode_list_installed_apps', which would require explicit comparison to achieve a 5.

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

Usage 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. While the description specifies 'Android device', it doesn't mention prerequisites (e.g., device connectivity), exclusions (e.g., iOS devices), or related tools like 'list-devices' for device selection.

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

list-ios-simulatorsB

Get list of available iOS simulators

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe how it behaves—such as whether it returns a structured list, what format the output is in, if it requires specific conditions (e.g., Xcode installed), or potential errors. This leaves significant gaps for an agent to understand execution.

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, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by conveying essential information.

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 complexity of iOS simulator tools and the lack of annotations or output schema, the description is incomplete. It doesn't explain what 'available' means (e.g., booted, installed), the return format, or how this integrates with other tools like 'xcode_get_ios_simulators'. For a tool in a rich ecosystem, more context is needed.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, but it also doesn't mention the lack of parameters, which could be slightly helpful. Baseline is 4 for zero 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?

The description clearly states the verb ('Get') and resource ('list of available iOS simulators'), making the purpose immediately understandable. It distinguishes itself from most siblings by focusing on listing simulators rather than interacting with them, though it doesn't explicitly differentiate from 'xcode_get_ios_simulators' which appears to serve a similar function.

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 'xcode_get_ios_simulators' or 'list-devices'. The description implies usage for retrieving simulator information but offers no context about prerequisites, timing, or complementary tools.

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

lock-deviceC

Lock the device screen

ParametersJSON Schema
NameRequiredDescriptionDefault
durationSecNoDuration in seconds to lock the device for

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like: whether this requires device permissions, if it's reversible only via 'unlock-device', potential side effects (e.g., interrupting current activities), or what happens when durationSec expires. For a mutation tool with zero annotation coverage, this is inadequate.

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 perfectly concise at 4 words, front-loaded with the core action. Every word earns its place with zero waste or redundancy.

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?

For a device mutation tool with no annotations and no output schema, the description is incomplete. It should explain what 'locking' means in this context (just screen? full device?), what happens after locking, how to verify success, and relationship to sibling tools like 'is-device-locked' and 'unlock-device'.

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

Parameters3/5

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

Schema description coverage is 100% (durationSec clearly documented), so the baseline is 3. The description doesn't add any parameter semantics beyond what's in the schema - it doesn't explain default behavior if durationSec is omitted, valid ranges, or units clarification beyond 'seconds'.

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 'Lock the device screen' clearly states the action (lock) and target (device screen) with a specific verb+resource. However, it doesn't distinguish from sibling 'unlock-device' or clarify if this is physical device locking versus screen timeout locking, which would be needed for a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'unlock-device' or other device control tools. There's no mention of prerequisites (e.g., device must be unlocked first) or typical use cases (security, testing scenarios).

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

long-pressC

Perform a long press gesture on an element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesElement selector (e.g., xpath, id)
durationNoDuration of the long press in milliseconds (default: 1000)
strategyNoSelector strategy: xpath, id, accessibility id, class name (default: xpath)

TDQS

C2.9/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 mentions a 'long press gesture' but doesn't disclose behavioral aspects like whether this requires an active app session, what happens if the element isn't found, or if it triggers UI changes. This is inadequate for a mutation tool with zero annotation coverage.

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, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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?

For a tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It lacks details on behavior, error handling, or return values, leaving significant gaps in understanding how to use it effectively in context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all parameters (selector, duration, strategy). The description adds no additional meaning beyond what's in the schema, such as examples or edge cases, resulting in the baseline score for high 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 ('Perform a long press gesture') and target ('on an element'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'tap-element' or 'smart-tap' that involve similar touch interactions, preventing a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'tap-element' or 'swipe'. The description only states what it does without context about appropriate scenarios or prerequisites, leaving the agent to infer usage.

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

open-notificationsB

Open the notifications panel (Android only)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action but doesn't describe what 'Open' entails operationally - whether this triggers a system UI change, requires specific permissions, has side effects on app state, or what happens if notifications are already open. For a UI interaction tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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 perfectly concise - a single sentence that communicates the essential information without any wasted words. It's front-loaded with the core action and includes the platform limitation efficiently. Every word earns its place in this minimal but complete phrasing.

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 zero-parameter tool with no output schema, the description provides the basic purpose and platform constraint. However, as a UI interaction tool with no annotations, it should ideally mention what constitutes success/failure or any observable effects. The description is minimally adequate but lacks operational context that would help an agent understand what 'success' looks like for this 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?

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the empty parameter set. The description appropriately doesn't add parameter information beyond what the schema provides. Baseline for 0 parameters with full coverage is 4, as there's no need for parameter semantics in the description.

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 ('Open') and target ('notifications panel'), making the purpose immediately understandable. It distinguishes from siblings by specifying 'Android only', which is useful context. However, it doesn't explicitly differentiate from similar UI interaction tools like 'tap-element' or 'inspect-and-tap' that might also open panels.

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 'Android only' limitation provides some contextual guidance about when this tool is applicable versus iOS-specific tools. However, it doesn't offer explicit alternatives for iOS scenarios or explain when to use this versus other notification-related tools (none appear in the sibling list). The guidance is implied rather than comprehensive.

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

perform-element-actionC

Perform a specific action on an element using various locator strategies

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe action to perform on the element
locatorTypeYesThe type of locator to use
locatorValueYesThe value of the locator
actionParamsNoAdditional parameters for the action (e.g., text for sendKeys)
timeoutMsNoTimeout in milliseconds (default: 10000)

TDQS

C2.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 the full burden. It mentions 'perform a specific action' but doesn't disclose behavioral traits such as error handling, side effects (e.g., UI changes), performance implications, or response format. For a tool with multiple actions and parameters, this lack of detail is a significant gap, though it doesn't contradict 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.

Conciseness4/5

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

The description is a single, efficient sentence that states the core function without waste. It is appropriately sized and front-loaded, but could benefit from more detail given the tool's complexity. No redundant information is present, making it concise yet under-specified.

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 (5 parameters, no output schema, no annotations), the description is incomplete. It lacks details on return values, error cases, and practical usage examples. With rich input schema but no behavioral context, the description doesn't provide enough information for effective tool invocation in a UI automation context.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for all parameters, including enums for 'action' and 'locatorType'. The description adds no additional meaning beyond the schema, as it doesn't explain parameter interactions or provide examples. With high schema coverage, the baseline is 3, but the description fails to compensate with any extra insights.

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

Purpose3/5

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

The description states the tool performs actions on elements using locator strategies, which is a vague purpose. It mentions 'specific action' without detailing what actions are available, and while it distinguishes from some siblings like 'clear-element' or 'tap-element' by being more generic, it doesn't clearly differentiate from others like 'inspect-and-act' or 'perform-touch-id'. The verb 'perform' is generic, and 'element' is broad without specifying UI 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?

No explicit guidance on when to use this tool versus alternatives is provided. The description implies usage for element interactions but doesn't specify scenarios, prerequisites, or exclusions. With many sibling tools for similar actions (e.g., 'tap-element', 'send-keys', 'swipe'), the lack of differentiation leaves the agent without clear decision criteria.

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

perform-touch-idC

Simulate Touch ID fingerprint (iOS only)

ParametersJSON Schema
NameRequiredDescriptionDefault
matchYesWhether the fingerprint should match (true) or not match (false)

TDQS

C2.9/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 of behavioral disclosure. It mentions simulation and iOS-only, but fails to describe critical traits: whether this triggers system-level authentication dialogs, if it requires specific app permissions, what happens on match vs. mismatch (beyond the parameter), or any side effects like app state changes. For a security-related tool, this is a significant 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 extremely concise—a single, front-loaded sentence with zero wasted words. It directly states the core functionality and constraint without any fluff, making it efficient for quick comprehension.

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 complexity of simulating a biometric feature with security implications, no annotations, and no output schema, the description is incomplete. It misses behavioral details, error conditions, return values, and integration context, leaving the agent under-informed for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, with the single parameter 'match' fully documented in the schema. The description adds no additional parameter semantics beyond implying fingerprint simulation, which the schema already covers. Baseline 3 is appropriate as the schema does the heavy lifting, but no extra value is added.

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 ('Simulate Touch ID fingerprint') and specifies the platform constraint ('iOS only'), which distinguishes it from generic biometric tools. However, it doesn't explicitly differentiate from sibling tools like 'unlock-device' or 'lock-device' that might involve device security, leaving some ambiguity about its unique role in the toolset.

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. The description lacks context about prerequisites (e.g., requiring an iOS device or simulator setup), typical use cases (e.g., testing authentication flows), or exclusions (e.g., not for Android). This leaves the agent to infer usage 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.

perform-w3c-gestureB

Perform touch gestures using the W3C Actions API (more reliable than TouchAction API)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionTypeYesThe type of gesture to perform
startXYesStarting X coordinate
startYYesStarting Y coordinate
endXNoEnding X coordinate (for swipe/dragAndDrop)
endYNoEnding Y coordinate (for swipe/dragAndDrop)
durationNoDuration of the gesture in milliseconds (default: 750)
secondPointStartXNoStarting X coordinate for second finger (pinch gestures only)
secondPointStartYNoStarting Y coordinate for second finger (pinch gestures only)
secondPointEndXNoEnding X coordinate for second finger (pinch gestures only)
secondPointEndYNoEnding Y coordinate for second finger (pinch gestures only)

TDQS

B3.2/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 of behavioral disclosure. While it mentions reliability compared to TouchAction API, it doesn't describe what the tool actually does behaviorally (e.g., whether it performs gestures on a specific element or screen coordinates, error handling, or what happens after execution). For a tool with 10 parameters and no annotations, this is a significant gap in 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—a single sentence that efficiently communicates the core purpose and key advantage. It's front-loaded with the main action and includes no unnecessary details, making it easy to parse quickly.

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 (10 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns, how gestures are executed (e.g., on what context or element), error conditions, or dependencies. For a gesture-performing tool with many parameters, more context is needed to guide effective use.

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

Parameters3/5

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

Schema description coverage is 100%, meaning all parameters are documented in the input schema. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain coordinate systems, default values beyond duration, or gesture specifics). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.

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's purpose: 'Perform touch gestures using the W3C Actions API.' It specifies the action type (touch gestures) and the implementation method (W3C Actions API). However, it doesn't explicitly differentiate from sibling tools like 'swipe', 'long-press', or 'tap-element', which appear to be similar gesture tools.

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

Usage Guidelines3/5

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

The description provides some usage guidance by mentioning that the W3C Actions API is 'more reliable than TouchAction API,' which implies this tool should be preferred over alternatives using the older API. However, it doesn't explicitly state when to use this tool versus specific sibling tools like 'swipe' or 'tap-element', nor does it mention any prerequisites or exclusions.

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

press-key-codeC

Press an Android key code

ParametersJSON Schema
NameRequiredDescriptionDefault
keycodeYesAndroid keycode to press

TDQS

C2.9/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 but only states the action without behavioral details. It doesn't disclose effects (e.g., if it simulates a physical key press, requires device state, or has side effects), rate limits, or error conditions, leaving significant 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?

The description is a single, efficient sentence with no wasted words, making it front-loaded and easy to parse. It directly conveys the core action without unnecessary elaboration.

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 no annotations and no output schema, the description is insufficient for a tool that performs an action on a device. It lacks details on behavior, results, or error handling, making it incomplete for safe and effective use by 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?

The input schema has 100% description coverage, with 'keycode' clearly documented. The description doesn't add extra meaning beyond the schema, such as examples or constraints, so it meets the baseline for high schema coverage without enhancing parameter understanding.

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 ('press') and target ('Android key code'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'send-key-event' or 'send-keys-to-device', which may have overlapping functionality, so it misses full sibling distinction.

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 'send-key-event' or other input-related siblings. The description lacks context, prerequisites, or exclusions, leaving usage unclear.

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

pull-fileC

Pull a file from the device

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file on the device

TDQS

C2.9/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 of behavioral disclosure. It mentions 'pull a file' but doesn't specify what happens (e.g., copies to local storage, returns file content, requires device access), potential side effects (e.g., file locks), or error conditions (e.g., missing file permissions). This leaves significant gaps for a tool that interacts with device files.

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, efficient sentence with no wasted words. It's front-loaded with the core action ('pull a file'), making it easy to scan and understand quickly.

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?

For a tool that interacts with device files (a potentially complex operation), the description is insufficient. With no annotations, no output schema (so return values are undocumented), and minimal behavioral context, it fails to provide enough information for safe and effective use, especially given the many sibling tools in this server.

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

Parameters3/5

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

The input schema has 100% description coverage, with the 'path' parameter clearly documented as 'Path to the file on the device'. The description doesn't add any extra meaning beyond this, such as path format examples or constraints, but the schema provides adequate baseline information.

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 ('pull') and resource ('a file from the device'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'push-file', which handles the opposite operation, nor does it specify what 'pull' means in this context (e.g., copy, download, or retrieve).

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. Given the sibling list includes 'push-file' (for sending files to the device) and other file-related tools like 'xcode_copy_to_simulator', there's no indication of prerequisites, context (e.g., device connectivity), or comparisons to similar tools.

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

push-fileC

Push a file to the device

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath on the device to write the file
dataYesBase64-encoded file content

TDQS

C2.9/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. 'Push' implies a write operation, but it doesn't disclose behavioral traits like whether this overwrites existing files, requires specific permissions, has side effects, or handles errors. For a file-write tool with zero annotation coverage, this is a significant gap in 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 a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly without unnecessary elaboration.

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 complexity of a file-write operation to a device, no annotations, and no output schema, the description is incomplete. It lacks crucial context like success/failure behavior, file system interactions, or compatibility with sibling tools, making it inadequate for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, with clear documentation for both parameters ('path' and 'data'). The description doesn't add any meaning beyond what the schema provides (e.g., it doesn't explain path format constraints or data encoding details), so it meets the baseline for high 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 ('push') and target resource ('a file to the device'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'pull-file' or 'xcode_copy_to_simulator' that might handle similar file operations, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools for device operations (e.g., 'pull-file', 'xcode_copy_to_simulator'), there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on 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.

reset-appB

Reset the app (terminate and relaunch) associated with the current Appium session

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 of behavioral disclosure. It mentions 'terminate and relaunch,' implying a destructive mutation, but does not specify side effects (e.g., loss of app state, session persistence), permissions required, or error conditions. This leaves significant gaps for a tool that alters app state.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core action ('Reset the app') and efficiently elaborates with 'terminate and relaunch' in parentheses. There is no wasted verbiage, making it highly concise and easy to parse.

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 (a mutation operation with potential side effects), lack of annotations, and no output schema, the description is insufficient. It fails to explain behavioral traits like state loss, error handling, or what 'reset' entails beyond the basic action, leaving the agent under-informed for safe invocation.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing solely on the tool's action. A baseline of 4 is applied as it efficiently handles the lack of parameters without redundancy.

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 ('Reset the app') and specifies the resource ('associated with the current Appium session'), with the parenthetical 'terminate and relaunch' providing additional clarity on what 'reset' entails. However, it does not explicitly differentiate from sibling tools like 'close-app' or 'launch-app', which handle similar app lifecycle operations, leaving some ambiguity.

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 'close-app' or 'launch-app' for partial app lifecycle management, or 'xcode_terminate_app' for simulator-specific contexts. It lacks explicit when/when-not instructions or prerequisite conditions, offering only a basic functional statement.

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

save-ui-hierarchyC

Save UI hierarchy XML to a file

ParametersJSON Schema
NameRequiredDescriptionDefault
xmlSourceYesXML source to save
filePathYesPath to save the XML file

TDQS

C2.9/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 'Save' which implies a write operation, but doesn't disclose behavioral traits like file system permissions needed, whether it overwrites existing files, error handling, or what happens on success/failure. For a file-writing tool with zero annotation coverage, this is a significant gap in 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 a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it immediately understandable. Every word earns its place without unnecessary elaboration.

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 no annotations, no output schema, and a mutation tool (file writing), the description is incomplete. It doesn't explain what happens after saving (e.g., success confirmation, error messages), file format details, or integration with other tools in the ecosystem. For a tool that modifies the file system, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('xmlSource' and 'filePath') clearly documented in the schema. The description doesn't add any meaningful parameter semantics beyond what the schema already provides (e.g., format expectations, path conventions). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('Save') and resource ('UI hierarchy XML'), making the purpose understandable. However, it doesn't differentiate from potential sibling tools like 'save' operations for other data types, though no obvious direct siblings exist in the provided list. The description is specific but lacks sibling distinction 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?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., whether UI hierarchy XML must be obtained first from another tool like 'get-element-tree'), nor does it specify typical use cases or constraints. This leaves the agent without contextual usage information.

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

scroll-screenC

Scroll the screen in a specified direction

ParametersJSON Schema
NameRequiredDescriptionDefault
directionYesDirection to scroll
distanceNoDistance to scroll as a percentage (0.0-1.0, default: 0.5)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions scrolling behavior but doesn't describe what 'scroll' means operationally (e.g., smooth vs. jump, visual feedback, timing), whether it requires specific screen states, or what happens on failure. For a UI interaction tool with zero annotation coverage, 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 a single, efficient sentence that directly states the tool's function without any wasted words. It's appropriately sized for this simple tool and front-loads the essential information.

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?

For a UI interaction tool with no annotations and no output schema, the description is too minimal. It doesn't explain what 'scroll' means in this context, what visual or state changes occur, error conditions, or how it differs from similar tools like 'swipe'. The context signals show this is part of a mobile testing/automation suite where such details matter.

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 description coverage is 100%, with both parameters ('direction' and 'distance') fully documented in the schema. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline of 3 for adequate coverage without adding 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 action ('scroll') and resource ('the screen') with a specific direction specification. It distinguishes from sibling tools like 'swipe' or 'scroll-to-element' by focusing on general screen scrolling rather than targeted actions, though it doesn't explicitly name these alternatives.

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 'swipe' or 'scroll-to-element', nor does it mention any prerequisites or context requirements. It simply states what the tool does without usage context.

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

scroll-to-elementC

Scroll until an element becomes visible

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesElement selector to scroll to (e.g., xpath)
directionNoDirection to scroll (default: down)
strategyNoSelector strategy: xpath, id, accessibility id, class name (default: xpath)
maxScrollsNoMaximum number of scroll attempts (default: 10)

TDQS

C2.9/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 of behavioral disclosure. It mentions scrolling until visibility is achieved, implying iterative attempts, but does not detail critical behaviors such as success/failure conditions, timeouts, error handling, or interaction with the UI state. For a tool with no annotations, this is insufficient to guide safe and effective use.

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 and front-loaded with a single, clear sentence: 'Scroll until an element becomes visible.' It wastes no words and directly communicates the core functionality, making it easy for an agent to parse and understand quickly.

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 complexity of a scrolling tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It lacks information on behavioral outcomes, error cases, and how parameters interact, which is crucial for an agent to invoke the tool correctly in a testing or automation context. The high schema coverage helps, but the description does not compensate for the missing behavioral and output details.

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

Parameters3/5

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

Schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description does not add any semantic details beyond what the schema provides (e.g., it doesn't explain how 'selector' interacts with 'strategy' or what happens if 'maxScrolls' is exceeded). With high schema coverage, the baseline score of 3 is appropriate, as the description adds no extra value but doesn't detract either.

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's purpose: 'Scroll until an element becomes visible.' It specifies the action (scroll) and the goal (make an element visible), which is specific and actionable. However, it does not explicitly differentiate from sibling tools like 'scroll-screen' or 'wait-for-element,' which might have overlapping functionality, so it falls short of a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios where scrolling is necessary, prerequisites like element existence, or comparisons to siblings such as 'scroll-screen' (which might scroll without targeting an element) or 'wait-for-element' (which might wait without scrolling). This lack of context leaves the agent without clear usage instructions.

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

send-key-eventC

Send a key event to the device (e.g., HOME, BACK)

ParametersJSON Schema
NameRequiredDescriptionDefault
keyEventYesKey event name or code

TDQS

C2.9/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 of behavioral disclosure. It mentions sending a key event but fails to describe critical traits like required device state (e.g., unlocked, app open), permissions, side effects (e.g., navigation changes), or error conditions. This leaves significant gaps for an agent to understand the tool's 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 a single, efficient sentence that directly states the tool's purpose with relevant examples. It is front-loaded and wastes no words, making it easy to parse quickly.

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?

For a tool with no annotations, no output schema, and a single parameter, the description is incomplete. It lacks details on behavioral traits, return values, error handling, and differentiation from siblings, making it inadequate for an agent to fully understand the tool's context and usage.

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

Parameters3/5

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

Schema description coverage is 100%, with the parameter 'keyEvent' documented as 'Key event name or code'. The description adds minimal value by providing examples (HOME, BACK), which slightly clarify semantics but don't go beyond what the schema already states. This meets the baseline for high 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 verb ('send') and resource ('key event to the device'), with examples like HOME and BACK that help specify the action. However, it doesn't explicitly differentiate from sibling tools like 'press-key-code' or 'send-keys', which might have overlapping functionality, preventing a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'press-key-code' or 'send-keys-to-device' from the sibling list. It lacks context about prerequisites, device states, or specific scenarios, offering only a basic example without usage boundaries.

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

send-keysC

Send text input to a UI element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesElement selector (e.g., xpath, id)
textYesText to input
strategyNoSelector strategy: xpath, id, accessibility id, class name (default: xpath)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral context. It mentions 'send text input' which implies a write operation, but doesn't disclose whether this requires specific element states (focusable, visible), what happens if the element doesn't exist, whether it clears existing text first, or any error conditions. For a mutation tool with zero annotation coverage, this is inadequate.

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, efficient sentence with zero wasted words. It's appropriately sized for a tool with three parameters and gets straight to the point without unnecessary elaboration.

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?

For a UI automation tool that performs text input (a mutation operation), the description is insufficient. With no annotations, no output schema, and minimal behavioral context, it doesn't provide enough information for safe and effective use. The agent won't know what happens on success/failure, what permissions are needed, or how this differs from similar sibling tools.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any meaningful parameter semantics beyond what's already in the schema (selector types, text content, strategy options). It doesn't explain relationships between parameters or provide examples of valid selector formats.

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 text input') and target ('to a UI element'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'send-keys-by-ios-class-chain' or 'send-keys-to-device', which appear to be similar text-input tools with different targeting methods.

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 about when to use this tool versus alternatives like 'send-keys-by-ios-class-chain' or 'send-keys-to-device'. The description doesn't mention prerequisites (e.g., whether an element must be focused or visible) or context about when text input is appropriate versus other interaction methods.

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

send-keys-by-ios-class-chainC

Send text to an element using iOS class chain (iOS only)

ParametersJSON Schema
NameRequiredDescriptionDefault
classChainYesiOS class chain (e.g., '**/XCUIElementTypeTextField')
textYesText to input
timeoutMsNoTimeout in milliseconds (default: 10000)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't disclose what happens on failure (e.g., timeout behavior), whether the tool waits for element visibility, if it clears existing text first, or any side effects. 'Send text' implies a write operation, but safety implications are unspecified.

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 single sentence with zero wasted words. Every component ('Send text', 'to an element', 'using iOS class chain', 'iOS only') serves a distinct purpose. The structure is front-loaded with the core action immediately clear.

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?

For a 3-parameter tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens on success/failure, return values, error conditions, or interaction patterns. Given the complexity of mobile automation and multiple sibling alternatives, more context about when and how to use this specific tool is needed.

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

Parameters3/5

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

Schema description coverage is 100%, providing complete parameter documentation. The description adds no additional parameter semantics beyond what's in the schema - it mentions 'iOS class chain' and 'text' but provides no extra context about format, constraints, or usage patterns. Baseline 3 is appropriate when schema does all the work.

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 text') and target ('to an element using iOS class chain'), with platform specificity ('iOS only'). It distinguishes from generic 'send-keys' by specifying the iOS class chain method, but doesn't explicitly differentiate from sibling 'send-keys-by-ios-predicate' which serves a similar purpose with a different locator strategy.

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 minimal guidance - it mentions 'iOS only' which helps exclude non-iOS contexts, but offers no explicit when-to-use advice versus alternatives like 'send-keys-by-ios-predicate' or regular 'send-keys'. No prerequisites, error conditions, or performance considerations are mentioned.

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

send-keys-by-ios-predicateB

Send text to an element using iOS predicate string (iOS only)

ParametersJSON Schema
NameRequiredDescriptionDefault
predicateStringYesiOS predicate string (e.g., 'type == "XCUIElementTypeTextField"')
textYesText to input
timeoutMsNoTimeout in milliseconds (default: 10000)

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Send text') which implies a write operation, but doesn't describe what happens on failure (e.g., if element not found), whether it waits for element visibility, how it handles existing text, or error conditions. The timeout parameter suggests some waiting behavior, but this isn't explained in the description itself.

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, efficient sentence that communicates the core purpose, method, and platform constraint without any wasted words. It's appropriately sized for a focused tool and front-loads the essential 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?

For a 3-parameter tool with no annotations and no output schema, the description provides basic purpose and platform context but lacks behavioral details about how the operation works, what it returns, or error handling. Given the complexity of mobile automation and the presence of many sibling tools, more context about when and how to use this specific tool would be beneficial.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter information beyond what's in the schema (predicateString, text, timeoutMs). The baseline score of 3 is appropriate when the schema does the heavy lifting for parameter documentation.

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 text') and target ('to an element'), and specifies the platform constraint ('iOS only'). It distinguishes from generic 'send-keys' by mentioning the iOS predicate string method, but doesn't explicitly differentiate from sibling 'send-keys-by-ios-class-chain' which serves a similar purpose with a different locator strategy.

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

Usage Guidelines3/5

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

The description implies usage context through 'iOS only' and 'using iOS predicate string', suggesting it's for iOS automation with predicate-based element location. However, it doesn't provide explicit guidance on when to choose this over alternatives like 'send-keys-by-ios-class-chain' or regular 'send-keys', nor does it mention prerequisites like needing an active Appium session or iOS device/simulator.

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

send-keys-to-deviceC

Send keys directly to the device without focusing on any element

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to send

TDQS

C2.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 mentions 'without focusing on any element', which hints at a behavioral trait (bypassing UI focus), but doesn't disclose critical details like whether this requires device unlock, what happens if the device is locked, whether it's safe for automation, or if there are rate limits. For a tool that sends input to a device with zero annotation coverage, 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 a single, efficient sentence with zero waste. It's front-loaded with the core action and includes a key behavioral note ('without focusing on any element'). Every word earns its place, making it appropriately sized for a simple tool.

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 complexity (device interaction tool with potential side effects), no annotations, no output schema, and minimal description, this is incomplete. The description doesn't cover what the tool returns, error conditions, or important behavioral constraints. For a tool that could affect device state, more context is needed to use it safely and effectively.

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 description coverage is 100% with one parameter ('text'), and the description doesn't add any parameter-specific information beyond what's in the schema. The baseline is 3 when the schema does the heavy lifting, but the description could have clarified what 'text' means in this context (e.g., raw keyboard input vs. commands).

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

Purpose3/5

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

The description states the tool 'Send keys directly to the device without focusing on any element', which provides a clear verb ('send keys') and resource ('device'), but it's somewhat vague about what 'keys' means (text input vs. keyboard keys) and doesn't distinguish from sibling tools like 'send-keys' or 'send-key-event'. It's not tautological but lacks specificity compared to other device interaction 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?

The description provides minimal guidance: it mentions 'without focusing on any element', which implies this is for raw input rather than element-specific interaction. However, it doesn't explain when to use this versus alternatives like 'send-keys' (which might require element focus) or 'send-key-event' (which might send hardware key codes). No explicit when/when-not rules or prerequisite context is provided.

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

set-orientationC

Set the device orientation

ParametersJSON Schema
NameRequiredDescriptionDefault
orientationYesDesired orientation: PORTRAIT or LANDSCAPE

TDQS

C2.9/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 for behavioral disclosure. While 'Set' implies a mutation operation, the description doesn't disclose whether this requires specific device states, what happens if orientation change fails, whether the change persists, or any side effects. For a mutation tool with zero annotation coverage, this is inadequate.

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 maximally concise with a single clear sentence that states the tool's purpose without any wasted words. It's front-loaded with the essential information and contains no unnecessary elaboration.

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?

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after setting orientation, whether there's confirmation feedback, error conditions, or device compatibility requirements. Given the complexity of device control operations and the rich sibling tool ecosystem, this description leaves too much unspecified.

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

Parameters3/5

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

With 100% schema description coverage, the input schema already fully documents the single parameter 'orientation' with its enum values. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline but doesn't provide extra 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 action ('Set') and target ('device orientation'), providing a specific verb+resource combination. However, it doesn't differentiate from its sibling tool 'get-orientation' (which presumably reads rather than sets orientation), missing the opportunity to clarify this distinction.

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 about when to use this tool versus alternatives. The description doesn't mention prerequisites (like device state), when this operation is appropriate, or what happens if the device doesn't support orientation changes. With many sibling tools available, this lack of contextual guidance is a significant gap.

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

shake-deviceB

Simulate shake gesture (iOS only)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'simulate' implies this is a non-destructive action that mimics user behavior, it doesn't specify whether this requires specific device states, what happens if the device is locked, or any side effects. The iOS-only constraint is helpful but insufficient for a tool with zero annotation coverage.

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 perfectly concise - a single parenthetical phrase that communicates both the core function and the platform limitation. Every word earns its place with zero waste or 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 zero-parameter tool with no output schema, the description provides the essential 'what' and platform constraint. However, given the complex mobile testing context with many sibling tools and no annotations, it should ideally clarify the relationship to 'xcode_shake_device' and provide more behavioral context about when and how to use this simulation.

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 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't waste space discussing parameters that don't exist, earning a baseline score of 4 for parameter-free tools.

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 ('simulate shake gesture') and specifies the platform constraint ('iOS only'), which distinguishes it from generic gesture tools. However, it doesn't explicitly differentiate from the sibling tool 'xcode_shake_device', which appears to serve a similar function in the Xcode simulator 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 provides minimal guidance - it only indicates this is for iOS devices. No information is given about when to use this tool versus alternatives like 'xcode_shake_device' or other gesture tools in the sibling list, nor any prerequisites or context for when shaking simulation is appropriate.

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

smart-tapB

Intelligently tap an element trying different locator strategies in a specific order

ParametersJSON Schema
NameRequiredDescriptionDefault
elementIdentifierYesText, ID, or other identifier for the element
textNoOptional text content to use for XPath fallback
timeoutMsNoTimeout in milliseconds (default: 10000)

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but lacks critical behavioral details. It mentions trying different locator strategies but doesn't specify what those strategies are, the order, error handling, or performance implications. For a tool that interacts with UI elements, this leaves significant gaps in understanding its 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 a single, efficient sentence that conveys the core functionality without unnecessary words. It's appropriately sized and front-loaded with the main action, making it easy to understand at a glance.

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?

For a tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'intelligently' means in practice, what happens on success/failure, or how it differs from simpler tap tools. Given the complexity of UI automation, more context is needed for effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are well-documented in the schema. The description doesn't add any additional meaning about parameters beyond what's in the schema, maintaining the baseline score of 3 for adequate but not enhanced parameter semantics.

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 ('intelligently tap') and target ('an element'), specifying it uses different locator strategies in a specific order. It distinguishes from simpler tap tools like 'tap-element' by emphasizing intelligent fallback strategies, though it doesn't explicitly name alternatives.

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

Usage Guidelines3/5

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

The description implies usage when standard tapping might fail due to locator issues, suggesting it's for robust element interaction. However, it doesn't explicitly state when to use this over alternatives like 'tap-element' or 'inspect-and-tap', nor does it mention prerequisites or exclusions.

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

start-recordingC

Start recording the screen

ParametersJSON Schema
NameRequiredDescriptionDefault
videoTypeNoVideo format type (optional)
timeLimitNoMaximum recording duration in seconds (optional)
videoQualityNoVideo quality: 'low', 'medium', or 'high' (optional)
videoFpsNoFrames per second (optional)

TDQS

C2.9/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. While 'Start recording' implies a write/mutation operation, it doesn't disclose behavioral traits like whether recording begins immediately, what happens if recording is already active, permission requirements, or side effects. This leaves significant gaps for a tool that initiates a potentially resource-intensive process.

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, efficient sentence with zero wasted words. It's appropriately sized for a straightforward tool and front-loads the core functionality without unnecessary elaboration.

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?

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after starting recording (e.g., returns a recording ID, starts immediately in background), error conditions, or interaction with sibling tools like 'stop-recording'. The minimal description leaves too many operational questions unanswered.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 4 optional parameters. The description adds no parameter information beyond what's in the schema, maintaining the baseline score of 3 for adequate but not enhanced parameter semantics.

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 'Start recording the screen' clearly states the action (start recording) and target (the screen), providing a specific verb+resource. However, it doesn't differentiate from sibling tools like 'stop-recording' or 'xcode_record_video' beyond the obvious directional difference.

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 about when to use this tool versus alternatives like 'stop-recording' or 'xcode_record_video', nor about prerequisites (e.g., needing a recording session to be active first). The description offers only basic functional information without contextual usage advice.

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

stop-recordingC

Stop recording the screen and get the recording data

ParametersJSON Schema
NameRequiredDescriptionDefault
outputPathYesFile path to save the recording

TDQS

C2.9/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 of behavioral disclosure. It mentions stopping recording and getting data, but fails to describe key traits like whether this is a destructive operation (likely yes, as it ends recording), error conditions (e.g., if no recording is active), or output format. This leaves significant gaps in understanding the tool's 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 extremely concise—a single sentence with zero wasted words—and front-loaded with the core action and outcome. Every word earns its place, making it easy to parse quickly.

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 complexity of a recording tool with no annotations and no output schema, the description is incomplete. It omits critical context such as prerequisites (e.g., must have an active recording), error handling, return data format, or side effects, leaving the agent with insufficient information for reliable use.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema fully documents the 'outputPath' parameter. The description adds no additional meaning beyond what the schema provides (e.g., file format, constraints), meeting the baseline for high schema coverage without extra 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 action ('stop recording') and the outcome ('get the recording data'), which is specific and actionable. It distinguishes from siblings like 'start-recording' by indicating the termination of a recording process, though it doesn't explicitly contrast with other tools beyond that.

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, prerequisites (e.g., requires a recording to be active), or context. It lacks any mention of dependencies, such as needing to call 'start-recording' first, which is critical for proper usage.

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

swipeC

Perform a swipe gesture on the screen

ParametersJSON Schema
NameRequiredDescriptionDefault
startXYesStarting X coordinate
startYYesStarting Y coordinate
endXYesEnding X coordinate
endYYesEnding Y coordinate
durationNoDuration of the swipe in milliseconds (default: 800)

TDQS

C2.9/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 of behavioral disclosure. It states the action but lacks critical details: it doesn't specify if this requires device interaction permissions, whether it's safe for automation (e.g., potential side effects), or what happens on failure (e.g., if coordinates are invalid). For a gesture tool with zero annotation coverage, this is a significant 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 a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's front-loaded and wastes no words, making it easy to parse quickly.

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 complexity of a gesture tool with no annotations and no output schema, the description is inadequate. It doesn't explain behavioral traits (e.g., error handling, side effects), usage context, or what to expect after invocation, leaving the agent with insufficient information for reliable tool selection and invocation.

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

Parameters3/5

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

The schema description coverage is 100%, with all parameters clearly documented in the input schema (e.g., coordinates and duration). The description adds no additional parameter information beyond what's in the schema, so it meets the baseline of 3 for high schema coverage without compensating 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 action ('perform a swipe gesture') and the target ('on the screen'), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'scroll-screen' or 'perform-w3c-gesture', which might also involve screen gestures, so it doesn't fully distinguish from alternatives.

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 doesn't mention prerequisites (e.g., needing an active appium session), exclusions, or comparisons to similar tools like 'scroll-screen' or 'long-press', leaving the agent to guess based on context alone.

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

switch-contextC

Switch between contexts (e.g., NATIVE_APP, WEBVIEW)

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYesContext to switch to

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the action without behavioral details. It doesn't disclose effects like whether switching is reversible, potential side effects on app state, error conditions, or permissions required, leaving significant gaps for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose with a clarifying example. There is no wasted verbiage, making it appropriately sized for a simple tool.

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?

For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, error handling, or return values, which are crucial for safe and effective use in an automation context.

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

Parameters3/5

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

Schema description coverage is 100% with one parameter ('context') documented as 'Context to switch to'. The description adds minimal value with an example ('e.g., NATIVE_APP, WEBVIEW'), but doesn't provide additional syntax, format, or validation details beyond what the schema implies.

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 ('Switch between') and target ('contexts'), with a helpful example of context types ('e.g., NATIVE_APP, WEBVIEW'). It distinguishes the tool from most siblings by focusing on context switching rather than UI interaction or device control, though it doesn't explicitly differentiate from 'get-current-context' or 'get-contexts'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'get-current-context' or 'get-contexts', or prerequisites such as needing initialized contexts. The description implies usage for switching but lacks explicit conditions or exclusions.

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

take-screenshotC

Take a screenshot on an Android device

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe device ID to take the screenshot from
outputPathYesThe local path to save the screenshot to

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention permissions needed, whether it requires an active device session, potential side effects (e.g., screen changes), or output handling (e.g., file saved locally). This leaves significant gaps for a tool that interacts with hardware.

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, efficient sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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?

For a tool that performs a hardware interaction (taking a screenshot on an Android device) with no annotations and no output schema, the description is incomplete. It lacks details on behavioral context, error handling, or what happens after execution (e.g., success confirmation, file format). Given the complexity and sibling tools, more guidance is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters 'deviceId' and 'outputPath' are fully documented in the schema. The description adds no additional meaning beyond implying the screenshot is saved to a local path, which is already covered. Baseline 3 is appropriate as the schema does the heavy lifting.

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 ('take a screenshot') and target ('on an Android device'), providing specific verb+resource. However, it doesn't differentiate from sibling tools like 'appium-screenshot' or 'xcode_take_screenshot', which appear to serve similar purposes on different platforms or contexts.

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 'appium-screenshot' or 'xcode_take_screenshot' from the sibling list. The description lacks context about prerequisites (e.g., device connectivity) or exclusions, offering minimal usage direction.

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

tap-by-ios-class-chainC

Tap on an element using iOS class chain (iOS only)

ParametersJSON Schema
NameRequiredDescriptionDefault
classChainYesiOS class chain (e.g., '**/XCUIElementTypeButton[`name == "Login"`]')
timeoutMsNoTimeout in milliseconds (default: 10000)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral context. It mentions the action (tap) but doesn't disclose what happens on failure (timeout behavior), whether it waits for element visibility, if it scrolls to find elements, error conditions, or performance characteristics. The description is technically accurate but lacks operational 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 - a single sentence that communicates the core functionality efficiently. Every word earns its place: 'Tap' (action), 'on an element' (target), 'using iOS class chain' (method), and 'iOS only' (platform constraint). No wasted words or redundant information.

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?

For an interactive UI automation tool with no annotations and no output schema, the description is insufficient. It doesn't cover success/failure behavior, error handling, platform version requirements, element state prerequisites, or what constitutes a valid tap. Given the complexity of mobile automation and the many sibling tools with overlapping functionality, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, providing clear documentation for both parameters. The description doesn't add any parameter semantics beyond what's in the schema - it mentions 'iOS class chain' which aligns with the classChain parameter but provides no additional context about format, validation, or usage examples beyond the schema's example.

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 ('Tap on an element') and the method ('using iOS class chain'), with the platform constraint ('iOS only') explicitly mentioned. It distinguishes from general tap tools by specifying the iOS class chain method, though it doesn't explicitly differentiate from its closest sibling 'tap-by-ios-predicate' which uses a different iOS locator strategy.

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 minimal guidance - only that it's for iOS. It doesn't indicate when to use this versus alternatives like 'tap-by-ios-predicate', 'tap-element', or 'smart-tap', nor does it mention prerequisites like needing an active iOS session or element visibility requirements.

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

tap-by-ios-predicateB

Tap on an element using iOS predicate string (iOS only)

ParametersJSON Schema
NameRequiredDescriptionDefault
predicateStringYesiOS predicate string (e.g., 'name == "Login"')
timeoutMsNoTimeout in milliseconds (default: 10000)

TDQS

B3.3/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 the action is a 'tap' but doesn't disclose behavioral traits such as whether it waits for the element to be tappable, handles errors if the element isn't found, or what happens on timeout. The mention of 'timeoutMs' in the schema hints at waiting behavior, but the description doesn't elaborate.

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, efficient sentence with zero waste: it states the action, method, and platform constraint without unnecessary words. It is appropriately sized and front-loaded, making it easy to parse quickly.

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

Completeness3/5

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

Given the tool's moderate complexity (interactive UI action with two parameters), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose and platform but lacks details on behavior, error handling, or output, leaving gaps for an agent to infer usage.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for both parameters ('predicateString' and 'timeoutMs'), including an example for the predicate. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3 for high 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 ('Tap on an element') and the method ('using iOS predicate string'), with the platform constraint '(iOS only)' explicitly mentioned. It distinguishes itself from generic tapping tools by specifying the iOS predicate approach, though it doesn't explicitly differentiate from similar siblings like 'tap-by-ios-class-chain' or 'tap-element'.

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

Usage Guidelines3/5

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

The description implies usage context through '(iOS only)', suggesting this tool is for iOS-specific interactions. However, it provides no explicit guidance on when to use this versus alternatives like 'tap-by-ios-class-chain', 'tap-element', or 'inspect-and-tap', nor does it mention prerequisites or exclusions.

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

tap-elementB

Tap on a UI element identified by a selector

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesElement selector (e.g., xpath, id)
strategyNoSelector strategy: xpath, id, accessibility id, class name (default: xpath)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Tap') but doesn't explain what happens after tapping (e.g., navigation, state change, error if element not found), whether this requires specific permissions or conditions, or any side effects. For a UI interaction tool with zero annotation coverage, this is insufficient behavioral context.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized for a simple action tool and front-loads the essential information. 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?

For a UI interaction tool with 2 parameters, 100% schema coverage, but no annotations or output schema, the description provides minimal but adequate context about what the tool does. However, it lacks important behavioral details (error handling, side effects, prerequisites) that would be needed for reliable agent usage. The description meets minimum viability but has clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('selector' and 'strategy') fully documented in the schema. The description adds no additional parameter semantics beyond what's already in the structured schema. According to scoring rules, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the description.

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 ('Tap on') and target ('a UI element identified by a selector'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling tools like 'tap-element-by-text', 'inspect-and-tap', or 'smart-tap', which appear to serve similar tapping functions with different targeting approaches.

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 'tap-element-by-text' or 'smart-tap'. There's no mention of prerequisites (e.g., needing an active Appium session or visible element), performance considerations, or error conditions. The agent must infer usage 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.

tap-element-by-textC

Tap on an element containing specific text

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText contained in the element to tap

TDQS

C2.9/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 for behavioral disclosure. While 'Tap on' implies a UI interaction, the description doesn't specify what happens if multiple elements contain the text, whether it waits for the element to appear, what error conditions exist, or what the expected outcome is. This leaves significant gaps for an agent to understand the tool's 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 a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple tool and front-loads the essential information immediately.

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?

For a UI interaction tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'tap' means in this context (single click, touch event), what happens on success/failure, whether it returns anything, or how it relates to the many sibling tools. The context signals show a simple parameter structure, but the behavioral aspects are completely undocumented.

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

Parameters3/5

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

The input schema has 100% description coverage, with the single parameter 'text' clearly documented as 'Text contained in the element to tap'. The description adds no additional parameter information beyond what's in the schema, so the baseline score of 3 is appropriate given the schema does the heavy lifting.

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 ('Tap on') and target ('an element containing specific text'), providing a specific verb+resource combination. However, it doesn't differentiate from similar sibling tools like 'tap-element', 'inspect-and-tap', or 'smart-tap', which likely have overlapping functionality but different approaches.

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. With numerous sibling tools for tapping and interacting with elements (e.g., 'tap-element', 'inspect-and-tap', 'smart-tap', 'tap-by-ios-class-chain'), there's no indication of when text-based tapping is preferred over other methods or what prerequisites might be needed.

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

uninstall-appC

Uninstall an Android application

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe device ID to uninstall the app from
packageNameYesThe package name of the app to uninstall

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'uninstall' implies a destructive operation, the description doesn't specify whether this requires device permissions, whether the action is reversible, what happens to app data, or potential side effects. For a mutation tool with zero annotation coverage, this is inadequate.

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, efficient sentence with zero wasted words. It's appropriately sized for a straightforward tool and immediately communicates the core functionality without unnecessary elaboration.

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?

For a destructive operation with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after uninstallation, whether there's confirmation feedback, error conditions, or platform-specific considerations. The combination of mutation behavior and lack of structured documentation creates significant gaps.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters clearly documented in the schema. The description doesn't add any meaningful parameter semantics beyond what the schema already provides. The baseline score of 3 reflects adequate coverage through the schema alone.

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 ('uninstall') and target ('Android application'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from its sibling 'xcode_uninstall_app' which serves a similar purpose for iOS/Xcode environments, missing an opportunity for sibling differentiation.

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

Usage 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. With siblings like 'install-app', 'reset-app', and 'xcode_uninstall_app' available, there's no indication of appropriate contexts, prerequisites, or exclusions for this Android-specific uninstallation tool.

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

unlock-deviceB

Unlock the device screen

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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. 'Unlock' implies a state-changing action, but it doesn't disclose behavioral traits like whether this requires specific permissions, if it's reversible (via 'lock-device'), potential side effects, or error conditions (e.g., if device is already unlocked). The description is minimal and lacks operational context.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple action with no parameters, making it easy to parse quickly.

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 simplicity (0 params, no output schema), the description is incomplete. It lacks context about what 'unlock' entails (e.g., bypassing security, waking screen), expected outcomes, or integration with sibling tools like 'is-device-locked'. For a state-changing tool with no annotations, more detail is warranted.

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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.

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 'Unlock the device screen' clearly states the action (unlock) and target (device screen) with a specific verb+resource. It distinguishes from sibling 'lock-device' by indicating the opposite action, though it doesn't explicitly contrast with other device control tools like 'is-device-locked'.

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. The description doesn't mention prerequisites (e.g., device must be locked), related tools like 'is-device-locked' for checking status, or scenarios where unlocking is appropriate versus other actions.

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

wait-for-elementC

Wait for an element to be visible on screen

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesElement selector (e.g., xpath, id)
strategyNoSelector strategy: xpath, id, accessibility id, class name (default: xpath)
timeoutMsNoTimeout in milliseconds (default: 10000)

TDQS

C2.9/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 of behavioral disclosure. It states the tool waits for visibility but doesn't mention whether it polls continuously, returns an error on timeout, affects app state, or requires specific permissions. For a tool with potential timing and interaction implications, this leaves significant gaps in understanding its 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly while conveying the essential action.

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 in UI automation (involving timing, selectors, and visibility checks), no annotations, and no output schema, the description is insufficient. It doesn't explain return values, error conditions, or interaction with other tools like 'element-exists', leaving the agent with incomplete context for effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all three parameters (selector, strategy, timeoutMs) with descriptions and defaults. The description adds no additional parameter information beyond what the schema provides, which is acceptable given the high coverage, resulting in a baseline score of 3.

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 ('wait for') and resource ('an element'), specifying the condition ('to be visible on screen'). It distinguishes from siblings like 'element-exists' by focusing on waiting for visibility rather than checking existence, though it doesn't explicitly name alternatives. This provides a specific purpose but lacks explicit sibling differentiation.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives like 'element-exists' or 'inspect-element', nor does it mention prerequisites such as needing an active Appium session or element initialization. It implies usage in UI testing contexts but provides no explicit context or exclusions.

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

xcode_add_media_to_simulatorC

Add photos/videos to a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
mediaPathsYesArray of media file paths to add

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('add') but doesn't explain what 'add' entails (e.g., copies files to simulator storage, requires simulator to be running, may overwrite existing files, or returns success/failure status). This leaves significant gaps for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient phrase with zero wasted words. It's front-loaded with the core action and resource, making it immediately understandable.

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?

For a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., side effects, error handling), prerequisites, or what constitutes success. Given the context of sibling tools and the action's potential complexity, more completeness is needed.

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 description coverage is 100%, with clear descriptions for both parameters (UDID of simulator, array of media file paths). The description adds no additional parameter context beyond what the schema provides, so it meets the baseline score for high 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 'Add photos/videos to a simulator' clearly states the action (add) and target resource (photos/videos to a simulator). It's specific enough to understand the basic function, though it doesn't explicitly differentiate from sibling tools like 'xcode_copy_to_simulator' or 'push_file' which might have overlapping capabilities.

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. There's no mention of prerequisites (e.g., simulator must be booted), exclusions, or comparisons to similar tools like 'xcode_copy_to_simulator' or 'push_file' in the sibling list.

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

xcode_boot_simulatorC

Boot an iOS simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator to boot

TDQS

C2.9/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. 'Boot' implies a state change, but it doesn't disclose behavioral traits like whether it's idempotent, what happens on failure, if it requires specific permissions, or how long it takes. This leaves significant gaps for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly.

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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavior, error handling, prerequisites, and what to expect after booting (e.g., success confirmation, timeouts). This is inadequate for safe and effective use.

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

Parameters3/5

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

The schema description coverage is 100%, with the 'udid' parameter fully documented in the schema. The description adds no additional meaning beyond implying the simulator is identified by UDID, which is already clear from the schema. Baseline 3 is appropriate when schema does the heavy lifting.

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 'Boot an iOS simulator' clearly states the action (boot) and target resource (iOS simulator), making the purpose immediately understandable. It doesn't distinguish from siblings like 'xcode_shutdown_simulator' or 'xcode_get_simulator_status', but it's not vague or tautological.

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 doesn't mention prerequisites (e.g., simulator must exist, be shut down), exclusions, or related tools like 'xcode_shutdown_simulator' or 'xcode_get_simulator_status' for checking status.

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

xcode_check_cli_installedB

Check if Xcode command line tools are installed

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 of behavioral disclosure. It states the action ('Check') but doesn't describe what the check entails, what output to expect (e.g., boolean, status message), or any side effects. This is inadequate for a tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It's front-loaded and efficiently conveys the core purpose without unnecessary elaboration, making it easy for an agent to parse quickly.

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 simplicity (0 parameters, no output schema, no annotations), the description is minimal but insufficient. It lacks details on behavioral aspects like return values or error conditions, which are critical for an agent to use it correctly, even for a simple check.

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 0 parameters with 100% schema description coverage, so no parameter information is needed in the description. The baseline for this scenario is 4, as the description appropriately avoids redundant parameter details.

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's purpose with a specific verb ('Check') and resource ('Xcode command line tools'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'xcode_install_cli' or other Xcode-related tools, which would require a 5.

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

Usage 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 doesn't mention prerequisites, related tools like 'xcode_install_cli', or scenarios where this check is necessary, 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.

xcode_clear_simulator_locationC

Clear the location of a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Clear the location' implies a write/mutation operation, but the description doesn't specify what 'clear' means (reset to default? remove GPS coordinates?), whether this requires specific permissions, or what happens after execution. This leaves significant behavioral questions unanswered.

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, focused sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and efficient.

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?

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'clear' means operationally, what the expected outcome is, or provide any error handling context. Given the complexity of simulator management and lack of structured metadata, more descriptive content would be valuable.

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

Parameters3/5

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

Schema description coverage is 100% with the single parameter 'udid' well-documented in the schema. The description doesn't add any parameter information beyond what the schema already provides, so it meets the baseline for high schema coverage without adding extra 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 action ('Clear') and target resource ('location of a simulator'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'xcode_set_simulator_location', but the verb 'Clear' versus 'Set' provides implicit distinction.

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 about when to use this tool versus alternatives or prerequisites. While the sibling list includes 'xcode_set_simulator_location' as a complementary tool, the description doesn't mention this relationship or provide any context about appropriate usage scenarios.

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

xcode_configure_simulator_preferencesB

Configure simulator preferences in batch

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
preferencesYesPreferences to configure

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 carries full burden but only states the action without behavioral details. It doesn't disclose whether this requires specific permissions, if changes are reversible, potential side effects, or error handling, which is inadequate for a configuration tool.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste—'Configure simulator preferences in batch' is front-loaded and directly conveys the core purpose without unnecessary elaboration.

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 no output schema, the description is minimal but clear for a configuration tool. It covers the basic action but lacks depth on behavior, error cases, or output expectations, making it adequate but with gaps in completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional meaning beyond implying batch configuration, which aligns with the 'preferences' object but doesn't enhance schema details. Baseline 3 is appropriate as schema handles documentation.

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 'Configure simulator preferences in batch' clearly states the action (configure) and target (simulator preferences), with 'in batch' hinting at multiple settings. It distinguishes from sibling tools like 'xcode_set_simulator_preference' (singular) by implying bulk operations, though not explicitly contrasting them.

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 'xcode_set_simulator_preference' is provided. The description implies batch configuration but lacks context on prerequisites, timing, or exclusions, leaving usage unclear relative to siblings.

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

xcode_copy_to_simulatorC

Copy files to a simulator (limited to media files)

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
sourcePathYesSource file path
destinationPathYesDestination path in simulator

TDQS

C2.9/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 of behavioral disclosure. It states the tool copies files with a media limitation, but doesn't mention required permissions, whether it overwrites existing files, error conditions, or what happens if the simulator isn't running. For a mutation tool with zero annotation coverage, 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 a single, efficient sentence that states the core purpose upfront with no wasted words. It's appropriately sized for a tool with three well-documented parameters and no complex behavioral nuances to explain.

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?

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after the copy operation, what media formats are supported, error handling, or prerequisites like simulator state. The media limitation is helpful but insufficient for full understanding.

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

Parameters3/5

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

Schema description coverage is 100%, with all three parameters clearly documented in the schema. The description adds no additional parameter information beyond what's already in the schema descriptions. This meets the baseline of 3 when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Copy files') and target ('to a simulator'), with the specific limitation 'limited to media files' that distinguishes it from general file operations. However, it doesn't explicitly differentiate from sibling tools like 'push_file' or 'xcode_add_media_to_simulator', which appear to have overlapping functionality.

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 'push_file' or 'xcode_add_media_to_simulator'. It mentions the limitation to media files but doesn't explain why one would choose this tool over other file-transfer options in the sibling list.

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

xcode_create_simulatorC

Create a new iOS simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new simulator
deviceTypeIdYesDevice type identifier (e.g., 'iPhone15,2')
runtimeIdYesRuntime identifier (e.g., 'com.apple.CoreSimulator.SimRuntime.iOS-17-0')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create' which implies a write/mutation operation, but doesn't mention whether this requires specific permissions, what happens on failure (e.g., if a simulator with the same name exists), or any side effects. For a creation tool with zero annotation coverage, this leaves 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?

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately clear what the tool does without unnecessary elaboration.

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?

For a creation/mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after creation (e.g., does it return the new simulator's ID?), potential errors, or dependencies. Given the complexity of creating a simulator and the lack of structured information elsewhere, the description should provide more complete context.

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 description coverage is 100%, with all three parameters well-documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema (name, deviceTypeId, runtimeId). According to the rules, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the description.

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 ('Create') and resource ('new iOS simulator'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'xcode_get_ios_simulators' (which lists simulators) or 'xcode_delete_simulator' (which removes them), so it doesn't achieve the highest score for sibling distinction.

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. There are no mentions of prerequisites (e.g., needing Xcode installed), when this tool is appropriate (e.g., for testing iOS apps), or what to do instead in other scenarios (e.g., use 'list-ios-simulators' to check existing ones first).

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

xcode_delete_simulatorC

Delete an iOS simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator to delete

TDQS

C2.9/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 of behavioral disclosure. While 'Delete' implies a destructive mutation, it doesn't specify whether this is permanent, reversible, requires specific permissions, or has side effects (e.g., affecting other simulators or apps). This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly.

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?

For a destructive tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., permanence, prerequisites), usage context relative to siblings, and expected outcomes, leaving the agent with insufficient information for safe and effective invocation.

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

Parameters3/5

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

The input schema has 100% description coverage, with the 'udid' parameter clearly documented. The description doesn't add any meaning beyond what the schema provides (e.g., format examples or constraints), so it meets the baseline score of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Delete') and resource ('an iOS simulator'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'xcode_erase_simulator' or 'xcode_shutdown_simulator', which might have overlapping or related functionality.

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. With sibling tools like 'xcode_erase_simulator' and 'xcode_shutdown_simulator' present, there's no indication of how this deletion differs from erasure or when shutdown might be preferred, leaving usage context unclear.

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

xcode_erase_simulatorC

Erase all data from a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator to erase

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Erase all data' clearly indicates a destructive operation, it doesn't specify whether this is reversible, what types of data are erased (apps, settings, media), whether the simulator remains functional afterward, or any permission requirements. This leaves significant gaps for a tool with clear destructive implications.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function with zero wasted words. It's appropriately sized for a simple tool with one parameter and gets straight to the point.

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?

For a destructive tool with no annotations and no output schema, the description is inadequate. It doesn't explain what 'erase all data' entails, what happens to the simulator afterward, whether there are side effects, or what the tool returns. Given the tool's potential impact and lack of structured behavioral information, more context is needed.

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 description coverage is 100% with the single parameter 'udid' well-documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the structured schema, so it meets the baseline expectation without providing extra 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 action ('Erase all data') and target ('from a simulator'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from other simulator management tools like 'xcode_delete_simulator' or 'xcode_reset_privacy_permission' that might also affect simulator data.

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 about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., simulator must be booted), exclusions, or relationships to sibling tools like 'xcode_delete_simulator' (which removes the simulator entirely) or 'xcode_reset_privacy_permission' (which resets specific settings).

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

xcode_get_device_typesB

Get available device types for simulators

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe how it behaves: whether it returns a list, what format the output takes, if it requires Xcode to be running, or any error conditions. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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, efficient sentence that communicates the core purpose without any wasted words. It's front-loaded with the essential information and doesn't include unnecessary elaboration. Every word earns its place in this compact description.

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 read-only tool with no parameters and no output schema, the description provides the basic purpose but lacks important context. It doesn't explain what 'device types' means in practice (iPhone models, iPad models, etc.), what the return format looks like, or how this information might be used in conjunction with other simulator tools. The absence of annotations and output schema means the description should do more heavy lifting.

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 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't mention parameters since none exist. This earns a baseline 4 as it correctly avoids redundant parameter information while focusing on the tool's purpose.

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 ('Get') and resource ('available device types for simulators'), making the purpose immediately understandable. It distinguishes from some siblings like 'list-devices' or 'xcode_get_ios_simulators' by specifying it's about device types rather than actual simulator instances. However, it doesn't explicitly differentiate from all similar tools like 'xcode_get_runtimes' which might be related.

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 doesn't mention prerequisites, timing considerations, or how it relates to other Xcode simulator tools like 'xcode_get_ios_simulators' or 'xcode_get_simulator_info'. 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.

xcode_get_ios_simulatorsB

Get a list of available iOS simulators

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool returns but doesn't mention whether this requires specific permissions, what format the list uses, whether it's cached or real-time data, or any rate limits. For a tool with zero annotation coverage, 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 a single, clear sentence that communicates the essential purpose without any wasted words. It's appropriately sized for a simple tool with no parameters.

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 read-only tool with no parameters and no output schema, the description is minimally adequate. However, without annotations and with a sibling tool ('list-ios-simulators') that appears similar, more context about differentiation would be helpful. The description covers the basic purpose but leaves behavioral aspects unspecified.

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 0 parameters with 100% schema description coverage, so the schema already fully documents the input requirements. The description appropriately doesn't discuss parameters since none exist, earning a baseline 4 for not adding unnecessary information.

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 ('Get') and resource ('list of available iOS simulators'), making the purpose immediately understandable. It doesn't differentiate from sibling 'list-ios-simulators' which appears to serve a similar function, preventing a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives like 'list-ios-simulators' or 'list-devices'. The description only states what the tool does, not when it's appropriate to call it.

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

xcode_get_pathB

Get the path to the Xcode installation

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 of behavioral disclosure. It states the tool retrieves a path but doesn't specify what happens if Xcode isn't installed (e.g., returns null, throws error), the format of the path (e.g., string, absolute/relative), or any side effects (e.g., caching). For a tool with zero annotation coverage, this is a significant gap in 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 a single, clear sentence with zero waste. It's front-loaded with the core purpose ('Get the path'), making it immediately scannable and efficient. Every word earns its place, and there's no redundancy or fluff.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on behavior, output format, or error handling. For a tool that likely returns a string path, more context on the return value would be helpful, but the absence of an output schema means the description doesn't fully compensate.

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 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't mention parameters, which is correct for a parameterless tool. A baseline of 4 is applied since no parameter information is needed, and the description doesn't add unnecessary details.

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 ('Get') and resource ('path to the Xcode installation'), making the purpose immediately understandable. However, it doesn't distinguish itself from potential sibling tools like 'xcode_get_system_info' or 'xcode_get_simulator_info', which also retrieve Xcode-related information but for different resources.

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. The description doesn't mention prerequisites (e.g., Xcode must be installed), context (e.g., useful for locating Xcode for build processes), or related tools (e.g., 'xcode_check_cli_installed' for verifying installation). This leaves the agent to infer usage based on 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.

xcode_get_privacy_permissionC

Get privacy permission status for an app

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
bundleIdYesBundle identifier of the app
serviceYesPrivacy service (camera, photos, location, etc.)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose whether this requires specific simulator states, what the output format might be, or potential errors (e.g., invalid UDID). This is inadequate for a tool with three required parameters and no output schema.

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

Conciseness5/5

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

The description is a single, direct sentence with no wasted words, making it easy to parse. It front-loads the core purpose effectively, though this conciseness comes at the cost of missing contextual details.

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?

For a tool with three required parameters, no annotations, and no output schema, the description is insufficient. It lacks information on behavioral traits, output expectations, and usage context, leaving significant gaps that could hinder an agent's ability to invoke it correctly without trial and error.

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

Parameters3/5

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

Schema description coverage is 100%, with clear parameter descriptions and an enum for 'service'. The description adds no additional parameter semantics beyond what's in the schema, such as format examples or constraints. Given the high schema coverage, a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Get') and target ('privacy permission status for an app'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'xcode_grant_privacy_permission' or 'xcode_revoke_privacy_permission', which would require mentioning it's a read-only status check.

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. For example, it doesn't mention prerequisites (e.g., needing a booted simulator) or contrast with tools like 'xcode_grant_privacy_permission' for modifying permissions, leaving the agent to infer usage from context alone.

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

xcode_get_runtimesB

Get available runtimes for simulators

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 of behavioral disclosure. While 'Get' implies a read-only operation, the description doesn't specify whether this requires Xcode to be running, if it returns cached or live data, potential error conditions, or the format of the returned data. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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 a single, efficient sentence that immediately conveys the core functionality without any fluff. Every word earns its place: 'Get' (action), 'available runtimes' (what), 'for simulators' (context). It's perfectly front-loaded and wastes no space on unnecessary details.

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 (0 parameters, no annotations, no output schema), the description is minimally adequate. It tells the agent what the tool does but leaves out important contextual information like return format, error handling, and dependencies. For a tool in the Xcode/simulator management domain where other tools have more detailed descriptions, this feels somewhat incomplete despite the low complexity.

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 0 parameters with 100% schema description coverage, so the schema already fully documents the input requirements. The description appropriately doesn't waste space discussing nonexistent parameters. Since there are no parameters to explain, a baseline of 4 is appropriate—the description correctly focuses on the tool's purpose rather than parameter details.

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 ('Get') and resource ('available runtimes for simulators'), making the purpose immediately understandable. It distinguishes itself from sibling tools like 'xcode_get_device_types' or 'xcode_get_ios_simulators' by focusing specifically on runtimes rather than device types or simulator instances. However, it doesn't explicitly mention what 'runtimes' are (e.g., iOS versions), which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing Xcode installed), typical use cases (e.g., before creating a simulator), or relationships with sibling tools like 'xcode_create_simulator' that might require runtime information. The agent must infer usage from context alone.

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

xcode_get_simulator_infoC

Get detailed information about a specific simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, it doesn't specify what 'detailed information' includes, whether it requires a booted simulator, what format the information returns, or any error conditions. The description is too vague for a tool that likely returns structured data.

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

Conciseness5/5

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

The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a simple tool with one parameter and follows good front-loading principles.

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?

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'detailed information' includes, the format of the return value, or any behavioral constraints. Given the complexity of simulator management and the lack of structured output documentation, this description leaves too many questions unanswered.

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 description coverage is 100% with the single parameter 'udid' well-documented in the schema. The description doesn't add any parameter semantics beyond what the schema already provides, so it meets the baseline score of 3 for adequate but not additive parameter documentation.

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 'Get' and the resource 'detailed information about a specific simulator', making the purpose explicit. However, it doesn't differentiate from sibling tools like 'xcode_get_simulator_status' or 'xcode_get_ios_simulators', which likely provide different types of simulator information.

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. With multiple sibling tools for getting simulator information (xcode_get_simulator_status, xcode_get_ios_simulators), there's no indication of what distinguishes this tool or when it should be preferred over others.

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

xcode_get_simulator_logsC

Get logs from a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
predicateNoOptional predicate for filtering logs

TDQS

C2.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 the full burden of behavioral disclosure. 'Get logs' implies a read operation, but it doesn't specify whether this requires the simulator to be running, what format/log-level the logs are in, if there are rate limits, or what happens if the UDID is invalid. For a tool with zero annotation coverage, this leaves 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?

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action ('Get logs') and resource ('from a simulator'), making it immediately understandable. Every word earns its place, achieving optimal conciseness for such a simple tool.

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 complexity (a read operation with two parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., log text, file path, structured data), error conditions, or dependencies. For a tool that likely interacts with system resources, this leaves too much unspecified for reliable agent use.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for both parameters (UDID and predicate). The description doesn't add any meaning beyond what the schema provides—it doesn't explain what a UDID is, what predicate syntax to use, or give examples. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

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

Purpose3/5

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

The description 'Get logs from a simulator' clearly states the verb ('Get') and resource ('logs from a simulator'), making the basic purpose understandable. However, it doesn't specify what type of logs (e.g., system, application, crash) or distinguish this tool from potential sibling logging tools (though none are listed among siblings). It's functional but lacks specificity that would help an agent understand the exact 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a booted simulator), exclusions, or related tools. Given the sibling list includes many Xcode simulator tools, there's no indication of how this fits into workflows with tools like 'xcode_get_simulator_info' or 'xcode_get_system_info'.

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

xcode_get_simulator_statusB

Get the status of all simulators

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 what the tool does but doesn't disclose behavioral traits such as whether it's read-only, what format the status information returns, if there are rate limits, or any side effects. This leaves significant gaps for an agent to understand the tool's 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 a single, clear sentence with no wasted words. It's front-loaded and efficiently conveys the core purpose without unnecessary elaboration, making it easy to parse quickly.

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 lack of annotations and output schema, the description is incomplete. It states the purpose but doesn't cover behavioral aspects like return format, error conditions, or how it differs from sibling tools. For a tool in a complex context with many related siblings, this minimal description leaves too much unspecified.

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 0 parameters with 100% schema description coverage, so no parameter information is needed. The description doesn't add parameter details, which is appropriate here, but it also doesn't compensate for any gaps since there are none. A baseline of 4 is given as it meets expectations for a parameterless tool.

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 ('Get') and resource ('status of all simulators'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'xcode_get_ios_simulators' or 'xcode_get_simulator_info', which might provide overlapping or related functionality.

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. With many sibling tools related to simulators (e.g., 'xcode_get_ios_simulators', 'xcode_get_simulator_info'), the description lacks any context about distinctions or prerequisites for usage.

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

xcode_get_system_infoC

Get system information from a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get' implies a read-only operation, the description doesn't specify what 'system information' includes (e.g., OS version, hardware specs, status), whether authentication is required, potential rate limits, or what format the information returns. This leaves significant behavioral uncertainty for a tool with no output schema.

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

Conciseness5/5

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

The description is a single, efficient sentence that immediately communicates the core purpose without any wasted words. It's perfectly front-loaded and appropriately sized for a simple retrieval tool.

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?

For a tool with no annotations and no output schema, the description is insufficiently complete. While concise, it doesn't explain what 'system information' encompasses, what format it returns, or how this differs from similar sibling tools. Given the complexity of simulator management and multiple related tools, more context is needed for effective agent use.

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

Parameters3/5

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

The schema has 100% description coverage (the 'udid' parameter is fully documented in the schema), so the baseline is 3. The description doesn't add any parameter-specific information beyond what's already in the schema, but it doesn't need to given the comprehensive schema documentation.

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 ('Get') and resource ('system information from a simulator'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'xcode_get_simulator_info' or 'xcode_get_device_types', but the focus on 'system information' provides reasonable specificity within the Xcode simulator 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 provides no guidance on when to use this tool versus alternatives. With sibling tools like 'xcode_get_simulator_info' and 'xcode_get_device_types' available, there's no indication of what distinguishes this tool's 'system information' from other simulator data retrieval operations. No prerequisites or exclusions are mentioned.

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

xcode_grant_privacy_permissionC

Grant privacy permission to an app

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
bundleIdYesBundle identifier of the app
serviceYesPrivacy service to grant

TDQS

C2.9/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 provides minimal behavioral insight. It states the action is to 'grant' (implying a write operation) but doesn't disclose side effects, permissions required, success/failure conditions, or what happens if the permission is already granted. This is inadequate for a mutation tool.

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

Conciseness5/5

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

The description is a single, focused sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral outcomes, error handling, and integration with sibling tools (e.g., revoke/reset permissions), leaving significant gaps in understanding.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning about parameters beyond implying they're needed for granting permission, meeting the baseline for high 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 ('Grant') and resource ('privacy permission to an app'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'xcode_revoke_privacy_permission' or 'xcode_reset_privacy_permission', which prevents a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing a booted simulator), exclusions, or related tools like 'xcode_get_privacy_permission' for checking status, 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.

xcode_install_appC

Install an app on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
appPathYesPath to the .app bundle

TDQS

C2.9/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. 'Install an app' implies a write/mutation operation, but the description doesn't disclose behavioral traits like whether this requires specific permissions, what happens if installation fails, whether it overwrites existing apps, or any side effects. For a mutation tool with zero annotation coverage, this is inadequate.

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, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the core purpose immediately.

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?

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after installation (success/failure indicators), doesn't clarify the relationship with the sibling 'install-app' tool, and provides no behavioral context beyond the basic action. Given the complexity of app installation and the lack of structured data, more completeness is needed.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('udid' and 'appPath') clearly documented in the schema. The description doesn't add any meaningful parameter semantics beyond what's already in the schema (e.g., format examples, constraints, or usage context), so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Install') and target ('app on a simulator'), providing a specific verb+resource combination. However, it doesn't distinguish itself from the sibling 'install-app' tool, which appears to serve a similar purpose but potentially for different contexts (e.g., physical devices vs simulators).

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. With a sibling tool named 'install-app' that likely serves a similar function, there's no indication of whether this tool is specifically for Xcode simulators versus other installation methods, nor any prerequisites or exclusions mentioned.

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

xcode_install_cliA

Install Xcode command line tools (requires user interaction)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/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 of behavioral disclosure. It adds value by warning about 'requires user interaction', which is crucial for understanding that this is not a fully automated process. However, it lacks details on potential side effects, error handling, or what happens if tools are already installed.

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, efficient sentence that front-loads the core action ('Install Xcode command line tools') and adds essential behavioral context ('requires user interaction') without any wasted words. Every part of the sentence serves a clear 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?

Given the tool's complexity (installation with user interaction), no annotations, and no output schema, the description is reasonably complete. It covers the main action and a key behavioral constraint. However, it could be more comprehensive by addressing outcomes or error scenarios, though the lack of output schema limits this expectation.

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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, maintaining focus on the tool's purpose and behavioral aspects without unnecessary 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 the specific action ('Install') and target resource ('Xcode command line tools'), distinguishing it from sibling tools like 'xcode_check_cli_installed' (which checks installation) and 'xcode_get_path' (which retrieves paths). It precisely communicates the tool's function without redundancy.

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

Usage Guidelines4/5

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

The description provides clear context for usage by stating 'requires user interaction', which implies this tool should be used when manual input or confirmation is needed during installation. However, it does not explicitly mention when to use alternatives like 'xcode_check_cli_installed' for verification or other installation-related tools.

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

xcode_launch_appC

Launch an app on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
bundleIdYesBundle identifier of the app
argsNoArguments to pass to the app
waitForDebuggerNoWhether to wait for debugger

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Launch' implies a state-changing operation, the description doesn't mention what happens if the app is already running, whether this requires specific permissions, what happens on failure, or any side effects. It provides minimal behavioral context beyond the basic action.

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 just 5 words, front-loading the essential action and target. Every word earns its place, making it easy to scan and understand the core purpose immediately without unnecessary elaboration.

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?

For a tool that performs a state-changing operation (launching an app) with no annotations and no output schema, the description is insufficient. It doesn't explain what happens on success/failure, what the tool returns, or how it differs from similar sibling tools. The context signals show this is a mutation tool without safety annotations, requiring more descriptive guidance.

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 no parameter information beyond what's already in the schema, which has 100% coverage with clear descriptions for all 4 parameters. The baseline score of 3 is appropriate since the schema does the heavy lifting, though the description could have added context about how parameters interact or typical usage patterns.

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 ('Launch') and target ('an app on a simulator'), providing a specific verb+resource combination. However, it doesn't differentiate from the sibling tool 'launch-app', which appears to be a more general version, leaving some ambiguity about when to use this Xcode-specific tool versus the generic one.

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. With sibling tools like 'launch-app' and 'launch-appium-app' available, there's no indication of when this Xcode-specific simulator launching tool is preferred over those other options.

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

xcode_list_installed_appsC

List all installed apps on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator

TDQS

C2.9/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 of behavioral disclosure. It states the action is to 'list', implying a read-only operation, but doesn't specify permissions, output format, or potential side effects (e.g., if it requires the simulator to be booted). This is inadequate for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and efficiently conveys the essential information without unnecessary elaboration, making it easy for an agent to parse quickly.

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 lack of annotations and output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., list format, app details), behavioral constraints, or error conditions. For a tool in a complex environment with many siblings, this leaves significant gaps for an agent to operate effectively.

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

Parameters3/5

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

The input schema has 100% description coverage, with the 'udid' parameter clearly documented. The description doesn't add any semantic details beyond what the schema provides (e.g., it doesn't explain what a UDID is or where to find it), so it meets the baseline for high schema coverage without adding 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 action ('List') and resource ('all installed apps on a simulator'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list-installed-packages' or 'xcode_get_simulator_info', which could provide similar or overlapping functionality, preventing a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools related to simulators and apps (e.g., 'list-installed-packages', 'xcode_get_simulator_info'), there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on the name alone.

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

xcode_open_urlB

Open a URL on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
urlYesThe URL to open

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but reveals nothing about side effects, error conditions, permissions needed, or what happens when the URL opens. For a tool that interacts with simulators, this leaves significant behavioral questions unanswered.

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, efficient sentence that states the core functionality without any wasted words. It's appropriately sized for a simple tool with two parameters and gets straight to the point.

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 tool with 2 parameters, 100% schema coverage, and no output schema, the description provides the basic purpose but lacks important context. It doesn't explain what 'opening a URL' means in practice (e.g., launches browser, deep link handling), success/failure indicators, or integration with other simulator tools. The completeness is adequate but has clear gaps.

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

Parameters3/5

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

The schema description coverage is 100%, with both parameters (udid, url) clearly documented in the schema. The description doesn't add any parameter details beyond what's in the schema, so it meets the baseline for high schema coverage without adding extra 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 action ('Open a URL') and target ('on a simulator'), providing a specific verb+resource combination. However, it doesn't differentiate from potential alternatives like opening URLs on physical devices or through other methods, which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. Given the sibling tools include many simulator-specific operations (like xcode_boot_simulator, xcode_launch_app), there's no indication of prerequisites, sequencing, or when this tool is appropriate versus other URL-opening methods.

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

xcode_push_notificationC

Push a notification to a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
bundleIdYesBundle identifier of the app
payloadYesPath to notification payload file

TDQS

C2.9/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 of behavioral disclosure. It states the action but doesn't explain what 'push' entails—whether it's a read-only operation, if it requires specific simulator states, potential side effects, or error conditions. This leaves significant gaps in understanding the tool's 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 a single, direct sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core purpose without unnecessary elaboration, earning a top score for brevity and clarity.

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 complexity of a tool that interacts with simulators and involves parameters like payload files, and with no annotations or output schema, the description is insufficient. It doesn't cover behavioral aspects, return values, or error handling, making it incomplete for effective agent use in this context.

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

Parameters3/5

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

The input schema has 100% description coverage, with clear parameter descriptions (UDID, bundleId, payload). The description adds no additional meaning beyond the schema, such as format examples or constraints, but since the schema is comprehensive, a baseline score of 3 is appropriate as it doesn't compensate or detract.

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 'Push a notification to a simulator' clearly states the action (push) and target (notification to a simulator), which is specific and actionable. However, it doesn't differentiate from sibling tools like 'open_notifications' or 'xcode_trigger_memory_warning', which are also simulator-related but serve different purposes, so it misses full sibling distinction.

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 other notification or simulator management tools in the sibling list. It lacks context about prerequisites, timing, or exclusions, leaving the agent to infer usage based on the name alone.

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

xcode_record_videoC

Start recording video of a simulator (returns process info)

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
outputPathYesPath where video should be saved

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the action returns 'process info' which adds some context about output, but fails to describe critical behaviors like whether recording continues in background, how to stop it, what format the video is saved in, or any permissions/requirements. For a tool that initiates a potentially long-running process, 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.

Conciseness4/5

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

The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a simple tool, though it could potentially benefit from slightly more detail given the behavioral complexity of video recording.

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?

For a tool that starts video recording (a non-trivial operation with ongoing effects), the description is incomplete. With no annotations, no output schema, and minimal behavioral context, it leaves critical questions unanswered about how the recording works, how to manage it, and what the 'process info' return entails.

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

Parameters3/5

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

The input schema has 100% description coverage, with both parameters clearly documented. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline score of 3 where the schema does the heavy lifting.

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 ('Start recording video') and target ('of a simulator'), which is specific and unambiguous. However, it doesn't differentiate from the sibling 'start-recording' tool, which appears to be a more general recording tool, so it doesn't achieve full sibling differentiation.

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

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 'start-recording' or other simulator-specific tools. There's no mention of prerequisites, constraints, or typical use cases, leaving the agent with no contextual usage information.

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

xcode_reset_privacy_permissionC

Reset privacy permission for an app

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
bundleIdYesBundle identifier of the app
serviceYesPrivacy service to reset

TDQS

C2.9/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 of behavioral disclosure. It states the action ('reset') but does not explain what 'reset' entails—e.g., whether it reverts to default settings, requires specific permissions, or has side effects. This lack of detail is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is a single, direct sentence with no unnecessary words. It is front-loaded and efficiently conveys the core purpose without redundancy, making it easy to parse quickly.

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 (a mutation operation with no annotations and no output schema), the description is insufficient. It lacks details on behavior, outcomes, error conditions, or how it fits with sibling tools, leaving gaps that could hinder effective use by 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?

The input schema has 100% description coverage, clearly documenting all three parameters with enums for 'service'. The description does not add any additional meaning beyond the schema, such as explaining parameter interactions or examples. Since schema coverage is high, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('reset') and target ('privacy permission for an app'), which is specific and actionable. However, it does not explicitly differentiate from sibling tools like 'xcode_grant_privacy_permission' or 'xcode_revoke_privacy_permission', which handle similar privacy-related operations but with different intents.

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. For instance, it does not mention when to reset permissions instead of granting or revoking them, nor does it specify prerequisites like needing a booted simulator or installed app, which are implied by the parameters but not stated.

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

xcode_revoke_privacy_permissionC

Revoke privacy permission from an app

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
bundleIdYesBundle identifier of the app
serviceYesPrivacy service to revoke

TDQS

C2.9/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 of behavioral disclosure. It states the action ('revoke') but doesn't mention side effects (e.g., whether this affects app functionality), permission requirements, or error conditions. For a mutation tool with zero annotation coverage, this leaves 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?

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and target, making it easy to parse quickly.

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?

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like side effects, error handling, or what happens on success. Given the complexity of revoking permissions in a simulator context, more context is needed for adequate completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters (udid, bundleId, service) with descriptions and an enum for 'service'. The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline for high 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 ('revoke') and target ('privacy permission from an app'), making the purpose understandable. However, it doesn't explicitly differentiate from its sibling 'xcode_reset_privacy_permission' or other privacy-related tools, which would be needed for a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'xcode_reset_privacy_permission' or 'xcode_grant_privacy_permission'. The description lacks context about prerequisites (e.g., simulator must be booted) or typical use cases, offering minimal usage direction.

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

xcode_set_hardware_keyboardC

Enable/disable hardware keyboard for a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
enabledYesWhether to enable hardware keyboard

TDQS

C2.9/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 of behavioral disclosure. While 'Enable/disable' implies a state change (a mutation), the description doesn't address critical aspects like required permissions, whether the change persists, error conditions, or what happens if the simulator is not running. This is inadequate for a mutation tool with zero annotation coverage.

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, efficient sentence that directly states the tool's function without any fluff. It is appropriately sized and front-loaded, with every word contributing to understanding the purpose.

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?

For a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., side effects, error handling), usage context, and expected outcomes. Given the complexity of interacting with simulators and the rich sibling toolset, more completeness is needed to guide the agent effectively.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (udid, enabled) clearly documented in the schema. The description adds no additional parameter details beyond what the schema provides, such as UDID format examples or the default state. This meets the baseline of 3 when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Enable/disable') and the target resource ('hardware keyboard for a simulator'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its many Xcode simulator sibling tools (like xcode_set_simulator_location or xcode_set_simulator_preference), which would require a more specific scope statement to earn a 5.

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

Usage 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, prerequisites (e.g., whether the simulator must be booted), or exclusions. With numerous sibling tools available, this lack of contextual guidance leaves the agent to infer usage scenarios independently.

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

xcode_set_simulator_locationC

Set the location of a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
latitudeYesLatitude coordinate
longitudeYesLongitude coordinate

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the action ('Set') implying a mutation, but doesn't disclose effects (e.g., whether changes persist, require simulator state, or affect apps), permissions, or error conditions. This leaves significant gaps for a mutation tool with zero annotation coverage.

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, direct sentence with zero wasted words, front-loading the core action. It efficiently communicates the tool's purpose without redundancy or unnecessary elaboration, making it easy to parse quickly.

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?

For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It lacks details on behavioral traits (e.g., side effects, prerequisites), usage context, or return values, leaving the agent with minimal guidance beyond the basic action and parameters.

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

Parameters3/5

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

Schema description coverage is 100%, with clear parameter descriptions in the schema (e.g., 'UDID of the simulator', 'Latitude coordinate'). The description adds no additional parameter semantics beyond implying coordinates are involved, so it meets the baseline of 3 where the schema handles documentation adequately.

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 ('Set') and target ('location of a simulator'), making the purpose immediately understandable. It distinguishes from siblings like 'xcode_clear_simulator_location' by specifying setting rather than clearing. However, it doesn't specify what type of location (e.g., GPS coordinates) beyond what the parameters imply, keeping it from a perfect score.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives is provided. The description doesn't mention prerequisites (e.g., simulator must be booted), exclusions, or compare with related tools like 'xcode_clear_simulator_location' or general location-setting methods. Usage is implied through the action but lacks contextual direction.

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

xcode_set_simulator_preferenceC

Set a specific simulator preference

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
domainYesPreference domain
keyYesPreference key
valueYesPreference value

TDQS

C2.7/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 of behavioral disclosure. It states the tool 'sets' a preference, implying a write/mutation operation, but doesn't specify if this requires specific permissions, whether changes are persistent across simulator sessions, potential side effects, or error handling. This is a significant gap for a mutation tool with zero annotation coverage.

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, efficient sentence with zero waste—'Set a specific simulator preference' directly conveys the core action. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 complexity of a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after setting the preference (e.g., success response, error cases), behavioral traits like idempotency or side effects, or how it relates to sibling tools. For a 4-parameter write operation, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for all four parameters (udid, domain, key, value). The description adds no additional meaning beyond the schema, such as examples of valid domains/keys or format constraints. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose3/5

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

The description 'Set a specific simulator preference' clearly states the action (set) and target (simulator preference), but it's vague about what 'preference' entails—it could mean configuration settings, system preferences, or app-specific options. It doesn't distinguish from sibling tools like 'xcode_configure_simulator_preferences', which might handle broader configuration vs. this tool's specific key-value setting.

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. For example, it doesn't mention if this is for fine-grained settings vs. using 'xcode_configure_simulator_preferences' for bulk configuration, or prerequisites like needing a booted simulator. The description alone offers no usage context.

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

xcode_shake_deviceC

Simulate shake gesture on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'simulate' implies a non-destructive action, it doesn't specify whether this requires the simulator to be in a particular state, what happens if the UDID is invalid, or any side effects. The description is minimal and lacks important behavioral context.

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

Conciseness5/5

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

The description is extremely concise with just four words that directly convey the core functionality. There's zero wasted language, and the information is front-loaded effectively.

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?

For a tool that performs an action on a simulator with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the shake gesture accomplishes (e.g., triggering undo, testing motion events), what happens after execution, or any error conditions. The context signals show this is part of a complex testing/simulation environment where more guidance would be helpful.

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 description coverage is 100%, with the single parameter 'udid' fully documented in the schema. The description doesn't add any additional parameter context beyond what's already in the structured schema, so it meets the baseline expectation.

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 ('Simulate shake gesture') and target ('on a simulator'), providing a specific verb+resource combination. However, it doesn't differentiate from the sibling tool 'shake-device' which appears to serve a similar purpose, preventing a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'shake-device' or other simulator interaction tools. It doesn't mention prerequisites, context requirements, or any explicit when/when-not scenarios.

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

xcode_shutdown_simulatorB

Shutdown an iOS simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator to shutdown

TDQS

B3.1/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 of behavioral disclosure. It states the action ('Shutdown') but lacks details on effects (e.g., whether this is reversible, impacts on running apps, or error conditions). This is a significant gap for a mutation tool with zero annotation coverage.

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, efficient sentence with zero waste, front-loading the core action. It's appropriately sized for a simple tool with one parameter, earning its place without unnecessary elaboration.

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 low complexity (one parameter, no output schema, no annotations), the description is minimally adequate but incomplete. It lacks behavioral details and usage guidelines, making it functional but not fully helpful for an agent in a context with many sibling tools.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting the 'udid' parameter. The description doesn't add any extra meaning beyond the schema, such as format examples or constraints, so it meets the baseline for high schema coverage without compensating 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 action ('Shutdown') and target ('an iOS simulator'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'xcode_erase_simulator' or 'xcode_delete_simulator' which might have related functionality, keeping it from a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'xcode_erase_simulator' or 'xcode_delete_simulator' from the sibling list. There's no mention of prerequisites, exclusions, or contextual usage, leaving the agent with minimal direction.

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

xcode_take_screenshotC

Take a screenshot of a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
outputPathYesPath where screenshot should be saved

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action but doesn't mention what happens after taking the screenshot (e.g., where it's saved, format, permissions needed, or error conditions). This is inadequate for a tool with mutation implications.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the core functionality immediately.

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?

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns (e.g., success/failure, file path confirmation), behavioral details, or how it differs from similar tools in the context. This leaves significant gaps for agent understanding.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (udid, outputPath) well-documented in the schema. The description adds no additional parameter information beyond what's already in the structured data, meeting the baseline for high 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 ('Take a screenshot') and target ('of a simulator'), which is a specific verb+resource combination. However, it doesn't differentiate from the sibling tool 'take-screenshot' (which appears to be a generic version), so it misses full sibling distinction.

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 'take-screenshot' or 'appium-screenshot'. It lacks any context about prerequisites (e.g., simulator must be running), exclusions, or comparison to sibling tools.

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

xcode_terminate_appC

Terminate an app on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
bundleIdYesBundle identifier of the app

TDQS

C2.9/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 'terminate', implying a destructive action, but doesn't disclose behavioral traits like whether this force-quits the app, affects app data, requires specific simulator states, or has side effects. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is a single, clear sentence with zero wasted words. It's front-loaded with the core action and target, making it highly efficient and easy to parse.

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

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 (a destructive operation with no annotations and no output schema), the description is inadequate. It doesn't explain what 'terminate' entails behaviorally, potential outcomes, or error conditions, leaving the agent with insufficient context for safe invocation.

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

Parameters3/5

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

The input schema has 100% description coverage, fully documenting both parameters (udid and bundleId). The description adds no additional meaning beyond the schema, such as parameter interactions or examples, so it meets the baseline for high 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 ('terminate') and target ('an app on a simulator'), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'close-app' or 'xcode_shutdown_simulator', which might have overlapping functionality, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'close-app', 'reset-app', or 'xcode_shutdown_simulator'. It lacks context about prerequisites, timing, or exclusions, leaving the agent without usage direction.

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

xcode_trigger_memory_warningC

Trigger memory warning on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the action without behavioral details. It doesn't disclose effects (e.g., whether this simulates low memory for testing, potential app crashes, or requires specific permissions), leaving significant gaps in understanding the tool's 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 a single, clear sentence with zero wasted words, making it highly concise and front-loaded. It efficiently communicates the core purpose without unnecessary elaboration.

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 potential complexity (triggering memory warnings implies testing scenarios) and lack of annotations or output schema, the description is insufficient. It doesn't explain the outcome, side effects, or typical use cases, leaving the agent with incomplete context for effective invocation.

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

Parameters3/5

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

The input schema has 100% description coverage, with the 'udid' parameter fully documented. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for adequate but not enhanced 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 ('Trigger memory warning') and target ('on a simulator'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'xcode_shake_device' or 'xcode_shutdown_simulator' that also perform simulator actions, missing explicit distinction.

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 or in what context. The description lacks prerequisites, such as requiring a booted simulator or specific Xcode setup, leaving usage unclear.

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

xcode_uninstall_appC

Uninstall an app from a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
bundleIdYesBundle identifier of the app

TDQS

C2.9/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. While 'Uninstall' implies a destructive operation, the description doesn't disclose important behavioral aspects: whether this requires specific permissions, if the operation is reversible, what happens if the app isn't installed, or what the response looks like (success/failure indicators).

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, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a straightforward tool and front-loads the essential information.

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?

For a destructive operation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after uninstallation, potential side effects, error conditions, or how this tool differs from the sibling 'uninstall-app' tool. The context signals show this is part of an Xcode simulator management suite, but the description doesn't leverage this context.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (udid, bundleId) clearly documented in the schema. The description adds no additional parameter information beyond what's already in the structured schema. This meets the baseline of 3 when schema coverage is complete.

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 ('Uninstall') and target ('an app from a simulator'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from the sibling 'uninstall-app' tool, which appears to serve a similar purpose but potentially for different contexts (e.g., physical devices vs simulators).

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. There's no mention of prerequisites (e.g., simulator must be booted), comparison with the sibling 'uninstall-app' tool, or any context about when this Xcode-specific tool is preferred over general appium tools.

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

xcode_wait_for_simulatorC

Wait for a simulator to be ready

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
timeoutMsNoTimeout in milliseconds (default: 60000)

TDQS

C2.9/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 of behavioral disclosure. It states the tool waits for readiness but doesn't explain what 'ready' means (e.g., booted, responsive), whether it blocks execution, what happens on timeout, or if it requires specific permissions. This leaves significant gaps for a tool that likely interacts with system resources.

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, efficient sentence with zero wasted words. It's front-loaded with the core purpose, making it easy to parse quickly.

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?

For a tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., blocking nature, error handling), expected outcomes, or how it fits into broader workflows with sibling tools, making it inadequate for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents both parameters (udid and timeoutMs). The description doesn't add any meaning beyond what's in the schema (e.g., it doesn't clarify UDID format or typical timeout values), resulting in a baseline score of 3.

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 'Wait for a simulator to be ready' clearly states the action (wait) and resource (simulator), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'xcode_get_simulator_status' or 'xcode_boot_simulator', which might have overlapping functions related to simulator readiness.

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. The description doesn't mention prerequisites (e.g., whether the simulator must be booted first), exclusions, or how it relates to siblings like 'xcode_boot_simulator' or 'xcode_get_simulator_status'.

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. 26 tool updatesv1.0.0
    • Changedclose-app1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedclose-appium1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget-battery-info1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget-contexts1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget-current-activity1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget-current-context1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget-current-package1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget-device-time1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget-orientation1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget-page-source1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedhide-keyboard1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedis-device-locked1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedlaunch-appium-app1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedlist-devices1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedlist-ios-simulators1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedopen-notifications1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedreset-app1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedshake-device1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedunlock-device1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedxcode_check_cli_installed1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedxcode_get_device_types1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedxcode_get_ios_simulators1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedxcode_get_path1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedxcode_get_runtimes1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedxcode_get_simulator_status1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedxcode_install_cli1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 110 tool updates
    • First observedappium-screenshot
    • First observedcapture-ui-locators
    • First observedclear-element
    • First observedclose-app
    • First observedclose-appium
    • First observedelement-exists
    • First observedexecute-adb-command
    • First observedexecute-mobile-command
    • First observedextract-locators
    • First observedfind-by-ios-class-chain
    • First observedfind-by-ios-predicate
    • First observedfind-by-text
    • First observedfind-elements-by-text
    • First observedgenerate-element-locators
    • First observedgenerate-test-script
    • First observedget-battery-info
    • First observedget-contexts
    • First observedget-current-activity
    • First observedget-current-context
    • First observedget-current-package
    • First observedget-device-time
    • First observedget-element-attributes
    • First observedget-element-text
    • First observedget-element-tree
    • First observedget-orientation
    • First observedget-page-source
    • First observedhas-text-in-screen
    • First observedhide-keyboard
    • First observedinitialize-appium
    • First observedinspect-and-act
    • First observedinspect-and-tap
    • First observedinspect-element
    • First observedinstall-app
    • First observedis-device-locked
    • First observedlaunch-app
    • First observedlaunch-appium-app
    • First observedlist-devices
    • First observedlist-installed-packages
    • First observedlist-ios-simulators
    • First observedlock-device
    • First observedlong-press
    • First observedopen-notifications
    • First observedperform-element-action
    • First observedperform-touch-id
    • First observedperform-w3c-gesture
    • First observedpress-key-code
    • First observedpull-file
    • First observedpush-file
    • First observedreset-app
    • First observedsave-ui-hierarchy
    • First observedscroll-screen
    • First observedscroll-to-element
    • First observedsend-key-event
    • First observedsend-keys
    • First observedsend-keys-by-ios-class-chain
    • First observedsend-keys-by-ios-predicate
    • First observedsend-keys-to-device
    • First observedset-orientation
    • First observedshake-device
    • First observedsmart-tap
    • First observedstart-recording
    • First observedstop-recording
    • First observedswipe
    • First observedswitch-context
    • First observedtake-screenshot
    • First observedtap-by-ios-class-chain
    • First observedtap-by-ios-predicate
    • First observedtap-element
    • First observedtap-element-by-text
    • First observeduninstall-app
    • First observedunlock-device
    • First observedwait-for-element
    • First observedxcode_add_media_to_simulator
    • First observedxcode_boot_simulator
    • First observedxcode_check_cli_installed
    • First observedxcode_clear_simulator_location
    • First observedxcode_configure_simulator_preferences
    • First observedxcode_copy_to_simulator
    • First observedxcode_create_simulator
    • First observedxcode_delete_simulator
    • First observedxcode_erase_simulator
    • First observedxcode_get_device_types
    • First observedxcode_get_ios_simulators
    • First observedxcode_get_path
    • First observedxcode_get_privacy_permission
    • First observedxcode_get_runtimes
    • First observedxcode_get_simulator_info
    • First observedxcode_get_simulator_logs
    • First observedxcode_get_simulator_status
    • First observedxcode_get_system_info
    • First observedxcode_grant_privacy_permission
    • First observedxcode_install_app
    • First observedxcode_install_cli
    • First observedxcode_launch_app
    • First observedxcode_list_installed_apps
    • First observedxcode_open_url
    • First observedxcode_push_notification
    • First observedxcode_record_video
    • First observedxcode_reset_privacy_permission
    • First observedxcode_revoke_privacy_permission
    • First observedxcode_set_hardware_keyboard
    • First observedxcode_set_simulator_location
    • First observedxcode_set_simulator_preference
    • First observedxcode_shake_device
    • First observedxcode_shutdown_simulator
    • First observedxcode_take_screenshot
    • First observedxcode_terminate_app
    • First observedxcode_trigger_memory_warning
    • First observedxcode_uninstall_app
    • First observedxcode_wait_for_simulator

TDQS

C2.9/5.0
Disambiguation2/5

There is significant overlap and ambiguity between tools, making it difficult for an agent to choose correctly. For example, 'take-screenshot' and 'appium-screenshot' appear redundant, 'close-app' and 'close-appium' are confusingly similar, and many tap/send-keys variants (e.g., 'tap-element', 'smart-tap', 'tap-by-ios-class-chain') have unclear boundaries. The descriptions help somewhat, but the sheer number of overlapping tools increases misselection risk.

Naming Consistency3/5

Naming is mixed with inconsistent patterns. Most tools use kebab-case (e.g., 'get-element-text'), but some use snake_case (e.g., 'xcode_add_media_to_simulator'), and verbs vary widely (e.g., 'get-', 'list-', 'perform-', 'execute-'). The xcode_* tools follow a consistent prefix pattern, but overall the conventions are not uniform across the set, reducing predictability.

Tool Count2/5

With 110 tools, the count is excessive for an MCP server, likely overwhelming agents and causing decision paralysis. While Appium automation is broad, many tools could be consolidated (e.g., multiple screenshot or tap methods). A well-scoped server should have fewer, more generalized tools, making this set feel bloated and inefficient.

Completeness5/5

The tool set provides comprehensive coverage for mobile automation with Appium, including device management, UI interaction, testing, and simulator control. It supports CRUD-like operations for apps, elements, and files, and covers both Android and iOS platforms. No obvious gaps are present; agents can perform end-to-end automation tasks without dead ends.

Maintenance

ActivityInactive
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

  • MCP server for Appcircle mobile CI/CD platform.

  • The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.

  • The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.

  • A Model Context Protocol (MCP) server for Selise Blocks Cloud integration

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    A Model Context Protocol server that enables scalable mobile automation through a platform-agnostic interface for iOS and Android devices, allowing agents and LLMs to interact with mobile applications using accessibility snapshots or coordinate-based interactions.
    23
    15,828
    6,336
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI agents to control and automate Android devices through natural language, supporting actions like app management, UI interactions, and device monitoring.
    59
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that enables scalable mobile automation for iOS and Android through a platform-agnostic interface, allowing LLMs to interact with mobile applications via accessibility snapshots or screenshot-based inputs.
    19
    15,828
    2
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides Android Debug Bridge functionality for automating Android devices, enabling remote device management, screen operations, app management, file operations, and shell command execution.
    20
    21
    1
    MIT

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/Rahulec08/appium-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server