Skip to main content
Glama

xcode-pilot-mcp

CI npm version License: MIT Node.js TypeScript Docs

A comprehensive Model Context Protocol (MCP) server for iOS and macOS development. Provides 65 tools across 11 categories that give AI assistants full control over the Xcode development lifecycle — from building and testing to simulator management, app deployment, code signing, and more.

The iOS equivalent of android-pilot-mcp.

Read the full documentation


Table of Contents


Related MCP server: iOS Development MCP Server

Features

Category

Tools

Description

Build & Compile

8

Build, clean, archive, export IPA, run tests with xcodebuild

Simulator Management

10

Create, boot, shutdown, delete, clone simulators with xcrun simctl

App Lifecycle

8

Install, launch, terminate apps, manage permissions

Debugging & Logging

6

Stream logs, capture screenshots, record screen

Simulator Environment

5

Set GPS location, send push notifications, override status bar

Code Signing

5

List identities, inspect provisioning profiles, check entitlements

Package Management

6

SPM resolve/update, CocoaPods install/update/outdated

Project Scaffolding

5

Create projects, generate SwiftUI views, ViewModels, widgets

IPA Analysis

4

Inspect IPA contents, permissions, binary size, dSYM verification

Code Quality

4

SwiftLint, swift-format, build warnings extraction

Physical Devices

4

List, install, launch apps on connected iOS devices via devicectl


Requirements

  • macOS (required — Xcode tools are macOS-only)

  • Node.js >= 20

  • Xcode installed from the App Store

  • Xcode Command Line Tools — install with:

    xcode-select --install

Optional tools (for specific features)

Tool

Install

Used by

SwiftLint

brew install swiftlint

swiftlint_run, swiftlint_fix

swift-format

brew install swift-format

swift_format_run

CocoaPods

gem install cocoapods

pod_install, pod_update, pod_outdated

XcodeGen

brew install xcodegen

project_create (generates .xcodeproj)


Quick Start

Install globally

npm install -g xcode-pilot-mcp

Or run directly with npx

npx xcode-pilot-mcp

Verify installation

# The server starts on stdio — it will listen for MCP messages
xcode-pilot-mcp

Editor Setup

Claude Code

claude mcp add xcode-pilot -- npx xcode-pilot-mcp

Cursor

Add to your MCP settings (~/.cursor/mcp.json):

{
  "mcpServers": {
    "xcode-pilot": {
      "command": "npx",
      "args": ["-y", "xcode-pilot-mcp"]
    }
  }
}

Windsurf

Add to ~/.windsurf/mcp.json:

{
  "mcpServers": {
    "xcode-pilot": {
      "command": "npx",
      "args": ["-y", "xcode-pilot-mcp"]
    }
  }
}

VS Code (Copilot)

Add to your VS Code settings.json:

{
  "mcp.servers": {
    "xcode-pilot": {
      "command": "npx",
      "args": ["-y", "xcode-pilot-mcp"]
    }
  }
}

Local development

Use the .mcp.json at the project root:

{
  "mcpServers": {
    "xcode-pilot": {
      "command": "node",
      "args": ["build/index.js"],
      "transportType": "stdio"
    }
  }
}

Usage Examples

Build and test a project

"Build my iOS app with the Debug configuration for the iPhone 16 simulator"
→ Uses xcode_build with scheme, configuration, and destination

"Run all unit tests for the MyApp scheme"
→ Uses xcode_test with the appropriate destination

"Run only the LoginTests test class, skip SlowTests"
→ Uses xcode_test with onlyTesting and skipTesting filters

Manage simulators

"List all available simulators"
→ Uses simulator_list to show all devices with their state

"Create a new iPhone 16 Pro simulator with iOS 18"
→ Uses simulator_list_device_types + simulator_list_runtimes to find IDs,
  then simulator_create

"Boot the simulator and install my app"
→ Uses simulator_boot, then app_install with the .app path

Debug and capture

"Take a screenshot of the simulator"
→ Uses screenshot, returns the file path

"Record the simulator screen for 15 seconds"
→ Uses screen_record with duration=15

"Show me the last 5 minutes of logs for my app"
→ Uses log_collect with last="5m" and predicate filter

"Stream live logs from the simulator for 10 seconds"
→ Uses log_stream with timeout=10

App lifecycle

"Launch com.example.myapp on the booted simulator"
→ Uses app_launch with the bundle ID

"Grant camera permission to my app"
→ Uses app_privacy with action="grant", service="camera"

"Open a deep link: myapp://settings/profile"
→ Uses app_open_url with the custom URL scheme

"Where is my app's data stored?"
→ Uses app_get_container with container="data"

Environment simulation

"Set the simulator location to San Francisco"
→ Uses location_set with latitude=37.7749, longitude=-122.4194

"Send a test push notification with title 'Hello'"
→ Uses push_notification with APNs JSON payload

"Set the status bar to 9:41, full battery, full wifi"
→ Uses status_bar_override with time, batteryLevel, wifiBars

"Switch the simulator to dark mode"
→ Uses device_appearance with appearance="dark"

Code signing

"List all my code signing identities"
→ Uses signing_identities

"Show me all installed provisioning profiles"
→ Uses provisioning_profiles with summary for each

"Inspect the entitlements of my built app"
→ Uses entitlements_check on the .app bundle

Package management

"Resolve all SPM dependencies"
→ Uses spm_resolve

"Update my CocoaPods and check for outdated pods"
→ Uses pod_update then pod_outdated

"Show me the dependency tree for my Swift package"
→ Uses spm_show_dependencies with JSON format

Scaffolding

"Create a new SwiftUI iOS project called WeatherApp"
→ Uses project_create with template="swiftui", platform="ios"

"Generate a SwiftUI view called SettingsView with a preview"
→ Uses scaffold_view with includePreview=true

"Create a Core Data model called Task with title, isDone, and dueDate"
→ Uses scaffold_coredata_model with custom attributes

Analysis

"Analyze this IPA file — what's the bundle ID, size, and architectures?"
→ Uses ipa_analyze to unzip and inspect

"Check what privacy permissions this IPA requires"
→ Uses ipa_permissions to list NS*UsageDescription keys

"Verify that my dSYM file matches the release binary"
→ Uses dsym_verify to compare UUIDs

Prompt Cookbook

Ready-to-use prompts for common iOS development workflows:

Full build-test-deploy cycle

Build my project with the Release configuration, run all tests on an iPhone 16 Pro
simulator, and if tests pass, create an archive. Show me the test results.

Simulator setup from scratch

List available iOS runtimes, create a new iPhone 16 simulator with the latest iOS,
boot it, and open the Simulator app so I can see it.

Debug a crash

Stream the simulator logs for 30 seconds while I reproduce the crash.
Filter for error-level messages from my app's bundle ID com.myteam.myapp.

App Store screenshot preparation

Boot the simulator, set the status bar to 9:41 with full battery and full wifi
signal, set carrier name to an empty string, then take a screenshot.

CI/CD validation

Clean the project, build with Release configuration, run all tests,
check SwiftLint violations, and verify the binary size of the built product.

Dependency audit

Show me the full SPM dependency tree, then check if any CocoaPods are outdated.
Also run SwiftLint to check code quality.

New feature scaffolding

Create a SwiftUI view called ProfileView, a corresponding ProfileViewModel,
and a Core Data model called UserProfile with fields: id (UUID), name (String),
email (String), avatarURL (String), and lastLogin (Date).

Physical device deployment

List connected physical devices, install my built app on the first device,
launch it, and stream the device console logs for 20 seconds.

Tool Reference

Build & Compile (8 tools)

Tool

Description

Key Parameters

xcode_build

Build project/workspace

scheme (req), projectPath, configuration, destination, sdk, derivedDataPath, extraArgs, timeoutSeconds

xcode_clean

Clean build artifacts

scheme (req), projectPath, timeoutSeconds

xcode_archive

Create archive for distribution

scheme (req), archivePath (req), projectPath, configuration, timeoutSeconds

xcode_export

Export IPA from archive

archivePath (req), exportPath (req), exportOptionsPlist (req), timeoutSeconds

xcode_test

Run unit and UI tests

scheme (req), destination (req), projectPath, testPlan, onlyTesting, skipTesting, timeoutSeconds

xcode_test_without_building

Run tests without rebuilding

scheme (req), destination (req), projectPath, testPlan, onlyTesting, skipTesting, timeoutSeconds

xcode_list

List schemes, targets, configurations

projectPath, timeoutSeconds

xcode_build_settings

Show resolved build settings

projectPath, scheme, configuration, timeoutSeconds

Simulator Management (10 tools)

Tool

Description

Key Parameters

simulator_list

List all simulators with state

state (filter: "Booted", "Shutdown")

simulator_create

Create new simulator

name (req), deviceTypeId (req), runtimeId (req)

simulator_boot

Boot a simulator

deviceId (req)

simulator_shutdown

Shutdown simulator(s)

deviceId (default: "all")

simulator_delete

Delete a simulator

deviceId (req, or "unavailable")

simulator_erase

Erase all content and settings

deviceId (req)

simulator_open

Open Simulator.app for a device

deviceId (req)

simulator_list_runtimes

List iOS/watchOS/tvOS/visionOS runtimes

simulator_list_device_types

List device types (iPhone, iPad, etc.)

simulator_clone

Clone an existing simulator

deviceId (req), newName (req)

App Lifecycle (8 tools)

Tool

Description

Key Parameters

app_install

Install .app on simulator

deviceId (req), appPath (req)

app_uninstall

Uninstall by bundle ID

deviceId (req), bundleId (req)

app_launch

Launch app by bundle ID

deviceId (req), bundleId (req), args, consolePty, timeout

app_terminate

Terminate running app

deviceId (req), bundleId (req)

app_get_container

Get app container path

deviceId (req), bundleId (req), container ("app"/"data"/"groups")

app_list

List installed apps

deviceId (req)

app_open_url

Open URL for deep link testing

deviceId (req), url (req)

app_privacy

Grant/revoke/reset permissions

deviceId (req), action (req), service (req), bundleId

all, calendar, contacts-limited, contacts, location, location-always, photos-add, photos, media-library, microphone, motion, reminders, siri, speech-recognition, camera, faceid, health, homekit, usertracking

Debugging & Logging (6 tools)

Tool

Description

Key Parameters

log_stream

Stream live logs for N seconds

deviceId (req), predicate, level, timeout (default: 10s)

log_collect

Collect recent logs

deviceId (req), predicate, last ("5m", "1h"), style

screenshot

Capture screenshot as PNG

deviceId (req), outputPath (auto-generated if omitted)

screen_record

Record screen as MP4

deviceId (req), outputPath, duration (default: 10s)

diagnostics

Collect diagnostic report

outputPath

device_appearance

Set light/dark mode

deviceId (req), appearance ("light"/"dark")

subsystem == "com.example.app"
eventMessage contains "error"
subsystem == "com.example.app" AND messageType == error
process == "MyApp"

Simulator Environment (5 tools)

Tool

Description

Key Parameters

location_set

Set GPS coordinates

deviceId (req), latitude (req, -90 to 90), longitude (req, -180 to 180)

location_clear

Clear simulated location

deviceId (req)

push_notification

Send push via APNs JSON payload

deviceId (req), bundleId (req), payload (req, JSON string)

status_bar_override

Override status bar

deviceId (req), time, batteryLevel, batteryState, wifiBars, cellularBars, operatorName, dataNetwork

status_bar_clear

Reset status bar to defaults

deviceId (req)

{
  "aps": {
    "alert": {
      "title": "New Message",
      "body": "You have a new message from John"
    },
    "badge": 1,
    "sound": "default"
  },
  "customKey": "customValue"
}

Code Signing & Provisioning (5 tools)

Tool

Description

Key Parameters

signing_identities

List code signing identities

provisioning_profiles

List installed profiles with details

profile_inspect

Decode and inspect a profile

profilePath (req)

keychain_list

List keychains

entitlements_check

Show entitlements of built app

appPath (req)

Package Management (6 tools)

Tool

Description

Key Parameters

spm_resolve

Resolve SPM dependencies

projectPath, scheme, clonedSourcePackagesDir

spm_update

Update SPM packages

projectPath

spm_show_dependencies

Show dependency tree as JSON

projectPath

pod_install

Run CocoaPods install

projectPath, repoUpdate

pod_update

Update pods (all or specific)

projectPath, podName

pod_outdated

Check outdated pods

projectPath

Project Scaffolding (5 tools)

Tool

Description

Key Parameters

project_create

Create new project + XcodeGen

name (req), template ("swiftui"/"uikit"), platform ("ios"/"macos"/"multiplatform"), outputPath (req), bundleId, organizationName, minimumDeploymentTarget

scaffold_view

Generate SwiftUI View

name (req), outputPath (req), includePreview (default: true)

scaffold_viewmodel

Generate @Observable ViewModel

name (req), outputPath (req)

scaffold_coredata_model

Generate Core Data model

name (req), outputPath (req), attributes (array of {name, type}); requires matching .xcdatamodeld entity

scaffold_widget

Generate WidgetKit extension

name (req), outputPath (req), kind ("static"/"configurable"); iOS 17+ for AppIntents-based configurable widgets

String, Integer16, Integer32, Integer64, Double, Float, Boolean, Date, Binary, UUID, URI

IPA & App Analysis (4 tools)

Tool

Description

Key Parameters

ipa_analyze

Inspect IPA: size, Info.plist, architectures, frameworks

ipaPath (req)

ipa_permissions

List privacy usage descriptions

ipaPath (req)

binary_size

Analyze Mach-O binary size by segment

binaryPath (req)

dsym_verify

Verify dSYM matches binary UUID

dsymPath (req), binaryPath (req)

Code Quality (4 tools)

Tool

Description

Key Parameters

swiftlint_run

Run SwiftLint analysis (JSON output)

path, config

swiftlint_fix

Auto-fix SwiftLint violations

path, config

swift_format_run

Run swift-format lint

path (req), recursive (default: true)

build_warnings

Extract warnings from build log

projectPath, derivedDataPath

Physical Devices (4 tools)

Tool

Description

Key Parameters

physical_device_list

List connected iOS devices (Xcode 15+)

physical_device_install

Install app on device

deviceId (req), appPath (req)

physical_device_launch

Launch app on device

deviceId (req), bundleId (req)

physical_device_console

Launch app and stream console output

deviceId (req), bundleId (req), timeout (1-300 sec, default: 10)


Architecture

src/
├── index.ts              # MCP server entry point, registers all 11 tool categories
├── types.ts              # Environment, ExecResult, ExecOptions interfaces
├── executor.ts           # Shell command execution (execFile, spawn, stdin piping)
├── environment.ts        # Xcode environment detection (xcode-select, xcrun, simctl, devicectl)
├── utils/
│   ├── response.ts       # textResponse, errorResponse, execResultResponse, withErrorHandling
│   ├── validation.ts     # Path, bundle ID, and name validation
│   └── logger.ts         # Structured stderr logging (stdout reserved for MCP protocol)
├── tools/
│   ├── xcodebuild/       # 8 tools — xcodebuild build, clean, archive, export, test
│   ├── simulator/        # 10 tools — xcrun simctl create, boot, shutdown, list, clone
│   ├── app/              # 8 tools — install, launch, terminate, privacy, openurl
│   ├── debug/            # 6 tools — log stream/collect, screenshot, screen record
│   ├── environment/      # 5 tools — location, push notifications, status bar
│   ├── signing/          # 5 tools — identities, profiles, entitlements
│   ├── packages/         # 6 tools — SPM resolve/update, pod install/update
│   ├── scaffold/         # 5 tools — project creation, view/viewmodel/widget generation
│   ├── analyze/          # 4 tools — IPA analysis, binary size, dSYM verification
│   ├── quality/          # 4 tools — SwiftLint, swift-format, build warnings
│   └── device/           # 4 tools — physical device list, install, launch, console
└── templates/            # Swift project and component templates (source of truth for scaffold tools)
    ├── SwiftUIView.swift.template
    ├── ViewModel.swift.template
    ├── CoreDataModel.swift.template
    ├── Widget.swift.template
    └── WidgetConfigurable.swift.template

tests/                    # 195 tests across 15 test files
├── executor.test.ts
├── environment.test.ts
├── utils/
│   ├── response.test.ts
│   └── validation.test.ts
└── tools/                # One test file per tool category

Design Principles

  • One handler per tool — each tool is a single async function in its own file

  • Zod validation — all input parameters validated at the MCP registration layer

  • JSON-first — prefers -j flag for JSON output from simctl commands

  • Graceful errors — actionable error messages (e.g., "Is the simulator booted?")

  • Response truncation — long outputs are truncated using head+tail (start and end) to preserve both log boundaries; 100KB cap on success and error output

  • Timeout management — configurable per-tool with optional timeoutSeconds param; defaults vary by operation

  • No Xcode required at install — environment detection happens at runtime; graceful guidance when tools unavailable


Development

Setup

git clone https://github.com/sitharaj88/xcode-pilot-mcp.git
cd xcode-pilot-mcp
npm install

Build

npm run build        # Compile TypeScript + copy templates + chmod +x
npm run dev          # Watch mode (tsc --watch)

Test

npm test             # Run all tests
npm run test:coverage  # Run with coverage report

Code Quality

npm run lint         # ESLint
npm run lint:fix     # ESLint with auto-fix
npm run format       # Prettier write
npm run format:check # Prettier check only
npm run typecheck    # TypeScript --noEmit
npm run check        # All of the above

Scripts Reference

Script

Description

build

Compile TS, copy templates, make executable

dev

TypeScript watch mode

test

Run vitest

test:coverage

Run vitest with V8 coverage

lint

ESLint check

lint:fix

ESLint auto-fix

format

Prettier write

format:check

Prettier check

typecheck

TypeScript type check

check

typecheck + lint + format:check

prepare

Husky git hooks setup

prepublishOnly

Full quality gate before npm publish


Contributing

See CONTRIBUTING.md for development setup, coding standards, and PR guidelines.


License

MIT — Sitharaj Seenivasan

Available Tools

65 tools
app_get_containerB

Get the file system path to an app's container (app bundle, data, or app group)

ParametersJSON Schema
NameRequiredDescriptionDefault
bundleIdYesApp bundle identifier
deviceIdYesSimulator UDID
containerNoContainer type: "app" (bundle), "data", "groups", or a specific app group identifier

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 responsibility for disclosing behavioral traits. It implies a read-only operation ('Get'), but does not state whether the app must exist, how errors are handled, what happens when the optional container parameter is omitted, or whether this requires a running simulator. The description lacks sufficient 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.

Conciseness4/5

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

The description is a single, clear sentence with no wasted words. However, it could be slightly restructured to front-load the primary purpose and include a brief note on optional output, which would make it even more effective without losing conciseness.

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 3 parameters (one optional) and no output schema, the description is insufficient. It does not explain the return format (e.g., a string path), error conditions (e.g., app not found), or the implications of omitting the container parameter. For a tool that queries file system paths, more context is needed for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds only a redundant listing of container types ('app bundle, data, or app group') already covered by the schema's 'container' parameter description. It does not clarify the default behavior when container is omitted, nor add any syntax or format details beyond the schema.

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

Purpose5/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 the resource ('file system path to an app's container'). It distinguishes this tool from sibling tools like app_launch, app_install, or log_stream, which perform different operations. The explicit mention of container types (app bundle, data, or app group) adds specificity.

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, no prerequisites (e.g., app must be installed on the simulator), and no conditions for when to specify the container parameter or omit it. There is no mention of exclusion cases.

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

app_installC

Install a .app bundle on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
appPathYesPath to the .app bundle
deviceIdYesSimulator UDID

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 only states the basic action without revealing whether the simulator needs to be running, whether existing installations are overwritten, what errors might occur, or what the tool returns. This is insufficient 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?

Single sentence, no wasted words. Information is front-loaded and direct. Every part of the description earns its place, and it is appropriately short 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 tool that installs an app bundle, the description omits critical context: expected return value, error scenarios, and post-install state. With no output schema, the description should clarify these aspects. The current brief statement leaves the agent without sufficient information to handle the tool's behavior properly.

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 'appPath' and 'deviceId' having adequate descriptions in the schema itself. The tool description does not add any additional meaning or context beyond those field descriptions. Baseline 3 is appropriate; no extra value 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?

Description clearly states the verb 'Install', the resource '.app bundle', and the target 'simulator'. It effectively distinguishes from sibling tools like app_uninstall and physical_device_install by specifying the target environment. However, it could be slightly more precise by clarifying what 'install' entails (e.g., copying to simulator without launching).

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 vs alternatives like app_launch or physical_device_install. There is no mention of prerequisites (e.g., simulator must be booted), nor any indication of whether it should be used before other operations. The description lacks any usage context.

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

app_launchB

Launch an installed app on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoLaunch arguments
timeoutNoWhen consolePty is true, duration in seconds to capture console output before stopping (default: 30)
bundleIdYesApp bundle identifier
deviceIdYesSimulator UDID
consolePtyNoAttach console output

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 the full burden. It does not disclose side effects, such as whether the app launches in the foreground, any permissions required, or if it returns a status. The description also fails to mention that the timeout and consolePty parameters relate to capturing console output, which is a behavioral trait.

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 sentence that is brief and to the point, with no unnecessary words. It could benefit from a second sentence to provide usage guidance or behavioral context, but given the tool's straightforward purpose, the length is acceptable.

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

Completeness3/5

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

Given that the tool has 5 parameters and no output schema, the description is somewhat lacking. It does not explain the return value (e.g., if it returns a status or error) or the interaction between parameters like 'consolePty' and 'timeout.' This is a moderate gap for an app launch tool.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value by implying the tool is for launching, but it does not explicitly explain 'consolePty' or 'timeout' in context of app launch behavior, reducing potential clarity. However, the schema itself is well-documented, so the added value is minimal, justifying a slight increase over baseline.

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 'Launch' and the resource 'an installed app on a simulator.' It is specific enough to distinguish from sibling tools like app_install, app_terminate, and app_list, though it could benefit from mentioning the constraint that the app must already be installed.

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

Usage Guidelines3/5

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

The description implies the tool is used for launching an app but does not explicitly state when to use it versus alternatives like app_install or app_terminate. It lacks guidance on prerequisites, such as the simulator being booted, which would help the agent decide when to use this tool.

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

app_listA

List all installed apps on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, side effects, or required permissions. For a listing 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?

A single sentence with no fluff, front-loaded with the action and resource. 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?

The tool is simple (1 parameter, no output schema), but the description does not hint at the return format or behavior. Adequate for a minimal list tool, but could be more complete.

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

Parameters3/5

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

Schema coverage is 100%, and the single parameter 'deviceId' is described ('Simulator UDID'). The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description 'List all installed apps on a simulator' uses a specific verb ('list') and resource ('installed apps on a simulator'), clearly distinguishing it from sibling tools like app_install, app_launch, and other simulator operations.

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

Usage Guidelines3/5

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

The description implies usage (list apps on a specific simulator) but provides no explicit guidance on when to use this tool versus alternatives, 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.

app_open_urlA

Open a URL on a simulator for deep link and universal link testing

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to open (e.g., https://example.com or myapp://path)
deviceIdYesSimulator UDID

TDQS

A3.5/5.0
Behavior3/5

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

The description accurately conveys that the tool opens a URL on a simulator, but with no annotations provided, the description carries the full burden of behavioral transparency. It does not disclose details about side effects (e.g., whether the app is launched if the URL scheme matches), error states (e.g., simulator not booted), or whether the operation is idempotent. It provides basic but incomplete 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 sentence with no wasted words. It is direct and front-loaded with the verb and resource, making it efficient for an agent to parse.

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

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 with only two parameters and no nested objects or output schema, the description is mostly complete. However, it could mention that the simulator must be booted to function, which is a common prerequisite for such tools. The description is adequate for a straightforward tool but misses a key execution context detail.

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 both parameters have descriptions in the schema. The description does not add additional meaning beyond what the schema already provides for the parameters. Therefore, a baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool opens a URL on a simulator for deep link and universal link testing. The verb 'Open' and resource 'URL on a simulator' are specific, and the mention of testing purposes distinguishes it from generic URL opening. However, it could further differentiate from sibling tools like app_launch by clarifying that this is for link navigation, not app launching.

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

Usage Guidelines3/5

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

The description implies usage for testing deep links and universal links, which provides some context. However, there is no explicit guidance on when to use this tool versus alternatives like app_launch or when not to use it, and no mention of prerequisites like the simulator being booted.

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

app_privacyB

Grant, revoke, or reset privacy permissions for an app on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesPermission action: grant, revoke, or reset
serviceYesPrivacy service to modify
bundleIdNoApp bundle identifier (required for grant/revoke)
deviceIdYesSimulator UDID

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 responsibility for behavioral disclosure. It does not mention side effects (e.g., whether reset reverts to default state, if granting an already granted permission is idempotent), permissions required to invoke the tool, or any impact on app state. The only behavioral hint is that bundleId is required for grant/revoke, which 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 13-word sentence, achieving high conciseness with no wasted words. However, it lacks structural elements like bullet points or separate sentences for different aspects (e.g., required arguments, return behavior), which could improve scannability without adding significant length.

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 4 parameters, no output schema, and no annotations, the description should provide more context such as prerequisites (e.g., simulator must be booted, app must be installed), expected output (e.g., success message or error), and behavior of the 'reset' action. The current description is too minimal for an agent to invoke the tool correctly without relying heavily on the schema alone.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for all 4 parameters, so baseline is 3. The description adds one piece of extra semantic value: noting that bundleId is 'required for grant/revoke'. This clarifies parameter usage beyond the schema, but otherwise the description does not elaborate on value formats or constraints.

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

Purpose5/5

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

The description uses a specific verb-resource combination ('Grant, revoke, or reset privacy permissions') and clearly states the target context ('for an app on a simulator'). It distinguishes itself from sibling tools like location_set and push_notification, which operate on different resource types.

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 (e.g., push_notification for notifications, location_set for location overrides). It also omits prerequisites such as the simulator needing to be booted or the app must be installed.

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

app_terminateB

Terminate a running app on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
bundleIdYesApp bundle identifier
deviceIdYesSimulator UDID

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 bears full responsibility for behavioral disclosure. It only states the basic action, failing to explain if the termination is graceful or forceful (e.g., SIGTERM vs SIGKILL), potential data loss, or side effects like unsaved state loss.

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 with the action. However, it could be slightly improved by adding brief context like 'Safely stops the app process' without increasing length significantly.

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

Completeness3/5

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

For a simple two-parameter tool with no output schema, the description is adequate but incomplete. It does not mention that the simulator must be booted, the app must be running, or what the expected outcome is (e.g., no return value, process killed).

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% (both bundleId and deviceId have descriptions). The tool description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Terminate a running app on a simulator' uses a specific verb (terminate) and clearly identifies the resource (running app) and context (simulator). It distinguishes itself from siblings like app_launch, app_uninstall, and app_list, as termination is a unique action.

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 (e.g., app_uninstall for removal, app_launch for starting). It also does not mention prerequisites such as requiring the simulator to be booted or the app to be running.

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

app_uninstallC

Uninstall an app from a simulator by bundle ID

ParametersJSON Schema
NameRequiredDescriptionDefault
bundleIdYesApp bundle identifier (e.g., com.example.app)
deviceIdYesSimulator UDID

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 does not state side effects (e.g., removes all app data and sandbox), permissions needed, or any constraints. For a destructive action like uninstalling, 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, concise sentence that clearly conveys the purpose. Every word earns its place, with no unnecessary repetition or filler.

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

Completeness2/5

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

The tool is simple with only 2 parameters, but as a destructive operation with no annotations and no output schema, the description should provide more context about behavior (e.g., requires booted simulator, removes data, may fail silently if app not found). It is not complete enough for safe agent invocation.

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

Parameters3/5

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

Schema description coverage is 100%, meaning the schema already documents both parameters (bundleId and deviceId). The description adds no additional meaning beyond what is in the schema, so 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 ('Uninstall'), the target resource ('app'), the context ('from a simulator'), and the identifier method ('by bundle ID'). This is a specific verb+resource combination that distinguishes it from sibling tools like app_install, app_launch, and app_terminate, though it does not explicitly differentiate from other uninstall-like operations.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., the simulator must be booted, the app must be installed), nor does it clarify when not to use it or reference sibling tools such as app_terminate for similar operations.

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

binary_sizeA

Analyze Mach-O binary size breakdown by segment

ParametersJSON Schema
NameRequiredDescriptionDefault
binaryPathYesAbsolute path to the Mach-O binary

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It indicates the tool analyzes (a read-only operation) but does not disclose whether it modifies anything, requires specific binary format, or has performance implications. It is minimal but not misleading or contradictory.

Agents need to know what a tool does to the world before 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, informative sentence with zero waste. It is perfectly concise for a tool with one parameter and a straightforward 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 that the tool has one parameter, a clear schema description, and a simple purpose, the description is nearly complete. It could optionally mention the output format, but that is not required without an output schema. The only minor gap is no behavioral disclosure, which is partially covered by the purpose.

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 a single parameter clearly documented as 'Absolute path to the Mach-O binary'. The description does not add additional semantic detail beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool analyzes Mach-O binary size breakdown by segment, specifying both the resource (binary) and the focus (size by segment). It distinguishes well from sibling tools like ipa_analyze or build_warnings that examine different aspects.

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

Usage Guidelines3/5

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

The description implies the tool is for analyzing binary size breakdown, but does not explicitly state when to use it over similar tools like ipa_analyze. No 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.

build_warningsB

Extract and summarize warnings from the most recent Xcode build log

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathNoProject path to narrow down DerivedData search
derivedDataPathNoCustom DerivedData path

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 must fully disclose behavioral traits. It states that warnings are extracted and summarized but does not mention side effects, error handling (e.g., no build log), read-only nature, or whether it modifies any state. This is insufficient for an agent to predict tool behavior.

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

Conciseness4/5

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

The description is a single sentence with no wasted words. It is front-loaded with the core purpose. However, being too terse sacrifices completeness for brevity, preventing a perfect score.

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?

There is no output schema, so the description should describe the return format (e.g., list of warnings, counts, severity). It does not address edge cases like missing build logs or how multiple recent builds are handled. This leaves significant gaps for agent 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%, so the input schema already documents both parameters. The description adds no additional meaning about parameters (e.g., how projectPath or derivedDataPath affect the search). Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb (extract and summarize) and resource (warnings from the most recent Xcode build log). It distinguishes itself from sibling tools like xcode_build, xcode_test, xcode_clean, etc., which perform build, test, or cleaning actions rather than analyzing warnings.

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

Usage Guidelines2/5

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

The description does not provide any explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites like having a recent build log or running xcode_build first. The context of 'most recent' implies a build has occurred, but this is not stated explicitly.

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

device_appearanceC

Set the simulator to light or dark mode

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID
appearanceYesAppearance mode

TDQS

C2.9/5.0
Behavior1/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. The description only says 'Set the simulator to light or dark mode' and omits critical details: whether the simulator must be booted, whether the change persists, whether it affects all apps, or if there are any side effects. This is severely lacking for a tool that mutates simulator state.

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 redundancy. However, the conciseness comes at the cost of missing important behavioral and usage information. It is well-structured but under-informative, earning a 4 rather than a 5.

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 simple tool with 2 parameters and no output schema or annotations, the description should provide enough context for correct invocation. It fails to mention prerequisites (e.g., simulator must be booted, deviceId must come from a list or earlier tool like simulator_list). Without this, an AI agent may attempt to use the tool incorrectly, leading to errors.

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

Parameters3/5

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

Schema coverage is 100%: both parameters have clear descriptions in the schema ('Simulator UDID', 'Appearance mode' with enum). The description adds no additional meaning beyond what the schema already provides. Per the rubric, with high schema coverage, a baseline of 3 is appropriate; no extra value is contributed.

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

Purpose5/5

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

The description uses a specific verb 'Set' and explicitly identifies the resource ('the simulator to light or dark mode'). It clearly distinguishes from sibling tools like simulator_boot, simulator_shutdown, and status_bar_override, which have different purposes. The action and resource are unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For instance, it does not mention that this tool is for toggling appearance during UI testing, nor does it contrast with tools like status_bar_override which might also affect display. There is no exclusion context (e.g., 'only works on booted simulators').

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

diagnosticsB

Collect a diagnostic report from the simulator subsystem

ParametersJSON Schema
NameRequiredDescriptionDefault
outputPathNoOutput directory for the diagnostic archive

TDQS

B3.1/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden. It only states that a diagnostic report is collected, but fails to disclose whether the tool is destructive, requires user consent, or overwrites files at the output path. There is no mention of side effects or access requirements.

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

Conciseness5/5

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

The description is a single, clear sentence that conveys the essential purpose without any wasted words. It is appropriately front-loaded and fits the simplicity of the 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 a single optional parameter and no output schema, the description is too brief. It lacks details about the output (e.g., format, location), behavior (e.g., archiving, cleanup), and prerequisites (e.g., simulator must be running). The agent may miss critical context for correct 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 100% description coverage with a single parameter 'outputPath' and a clear description. The tool description adds no extra meaning beyond the schema, but given full coverage, the baseline is 3. The description does hint that the output is an archive, which provides mild additional context.

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 that the tool collects a diagnostic report from the simulator subsystem, using the verb 'collect' and the resource 'diagnostic report from the simulator subsystem'. This differentiates it from sibling tools like log_collect or screenshot, though it doesn't explicitly contrast with them.

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

Usage Guidelines2/5

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

No usage guidance is provided. There is no indication of when to use this tool versus alternatives (e.g., when to use log_collect vs diagnostics), nor are there preconditions or postconditions described. The agent must infer the purpose.

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

dsym_verifyB

Verify that a dSYM file matches a binary by comparing UUIDs

ParametersJSON Schema
NameRequiredDescriptionDefault
dsymPathYesAbsolute path to the .dSYM file
binaryPathYesAbsolute path to the binary

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 bears full responsibility for disclosing behavior. While it mentions the verification method (UUID comparison), it does not describe what the tool returns (e.g., exit code, success/failure message, or boolean), how it behaves on mismatch (throws error vs. returns false), or whether it requires permissions. Important behavioral traits are omitted.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that immediately conveys the tool's action. Every word serves a purpose. It is concise, though it could be slightly restructured to include return value information without increasing length significantly.

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 that there is no output schema, the description should explain the tool's return value or side effects to make it complete for an agent. It fails to do so – the agent won't know how to interpret the result (success/failure, exit code, or thrown error). For a simple two-parameter tool, this is a significant gap.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions ('Absolute path to the .dSYM file', 'Absolute path to the binary'). The description adds no additional meaning beyond the schema – no constraints, format hints, or examples. Baseline score of 3 is appropriate as the schema already defines the parameters adequately.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Verify that a dSYM file matches a binary by comparing UUIDs'. It uses a specific verb ('Verify') + resource ('dSYM file matches binary') + method ('comparing UUIDs'), which is precise. This purpose is distinct from all sibling tools, which focus on building, archiving, device management, etc.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, when not to use it, or what prerequisites exist. For example, it does not mention that this tool is meant for post-build validation or that it might be used after an archive step. Sibling tools like xcode_archive or build_warnings are not referenced. The agent is left 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.

entitlements_checkB

Show the entitlements embedded in a built app bundle

ParametersJSON Schema
NameRequiredDescriptionDefault
appPathYesAbsolute path to the .app bundle

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It fails to mention whether the tool is read-only, requires specific permissions, or what qualifies as a 'built app bundle'. It also does not clarify if it reads from the embedded.mobileprovision or the binary. This lack of context leaves the agent guessing about side effects and requirements.

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 sentence with no wasted words. While it could benefit from additional structure (e.g., bullet points for return format), it is compact and front-loaded with the core 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 lack of output schema and annotations, the description should provide more context about return format (e.g., list of entitlements, JSON) and edge cases (e.g., missing entitlements, non-existent bundle). It is insufficient for an AI agent to fully understand the tool's behavior and output.

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

Parameters3/5

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

Schema coverage for the single parameter appPath is 100% (already described in the schema as 'Absolute path to the .app bundle'). The tool description adds no extra meaning beyond that, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Show' and the resource 'entitlements embedded in a built app bundle', which differentiates it from sibling tools like profile_inspect or xcode_build_settings. The purpose is unambiguous and specific.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as when inspecting provisioning profiles or code signing. There is no mention of prerequisites (e.g., a valid .app bundle path) or when not to use it.

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

ipa_analyzeA

Analyze an IPA file: size, bundle ID, version, architectures, embedded frameworks

ParametersJSON Schema
NameRequiredDescriptionDefault
ipaPathYesAbsolute path to the .ipa file

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only analysis but does not explicitly state that the tool does not modify the file or require special permissions. The description is somewhat transparent about outputs but lacks explicit behavioral disclosure.

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

Conciseness4/5

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

The description is a single sentence that lists the analysis outputs, making it concise and front-loaded. However, it could be slightly more structured (e.g., by adding 'returns') to improve clarity.

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

Completeness4/5

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

For a simple analysis tool with one parameter and no output schema, the description provides a clear list of what is analyzed, making it reasonably complete. It distinguishes from sibling tools but does not describe the return format, which is acceptable given no output 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% as the only parameter, ipaPath, has a description 'Absolute path to the .ipa file'. The tool description adds no additional meaning beyond what the schema already provides, warranting the baseline score of 3.

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

Purpose5/5

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

The description states 'Analyze an IPA file: size, bundle ID, version, architectures, embedded frameworks', which is a specific verb and resource, and the listed analysis outputs differentiate it from sibling tools like ipa_permissions and binary_size that cover only subsets.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites (e.g., the IPA file must exist and be valid) or when to prefer sibling tools like ipa_permissions for permission analysis alone.

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

ipa_permissionsA

List privacy usage descriptions (NSCameraUsageDescription, etc.) from an IPA's Info.plist

ParametersJSON Schema
NameRequiredDescriptionDefault
ipaPathYesAbsolute path to the .ipa file

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It accurately indicates a read-only extraction from a file, but it does not explain what happens if the IPA file is missing, if the Info.plist lacks these keys, or if there are multiple entries. For a simple readonly scanner, the current level of transparency is adequate but not thorough.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the purpose and key examples (NSCameraUsageDescription). Every word adds value, with no fluff or redundancy. It is front-loaded and perfectly sized for a tool with one parameter.

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

Completeness4/5

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

Given the tool's simplicity (one parameter, no output schema, no nested objects), the description is nearly complete. It covers the core purpose and examples. Minor gaps include missing return format details and edge-case behavior, but the tool's domain is narrow enough that these are not critical 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% for the single parameter, but the tool description adds no additional meaning beyond the schema's 'Absolute path to the .ipa file'. It does not clarify path formats (relative vs. absolute), wildcard support, or validation behavior. Since the schema already covers the parameter, a baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb-resource pairing ('List privacy usage descriptions ... from an IPA'), clearly identifies the tool's function and scope, and is well differentiated from the 60+ sibling tools—none of which reference IPA permission scanning. The mention of concrete keys (NSCameraUsageDescription, etc.) confirms a focused extraction task.

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 that this tool is appropriate when you need to inspect permission strings in an IPA file, but it does not explicitly state when to use it versus alternatives like app_privacy or ipa_analyze, nor does it mention prerequisites (e.g., that the IPA must exist and be accessible). Without this context, an agent may infer correct usage from the clarity but lacks explicit guidance.

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

keychain_listB

List all keychains on this machine

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?

No annotations are provided, so the description carries full burden for behavioral disclosure. It does not mention if the operation is read-only, requires special permissions, or what output format to expect. It only states what it lists, not how it behaves.

Agents need to know what a tool does to the world before 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, complete sentence with no wasted words. It communicates the core function efficiently.

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

Completeness3/5

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

For a zero-parameter tool with no output schema, the description is minimally adequate. It explains what the tool does but omits context like output format or any potential side effects. With no annotations, more behavioral context would be beneficial.

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

Parameters5/5

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

There are zero parameters, and schema description coverage is 100%. The description does not need to add parameter-level meaning since none exist, earning a perfect score.

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

Purpose4/5

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

The description clearly states it lists all keychains on the machine, which is a specific verb+resource combination. It distinguishes itself from sibling tools focused on Xcode builds, simulators, app management, etc., but does not differentiate from potential other keychain 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 no guidance on when to use this tool versus alternatives or any exclusions. Since there are no sibling tools with similar names, the lack of guidelines is less critical, but still absent.

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

location_clearB

Clear the simulated GPS location on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID

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 bears full responsibility for behavioral disclosure. It states only that the tool clears location, omitting whether the operation is destructive (it is), what happens if no location was set, if the simulator must be booted, or what the return value indicates. This is minimal transparency.

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

Conciseness5/5

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

The description is a single, concise sentence (8 words) with no redundant information. Every word earns its place for a simple one-parameter tool.

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

Completeness3/5

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

Given the tool has no output schema and a single parameter, the description is minimally adequate but lacks context about preconditions (e.g., simulator must have a location set) and the exact effect (resets to default location?). It needs slightly more detail to be fully actionable.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for deviceId ('Simulator UDID'). The tool description does not add additional meaning to the parameter beyond what the schema already provides, which meets the baseline for high coverage.

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

Purpose5/5

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

The description clearly states the verb 'Clear' and the resource 'simulated GPS location' on a 'simulator', distinguishing it from siblings like 'location_set' and other simulator tools. The purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., location_set), nor are any prerequisites mentioned (e.g., simulator must be booted, location must previously have been set). The agent receives no context for appropriate invocation.

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

location_setB

Set a simulated GPS location on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID
latitudeYesLatitude coordinate
longitudeYesLongitude coordinate

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 bears the full burden of behavioral disclosure. It does not state whether this action is destructive, reversible, requires authentication, or has side effects like overwriting an existing location. The description is too minimal 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 concise sentence with no unnecessary words, front-loading the action and resource 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?

Given the tool performs a mutation action with no annotations or output schema, the description is incomplete. It lacks information about prerequisites (e.g., simulator must be booted), behavior when coordinates are out of bounds, and return value, leaving significant gaps for 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?

Schema coverage is 100%, so all three parameters are documented in the schema itself. The description does not add meaning beyond the schema, 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 'Set a simulated GPS location on a simulator' using a specific verb ('Set') and resource ('simulated GPS location,' 'simulator'). It distinguishes this from its sibling location_clear, which suggests a clearing action.

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

Usage Guidelines3/5

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

The description implies use for setting a GPS location during simulation but provides no explicit guidance on when to use this tool versus alternatives like location_clear or other simulator tools. There is no discussion of prerequisites, such as whether the simulator must be booted.

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

log_collectA

Collect recent logs from a simulator with time range and predicate filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
lastNoTime range (e.g., "5m", "1h", "30s")
styleNoOutput style
deviceIdYesSimulator UDID
predicateNoLog predicate filter

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions time range and predicate filtering, giving some behavioral context, but does not disclose whether the tool is read-only, if it requires simulator to be booted, or what happens if no logs match the predicate. The verb 'collect' suggests a reading operation, but clarity on side effects is missing.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that communicates the essential information without any wasted words. Every phrase earns its place: the verb 'collect', the resource 'logs from a simulator', and the key filtering capabilities 'time range and predicate filtering'.

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

Completeness4/5

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

Given the tool has 4 parameters, full schema coverage, no output schema, and no annotations, the description is reasonably complete. It communicates the core functionality and filtering capabilities. However, it could mention the output style parameter (enum) and whether results are returned in a specific format or streaming, but the schema compensates for the style part.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value by summarizing that filtering is by time range and predicate, which groups the loosely described parameters into a cohesive intent. It does not add syntax details beyond the schema, but the grouping helps the agent understand 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 tool collects logs from a simulator and mentions time range and predicate filtering. It specifies the resource ('logs from a simulator') and the action ('collect'), distinguishing it from log_stream, which is a sibling tool for live streaming.

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

Usage Guidelines3/5

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

The description implies usage for collecting recent logs with filtering options, but does not explicitly state when to use this tool over alternatives like log_stream or diagnostics. No when-not-to-use guidance or prerequisites are provided.

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

log_streamC

Stream live logs from a simulator for a specified duration

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoMinimum log level
timeoutNoDuration in seconds to capture logs (default: 10)
deviceIdYesSimulator UDID
predicateNoLog predicate filter (e.g., 'subsystem == "com.example.app"', 'eventMessage contains "error"')

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 of behavioral disclosure. It mentions live streaming for a duration but does not disclose whether the tool is read-only or destructive, how connections are managed, or what happens on timeout or errors.

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 communicates the core functionality efficiently. It is front-loaded with the main action (stream live logs) and duration constraint.

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 parameter count (4) and lack of output schema, the description is minimally adequate. It covers the tool's purpose and key constraint (duration) but lacks details on expected output format, error scenarios, or connection lifecycle.

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 baseline is 3. The description adds no extra parameter details beyond what the schema already provides, such as how 'timeout' relates to 'streaming' or the purpose of 'predicate'.

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 streams live logs from a simulator for a specified duration, which is specific and distinct from sibling tools like 'log_collect' and 'physical_device_console'. However, it does not explicitly distinguish it from these sibling tools.

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

Usage 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 'log_collect' or 'physical_device_console'. It does not mention any prerequisites, context, or when not to use it.

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

physical_device_consoleA

Launch an app on a physical device and stream its console output for N seconds

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoDuration in seconds to capture console output (default: 10)
bundleIdYesApp bundle identifier to launch
deviceIdYesDevice identifier

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It says 'stream its console output for N seconds' but does not disclose whether the call is synchronous or asynchronous, what the response contains, if the app is killed after streaming, or side effects. This is a significant gap for a tool that involves streaming output.

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

Conciseness5/5

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

The description is a single, front-loaded sentence of 14 words. It efficiently communicates the action and the adjustable parameter (N seconds) with no wasted text.

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

Completeness2/5

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

The tool has 3 parameters and no output schema. The description does not explain the return value or behavior of the stream (e.g., whether output is returned as a string, file, or live feed). Additionally, prerequisites like device connectivity or boot state are omitted. The response format is a critical missing piece.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter (deviceId, bundleId, timeout) already well-documented. The description adds 'N seconds' which aligns with timeout but adds no new semantics beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Launch' and 'stream' applied to the resource 'app on a physical device' and 'console output'. It differentiates from siblings like physical_device_launch (launch only) and log_stream (logs without launching) by specifying the combined action.

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

Usage Guidelines4/5

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

The description implies usage for launching an app and getting its console output, which is a distinct use case. However, it does not explicitly state when to use this tool versus alternatives like log_stream or physical_device_launch, nor does it mention exclusions or prerequisites.

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

physical_device_installC

Install an app on a connected physical device

ParametersJSON Schema
NameRequiredDescriptionDefault
appPathYesPath to the .app bundle or .ipa
deviceIdYesDevice identifier

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the action without mentioning prerequisites (e.g., device must be connected), potential side effects (e.g., overwriting existing app), return values, or error conditions. This is insufficient 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.

Conciseness3/5

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

The description is very short (8 words) but not appropriately sized; it sacrifices necessary detail for brevity. While concise, it under-specifies the tool's behavior.

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 existence of sibling 'app_install', the lack of differentiation, no output schema, and no annotations, the description is incomplete. It does not clarify the type of app, device connection requirements, or installation behavior.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described. The description adds no additional meaning beyond the schema, so it meets the baseline 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 'Install an app on a connected physical device' clearly states the verb and resource, and the 'physical device' qualifier helps distinguish from the sibling 'app_install'. However, it does not explicitly differentiate from 'app_install' or other installation tools, 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?

No guidance is provided about when to use this tool versus alternatives like 'app_install' or when not to use it. The description lacks context for prerequisites or conditions.

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

physical_device_launchC

Launch an installed app on a connected physical device

ParametersJSON Schema
NameRequiredDescriptionDefault
bundleIdYesApp bundle identifier
deviceIdYesDevice identifier

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 of behavioral disclosure. It only says 'Launch an installed app' but omits critical details: what happens if the device is disconnected, if the app is not installed, if the launch fails, whether the app is brought to foreground, or what the tool returns. This is insufficient for an agent to understand the tool's full behavior and error states.

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 one short sentence of 9 words, which is very concise. It front-loads the core action. However, it sacrifices completeness for brevity; a slightly longer description could add value without losing conciseness.

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 (launching an app on a physical device), the description is incomplete. It lacks prerequisites (e.g., device must be connected and app installed), behavioral details (e.g., does it return success/error?), and any reference to output. Since no output schema is provided, the description should compensate but does not.

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 covers 100% of parameters with descriptions ('App bundle identifier' and 'Device identifier'), so the description adds no extra meaning. Baseline is 3 for high coverage, and the description does not provide additional context like how to obtain these identifiers or format expectations, but does not 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 verb 'Launch' and the resource 'an installed app on a connected physical device', which is specific to physical devices. However, it does not distinguish itself from the sibling tool 'app_launch', which might serve a similar purpose on simulators or other contexts, 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?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., device must be connected, app must be installed) or exclusions (e.g., do not use if the app is not installed). Sibling tools like 'app_launch' or 'physical_device_install' could be confused without context.

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

physical_device_listB

List connected physical iOS devices (requires Xcode 15+ with devicectl)

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?

No annotations are provided, so the description carries the full burden. It only states the purpose and a prerequisite. It does not disclose whether the operation is read-only, what happens if no devices are connected, or any side effects. This is insufficient for a tool with no annotation support.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the key action and resource. It contains no filler words and efficiently conveys 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.

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 output schema, the description should explain what the list returns (e.g., device names, UDIDs, connection status). It does not. Additionally, with no annotations, the description should cover behavioral aspects like idempotency or error conditions. These gaps make it incomplete for an agent to fully understand the tool's behavior.

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?

There are no parameters and the schema coverage is 100% (empty). According to the baseline rule, a score of 3 is appropriate when schema coverage is high but the description adds no additional meaning. The description does not elaborate on the output or any implicit parameters, so it does not exceed the baseline.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'connected physical iOS devices', which is specific and distinguishes it from sibling tools like simulator_list (lists simulators) and physical_device_install (installs). The prerequisite requirement adds further specificity.

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 mentions a prerequisite (Xcode 15+ with devicectl), which provides some usage guidance. However, it does not explicitly state when to use this tool versus alternatives (e.g., simulator_list), nor does it mention when not to use it. The implication is clear from the name, but explicit guidance is lacking.

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

pod_installB

Run CocoaPods install to set up pod dependencies

ParametersJSON Schema
NameRequiredDescriptionDefault
repoUpdateNoRun --repo-update to update the local spec repo
projectPathNoProject directory containing Podfile

TDQS

B3.2/5.0
Behavior2/5

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

The description does not disclose any behavioral traits beyond the basic action. Given no annotations exist, the description fails to convey that the tool modifies the Podfile.lock, downloads dependencies, may require network access, or has side effects. This is insufficient for safe invocation.

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 sentence with no wasted words. However, it could be more concise by merging the verb and resource more naturally, but it's acceptable.

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

Completeness3/5

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

For a simple tool with two parameters and no output schema, the description is somewhat complete but misses key contextual information such as prerequisites (Podfile required), potential errors, and behavioral notes (long-running, network usage). Given the low complexity, a score of 3 is appropriate.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the parameter descriptions in the schema. It does not clarify how the parameters interact or provide additional context like default values or when to set repoUpdate to true.

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 ('Run') and resource ('CocoaPods install') with the purpose of setting up pod dependencies. It is specific and distinguishes the tool from siblings like pod_update and pod_outdated.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as pod_update, spm_resolve, or xcode_build. The description lacks any context about prerequisites, when not to use it, or how it fits into a workflow.

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

pod_outdatedC

Check for outdated CocoaPods dependencies

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathNoProject directory containing Podfile

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. It does not disclose whether the tool modifies anything (it does not), whether it requires network access, what output format is produced, or if any side effects occur. The word 'Check' implies read-only, but no explicit confirmation of safety.

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

Conciseness4/5

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

Single sentence, front-loaded with verb and resource. No filler words, but it could be slightly more informative without harming conciseness.

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?

Tool is simple with one parameter and no output schema, but the description lacks critical details: whether it interacts with the network, what it returns (list of outdated pods?), and whether it requires a resolved Podfile.lock. Given sibling tools exist for update, the description should clarify that it only reports, not modifies.

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 covers the parameter fully with description 'Project directory containing Podfile', so baseline is 3. The description adds no additional detail beyond schema; however, since coverage is 100%, it is adequate.

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 states the verb 'Check' and the resource 'outdated CocoaPods dependencies', which clearly indicates the tool's purpose. It does not explicitly distinguish from sibling tools like pod_install or pod_update, but the name and wording already make the distinction clear.

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 mention of when to use this tool versus alternatives such as pod_update. It lacks guidance on whether this is a dry-run or requires network access, and no context on prerequisites like having CocoaPods installed.

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

pod_updateC

Update CocoaPods dependencies (all or a specific pod)

ParametersJSON Schema
NameRequiredDescriptionDefault
podNameNoSpecific pod to update (updates all if omitted)
projectPathNoProject directory containing Podfile

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 must convey behavioral traits. It only says 'update' without explaining what exactly happens (e.g., modifies Podfile.lock, requires network, potential side effects). There is no mention of safety, destructiveness, or required permissions. For a mutation 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 a single sentence of 8 words, immediately stating the action and scope. It is front-loaded and contains no filler or redundant information. 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?

The tool has no output schema, no annotations, and is a mutation operation. The description fails to explain return values, error states, or prerequisites (e.g., that a Podfile must exist). Given the complexity of dependency management, the description is incomplete and leaves the agent with insufficient context to use the tool confidently.

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 of podName and projectPath. The tool description adds no new meaning beyond paraphrasing the podName parameter. Given the high schema coverage, a baseline of 3 is appropriate; the description does not compensate for any gaps but also does not mislead.

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 'update' and resource 'CocoaPods dependencies', with scope 'all or a specific pod'. It distinguishes from sibling tools like pod_install (install) and pod_outdated (list outdated), but does not explicitly differentiate from pod_install, which could be ambiguous. A explicit mention of when to use each would elevate it to 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 such as pod_install or pod_outdated. It does not mention prerequisites, typical use cases, or when it is inappropriate to use this tool. The agent must infer from the name alone.

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

profile_inspectB

Decode and inspect a provisioning profile to see its full contents

ParametersJSON Schema
NameRequiredDescriptionDefault
profilePathYesAbsolute path to the .mobileprovision file

TDQS

B3.4/5.0
Behavior3/5

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

Given that no annotations are provided, the description carries the full burden of disclosing behavioral traits. It states that the tool 'decode[s] and inspect[s]' the profile to show 'full contents', implying a read-only, non-destructive action. However, it does not specify whether the output is printed to console, returned as structured data, or saved somewhere. The description is adequate but lacks detail about potential side effects or output format.

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

Conciseness5/5

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

The description is a single, efficient sentence that conveys the action and target without any filler. Every word is meaningful, and it is front-loaded with the key verb 'decode and inspect'.

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 simplicity (1 parameter, no output schema) and the sibling tools, the description is mostly adequate. However, it omits what the output actually is (e.g., raw contents parsed and printed, formatted JSON, etc.) and does not clarify if this is purely a display tool or if it returns data for further processing. With no output schema, the description could have added value by describing the return format.

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

Parameters4/5

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

Schema description coverage is 100%. The description adds context by explaining that the 'profilePath' is an absolute path to a .mobileprovision file, which is slightly more specific than the schema's own description ('Absolute path to the .mobileprovision file'). Since the schema already covers the parameter fully, the tool description still adds marginal value by framing the parameter in the context of the tool's action.

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 uses specific verbs ('Decode and inspect') and identifies the resource ('provisioning profile'). It clearly states the tool's purpose, but does not distinguish it from siblings like 'provisioning_profiles' or 'entitlements_check', which could 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 like 'provisioning_profiles' or 'entitlements_check'. It does not mention prerequisites, such as needing a valid .mobileprovision file path, or when this decode action is appropriate.

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

project_createA

Create a new Xcode app project (source tree + XcodeGen project.yml). If xcodegen is installed on PATH, runs xcodegen generate and returns the resulting .xcodeproj path; otherwise creates the source tree and project.yml and reports how to generate the .xcodeproj manually

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name (must start with a letter; letters, numbers, underscores)
bundleIdNoBundle identifier (default: com.<organizationName>.<name>)
platformYesTarget platform
templateYesProject template: SwiftUI or UIKit
outputPathYesParent directory where the project folder will be created
organizationNameNoOrganization name
minimumDeploymentTargetNoMinimum deployment target (default: "17.0")

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It reveals the conditional behavior based on xcodegen presence and the output (path or manual instructions). However, it does not mention side effects like overwriting existing projects, permissions, or error handling, leaving some gaps.

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 sentence that front-loads the main purpose. It uses backticks for code elements and is fairly efficient. The conditional clause makes it slightly longer than ideal, but it remains clear and concise. No wasted words.

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

Completeness3/5

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

Given the tool's complexity (7 parameters, no output schema, no annotations), the description covers the core behavioral differentiator but lacks details on edge cases (e.g., existing directory, invalid path, xcodegen failure). It also does not describe the return format beyond 'path' or 'manual instructions', leaving some ambiguity for the agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add new meaning or context to the parameters; it only implicitly references them (name, template, platform, outputPath) without elaboration. The description's value lies in the behavioral conditional, not parameter semantics.

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

Purpose5/5

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

The description clearly states the tool creates a new Xcode app project with source tree and XcodeGen project.yml. It uses specific verb 'create' and resource 'Xcode app project', and it is distinct from sibling tools (no other project creation tool exists among siblings).

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 on when xcodegen is run automatically vs when manual steps are needed. While it does not explicitly state alternatives or exclusions, the conditional logic is well explained and there are no competing project-creation tools among siblings, so the usage guidance is effective.

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

provisioning_profilesA

List all installed provisioning profiles with name, UUID, team, and expiration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must fully disclose behavioral traits. 'List' implies a read-only, non-destructive operation, but it does not explicitly state safety, performance implications, or what happens when no profiles are installed. The description is adequate for a simple listing but lacks explicit 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 sentence of 12 words, front-loaded with the verb and resource, and contains no extraneous information. Every word earns its place.

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

Completeness4/5

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

For a simple list tool with no parameters and no output schema, the description covers the essential information: what it lists and the fields returned. It is mostly complete, though it could mention that it only lists installed profiles (which is clear from 'installed') and that it requires no arguments.

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 tool has zero parameters, and schema coverage is 100% (trivially). The baseline for 0 parameters with high coverage is 3. The description adds no parameter semantics because there are none to describe.

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

Purpose5/5

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

The description uses a specific verb 'List' and identifies the resource 'all installed provisioning profiles' with fields. It clearly distinguishes from siblings like 'profile_inspect' (which likely inspects a single profile) and 'signing_identities' (lists certificates, not profiles).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'profile_inspect' or 'signing_identities'. The description does not mention that this lists all profiles while others may target specific ones or different resources.

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

push_notificationA

Send a push notification to an app on a simulator via APNs payload JSON

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesAPNs payload as JSON string (e.g., '{"aps":{"alert":"Hello","badge":1}}')
bundleIdYesApp bundle identifier
deviceIdYesSimulator UDID

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states the basic action without disclosing side effects, prerequisites (e.g., simulator must be booted, app installed), error behavior, or whether the notification is simulated or real. This is insufficient for safe agent decision-making.

Agents need to know what a tool does to the world before 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, 14-word sentence that is front-loaded with the action. Every word adds value, and there is no redundancy or fluff.

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

Completeness4/5

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

For a tool with three simple parameters and no output schema, the description covers the core action, target, and method. It does not mention prerequisites or side effects, but given the tool's simplicity, these omissions are minor. The description is generally complete for its complexity level.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter having a clear description. The tool description does not add additional meaning beyond what the schema already provides, meeting the baseline of 3. The example in the payload description is helpful but is part of the schema, not the tool description.

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

Purpose5/5

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

The description uses a specific verb ('Send'), clearly identifies the resource ('push notification to an app on a simulator'), and specifies the method ('via APNs payload JSON'). No sibling tool overlaps with this functionality, so it is well-differentiated.

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 states the action but provides no explicit guidance on when to use this tool vs. alternatives (e.g., app_launch, app_install). There are no sibling tools for push notifications, so usage is implied, but the description lacks any 'when to use' or 'when not to use' instructions.

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

scaffold_coredata_modelB

Generate a Core Data NSManagedObject subclass with attributes

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesEntity name (e.g., User, Task)
attributesNoEntity attributes (defaults to id, name, createdAt)
outputPathYesDirectory to create the file in

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 bears full responsibility for behavioral disclosure. It only states that the tool 'generates' a subclass, but omits critical details: whether it overwrites existing files, whether it requires a valid outputPath directory, side effects on the file system, or that it generates a .swift file. The description is too sparse to inform an agent about the tool's actual behavior.

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

Conciseness4/5

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

The description is a single 7-word sentence with no fluff or redundant information. It is concise but at the expense of completeness. It earns a 4 for efficiency, though it lacks detail that would make it more useful.

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 (code generation with file creation, default attributes, no output schema), the description is insufficient. It does not explain the output format, default behaviors, or error conditions. The schema covers parameter structure but not the tool's overall effect. The description leaves significant gaps for an AI agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all three parameters (name, attributes, outputPath) with their types and descriptions. The description adds no additional meaning beyond the schema, such as explanations of default attribute behavior or the generated file format. Baseline 3 is appropriate given the high schema coverage.

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

Purpose5/5

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

The description 'Generate a Core Data NSManagedObject subclass with attributes' uses a specific verb ('Generate') and specifies the resource ('Core Data NSManagedObject subclass'). It clearly distinguishes from sibling scaffold tools like scaffold_view, scaffold_viewmodel, and scaffold_widget, which target different code artifacts.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., existing Core Data model), context (e.g., Xcode project), or scenarios where it is inappropriate. No exclusions or comparisons with sibling tools are given.

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

scaffold_viewB

Generate a SwiftUI View file with optional preview provider

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesView name (e.g., ProfileView)
outputPathYesDirectory to create the file in
includePreviewNoInclude #Preview macro (default: true)

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 the full burden. It doesn't disclose side effects (does it overwrite existing files?), permissions needed, whether the preview is included by default based on the schema default, or what happens if the directory doesn't exist. The simple description lacks these behavioral 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?

One concise sentence that captures the core functionality. Every word earns its place; no fluff or redundant information.

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

Completeness3/5

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

Given the simple interface (3 params, no output schema, no nested objects), the description is largely adequate. However, lack of behavioral details (overwrite behavior, project context) and usage guidance reduces completeness for a code generation tool. It covers the basics but leaves 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% and the description mentions 'with optional preview provider' which aligns with the includePreview parameter, adding minimal value. The description doesn't elaborate on name or outputPath beyond what the schema says, 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 it generates a SwiftUI View file with optional preview provider, using specific verb 'Generate' and specific resource 'SwiftUI View file'. This distinguishes it from siblings like scaffold_viewmodel and scaffold_coredata_model, though the purpose could be slightly more precise about what 'scaffold' entails.

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 doesn't explicitly say when to use this tool versus alternatives, but the distinction from siblings like scaffold_viewmodel, scaffold_coredata_model, and scaffold_widget is implied by the resource type. No guidance on prerequisites (e.g., project existence) or when not to use it.

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

scaffold_viewmodelB

Generate an @Observable ViewModel class

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesViewModel name (e.g., ProfileViewModel)
outputPathYesDirectory to create the file in

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 full burden for behavioral disclosure. It does not mention side effects (e.g., file creation), required permissions, dependencies (like an existing Xcode project), or whether it overwrites existing files. The generation act is implied but not detailed.

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

Conciseness4/5

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

The description is a single, short sentence that is front-loaded with key information. It is concise and focused, earning its place without extraneous detail.

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 there are only 2 parameters with full schema coverage and no output schema, the description is adequate but not complete. It does not mention what happens if the file already exists, what code conventions are used, or any prerequisites, leaving gaps for a generation tool.

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

Parameters3/5

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

Schema description coverage is high at 100% with the schema already describing 'name' as 'ViewModel name' and 'outputPath' as 'directory'. The description adds the '@Observable' detail but otherwise does not significantly augment parameter meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the tool generates an '@Observable ViewModel class', using a specific verb ('Generate') and resource ('ViewModel class'). It distinguishes itself from sibling tools like 'scaffold_view' and 'scaffold_coredata_model' by specifying the exact type of artifact created.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. However, the sibling tools include other scaffolds like 'scaffold_view' and 'scaffold_coredata_model', and the name and description imply this is for ViewModel classes in Swift/SwiftUI contexts, providing implied usage guidance.

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

scaffold_widgetA

Generate a WidgetKit extension: 'static' uses TimelineProvider/StaticConfiguration, 'configurable' uses the AppIntents-based WidgetConfigurationIntent/AppIntentConfiguration API (iOS 17+)

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoWidget type (default: "static")
nameYesWidget name (e.g., StatusWidget)
outputPathYesDirectory to create the file in

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It adds context by explaining what each widget kind uses (TimelineProvider vs AppIntents). However, it does not disclose whether files are overwritten, naming conventions, or side effects like creating multiple files. This is moderate 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 sentence under 25 words. It is front-loaded with the action and resource, and every word adds value. There is no 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?

With 3 parameters and no output schema, the description is functional but lacks detail about what files are generated, directory structure, or naming conventions. The kind explanation helps, but completeness is average for a code generation tool.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description expands on the 'kind' parameter by explaining the API behind each option, which adds meaning beyond the schema's 'Widget type' description. It does not enhance the other parameters, but this addition justifies a score above baseline.

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

Purpose5/5

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

The description clearly states the verb 'Generate' and the resource 'WidgetKit extension', and it distinguishes between 'static' and 'configurable' kinds. This differentiates it from sibling scaffold tools like scaffold_view and scaffold_viewmodel, which target different resource types.

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

Usage Guidelines3/5

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

The description implies when to use this tool (when you want to generate a WidgetKit extension) but does not provide explicit guidance on when to use it vs. alternatives. Among many scaffold siblings, no exclusions or comparisons are given. The internal differentiation between static and configurable is helpful but not external usage guidance.

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

screen_recordA

Record the simulator screen as MP4 for a specified duration

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID
durationNoRecording duration in seconds (default: 10)
outputPathNoOutput file path (auto-generated if not set)

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It explains the output format (MP4) and implies duration control, but does not state whether the recording is real-time, if there are limits on duration, or how the file is returned (local path vs. captured). There is no contradiction with annotations because none exist.

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

Conciseness4/5

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

The description is a single sentence that efficiently conveys the core action and output format. It is front-loaded with the action. However, it could be slightly longer to include basic usage guidance without losing conciseness.

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

Completeness3/5

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

Given the tool has 3 parameters, no output schema, and no annotations, the description provides minimal context beyond the action. It does not explain return values, file location, or recording behavior (e.g., real-time delay, max duration). While the schema describes parameters, the agent may need more behavioral context to invoke the tool correctly.

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

Parameters3/5

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

Schema documentation coverage is 100% for the 3 parameters, so the baseline is 3. The description does not add any parameter-specific semantics beyond what the schema already provides. It mentions 'specified duration' but does not clarify details like default value or path auto-generation already in the schema.

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

Purpose5/5

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

The description uses a specific verb ('Record') and resource ('simulator screen'), directly states the output format ('MP4'), and clarifies the action is time-bounded ('for a specified duration'). This clearly distinguishes it from sibling tools like 'screenshot' or 'log_stream'.

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

Usage Guidelines3/5

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

The description implies usage for screen recording but does not provide guidance on when to use this tool versus alternatives like 'screenshot' for a single frame or 'log_stream' for video logs. There is no mention of prerequisites (e.g., simulator must be booted) or explicit when-not-to-use scenarios.

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

screenshotB

Capture a screenshot from a simulator as PNG

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID
outputPathNoOutput file path (auto-generated if not set)

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 only states the action and format, but omits key behaviors: whether the simulator must be booted, what state is captured, where the file is saved when outputPath is not set (auto-generated path location is not explained), and whether there are any side effects. This is insufficient for the agent to predict tool behavior.

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

Conciseness4/5

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

The description is a single sentence of 9 words, which is very concise. It efficiently states the main action. However, while concise, it sacrifices valuable context that could be added without becoming verbose. A score of 4 reflects good conciseness with room to include brief but important behavioral notes.

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 (2 params, no output schema), the description is still incomplete. It lacks necessary context such as simulator state requirements, where the output file is stored when not specified, and whether the tool is destructive or read-only. The presence of siblings like 'screen_record', 'simulator_shutdown', etc., makes it unclear when this tool is the right choice. The description does not provide a complete picture for 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?

Schema description coverage is 100% (both 'deviceId' and 'outputPath' have descriptions in the schema). The tool description adds no additional information about the parameters beyond what the schema already provides. Per guidelines, baseline 3 is appropriate when schema does the heavy lifting, and there is no extra value from the description.

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

Purpose5/5

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

The description 'Capture a screenshot from a simulator as PNG' uses a specific verb ('capture') and clearly identifies the resource ('screenshot from a simulator') and output format ('as PNG'). This distinguishes it from siblings like 'screen_record' (video) and other simulator actions, making the purpose immediately clear.

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, particularly 'screen_record' or other capture-related tools. There is no mention of prerequisites (e.g., simulator must be booted) or conditions that would make this tool preferable. The agent is left to infer usage context 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.

signing_identitiesA

List all code signing identities available on this machine

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description correctly identifies this as a read-only listing operation (no side effects). The phrase 'available on this machine' adds useful context about scope, which is non-obvious from the tool name alone.

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

Conciseness5/5

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

The description is a single, short, front-loaded sentence that precisely communicates the tool's purpose without any wasted words.

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

Completeness3/5

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

For a simple parameter-less listing tool, the description is largely complete. However, it could benefit from mentioning that it requires a signed developer identity to be present, or hinting at the output format (e.g., certificate details), though no output schema exists to clarify this.

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

Parameters4/5

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

Schema description coverage is 100% because there are no parameters. The description adds no parameter details, but none are needed. Baseline 4 is appropriate for a zero-parameter tool.

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

Purpose5/5

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

The description uses a specific verb 'List' and a clear resource 'code signing identities available on this machine'. It clearly distinguishes itself from sibling tools like provisioning_profiles or keychain_list.

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 a simple listing use case, but provides no guidance on when to use this tool vs. alternatives like provisioning_profiles for inspecting signing identities, nor any conditions (e.g., prerequisite of having a development team set up).

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

simulator_bootC

Boot a simulator device so it can be used

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID or name

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. It only states the tool boots a device but doesn't disclose behavioral traits such as whether the device must already exist, if booting is synchronous or asynchronous, or what happens if the device is already booted (e.g., error vs no-op). No side effects or state changes are described.

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, short sentence that is front-loaded and to the point. It uses minimal words to convey the core purpose. While it could be a bit more specific, it earns its place without unnecessary fluff.

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 low complexity (1 parameter, no nested objects, no output schema), the description is incomplete. It doesn't explain the boot process, prerequisites, or post-conditions. As a state-changing operation (booting a device), more context is needed for proper 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 one parameter (deviceId) described as 'Simulator UDID or name'. The description adds no additional meaning beyond what the schema already provides. Since coverage is high, 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 'Boot a simulator device so it can be used', which identifies the action ('Boot') and the resource ('simulator device'). It distinguishes this tool from siblings like simulator_list, simulator_create, simulator_shutdown, etc. However, it doesn't specify what 'boot' means compared to 'open' (simulator_open), leaving a minor 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. For instance, it doesn't explain when booting is needed instead of just opening the simulator (simulator_open), or whether booting is required before app_launch. No prerequisites or usage context are mentioned.

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

simulator_cloneA

Clone an existing simulator to create an identical copy

ParametersJSON Schema
NameRequiredDescriptionDefault
newNameYesName for the cloned simulator
deviceIdYesUDID of the simulator to clone

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It states the tool creates a copy, implying a non-destructive read/write operation. However, it doesn't mention side effects like whether the clone is automatically booted, requires same runtime, or if original simulator data is modified. It adds some value by stating 'identical copy', but lacks deeper behavioral details. No contradiction with annotations since none exist.

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

Conciseness5/5

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

The description is a single sentence that conveys the core action and outcome with zero wasted words. It is front-loaded and efficiently structured. Every word earns its place.

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

Completeness3/5

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

Given the tool's moderate complexity (two required parameters, no output schema, no annotations), the description provides the basic purpose but leaves gaps. It doesn't mention return behavior (e.g., does it return the new simulator's UDID?), necessary prerequisites (e.g., source simulator must exist and likely be shut down), or any constraints (e.g., name uniqueness). The context signals indicate no output schema and simple params, so some completeness burden falls on the description.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (deviceId and newName). The description adds 'existing simulator' context which implies deviceId refers to a source, but it doesn't provide additional semantics beyond the schema's descriptions. Baseline of 3 is appropriate since the schema covers the parameters well.

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

Purpose5/5

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

The description clearly states the action 'Clone' and the resource 'an existing simulator', with the outcome 'create an identical copy'. This is specific and distinguishes the tool from siblings like simulator_create (which creates new simulators from scratch) and simulator_list (which lists existing ones). No ambiguity or tautology.

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

Usage Guidelines3/5

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

The description implies usage when a user wants to duplicate a simulator, but it does not provide any explicit guidance on when to use this tool versus alternatives like simulator_create or simulator_erase followed by creation. There is no mention of prerequisites (e.g., whether the source simulator must be shut down) or exclusions. The context from sibling names helps, but the description itself lacks explicit guidance.

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

simulator_createB

Create a new iOS simulator with specified device type and runtime

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSimulator name (e.g., "My iPhone 16")
runtimeIdYesRuntime identifier (e.g., "com.apple.CoreSimulator.SimRuntime.iOS-18-0")
deviceTypeIdYesDevice type identifier (e.g., "com.apple.CoreSimulator.SimDeviceType.iPhone-16")

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It states the action (create) implying a write/mutation operation, which is appropriate. However, it does not disclose whether this requires specific permissions, the effect of name collisions, or any cleanup needed. The description adds marginal behavioral context beyond 'Create' but lacks depth.

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, focused sentence that efficiently communicates the action and key parameters. It is not overspecified or verbose. However, it could be slightly more front-loaded by placing the core action ('Create a new iOS simulator') at the very beginning, though the current structure is still clear and compact.

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 create tool with 3 simple required parameters, no output schema, and no annotations, the description is minimally adequate but not comprehensive. It lacks details on expected outcomes, potential side effects (e.g., does creation block? is it immediate?), or error conditions. Given the complexity of iOS simulator internals (runtime availability, disk space), the description leaves 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%, so the schema already documents each parameter. The description merely restates the schema's purpose ('specified device type and runtime') without adding new semantics like valid value patterns or constraints beyond examples. Baseline 3 is appropriate—the schema does the heavy lifting, and the description offers no additional insight.

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 uses specific verbs and resources ('Create...iOS simulator with specified device type and runtime'), clearly distinguishing the action from sibling tools like simulator_boot, simulator_delete, or simulator_clone, which have different purposes. However, it does not explicitly differentiate from simulator_clone, which may also create a simulator instance.

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 (creating a new simulator) but provides no guidance on when to use this tool versus siblings like simulator_list_runtimes or simulator_list_device_types, which are likely prerequisites. No exclusions or alternatives are mentioned, forcing the agent to infer 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.

simulator_deleteA

Delete a simulator device. Use "unavailable" to remove all unavailable devices

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID or "unavailable"

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals that 'unavailable' triggers removal of all unavailable devices, but does not mention irreversibility, potential errors (e.g., deleting a booted device), or permission requirements. For a destructive tool, this is minimal.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core action and the special case. Every word earns its place with no fluff or redundancy.

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

Completeness4/5

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

For a simple one-parameter tool, the description covers the primary use case and the important special value. It slightly lacks distinction from the sibling tool 'simulator_erase', but overall it is sufficiently complete given the tool's simplicity.

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

Parameters4/5

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

The schema already provides 100% coverage of 'deviceId' with a description of 'Simulator UDID or "unavailable"'. The description adds meaningful semantics by explaining that passing 'unavailable' removes all unavailable devices, which is not evident from the schema alone.

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

Purpose5/5

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

The description clearly states 'Delete a simulator device' with a specific verb and resource. It also explains the special value 'unavailable' for removing unavailable devices, which adds clarity and distinguishes the tool's scope.

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 the primary use and explicitly describes the special 'unavailable' case for bulk deletion. It does not explicitly mention when not to use the tool or name alternatives, so it stops short of a 5.

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

simulator_eraseB

Erase all content and settings from a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description implies a destructive operation ('erase all content and settings'), which is transparent about the mutating nature of the tool. However, it doesn't mention what specific content/settings are affected (e.g., apps, data, preferences), whether the simulator must be booted or shutdown, or what the outcome is (e.g., returns to factory state).

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 conveys the essential purpose without unnecessary words. It is front-loaded with the key action 'erase'. It earns its place but could benefit from slight expansion without losing conciseness.

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 destructive nature and lack of output schema, the description is incomplete. It doesn't document return values (e.g., void vs. confirmation), error conditions (e.g., invalid deviceId, simulator not available), or preconditions (e.g., simulator shutdown required). The single-parameter schema is simple, but the critical behavioral 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% with a single parameter 'deviceId' described as 'Simulator UDID'. The description 'Erase all content and settings from a simulator' adds no additional parameter semantics beyond what the schema already provides. The parameter is self-explanatory, so this is adequate but not additive.

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 'Erase all content and settings from a simulator' clearly specifies the verb 'Erase' and the resource 'simulator', using phrasing familiar to iOS developers (similar to 'Erase All Content and Settings' on a device). It distinguishes itself from sibling tools like simulator_delete (which removes the simulator entirely) and simulator_shutdown (which just powers it off), but doesn't explicitly differentiate.

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 simulator_delete or when not to use it. It doesn't mention prerequisites (e.g., the simulator must be shutdown first) or scenarios where this is appropriate. There is no mention of side effects like data loss.

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

simulator_listA

List all iOS simulators with their state (Booted, Shutdown, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoFilter by state: "Booted", "Shutdown", "Creating", etc.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It states the tool lists simulators (a read operation), but does not disclose any side effects, permissions needed, or behavior when the optional filter is used. Adequate but not detailed.

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

Conciseness5/5

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

A single, front-loaded sentence of 8 words with no filler. Every word contributes value. Highly concise.

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

Completeness3/5

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

For a simple list tool with one optional parameter and no output schema, the description is functional but sparse. It does not mention what additional fields (e.g., UDID, name) are returned, leaving the agent without full context of the response. Could be improved.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no new meaning beyond the schema-provided parameter description; it only echoes that state is included in the output. No enrichment of parameter semantics.

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

Purpose5/5

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

The description clearly states the verb ('List') and resource ('all iOS simulators'), and specifies that state information is included. This distinguishes it from siblings like simulator_list_runtimes and simulator_list_device_types.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., when needing to see available simulators before booting). The context of sibling tools provides implicit differentiation, but the description lacks direct usage advice.

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

simulator_list_device_typesA

List available simulator device types (iPhone, iPad, Apple Watch, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states a read operation without mentioning any side effects, authorization requirements, rate limits, or prerequisites (e.g., whether a booted simulator is needed). The description is minimal.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words. Every part of the sentence contributes to understanding the tool's purpose.

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?

Although the tool is simple, the description does not specify the output format (e.g., list of strings, objects with properties). Without an output schema, more detail about the return value would improve completeness. It adequately covers the operation but lacks output context.

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

Parameters4/5

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

The tool has zero parameters, so the description does not need to add parameter details. The input schema coverage is 100% (empty schema). The description adds no specific parameter semantics, but a baseline of 4 is appropriate given no parameters exist.

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

Purpose5/5

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

The description clearly states the action (List), the resource (simulator device types), and provides examples (iPhone, iPad, Apple Watch). This effectively distinguishes it from sibling tools like simulator_list (which likely lists devices) and physical_device_list.

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

Usage Guidelines3/5

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

While the tool's purpose is straightforward with no parameters, there is no explicit guidance on when to use this versus alternatives like simulator_list or simulator_list_runtimes. Usage is implied, but the description does not provide context for selection.

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

simulator_list_runtimesA

List available simulator runtimes (iOS, watchOS, tvOS, visionOS)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It describes a read-only listing operation, which implies no side effects. For a simple list tool, this is sufficient transparency, though it could mention whether runtimes from Xcode or third-party sources are included.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It concisely communicates the purpose and scope.

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

Completeness4/5

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

For a parameterless list tool with no output schema, the description is nearly complete. It could optionally mention that runtimes correspond to Xcode SDK versions or that output includes version identifiers, but the current text is adequate for an agent to understand what it returns.

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 coverage is 100%, so the schema provides no ambiguity. The description adds value by naming the specific runtimes listed, which helps the agent understand the output scope without needing param 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 states 'List available simulator runtimes' with specific examples (iOS, watchOS, tvOS, visionOS), which clearly identifies the verb, resource, and scope. It also distinguishes from sibling tools like 'simulator_list' which lists devices, and 'simulator_list_device_types' which lists device type templates.

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

Usage Guidelines4/5

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

The description implies this is for discovering runtime options before booting or creating simulators, which is clear context. However, it does not explicitly state when not to use it or name alternatives for related tasks like checking installed versions.

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

simulator_openC

Open Simulator.app and display the specified device

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID

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 must fully disclose behavior. It merely says 'Open Simulator.app and display the specified device,' which implies it launches an app and selects a device, but it does not state whether this is a blocking call, whether it requires the simulator to be installed, or if it fails silently for uninstalled runtimes. The behavioral traits are underspecified.

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 exceptionally concise at 8 words, with no filler. However, it may be too concise—it omits critical behavioral details that could be added without sacrificing brevity. Still, it front-loads the action and avoids 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?

Given the single parameter and lack of output schema, the description should cover setup, execution, and expected outcome. It lacks mention of fallback behavior (e.g., if device is not found), error handling, or typical use cases. For a tool with 42 siblings, this incomplete context hinders correct agent selection.

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 covers 100% of parameters with a single 'deviceId' described as 'Simulator UDID'. The description adds minimal value by linking the parameter to 'display the specified device'. Since schema coverage is complete and the description reinforces the parameter's role, a baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb 'Open' and the resource 'Simulator.app', and specifies that it 'display the specified device' via a deviceId. This distinguishes it from sibling tools like simulator_boot (which boots without necessarily opening the app interface) and simulator_list (which lists devices). The purpose is clear but could be slightly more specific about what 'display' entails.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs alternatives such as simulator_boot or simulator_list. It does not specify prerequisites (e.g., the device must already exist or the simulator must be installed) or mention that this tool should be used before launching apps. With 42 sibling tools, this lack of context makes it harder for an AI agent to select correctly.

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

simulator_shutdownB

Shutdown a simulator or all simulators

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdNoSimulator UDID or "all" (default: "all")

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states the action ('shutdown') without explaining side effects (e.g., whether state is saved, if running apps are terminated, or if the simulator can be rebooted later). The agent is left guessing about the tool's consequences.

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

Conciseness5/5

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

The description is a single sentence with no wasted words. It is front-loaded and efficient, earning 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 simple tool with one optional parameter and no output schema, the description is adequate but not exemplary. It lacks details about return value, success indicators, or error cases. Given the low complexity, a 3 is reasonable.

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% (1 parameter with full description). The description adds no new meaning beyond the schema, which already states 'Simulator UDID or "all" (default: "all")'. 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.

Purpose5/5

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

The description specifies a clear verb ('Shutdown') and resource ('simulator or all simulators'), distinguishing it from siblings like simulator_boot, simulator_delete, and simulator_erase. It is unambiguous and unique among the sibling tools.

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

Usage 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 vs alternatives such as simulator_erase or simulator_delete. There is no mention of prerequisites, warnings (e.g., data loss), or scenarios where shutdown 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.

spm_resolveC

Resolve Swift Package Manager dependencies for a project

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeNoBuild scheme
projectPathNoPath to .xcworkspace or .xcodeproj
clonedSourcePackagesDirNoCustom directory for cloned source packages

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 bears full responsibility for disclosing behavioral traits. The description only says 'Resolve SPM dependencies', implying a write/mutation operation but does not explain side effects (e.g., downloads, lockfile updates), required permissions, or whether it's safe to run repeatedly. This is a significant gap for a tool that likely modifies project state.

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 clearly states the core function. It front-loads the action and avoids unnecessary words. Could be slightly improved by adding brief context about use cases.

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 3 parameters, no output schema, and no annotations, the description should provide more context about return values, side effects, or prerequisites. It is minimally viable but not complete. For instance, it doesn't indicate whether the tool outputs logs or errors, or how long resolution might take.

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

Parameters4/5

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

Schema description coverage is 100%, with each parameter having a clear description. The description adds no extra parameter guidance beyond what the schema provides, but the schema itself is well-documented. Parameters are optional, and the description doesn't clarify interactions (e.g., if both scheme and projectPath are needed). However, with full schema coverage, a score of 4 is justified.

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 verb 'Resolve' and resource 'Swift Package Manager dependencies for a project', which is clear. However, it doesn't distinguish itself from sibling tools like spm_update or spm_show_dependencies, which are closely related package management operations. The purpose is adequate but lacks 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 (e.g., spm_update vs. resolving), nor does it mention prerequisites like requiring SPM dependency files. It is a single statement without usage context or exclusions.

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

spm_show_dependenciesB

Show the Swift Package Manager dependency tree as JSON

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathNoProject directory containing Package.swift

TDQS

B3/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 only states what the tool outputs, but does not reveal whether it is read-only, requires network access, modifies state, or has side effects. For a tool that reads project configuration, 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.

Conciseness3/5

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

The description is a single sentence, which is concise, but it lacks necessary detail. It is front-loaded with the action, but the brevity comes at the cost of completeness. A more informative description of similar length could include usage hints or output shape.

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 (one optional parameter, no output schema), the description minimally covers what it does. However, it does not explain the structure of the dependency tree output, whether it shows transitive dependencies, or what happens if projectPath is omitted (e.g., current directory). This leaves an agent with unanswered questions.

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

Parameters3/5

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

Schema coverage is 100% (the single parameter 'projectPath' has a description in the schema: 'Project directory containing Package.swift'). The description adds no additional meaning beyond the schema. According to the rubric, high schema coverage yields a baseline of 3, and the description does not improve upon it.

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

Purpose5/5

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

The description clearly states the verb 'Show' and the resource 'Swift Package Manager dependency tree', and specifies the output format 'as JSON'. This distinguishes it from sibling tools like spm_resolve (which resolves dependencies) and spm_update (which updates packages), making the purpose immediately clear.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., whether the project must be resolved first), nor does it suggest cases where another tool like spm_resolve would be more appropriate. 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.

spm_updateB

Update Swift Package Manager dependencies to their latest allowed versions

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathNoProject directory containing Package.swift

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 must fully disclose behavioral traits. It only says 'update dependencies to latest allowed versions', but does not explain whether it modifies Package.resolved, requires network access, handles version conflicts, or is a safe operation. For a mutation tool, 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 sentence, concise and to the point. It could be slightly improved by front-loading the key action, but it is efficient and free of unnecessary words.

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 (one parameter, no output schema, no annotations), the description is too minimal. It does not mention return values, side effects, or constraints. A user or agent would need additional context to use this tool safely.

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% (the single parameter 'projectPath' is described as 'Project directory containing Package.swift'). The tool description adds 'latest allowed versions' which provides some context, but does not add significant meaning beyond what the schema already provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'update' and the resource 'Swift Package Manager dependencies', specifying 'latest allowed versions'. It distinguishes from sibling tools like spm_resolve (which resolves without updating) and pod_update (which updates CocoaPods).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a Package.swift), when to prefer spm_resolve, or when updates might fail. The context signals show many sibling tools, but the description offers no differentiation.

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

status_bar_clearB

Reset the simulator status bar to default values

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesSimulator UDID

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It accurately indicates a non-destructive reset operation (no data loss as it resets visual state). However, it does not disclose what the 'default values' are or confirm if any state is lost (e.g., all custom overrides cleared). It adds moderate context beyond the schema.

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

Conciseness5/5

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

The description is extremely concise—one sentence with no fluff. Every word serves a purpose, front-loading the action and result. It is appropriately sized for a simple tool.

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

Completeness4/5

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

Given the tool's simplicity (one required parameter, no output schema), the description adequately covers its purpose. No output schema exists, but the tool likely returns a success status. The context from sibling tools helps infer its use. It could mention that the simulator must be booted, but for a reset operation with one param, it is largely complete.

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

Parameters3/5

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

Schema description coverage is 100% with one parameter described as 'Simulator UDID.' The description does not add meaning beyond that—it does not explain how to obtain the UDID or that it must be for a booted simulator. The baseline is 3 due to full schema coverage, and the description adds no extra 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 uses a specific verb ('Reset') and resource ('simulator status bar') to indicate the tool's action. It clearly states the tool resets to 'default values,' which distinguishes it well from the sibling tool 'status_bar_override' that presumably sets custom values.

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

Usage Guidelines2/5

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

The description gives no explicit context on when to use this tool versus alternatives. It does not mention prerequisites, that the simulator must be booted, or when resetting is preferred over using 'status_bar_override.' The usage is implied but not stated.

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

status_bar_overrideB

Override the simulator status bar display (time, battery, wifi, cellular, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
timeNoTime string (e.g., "9:41")
deviceIdYesSimulator UDID
wifiBarsNoWiFi signal bars (0-3)
dataNetworkNoData network type (e.g., "wifi", "4g", "5g", "lte")
batteryLevelNoBattery level (0-100)
batteryStateNoBattery state
cellularBarsNoCellular signal bars (0-4)
operatorNameNoCarrier/operator name

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavioral traits. It does not state whether the override persists, requires a booted simulator, or has any side effects. The term 'override' hints at mutation but lacks specifics needed for safe invocation.

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 13-word sentence, front-loaded with the verb 'Override'. It is efficient but could benefit from a bit more detail without becoming verbose.

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

Completeness2/5

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

With 8 parameters, no output schema, and no annotations, the description omits critical context such as whether the simulator must be booted, the temporary or permanent nature of the override, and the expected response. This leaves significant gaps for 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?

Schema description coverage is 100%, providing baseline value. The description merely lists categories already evident from property names, adding no extra context on parameter interactions, formatting, or typical usage patterns.

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 'override' and the resource 'simulator status bar display' with examples of what it affects (time, battery, wifi, cellular). This distinguishes it from the sibling tool 'status_bar_clear' which likely reverts overrides.

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

Usage Guidelines3/5

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

The description implies usage for customizing status bar display but does not explicitly state when to use this tool versus alternatives like 'status_bar_clear'. No prerequisites or context for appropriate use are provided.

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

swift_format_runA

Run swift-format lint to check formatting

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to check formatting
recursiveNoRecurse into subdirectories (default: true)

TDQS

A3.5/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 disclosure. It clarifies the tool runs lint mode (not fix), which is key. However, it does not mention if any files are modified (it shouldn't be, but it's not stated), the exit behavior (success/failure on lint violations), or whether it requires a specific environment or configuration file.

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 sentence, concise and front-loaded with the action and tool name. It uses strong verb 'Run' and specific resource 'swift-format lint'. Every word serves a purpose with no filler.

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

Completeness4/5

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

Given the tool has only 2 parameters, no output schema, and no annotations, the description is mostly complete for a lint-check action. It covers the purpose and mode. However, it could note that results are returned via stderr or exit code, but this is not critical for basic 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 coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions ('Path to check formatting', 'Recurse into subdirectories (default: true)'). The parameter semantics are adequately covered by 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 verb 'Run' and the resource 'swift-format lint' with a specific action 'check formatting'. It distinguishes itself from sibling tools like swiftlint_run (a different linter) and swift_format_fix (presumably a fix counterpart) by specifying it runs lint mode.

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

Usage Guidelines3/5

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

The description implies usage for checking Swift file formatting, but does not explicitly state when to use this tool over alternatives like swiftlint_run or swift_format_fix. No when-not-to-use guidance is provided given sibling tools that perform fixes.

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

swiftlint_fixB

Auto-fix SwiftLint violations in the specified path

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to fix (defaults to current directory)
configNoPath to .swiftlint.yml config file

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations present, the description must fully disclose behavioral traits. 'Auto-fix' implies file modification, but the description omits whether files are changed in-place, if backups are created, or what permissions are needed. No side effects or error conditions are mentioned.

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

Conciseness4/5

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

The description is a single, focused sentence with no redundant words. It could benefit from additional context without sacrificing brevity, but as it stands, it is 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?

Given the tool's mutation nature, 0 required parameters, and lack of output schema, the description is too sparse. It should clarify what happens on success/failure, default path behavior, and whether fixes are applied non-interactively. The current description leaves significant gaps for 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?

Schema description coverage is 100% (both path and config have descriptions in the schema). The tool description adds no extra semantics beyond restating 'specified path'. Baseline of 3 is appropriate as the schema already handles parameter documentation.

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

Purpose5/5

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

The description clearly states the verb 'auto-fix', the resource 'SwiftLint violations', and the scope 'specified path'. It effectively distinguishes itself from sibling tools like swiftlint_run (lint without fix) and swift_format_run (different linter).

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 this tool should be used versus alternatives like swiftlint_run, or when not to use it (e.g., on generated files). There is no mention of prerequisites or context for invocation.

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

swiftlint_runA

Run SwiftLint analysis and report violations as JSON

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to lint (defaults to current directory)
configNoPath to .swiftlint.yml config file

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It states the output format (JSON), which is helpful for understanding the return type. However, it does not disclose whether the tool is destructive, whether it modifies files, performance implications for large directories, or what happens if SwiftLint is not installed. The transparency is adequate but not thorough.

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

Conciseness5/5

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

The description is a single sentence that is concise and directly to the point. Every word adds value: 'Run SwiftLint analysis' specifies the action, 'violations' the object, and 'as JSON' the output format. No redundant or verbose phrasing. It fits well within typical usage context.

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

Completeness3/5

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

Given the low complexity (2 optional parameters, no nested objects, no output schema), the description is mostly complete. However, it does not mention that the tool requires an external dependency (SwiftLint) to be installed, nor does it hint at what happens if the path is invalid or if config is missing. A slightly richer description (e.g., mentioning fallback behavior) would improve completeness.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters ('path' and 'config') are described in the input schema. The description does not add extra meaning beyond the schema fields. For example, it does not clarify that 'config' overrides default config, or provide examples. Baseline score of 3 is appropriate since the schema already covers the 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 what the tool does: running SwiftLint analysis and reporting violations as JSON. It uses the specific verb 'Run SwiftLint analysis' and specifies the resource ('violations') and output format ('JSON'). While it's clear, it does not explicitly distinguish itself from sibling tools like swiftlint_fix or swift_format_run, but the context of analyzing without fixing is implied.

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 the basic purpose but offers no guidance on when to use this tool versus alternatives like swiftlint_fix (which suggests fixing). There are no conditions, exclusions, or hints about prerequisites (e.g., requiring SwiftLint to be installed). The implied usage is correct for linting, but lacking explicit contexts limits the score to 3.

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

xcode_archiveC

Create an Xcode archive for distribution

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeYesBuild scheme name
archivePathYesOutput path for the .xcarchive; absolute path required
projectPathNoWhen omitted, xcodebuild runs in the MCP server process's working directory (usually not the project directory); passing projectPath explicitly is recommended
configurationNoBuild configuration (default: "Release")
timeoutSecondsNoCommand timeout in seconds (default: 600)

TDQS

C2.6/5.0
Behavior1/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. The minimal text 'Create an Xcode archive for distribution' reveals nothing about side effects (e.g., whether it modifies project files), execution time, required permissions, or output characteristics. An agent cannot anticipate the tool's runtime behavior.

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

Conciseness4/5

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

The description is a single, concise sentence that is easily readable and front-loaded. However, the extreme brevity sacrifices informative content; a slightly longer description could add crucial context without becoming verbose.

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

Completeness1/5

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

Xcode archiving is a complex, multi-step process. The description omits any explanation of what an archive is, what 'for distribution' entails, how the tool interacts with Xcode projects or signing, or what the output looks like. With 5 parameters, no output schema, and no annotations, the description is far too sparse to be considered complete.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions (e.g., absolute path for archivePath, default Release configuration, timeout range). The description adds no extra meaning beyond what the schema already 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.

Purpose4/5

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

The description 'Create an Xcode archive for distribution' clearly specifies the verb (Create), resource (Xcode archive), and context (for distribution). This distinguishes it from siblings like xcode_build (which only builds) and xcode_export (which exports an already-created archive). The purpose is clear and actionable.

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 archiving vs. building or exporting, nor does it mention prerequisites (e.g., a valid scheme, signing requirements) or alternatives among the many sibling tools. An agent has no basis to decide if this tool is appropriate for a given task.

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

xcode_buildC

Build an Xcode project or workspace with the specified scheme and configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
sdkNoSDK to build with (e.g., "iphonesimulator", "iphoneos")
schemeYesBuild scheme name
extraArgsNoAdditional xcodebuild arguments
destinationNoBuild destination (e.g., "platform=iOS Simulator,name=iPhone 16,OS=latest")
projectPathNoWhen omitted, xcodebuild runs in the MCP server process's working directory (usually not the project directory); passing projectPath explicitly is recommended
configurationNoBuild configuration (e.g., "Debug", "Release")
timeoutSecondsNoCommand timeout in seconds (default: 600)
derivedDataPathNoCustom derived data path

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 fails to mention that builds can be time-consuming, that errors may be printed to stderr, that Xcode must be installed/in path, or that the tool may fail silently if scheme is missing. It does not describe what happens on success/failure.

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

Conciseness4/5

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

The description is a single sentence that quickly conveys the core purpose, making it easy to scan. The schema handles parameter details. However, it could be slightly expanded to cover behavioral notes without becoming verbose.

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 complex build tool with 8 parameters and no output schema, the description is too minimal. It omits return behavior (what output or status codes to expect), error scenarios, and integration notes (e.g., builds may require signing, dependencies). Sibling tools like xcode_test_without_building or xcode_build_settings suggest build context is nuanced.

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 baseline is 3. The description adds no additional semantics beyond the schema's parameter descriptions, which are already informative (e.g., describing default working directory issue for projectPath). For 8 parameters, the description could add ordering or common combinations.

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 states the tool builds an Xcode project or workspace with a specified scheme and configuration, which is a clear verb+resource pair. It distinguishes from siblings like xcode_archive, xcode_test, and xcode_clean by implying this is the primary build step, though could explicitly contrast with those for more precision.

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 xcode_test (which includes build), xcode_clean, or spm_resolve. It does not mention prerequisites (e.g., project must exist, schemes must be shared), nor exclude scenarios like building for testing only.

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

xcode_build_settingsA

Show resolved build settings for a scheme and configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeNoBuild scheme name
projectPathNoWhen omitted, xcodebuild runs in the MCP server process's working directory (usually not the project directory); passing projectPath explicitly is recommended
configurationNoBuild configuration
timeoutSecondsNoCommand timeout in seconds (default: 120)

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It mentions the tool shows settings but does not disclose side effects, permissions needed, whether it modifies state, or what happens if the scheme/configuration is invalid. This is adequate but minimal.

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

Conciseness5/5

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

The description is a single, clear sentence with no fluff. It front-loads the purpose and efficiently conveys the core function.

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 output schema and no annotations, the description could be more complete by noting typical output (e.g., list of key-value pairs) or clarifying that it does not modify the project. It is adequate for a simple read operation but lacks depth.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning beyond what the schema provides for scheme, projectPath, configuration, and timeoutSeconds. 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 it shows 'resolved build settings for a scheme and configuration,' specifying the verb (show) and resources (scheme, configuration). It distinguishes from sibling tools like xcode_build or xcode_test that perform actions rather than display settings.

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 (when inspecting build settings) but does not explicitly state when to use this tool over alternatives like xcode_build or xcode_list. No exclusion criteria or sibling references are given.

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

xcode_cleanB

Clean build artifacts for the specified scheme

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeYesBuild scheme name
projectPathNoWhen omitted, xcodebuild runs in the MCP server process's working directory (usually not the project directory); passing projectPath explicitly is recommended
timeoutSecondsNoCommand timeout in seconds (default: 600)

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. It only says 'clean build artifacts' without disclosing what is cleaned (derived data?), whether destructive, or side effects. Vague and 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?

Single front-loaded sentence with no extra fluff. Could include a bit more detail without losing conciseness, but it's 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?

No output schema, yet description fails to explain return values, error behaviors, or how to confirm success. Lacks completeness for a tool with three parameters and no annotations.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds no extra meaning beyond the schema descriptions (scheme, recommended projectPath, timeout). Acceptable but not enhanced.

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

Purpose5/5

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

Description clearly states the verb 'clean' and resource 'build artifacts' for a specified scheme. This effectively differentiates from sibling tools like xcode_build and xcode_archive.

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 (e.g., when to clean vs rebuild). Does not mention prerequisites or suggested projectPath usage.

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

xcode_exportB

Export an IPA from an Xcode archive using an export options plist

ParametersJSON Schema
NameRequiredDescriptionDefault
exportPathYesOutput directory for the exported IPA; absolute path required
archivePathYesPath to the .xcarchive; absolute path required
timeoutSecondsNoCommand timeout in seconds (default: 300)
exportOptionsPlistYesPath to the export options plist file; absolute path required

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 for behavioral disclosure. The description only states input requirements but reveals nothing about side effects (e.g., file system changes), permissions needed, time cost, or errors from missing entitlements/code signing.

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, clear sentence with no wasted words. It is appropriately sized for the tool's complexity, but could be slightly more informative without bloating.

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 output schema and no annotations, the description lacks completeness. It does not describe what the tool returns (if anything), failure modes, or how the IPA is named. It is sufficient for a basic agent, but leaves 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%, so baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides (paths and plist). The timeoutSeconds parameter is not mentioned.

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 exports an IPA from an Xcode archive using an export options plist, specifying the core verb and resource. It does not distinguish itself from sibling tools, but the action is unique enough among the provided siblings to avoid ambiguity.

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

Usage Guidelines3/5

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

The description implies usage when one has an .xcarchive and wants an IPA, but provides no explicit guidance on when to use this tool versus alternatives (e.g., xcode_build for direct builds, or xcode_archive for archiving). No prerequisites like needing to have created the archive first are mentioned.

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

xcode_listB

List available schemes, targets, and configurations in the project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathNoWhen omitted, xcodebuild runs in the MCP server process's working directory (usually not the project directory); passing projectPath explicitly is recommended
timeoutSecondsNoCommand timeout in seconds (default: 120)

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 responsibility for behavioral disclosure. It only states the output (list of items) but does not describe side effects, error conditions, authentication needs, or that it likely invokes xcodebuild -list. 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.

Conciseness4/5

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

The description is a single sentence, front-loaded with the core action. It is concise and wastes no words. However, it could be slightly expanded (e.g., mention xcodebuild command) without losing 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?

There is no output schema, yet the description does not explain the return format or structure of the listed items (e.g., strings, objects, arrays). Given the low complexity, a list of expectations would be valuable. The description also omits context like 'project path may default to working directory' which is only in the 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% – both parameters (projectPath, timeoutSeconds) have explicit descriptions in the input schema. The tool description adds no further parameter meaning, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'List available schemes, targets, and configurations in the project' with a specific verb ('List') and resource ('schemes, targets, and configurations'). It distinguishes the tool from siblings like xcode_build or xcode_archive that perform actions rather than inspection.

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 no explicit guidance on when to use this tool versus other Xcode tools. The purpose is implied (listing project components), but there is no 'when-to-use' or 'when-not-to-use' context, nor any mention of prerequisites like needing a project path.

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

xcode_testA

Run unit and UI tests for the specified scheme and destination

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeYesBuild scheme name
testPlanNoTest plan name
destinationYesTest destination (e.g., "platform=iOS Simulator,name=iPhone 16")
onlyTestingNoRun only these test targets/classes/methods
projectPathNoWhen omitted, xcodebuild runs in the MCP server process's working directory (usually not the project directory); passing projectPath explicitly is recommended
skipTestingNoSkip these test targets/classes/methods
timeoutSecondsNoCommand timeout in seconds (default: 600)

TDQS

A3.6/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 implies test execution, which is a potentially long-running and resource-intensive operation, but does not specify that tests may fail, that results are output to console or logs, or that the tool blocks until completion. The description adds the timeout default but lacks depth.

Agents need to know what a tool does to the world before 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, short sentence that efficiently conveys the tool's core action and key parameters. Every word is necessary; there is no fluff.

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

Completeness3/5

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

Given the tool's moderate complexity (7 parameters, no output schema), the description is somewhat sparse. It does not address return values, result interpretation, or behavior on failure. However, the sibling tool set suggests testing is a standalone operation, and the description is minimally adequate.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by mentioning the scheme and destination explicitly, and the projectPath parameter includes practical guidance about working directory behavior. The timeoutSeconds description is redundant with the schema, but the overall param info complements the schema well.

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 'Run' and the resources 'unit and UI tests', and specifies the parameters 'scheme and destination'. It distinguishes the tool from siblings like xcode_archive, xcode_build, and xcode_test_without_building by focusing on test execution.

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 testing a specific scheme and destination, which is clear, but it does not explicitly state when to use this tool over alternatives like xcode_test_without_building or xcode_build. There is no guidance on prerequisites or exclusion criteria.

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

xcode_test_without_buildingB

Run tests on previously built code without rebuilding

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeYesBuild scheme name
testPlanNoTest plan name
destinationYesTest destination
onlyTestingNoRun only these test targets
projectPathNoWhen omitted, xcodebuild runs in the MCP server process's working directory (usually not the project directory); passing projectPath explicitly is recommended
skipTestingNoSkip these test targets
timeoutSecondsNoCommand timeout in seconds (default: 600)

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 the full burden of behavioral disclosure. However, it only states that the tool does not rebuild, without mentioning prerequisites (e.g., must have previously built), error conditions, side effects, or return behavior. This is insufficient for a tool with 7 parameters.

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, front-loaded sentence that efficiently conveys the core purpose. It is concise and not wasteful, though it could be slightly more informative 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 tool has 7 parameters, no output schema, and no annotations, the description is very incomplete. It lacks information on return values, error handling, prerequisites, or how to interpret results. The schema covers parameters, but the overall context is insufficient for an agent to use the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are already documented in the schema. The description adds no additional meaning beyond the schema, meeting the baseline of 3. No extra semantics are provided.

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 'Run tests' on the resource 'previously built code' and highlights the distinguishing feature 'without rebuilding', which effectively differentiates it from siblings like xcode_test. It is specific and leaves no ambiguity about the tool's core function.

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 that this tool is for running tests on already built code, but it does not explicitly state when to use it versus alternatives like xcode_test (which builds first) or when not to use it. There is no guidance on prerequisites or exclusions, 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 65 tool updatesv1.1.0
    • First observedapp_get_container
    • First observedapp_install
    • First observedapp_launch
    • First observedapp_list
    • First observedapp_open_url
    • First observedapp_privacy
    • First observedapp_terminate
    • First observedapp_uninstall
    • First observedbinary_size
    • First observedbuild_warnings
    • First observeddevice_appearance
    • First observeddiagnostics
    • First observeddsym_verify
    • First observedentitlements_check
    • First observedipa_analyze
    • First observedipa_permissions
    • First observedkeychain_list
    • First observedlocation_clear
    • First observedlocation_set
    • First observedlog_collect
    • First observedlog_stream
    • First observedphysical_device_console
    • First observedphysical_device_install
    • First observedphysical_device_launch
    • First observedphysical_device_list
    • First observedpod_install
    • First observedpod_outdated
    • First observedpod_update
    • First observedprofile_inspect
    • First observedproject_create
    • First observedprovisioning_profiles
    • First observedpush_notification
    • First observedscaffold_coredata_model
    • First observedscaffold_view
    • First observedscaffold_viewmodel
    • First observedscaffold_widget
    • First observedscreen_record
    • First observedscreenshot
    • First observedsigning_identities
    • First observedsimulator_boot
    • First observedsimulator_clone
    • First observedsimulator_create
    • First observedsimulator_delete
    • First observedsimulator_erase
    • First observedsimulator_list
    • First observedsimulator_list_device_types
    • First observedsimulator_list_runtimes
    • First observedsimulator_open
    • First observedsimulator_shutdown
    • First observedspm_resolve
    • First observedspm_show_dependencies
    • First observedspm_update
    • First observedstatus_bar_clear
    • First observedstatus_bar_override
    • First observedswift_format_run
    • First observedswiftlint_fix
    • First observedswiftlint_run
    • First observedxcode_archive
    • First observedxcode_build
    • First observedxcode_build_settings
    • First observedxcode_clean
    • First observedxcode_export
    • First observedxcode_list
    • First observedxcode_test
    • First observedxcode_test_without_building

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose with descriptive names. The categories (xcode_, simulator_, app_, etc.) help agents easily differentiate between actions, and even similar tools like 'log_stream' vs 'log_collect' are clearly separated by their descriptions.

Naming Consistency4/5

The majority of tools follow a consistent 'category_verb_noun' pattern (e.g., simulator_boot, app_install). However, several tools (binary_size, diagnostics, keychain_list, etc.) lack a category prefix, slightly breaking the pattern. Overall, the naming is predictable and readable.

Tool Count3/5

With 65 tools, the server is very extensive. While the scope justifies many tools (build, test, simulator management, dependency management, etc.), the count is well above the typical range (3-15) and may overwhelm agents. Some tools could arguably be combined, but the current set is comprehensive.

Completeness5/5

The tool surface covers the entire iOS development lifecycle: project creation, building, testing, archiving, exporting, simulator/device management, dependency management (SPM, CocoaPods), code quality (SwiftLint, swift-format), and analysis (IPA, binary size, dSYM). No obvious gaps for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    A Model Context Protocol server that enables AI assistants to build and test Xcode projects directly through a standardized interface, with capabilities for running tests, monitoring progress, and accessing logs in real-time.
    18
    234
    53
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server that provides comprehensive tools for managing iOS simulators, including device control, app lifecycle management, and UI automation. It enables developers to boot devices, install apps, capture screenshots, and simulate user interactions through natural language commands.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to parse Xcode and Swift build outputs into structured, token-efficient formats like JSON or TOON. It provides tools for executing build commands and extracting detailed diagnostic information such as errors, warnings, and test failures.
    8
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    High-performance MCP server for iOS development and test automation. Gives AI coding assistants direct access to iOS simulators with sub-20ms screenshots, UI interaction, building, testing, and an intelligent operator mode.
    8
    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/sitharaj88/xcode-pilot-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server