Skip to main content
Glama

Xcode MCP Server

An MCP (Model Context Protocol) server providing comprehensive Xcode integration for AI assistants. This server enables AI agents to interact with Xcode projects, manage iOS simulators, and perform various Xcode-related tasks with enhanced error handling and support for multiple project types.

Features

Project Management

  • Set active projects and get detailed project information

  • Create new Xcode projects from templates (iOS, macOS, watchOS, tvOS)

  • Add files to Xcode projects with target and group specification

  • Parse workspace documents to find associated projects

  • List available schemes in projects and workspaces

File Operations

  • Read/write files with support for different encodings

  • Handle binary files with base64 encoding/decoding

  • Search for text content within files using patterns and regex

  • Check file existence and get file metadata

  • Create directory structures automatically

Build & Testing

  • Build projects with customizable options

  • Run tests with detailed failure reporting

  • Analyze code for potential issues

  • Clean build directories

  • Archive projects for distribution

CocoaPods Integration

  • Initialize CocoaPods in projects

  • Install and update pods

  • Add and remove pod dependencies

  • Execute arbitrary pod commands

Swift Package Manager

  • Initialize new Swift packages

  • Add and remove package dependencies with various version requirements

  • Update packages and resolve dependencies

  • Generate documentation for Swift packages using DocC

  • Run tests and build Swift packages

iOS Simulator Tools

  • List available simulators with detailed information

  • Boot and shut down simulators

  • Install and launch apps on simulators

  • Take screenshots and record videos

  • Manage simulator settings and state

Xcode Utilities

  • Execute Xcode commands via xcrun

  • Compile asset catalogs

  • Generate app icon sets from source images

  • Trace app performance

  • Export and validate archives for App Store submission

  • Switch between different Xcode versions

Related MCP server: xcode-mcp-server (drewster99)

Installation

Prerequisites

  • macOS with Xcode 14.0 or higher installed

  • Node.js 16 or higher

  • npm or yarn

  • Swift 5.5+ for Swift Package Manager features

  • CocoaPods (optional, for CocoaPods integration)

Setup

Use the included setup script which automates the installation and configuration process:

# Make the script executable
chmod +x setup.sh

# Run the setup script
./setup.sh

What the Setup Script Does:

  1. Environment Verification:

    • Checks that you're running on macOS

    • Verifies Xcode is installed and accessible

    • Confirms Node.js (v16+) and npm are available

    • Checks for Ruby installation

    • Verifies CocoaPods installation (offers to install if missing)

  2. Dependency Installation:

    • Runs npm install to install all required Node.js packages

    • Executes npm run build to compile the TypeScript code

  3. Configuration Setup:

    • Creates a .env file if one doesn't exist

    • Prompts for your projects base directory

    • Asks if you want to enable debug logging

    • Saves your configuration preferences

  4. Claude Desktop Integration (Optional):

    • Offers to configure the server for Claude Desktop

    • Creates or updates the Claude Desktop configuration file

    • Sets up the proper command and arguments to launch the server

When to Use the Setup Script:

  • First-time installation to ensure all prerequisites are met

  • When you want guided configuration with interactive prompts

  • If you want to quickly set up Claude Desktop integration

  • To verify your environment has all necessary components

The script will guide you through the configuration process with clear prompts and helpful feedback.

Option 2: Manual Setup

When to Use Manual Setup:

  • You prefer explicit control over each installation step

  • You have a custom environment or non-standard configuration

  • You're setting up in a CI/CD pipeline or automated environment

  • You want to customize specific aspects of the installation process

  • You're an experienced developer familiar with Node.js projects

Follow these steps for manual installation:

  1. Clone the repository:

    git clone https://github.com/r-huijts/xcode-mcp-server.git
    cd xcode-mcp-server
  2. Verify prerequisites (these must be installed):

    • Xcode and Xcode Command Line Tools

    • Node.js v16 or higher

    • npm

    • Ruby (for CocoaPods support)

    • CocoaPods (optional, for pod-related features)

  3. Install dependencies:

    npm install
  4. Build the project:

    npm run build
  5. Create a configuration file:

    # Option A: Start with the example configuration
    cp .env.example .env
    
    # Option B: Create a minimal configuration
    echo "PROJECTS_BASE_DIR=/path/to/your/projects" > .env
    echo "DEBUG=false" >> .env

    Edit the .env file to set your preferred configuration.

  6. For Claude Desktop integration (optional):

    • Edit or create ~/Library/Application Support/Claude/claude_desktop_config.json

    • Add the following configuration (adjust paths as needed):

    {
      "mcpServers": {
        "xcode": {
          "command": "node",
          "args": ["/path/to/xcode-mcp-server/dist/index.js"]
        }
      }
    }

Setup Troubleshooting

Common Setup Issues:

  1. Build Errors:

    • Ensure you have the correct Node.js version (v16+)

    • Try deleting node_modules and running npm install again

    • Check for TypeScript errors with npx tsc --noEmit

    • Make sure all imports in the code are properly resolved

  2. Missing Dependencies:

    • If you see errors about missing modules, run npm install again

    • For native dependencies, you may need Xcode Command Line Tools: xcode-select --install

  3. Permission Issues:

    • Ensure you have write permissions to the installation directory

    • For CocoaPods installation, you may need to use sudo gem install cocoapods

  4. Configuration Problems:

    • Verify your .env file has the correct format and valid paths

    • Make sure PROJECTS_BASE_DIR points to an existing directory

    • Check that the path doesn't contain special characters that need escaping

  5. Claude Desktop Integration:

    • Ensure the path in the Claude configuration points to the correct location of index.js

    • Restart Claude Desktop after making configuration changes

    • Check that the server is running before attempting to use it with Claude

Usage

Starting the Server

npm start

For development mode with automatic restarts:

npm run dev

Configuration Options

You can configure the server in two ways:

  1. Environment variables in .env file:

    PROJECTS_BASE_DIR=/path/to/your/projects
    DEBUG=true
    ALLOWED_PATHS=/path/to/additional/allowed/directory
    PORT=8080
  2. Command line arguments:

    npm start -- --projects-dir=/path/to/your/projects --port=8080

Key Configuration Parameters

  • PROJECTS_BASE_DIR / --projects-dir: Base directory for projects (required)

  • ALLOWED_PATHS / --allowed-paths: Additional directories to allow access to (comma-separated)

  • PORT / --port: Port to run the server on (default: 3000)

  • DEBUG / --debug: Enable debug logging (default: false)

  • LOG_LEVEL / --log-level: Set logging level (default: info)

Connecting to AI Assistants

The server implements the Model Context Protocol (MCP), making it compatible with various AI assistants that support this protocol. To connect:

  1. Start the Xcode MCP server

  2. Configure your AI assistant to use the server URL (typically http://localhost:3000)

  3. The AI assistant will now have access to all the Xcode tools provided by the server

Tool Documentation

For a comprehensive overview of all available tools and their usage, see Tools Overview.

For detailed usage examples and best practices, see User Guide.

Common Workflows

Setting Up a New Project

// Create a new iOS app project
await tools.create_xcode_project({
  name: "MyAwesomeApp",
  template: "ios-app",
  outputDirectory: "~/Projects",
  organizationName: "My Organization",
  organizationIdentifier: "com.myorganization",
  language: "swift",
  includeTests: true,
  setAsActive: true
});

// Add a Swift Package dependency
await tools.add_swift_package({
  url: "https://github.com/Alamofire/Alamofire.git",
  version: "from: 5.0.0"
});

Working with Files

// Read a file with specific encoding
const fileContent = await tools.read_file({
  filePath: "MyAwesomeApp/AppDelegate.swift",
  encoding: "utf-8"
});

// Write to a file
await tools.write_file({
  path: "MyAwesomeApp/NewFile.swift",
  content: "import Foundation\n\nclass NewClass {}\n",
  createIfMissing: true
});

// Search for text in files
const searchResults = await tools.search_in_files({
  directory: "MyAwesomeApp",
  pattern: "*.swift",
  searchText: "class",
  isRegex: false
});

Building and Testing

// Build the project
await tools.build_project({
  scheme: "MyAwesomeApp",
  configuration: "Debug"
});

// Run tests
await tools.test_project({
  scheme: "MyAwesomeApp",
  testPlan: "MyAwesomeAppTests"
});

Project Structure

xcode-mcp-server/
├── src/
│   ├── index.ts                 # Entry point
│   ├── server.ts                # MCP server implementation
│   ├── types/                   # Type definitions
│   │   └── index.ts             # Core type definitions
│   ├── utils/                   # Utility functions
│   │   ├── errors.js            # Error handling classes
│   │   ├── pathManager.ts       # Path validation and management
│   │   ├── project.js           # Project utilities
│   │   └── simulator.js         # Simulator utilities
│   └── tools/                   # Tool implementations
│       ├── project/             # Project management tools
│       │   └── index.ts         # Project creation, detection, file adding
│       ├── file/                # File operation tools
│       │   └── index.ts         # File reading, writing, searching
│       ├── build/               # Build and testing tools
│       │   └── index.ts         # Building, testing, analyzing
│       ├── cocoapods/           # CocoaPods integration
│       │   └── index.ts         # Pod installation and management
│       ├── spm/                 # Swift Package Manager tools
│       │   └── index.ts         # Package management and documentation
│       ├── simulator/           # iOS simulator tools
│       │   └── index.ts         # Simulator control and interaction
│       └── xcode/               # Xcode utilities
│           └── index.ts         # Xcode version management, asset tools
├── docs/                        # Documentation
│   ├── tools-overview.md        # Comprehensive tool documentation
│   └── user-guide.md            # Usage examples and best practices
├── tests/                       # Tests
└── dist/                        # Compiled code (generated)

How It Works

The Xcode MCP server uses the Model Context Protocol to provide a standardized interface for AI models to interact with Xcode projects. The server architecture is designed with several key components:

Core Components

  1. Server Implementation: The main MCP server that handles tool registration and request processing.

  2. Path Management: Ensures secure file access by validating all paths against allowed directories.

  3. Project Management: Detects, loads, and manages different types of Xcode projects:

    • Standard Xcode projects (.xcodeproj)

    • Xcode workspaces (.xcworkspace)

    • Swift Package Manager projects (Package.swift)

  4. Directory State: Maintains the active directory context for relative path resolution.

  5. Tool Registry: Organizes tools into logical categories for different Xcode operations.

Request Flow

  1. An AI assistant sends a tool execution request to the MCP server.

  2. The server validates the request parameters and permissions.

  3. The appropriate tool handler is invoked with the validated parameters.

  4. The tool executes the requested operation, often using native Xcode commands.

  5. Results are formatted and returned to the AI assistant.

  6. Comprehensive error handling provides meaningful feedback for troubleshooting.

Safety Features

  • Path Validation: All file operations are restricted to allowed directories.

  • Error Handling: Detailed error messages help diagnose issues.

  • Parameter Validation: Input parameters are validated using Zod schemas.

  • Process Management: External processes are executed safely with proper error handling.

Project Type Support

The server intelligently handles different project types:

  • Standard Projects: Direct .xcodeproj manipulation

  • Workspaces: Manages multiple projects within a workspace

  • SPM Projects: Handles Swift Package Manager specific operations

This architecture allows AI assistants to seamlessly work with any type of Xcode project while maintaining security and providing detailed feedback.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style and organization

  • Add comprehensive error handling with specific error messages

  • Write tests for new functionality

  • Update documentation to reflect your changes

  • Ensure compatibility with different project types (standard, workspace, SPM)

Adding New Tools

To add a new tool to the server:

  1. Identify the appropriate category in the src/tools/ directory

  2. Implement the tool using the existing patterns with Zod schema validation

  3. Register the tool in the category's index.ts file

  4. Add error handling with specific error messages

  5. Document the tool in the appropriate documentation files

Troubleshooting

Common Issues

  • Path Access Errors: Ensure the paths you're trying to access are within the allowed directories

  • Build Failures: Check that Xcode command line tools are installed and up to date

  • Tool Not Found: Verify that the tool name is correct and properly registered

  • Parameter Validation Errors: Check the parameter types and requirements in the tool documentation

Debugging

  1. Start the server with debug logging enabled: npm start -- --debug

  2. Check the console output for detailed error messages

  3. Examine the server logs for request and response details

  4. For tool-specific issues, try running the equivalent Xcode command directly in the terminal

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Thanks to the Model Context Protocol team for the MCP SDK

  • Built with TypeScript and Node.js

  • Uses Xcode command line tools and Swift Package Manager

  • Special thanks to all contributors who have helped improve the server's functionality and robustness

Available Tools

76 tools
add_file_to_projectC

Adds a file to the active Xcode project.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoGroup path within the project to add the file to (e.g., 'MyApp/Models'). If not provided, will add to the root group.
filePathYesPath to the file to add to the project
targetNameNoName of the target to add the file to. If not provided, will try to add to the first target.
createGroupsNoWhether to create intermediate groups if they don't exist (default: true)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must carry the transparency burden. It only says 'adds a file', but does not disclose that this modifies the Xcode project file, what happens if the file already exists, or whether the file is copied or referenced. The createGroups default is hidden in the schema, not described.

Agents need to know what a tool does to the world before 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 filler or redundancy. It is front-loaded with the verb and object, making it easy to scan.

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?

Despite having 4 parameters and no output schema, the description provides minimal context. It omits important details such as return behavior, side effects on the project file, and how optional parameters affect the outcome. With no annotations or output schema, the description 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 coverage is 100%, so the schema already documents all parameters with descriptions. The tool description adds no extra parameter semantics beyond the schema, which is the baseline expectation. A score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb 'adds' and the object 'a file to the active Xcode project', which distinguishes it from sibling tools like add_project_to_workspace. It lacks explicit differentiation from all siblings, but the core 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. The description does not mention prerequisites (e.g., active Xcode project), when to prefer add_file_to_project over write_file or create_directory, or any exclusions. The context is implied but not explicit.

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

add_project_to_workspaceB

Adds an existing project to the active workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathYesPath to the project to add to the workspace
workspacePathNoPath to the workspace. If not provided, uses the active workspace.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the mutation ('adds') but does not disclose prerequisites (e.g., workspace must exist), side effects (e.g., modifies workspace file), or what happens if the project is already added. No output schema exists to clarify the result.

Agents need to know what a tool does to the world before 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 eight words, with no fluff or redundancy. It is front-loaded and directly states 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?

This is a mutation tool with no annotations and no output schema, yet the description provides only the basic action. It lacks details about return values, failure modes, or behavioral nuances, making 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?

The schema provides 100% coverage with clear descriptions for both projectPath and workspacePath, so the baseline is 3. The description adds no additional parameter semantics beyond echoing the 'active workspace' concept 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 ('Adds') and resource ('existing project') with target ('active workspace'), clearly differentiating from sibling tools like add_file_to_project and create_workspace.

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 such as create_workspace or add_file_to_project. The description merely states the action without context or exclusions.

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

add_swift_packageA

Adds a Swift Package dependency to the active project. Note: Your project must already be set up for Swift Package Manager (must have a Package.swift file). If you haven't initialized SPM yet, use the init_swift_package tool first.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the Swift package to add
versionNoVersion requirement (e.g., 'exact: 1.0.0', 'from: 1.0.0', 'branch: main')
skipUpdateNoSkip running 'package update' after adding the dependency
productNameNoSpecific product name to add from the package

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It discloses the prerequisite (existing Package.swift) and directs to init_swift_package otherwise, but it does not mention side effects such as modifying Package.swift or running 'package update' by default. This is useful context but incomplete 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?

Two tightly packed sentences: the first states the core action, the second provides a critical prerequisite and alternative. No wasted words, and the most important info is front-loaded.

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

Completeness4/5

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

The tool is relatively simple with 4 well-documented parameters and no output schema. The description covers the primary prerequisite and alternative, which is sufficient for most use cases. It could be improved by noting the default behavior around package update, but the schema's skipUpdate parameter hints at that.

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 all 4 parameters, and the schema provides detailed descriptions (e.g., version requirement syntax). The description adds no parameter-level information, but per the baseline for high coverage, a 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 'Adds' and identifies the resource ('Swift Package dependency') and scope ('active project'), clearly distinguishing it from sibling tools like init_swift_package and remove_swift_package.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use the tool (must have Package.swift) and names the alternative tool (init_swift_package) if the prerequisite isn't met, offering clear exclusions and next steps.

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

analyze_fileB

Analyzes a source file for potential issues using Xcode's static analyzer.

ParametersJSON Schema
NameRequiredDescriptionDefault
sdkNoOptional SDK to use for analysis (e.g., 'iphoneos', 'iphonesimulator'). Defaults to automatic selection based on available devices.
schemeNoOptional scheme to use. If not provided, will use the first available scheme.
filePathYesPath to the source file to analyze. Can be absolute, relative to active directory, or use ~ for home directory.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose whether the analysis is read-only, what side effects it might have (e.g., creating derived data), or what the output looks like. 'Analyzes' implies non-mutation but lacks explicit confirmation.

Agents need to know what a tool does to the world before 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, clearly worded sentence that states the tool's purpose without unnecessary filler. It is front-loaded and easy to parse.

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

Completeness2/5

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

The tool has no output schema and no annotations, leaving the description to cover return values, required environment, and side effects. It only says it analyzes a file, but does not explain how results are returned or what prerequisites exist (e.g., needing an Xcode project). 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 description coverage is 100% with each parameter (sdk, scheme, filePath) having a descriptive text, so the baseline is 3. The description itself adds no parameter-specific information, but the schema already documents them 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 uses a specific verb 'analyzes' with a specific resource 'source file' and names the tool 'Xcode's static analyzer', making its function clear and distinct from sibling tools like build_project, run_tests, or read_file.

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 guidance on when to use this tool instead of alternatives like build_project or run_tests, nor does it mention exclusions. The only implied usage is for checking files, but no explicit context or alternative comparisons are provided.

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

archive_projectB

Archives the active Xcode project for distribution.

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeYesThe scheme to archive. Must be one of the schemes available in the project.
archivePathYesPath where the .xcarchive file will be saved.
destinationNoOptional destination specifier (e.g., 'generic/platform=iOS'). If not provided, uses the default destination for the scheme.
configurationYesBuild configuration to use (e.g., 'Debug' or 'Release').
exportOptionsPlistNoOptional path to an export options property list file for subsequent export operations.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but provides only the basic action. It does not disclose side effects (e.g., creating an .xcarchive file), prerequisites (e.g., active project, valid scheme), or potential failures. The description adds no behavioral context beyond the verb itself.

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 the verb and resource, no fluff. However, it is so brief that it sacrifices completeness for 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?

For a 5-parameter tool with no annotations and no output schema, the description is insufficient. It omits key context like output format, required project state, and relation to export operations. The schema covers parameters but not tool behavior or workflow.

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

Parameters3/5

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

Schema descriptions cover 100% of parameters with clear definitions. The description does not add extra parameter-level semantics, so the baseline of 3 is appropriate given 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?

Description clearly states the action ('Archives'), the resource ('active Xcode project'), and the purpose ('for distribution'). This distinguishes it from sibling tools like build_project or export_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 explicit guidance on when to use this tool versus alternatives. The phrase 'for distribution' provides some context but does not indicate when not to use it or when to prefer a different tool (e.g., export_archive).

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

boot_simulatorA

Boot an iOS simulator by UDID or name

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoThe name of the simulator to boot (will use the most recent iOS version if multiple match)
udidNoThe UDID of the simulator to boot
runtimeNoWhen using name, optionally specify the iOS runtime version (e.g., 'iOS 16')

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention what happens if the simulator is already booted, whether the command waits for boot completion, or any side effects. The only extra behavioral detail ('will use the most recent iOS version if multiple match') is in the schema, not the description.

Agents need to know what a tool does to the world before 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 filler. It front-loads the action and resource immediately, and every word contributes meaning.

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 boot operation with three well-documented parameters and no output schema, the description is minimally adequate. It lacks guidance on expected output, error conditions, or preconditions, but given the tool's simplicity this is a moderate gap rather than a severe one.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters with descriptions. The description adds minimal semantic value by naming the two identification modes (UDID or name), but this is already reflected in the parameter descriptions. 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 ('Boot') with a clear resource ('iOS simulator') and identifies the two targeting methods (UDID or name). This clearly distinguishes it from sibling tools like list_simulators or shutdown_simulator.

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

Usage Guidelines4/5

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

The description implies the primary use case: booting a simulator by UDID or name. It does not explicitly state when not to use it or mention alternatives (e.g., list first), but the context is clear enough for most agents.

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

build_projectA

Builds the active Xcode project using the specified configuration and scheme.

ParametersJSON Schema
NameRequiredDescriptionDefault
sdkNoOptional SDK to use (e.g., 'iphoneos', 'iphonesimulator'). If not provided, will use the default SDK for the project type.
jobsNoMaximum number of concurrent build operations (optional, default is determined by Xcode).
schemeYesName of the build scheme to be built. Must be one of the schemes available in the project.
destinationNoOptional destination specifier (e.g., 'platform=iOS Simulator,name=iPhone 15'). If not provided, a suitable destination will be selected automatically.
configurationYesBuild configuration to use (e.g., 'Debug' or 'Release').
derivedDataPathNoPath where build products and derived data will be stored (optional).

TDQS

A4/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 discloses the primary behavior (building the project) but does not mention prerequisites like having an active project, potential failure modes, or what the tool returns. This is minimal but not misleading; a 2 would be too harsh for a straightforward build operation.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the verb and resource, and contains zero unnecessary words. Every phrase ('active Xcode project', 'specified configuration and scheme') adds value and directly maps to the tool's purpose.

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

Completeness4/5

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

Given the rich input schema and the simplicity of a build operation, the description is largely complete. It clearly indicates what is built and the essential parameters. However, it does not define what an 'active Xcode project' is, which might require knowledge from sibling tools like get_active_project, but this is a minor 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?

The input schema has 100% coverage, with every parameter fully described. The description itself adds no parameter-specific meaning beyond what the schema already provides (e.g., that scheme and configuration are required). Baseline of 3 is appropriate since the schema does all the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool's action ('Builds'), the resource ('active Xcode project'), and the key inputs ('configuration and scheme'). This distinguishes it from sibling tools like build_swift_package, run_tests, or archive_project, making its specific 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 Guidelines4/5

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

The description provides clear context for when to use this tool: building an Xcode project. However, it does not explicitly mention when not to use it or call out alternatives (e.g., build_swift_package for Swift packages or archive_project for releasing). The absence of exclusions keeps it at a 4 rather than a 5.

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

build_spm_packageA

Builds a Swift Package Manager package directly using 'swift build' instead of Xcode.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNoSpecific target to build. If not provided, builds all targets.
verboseNoWhether to show verbose output (default: false)
packagePathNoOptional path to the directory containing Package.swift. If not provided, uses the active project directory.
configurationNoBuild configuration to use (default: debug)

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, so the description must fully disclose behavioral traits. It only states the build mechanism ('swift build') but omits side effects like generating .build artifacts, whether it cleans before building, required permissions, or output format. This is a significant gap for a build operation.

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

Conciseness5/5

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

The description is a single, focused sentence that conveys the essential purpose and method without any wasted words. It is front-loaded and easy to parse.

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

Completeness3/5

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

The tool has moderate complexity with four optional parameters and no output schema or annotations. The description covers the basic purpose but lacks details about build outputs, prerequisites, or how it relates to similar sibling tools like `build_swift_package`, making it only minimally complete for an agent to use 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 all four parameters already documented in the input schema. The description adds no additional meaning to the parameters, 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 clearly states the tool builds a Swift Package Manager package using `swift build` rather than Xcode, providing a specific verb, resource, and method. However, it does not distinguish itself from the sibling tool `build_swift_package`, which may serve a similar or identical role, so it falls short of full differentiation.

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

Usage Guidelines4/5

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

The phrase 'instead of Xcode' implies when to use this tool versus an Xcode-based build, offering clear context. However, it does not explicitly name alternative tools or provide exclusions, such as when to prefer `build_swift_package` or `build_project`.

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

build_swift_packageC

Builds a Swift Package using Swift Package Manager.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobsNoNumber of parallel build jobs
targetNoBuild a specific target
productNoBuild a specific product
verboseNoShow verbose output
buildTestsNoAlso build test targets
showBinPathNoShow binary output path
configurationNoBuild configuration (default: debug)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, and the description only says 'Builds a Swift Package' without disclosing side effects (e.g., creating build artifacts), required permissions, or potential failures. This is minimal behavioral disclosure, leaving the agent unaware of what happens beyond the action itself.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no fluff. It efficiently states the action and target, earning its place without 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?

With 7 parameters, no output schema, and several similar sibling tools, the description is too brief to provide adequate context. It omits information about relationships to sibling tools, expected outputs, or usage nuances, leaving the agent underinformed in ambiguous scenarios.

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?

All 7 parameters have descriptive text in the schema, covering 100% of parameter semantics. The description itself adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states it builds a Swift Package using Swift Package Manager, identifying the tool's primary function with a specific verb and resource. However, it does not distinguish itself from sibling tool 'build_spm_package', so it 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?

No guidance is provided on when to use this tool versus alternatives such as 'build_project' or 'build_spm_package'. The description gives no context on suitable scenarios, prerequisites, or exclusions.

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

change_directoryA

Changes the active directory for relative path operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryPathYesPath to the directory to set as active. Supports absolute paths, paths relative to the current active directory, and ~ for home directory.

TDQS

A3.5/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 states the primary effect but omits side effects such as validation behavior, persistence across calls, interaction with the directory stack, or failure modes. This is a state-changing operation, so more transparency is expected.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero wasted words. It clearly communicates the core action and effect, achieving maximum brevity without losing meaning.

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 (one parameter, no output schema), and the description covers the primary function. However, given the sibling tools for directory navigation, it omits context about how this relates to push_directory/pop_directory and whether the change is persistent or scoped. This leaves a minimal but acceptable level of completeness.

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

Parameters3/5

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

The schema description covers 100% of the parameter, providing detailed guidance on accepted path forms (absolute, relative, ~). The description itself adds no parameter information, but the schema carries the burden. Baseline 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Changes') and resource ('active directory') with a clear scope ('for relative path operations'). This distinguishes it from siblings like get_current_directory (read) and push_directory/pop_directory (stack-based navigation), making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage for setting the base directory for subsequent relative path operations, but it does not explicitly state when to prefer this over push_directory/pop_directory or provide exclusions. No alternative tools are mentioned, leaving the agent to infer the context.

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

check_cocoapodsA

Checks if the active project uses CocoaPods and returns setup information.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeOutdatedNoCheck for outdated pods and include update information. Default: false

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the check is read-only, whether the includeOutdated parameter triggers network operations or additional processing, or what exactly 'setup information' contains. This leaves important behavior undisclosed.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the verb and resource. There is no redundancy or unnecessary detail, making it highly concise and efficient.

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

Completeness3/5

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

For a simple check with one optional parameter and no output schema, the description is adequate but leaves gaps. It does not explain what 'setup information' includes or how includeOutdated modifies the output, and it lacks an explicit read-only guarantee. More detail 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?

The input schema covers 100% of the parameters and includes a clear description for includeOutdated ('Check for outdated pods and include update information. Default: false'). The tool description itself adds no parameter-specific meaning, but the schema already documents the parameter, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the specific action ('Checks') on a specific resource ('active project') regarding CocoaPods usage, and indicates it returns setup information. This distinguishes it from sibling tools like pod_install, pod_update, or pod_outdated, which perform different actions.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool: to verify whether the active project uses CocoaPods and to get setup information. It implies a diagnostic role before using other pod tools, but it does not explicitly mention alternatives or state when not to use it, so it falls 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.

check_file_existsA

Checks if a file or directory exists at the specified path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to check. Can be absolute, relative to active directory, or use ~ for home directory.

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 carries the full burden of behavioral disclosure. It correctly implies a read-only existence check but does not specify the return format (e.g., boolean vs exception), behavior on inaccessible paths, or symlink handling. It adds no detail about side effects, though none are expected.

Agents need to know what a tool does to the world before 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 one sentence, front-loaded with the action, and contains no unnecessary words. 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?

The tool is simple with one well-documented parameter and no output schema. The description is largely complete, but the absence of an output schema means it should clarify the return behavior (e.g., boolean vs error), which it does not. Still, for a trivial existence check, the description provides sufficient context.

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

Parameters3/5

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

The input schema already documents the single parameter 'path' with full coverage (100%), including accepted formats (absolute, relative, ~). The description adds no parameter-specific details beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Checks') and resource ('file or directory'), and specifies the scope ('exists at the specified path'). It distinguishes itself from sibling file operations like read_file, get_file_info, and list_directory by focusing solely on existence.

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 get_file_info or find_files. It does not mention exclusions, prerequisites, or context for decision-making, leaving the agent to infer appropriate usage.

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

clean_projectA

Cleans the build directory for the active Xcode project.

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeNoOptional scheme to clean. If not provided, will use the first available scheme.
configurationNoOptional build configuration to clean (e.g., 'Debug' or 'Release'). If not provided, cleans all configurations.
derivedDataPathNoOptional path to the derived data directory to clean. If not provided, uses Xcode's default location.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It states the action ('Cleans the build directory') but does not mention side effects, such as whether the action is destructive, whether it affects derived data, or whether it requires a specific project state. The brevity leaves the agent without important safety context for a potentially destructive operation.

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

Conciseness5/5

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

The description is a single, clear sentence that directly states the tool's purpose. It is concise and front-loaded with the action, containing no unnecessary words or filler.

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

Completeness3/5

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

For a simple tool with no output schema and fully documented parameters, the description covers the primary purpose. However, the lack of behavioral details (e.g., destructiveness, dependency on the active project) and the absence of annotations leave some contextual gaps. The description is adequate but not rich enough to fully compensate for the missing annotation support.

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 descriptions cover 100% of parameters, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides. The schema is sufficient, but the description does not enhance understanding of the parameters' purpose or interactions.

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 ('Cleans') and the target ('the build directory for the active Xcode project'). It distinguishes itself from related tools like clean_swift_package (which targets Swift packages) and build_project (which builds rather than cleans).

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 cleaning Xcode build artifacts, and the phrase 'active Xcode project' distinguishes it from Swift package cleaning. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites.

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

clean_swift_packageA

Cleans the build artifacts of a Swift Package.

ParametersJSON Schema
NameRequiredDescriptionDefault
resetNoReset the complete build directory
purgeCacheNoAlso purge the global cache

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 disclose behavioral traits. It only states the action without mentioning that cleaning is destructive, removes derived data, or affects global cache. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

A single concise sentence that is front-loaded and contains no filler. Every word adds value.

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

Completeness4/5

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

The tool is simple with two optional boolean parameters fully described in the schema. The description states the purpose adequately for selection and invocation. No output schema is needed. Minor lack is not mentioning side effects, but that is covered under behavioral transparency.

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 parameters are already well-documented (e.g., 'Reset the complete build directory', 'Also purge the global cache'). The description adds no additional parameter meaning, but the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Cleans') and resource ('build artifacts of a Swift Package'), clearly distinguishing it from sibling tool 'clean_project' which targets Xcode projects.

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. The description implies usage for Swift Package build artifacts but does not mention exclusions or compare with sibling tools like 'clean_project'.

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

compile_asset_catalogB

Compiles an asset catalog (.xcassets) using actool

ParametersJSON Schema
NameRequiredDescriptionDefault
appIconNoName of the app icon set to include
platformNoTarget platform (default: iphoneos)
outputDirYesDirectory where compiled assets should be placed
catalogPathYesPath to the asset catalog (.xcassets directory)
targetDevicesNoTarget devices (default: ['iphone', 'ipad'])
minDeploymentTargetNoMinimum deployment target version (default: 14.0)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not state side effects, output format, whether outputDir is created/overwritten, or system requirements like Xcode. This is a significant gap for a compilation tool.

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

Conciseness4/5

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

The description is a single, direct sentence with no filler. It is appropriately concise for the tool's simplicity, though it forgoes any structured detail that could aid understanding.

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

Completeness2/5

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

The tool has six parameters, no annotations, and no output schema. The one-line description does not explain the compilation outcome, return value, or how it fits into a build workflow, leaving substantial gaps for an agent to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully describes all six parameters. The description adds no additional parameter semantics, yielding 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 clearly identifies the action ('Compiles'), the resource ('asset catalog (.xcassets)'), and the mechanism ('using actool'). This is specific and distinguishes it from sibling tools like generate_icon_set.

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 vs alternatives, prerequisites, or expected input/output context. The description is purely a statement of function without usage scenarios.

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

copy_fileB

Copies a file or directory to a new location within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesSource path. Can be absolute, relative to active directory, or use ~ for home directory.
recursiveNoIf true, copy directories recursively
destinationYesDestination path. Can be absolute, relative to active directory, or use ~ for home directory.

TDQS

B3.2/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 does not mention overwrite behavior, recursive requirements for directories, handling of existing destinations, or any side effects. The only extra info is the 'allowed directories' constraint, but it is vague.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the core purpose. It is appropriately sized, with no wasted 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 lack of annotations and output schema, the description is insufficiently complete. It fails to explain key behaviors such as recursive copying requirements for directories, overwrite semantics, or how allowed directories are enforced. This is a mutation tool that requires more 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%, so the parameters are well-documented in the schema. The description does not add additional meaning beyond 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.

Purpose5/5

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

The description clearly states the tool copies a file or directory to a new location, with a specific verb and resource. It distinguishes from move_file by indicating a copy operation, and the 'within allowed directories' constraint adds useful scope.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like move_file, nor any preconditions or exclusions. It merely states what it does, 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.

create_directoryC

Creates a new directory within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to create. Can be absolute, relative to active directory, or use ~ for home directory.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the "allowed directories" constraint but omits critical behaviors such as whether parent directories are created, what happens if the directory already exists, and what return value or error is produced.

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

Conciseness5/5

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

The description is a single, direct sentence that states the purpose without unnecessary words. It is appropriately sized for such a simple tool, though it could include 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 no annotations and no output schema, the description leaves key operational details unstated: what defines "allowed directories," whether recursive creation is supported, and error behavior. The single parameter is well-documented, but the overall context is insufficient for a mutation 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?

The schema provides 100% description coverage for the single 'path' parameter, explaining absolute, relative, and '~' forms. The tool description adds no parameter-specific information beyond the schema, so the baseline score of 3 applies.

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

Purpose4/5

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

The description clearly states the action "Creates a new directory" and the resource, with the constraint "within allowed directories." It distinguishes from sibling tools like change_directory or delete_file, though it does not explicitly differentiate from higher-level creation tools such as create_workspace.

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, no exclusions, and no prerequisites. The only implied context is the tool's name and the vague restriction to "allowed directories," which is not explained.

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

create_workspaceA

Creates a new Xcode workspace and optionally adds existing projects to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the workspace to create
projectsNoOptional array of project paths to add to the workspace
setAsActiveNoWhether to set the new workspace as the active project (default: true)
outputDirectoryYesDirectory where the workspace will be created

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosure. It fails to mention the default setAsActive=true behavior that changes the active project, nor does it address error conditions like existing workspace conflicts. The optional addition of projects is a behavioral detail, but significant side effects 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.

Conciseness5/5

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

The description is a single sentence, front-loaded with the primary action, and contains no waste. It efficiently conveys the core purpose and the optional project addition.

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 fairly simple, but the description omits important context such as the side effect of setting the workspace as active by default and guidance on distinguishing from add_project_to_workspace. The schema covers parameters well, but behavioral and usage context is incomplete for a tool with no annotations or 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 coverage is 100% with each parameter described. The description adds minimal value by mentioning the optional project addition, but it does not elaborate on semantics beyond what the schema already provides. Baseline 3 is appropriate since schema handles the 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 tool creates a new Xcode workspace and optionally adds existing projects, which is a specific verb+resource. It distinguishes from siblings like create_xcode_project (creates a project) and add_project_to_workspace (adds to an existing workspace) by focusing on workspace creation.

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

Usage Guidelines3/5

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

The description implies the tool is for creating workspaces, but it does not explicitly state when to use it over alternatives such as add_project_to_workspace or create_xcode_project. No exclusion criteria or context for when not to use it is provided, leaving the usage guidance implicit.

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

create_xcode_projectB

Creates a new Xcode project using a template.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the project to create
languageNoProgramming language to use (default: swift)
templateYesTemplate to use for the project
setAsActiveNoWhether to set the new project as the active project (default: true)
includeTestsNoWhether to include unit tests (default: true)
includeUITestsNoWhether to include UI tests (default: false)
outputDirectoryYesDirectory where the project will be created
organizationNameNoOrganization name to use in the project
organizationIdentifierNoOrganization identifier (e.g., 'com.example') to use in the project

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the core creation action but does not mention side effects such as setting the project as active, creating test targets, or filesystem modifications. Important behavioral details like whether existing projects are overwritten or what output is produced 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.

Conciseness5/5

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

The description is a single, front-loaded sentence that directly names the action and resource. Every word earns its place, with no filler, repetition, or unnecessary detail.

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 (9 parameters) and the absence of annotations or an output schema, the one-sentence description is not sufficient. It fails to explain return behavior, side effects, or how the various optional parameters (like setAsActive or includeTests) affect the outcome, leaving the agent to infer crucial context.

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

Parameters3/5

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

Schema description coverage is 100%, so all 9 parameters are already documented in the input schema with meaningful descriptions. The tool description adds no additional parameter semantics, which keeps this at the baseline score for high schema coverage.

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

Purpose5/5

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

The description clearly states the specific action ('Creates a new Xcode project') and the mechanism ('using a template'). This unambiguously distinguishes it from sibling tools like create_workspace or init_swift_package, which target different artifact 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 explicit guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It simply states what the tool does without contextualizing it among the many other project, workspace, and package management tools in the sibling list.

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

delete_fileA

Deletes a file or directory within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to delete. Can be absolute, relative to active directory, or use ~ for home directory.
recursiveNoIf true, delete directories recursively

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'within allowed directories' but fails to disclose that deletion is permanent, that recursive behavior is required for non-empty directories, or any failure modes—critical omissions for a destructive 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, front-loaded sentence with no filler. It efficiently states the action and scope, earning a perfect score for 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?

For a simple two-parameter tool with no annotations or output schema, the description covers the core action but lacks important details about permanence and directory behavior. The parameter schema fills gaps, making this minimally viable but not comprehensive.

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

Parameters3/5

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

Schema descriptions cover both path and recursive parameters at 100%, so the schema does the heavy lifting. The description adds the 'allowed directories' restriction, which provides some extra context but does not substantially enhance parameter understanding beyond the schema.

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

Purpose5/5

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

The description clearly states 'Deletes a file or directory' with a specific verb and resource, and adds 'within allowed directories' to define scope, distinguishing it from sibling tools like read_file, write_file, or move_file.

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

Usage Guidelines3/5

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

Usage is implied by the delete verb but no explicit guidance is given about when to use this tool instead of move_file or copy_file, nor are exclusions or conditions mentioned. The 'within allowed directories' constraint gives minimal context but no proactive direction.

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

detect_active_projectB

Attempts to automatically detect the active Xcode project.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceRedetectNoIf true, always try to detect the project even if one is already set (default: false)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only says 'Attempts to automatically detect', hinting at possible failure but not explaining side effects, whether it can overwrite an existing active project, or what happens after detection. The forceRedetect parameter indicates a skip behavior that is not mentioned in the description.

Agents need to know what a tool does to the world before 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 redundant words, front-loaded with the verb and resource. Every word contributes meaning, making it highly concise.

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

Completeness2/5

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

With no output schema and no annotations, the description should at least hint at return values or behavioral outcomes. It does not explain what the tool returns, when it might fail, or the difference between an already-set project and a forced redetect. The low complexity is offset by the lack of essential behavioral context for an agent to invoke it correctly.

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

Parameters3/5

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

The description does not discuss the 'forceRedetect' parameter, but the input schema provides a clear description and default value, giving 100% schema coverage. The baseline of 3 is appropriate because the description adds no semantic value beyond the schema.

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

Purpose5/5

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

The description uses the specific verb 'detect' and resource 'active Xcode project', clearly distinguishing it from siblings like get_active_project (which likely returns current setting) and find_projects (which searches broadly). The word 'automatically' clarifies it performs discovery rather than requiring manual input.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternative guidance is provided. The implication is that it is used when the active project needs to be discovered automatically, but it does not tell the agent when to prefer this over get_active_project or set_project_path, 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.

dump_swift_packageA

Dumps the Package.swift manifest as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention any side effects, prerequisites, or output destination (e.g., stdout), leaving behavioral traits ambiguous.

Agents need to know what a tool does to the world before 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 one-sentence description is highly concise and front-loaded, with no wasted words. It effectively communicates the tool's core function in a single clause.

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

Completeness3/5

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

Given the tool's simplicity (no parameters, no output schema, no annotations), the description is minimally adequate but lacks contextual detail such as whether the dump is read-only, requires an active package context, or writes to stdout. This leaves some gaps for an agent deciding between this and similar tools.

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 zero parameters, so there are no parameter semantics to clarify. The description correctly focuses on the tool's action rather than parameter details, earning the baseline score for tools with no parameters.

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

Purpose5/5

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

The description uses a specific verb 'Dumps' and clearly identifies the target resource as the Package.swift manifest, with output format specified as JSON. This distinguishes it from sibling Swift package tools like get_package_info, which likely serve a different purpose.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor any exclusion criteria. It simply states what the tool does without contextualizing its use case relative to other package management tools.

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

edit_package_swiftA

Directly edit the Package.swift file of the active SPM project. This is useful for making changes that aren't supported by the other SPM tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe new content for the Package.swift file
packagePathNoOptional path to the Package.swift file. If not provided, uses the active project's Package.swift.
createBackupNoWhether to create a backup of the original file (default: true)

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are present, so the description must carry the behavioral transparency burden. It only says 'directly edit' without disclosing that the entire file is overwritten, that a backup is created by default, or any error handling or permission requirements. The mutation behavior is not fully disclosed.

Agents need to know what a tool does to the world before 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, compact sentence with no unnecessary words. It front-loads the primary action and additional context efficiently, earning every word.

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

Completeness3/5

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

The description gives purpose and usage but lacks behavioral details that would be expected given the absence of annotations and output schema. It does not mention backup behavior, file overwrite implications, or project prerequisites. The schema partially compensates, but the description remains moderately complete for a simple file-editing 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?

All three parameters are fully documented in the schema (100% coverage), so the baseline is 3. The description adds no new parameter-specific information beyond what is already in the schema, such as the meaning of packagePath or createBackup.

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 that the tool directly edits the Package.swift file of the active SPM project, using a specific verb and resource. It also distinguishes itself from siblings by noting it handles changes not supported by other SPM tools, making the purpose unmistakable.

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

Usage Guidelines4/5

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

The description explicitly says to use this tool for changes not supported by other SPM tools, providing a clear when-to-use condition. It implies that dedicated tools should be used for supported changes, but does not enumerate specific alternative tool names or provide exhaustive 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.

export_archiveB

Export an Xcode archive for distribution (App Store, Ad Hoc, Enterprise, Development)

ParametersJSON Schema
NameRequiredDescriptionDefault
methodYesDistribution method
teamIdNoTeam ID for code signing. If not provided, will try to use the default team.
exportPathYesDirectory where exported IPA and other files will be placed
archivePathYesPath to the .xcarchive file to export
compileBitcodeNoWhether to compile Bitcode. Default is true for App Store, false otherwise.
stripSwiftSymbolsNoWhether to strip Swift symbols. Default is true.
signingCertificateNoSigning certificate to use. If not provided, will try to use the default certificate for the selected method.
provisioningProfilesNoDictionary mapping bundle identifiers to provisioning profile names.

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 must carry the burden. It only states the high-level export action without disclosing side effects (e.g., file creation, code signing requirements, potential overwrites) or any error/return behavior.

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

Conciseness5/5

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

Single sentence that is immediately understandable and contains no filler. The parenthetical list of distribution methods is useful context without being 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 an operation with 8 parameters and no output schema, the description is too sparse. It doesn't mention what the output looks like (IPA location), prerequisites (e.g., valid archive, signing), or failure modes. The schema covers parameter details but not overall 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?

The input schema provides descriptions for all 8 parameters, including defaults and behaviors for optional ones (e.g., teamId, signingCertificate). The description adds no extra parameter meaning beyond the method list, which duplicates the enum.

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 (export), the resource (Xcode archive), and the purpose (for distribution with four methods). It distinguishes from siblings like archive_project (which creates archives) by focusing on the export step.

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 distribution scenarios (App Store, Ad Hoc, etc.) but does not explicitly say when to use this tool vs alternatives like validate_app or archive_project. No exclusion criteria or alternative tool names are given.

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

find_filesB

Searches for files matching a pattern in a directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesDirectory to search in. Can be absolute, relative to active directory, or use ~ for home directory.
patternYesGlob pattern to match files (e.g., '*.swift' or '**/*.json')
maxDepthNoMaximum directory depth to search
showHiddenNoIf true, include hidden files in the search

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavior. It only says 'searches for files' without disclosing return format, recursion behavior, or hidden file defaults (though schema covers parameters). No context on side effects or output, leaving the agent to infer.

Agents need to know what a tool does to the world before 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 fluff. Front-loaded with action and object. 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?

Despite having 4 params and no output schema, the description gives minimal information. It doesn't describe what is returned (e.g., list of matching paths) or any default behaviors. A tool-calling agent would need to infer from schema or test. Incomplete for a tool with no annotations and 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 provides 100% parameter descriptions, so description adds no extra meaning. It doesn't elaborate on path resolution or glob syntax beyond schema. 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 finds files via pattern matching in a directory. 'Searches for files' is a specific verb+resource, and the schema clarifies pattern as glob. It differentiates from sibling search_in_files (content search) and list_directory (listing).

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. The description implies usage for pattern-based filename lookup but doesn't mention exclusions or alternatives such as search_in_files for content or list_directory for full listings.

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

find_projectsB

Finds Xcode projects in the specified directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNoDirectory to search in. Defaults to projects base directory.
includeSPMNoIf true, include Swift Package Manager projects
includeWorkspacesNoIf true, include .xcworkspace files

TDQS

B3.2/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 disclosure. It does not explain what exactly constitutes an Xcode project (e.g., .xcodeproj directories), whether the search is recursive, what the output format is, or how the includeSPM and includeWorkspaces parameters alter the default behavior.

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

Conciseness5/5

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

The description is a single sentence, direct and free of redundancy. It is appropriately sized for a simple tool and front-loads the core action and object.

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 an output schema, the description does not explain what the tool returns (paths? names?), nor does it describe the impact of the optional parameters. The behavior of including/excluding workspaces and SPM packages is left entirely to the schema, which 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?

The schema provides complete descriptions for all three parameters, so the baseline is 3. The description adds no additional meaning beyond the existence of the directory parameter; it does not clarify the semantics or default values of includeSPM and includeWorkspaces.

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 specific action (finds) and resource (Xcode projects) with a location qualifier, clearly distinguishing it from generic file search tools like find_files. However, it doesn't explicitly mention that it can also include workspaces or Swift Package Manager projects, which are key differentiators.

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 phrase 'in the specified directory' implies a scoped search, and the tool's purpose suggests it is for locating project roots before using tools like get_project_configuration. However, it lacks explicit guidance on when to prefer this over alternatives like find_files or list_directory, and no exclusion criteria are provided.

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

generate_icon_setA

Generate an app icon set from a source image

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoTarget platform (default: ios)
outputPathYesPath where to create the AppIcon.appiconset directory
sourceImageYesPath to the source image (should be at least 1024x1024)

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, but it only states the action. It does not disclose side effects (e.g., creating directories, writing files), overwrite behavior, or any failure conditions. This is a significant transparency gap for a generative 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, front-loaded sentence that conveys the core purpose without wasted words. It is appropriately concise for a simple tool.

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

Completeness3/5

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

The description plus schema explains the inputs but not the full scope of what 'generate an icon set' entails, such as the output structure or requirements for the source image. No output schema exists, but the tool's simplicity and strong schema descriptions keep it from being completely inadequate.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters are described in the input schema. The description adds no additional parameter context, but given the high schema coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Generate') and resource ('app icon set'), and the source input ('from a source image'). It distinguishes itself from siblings like compile_asset_catalog by focusing on generating icon sets rather than compiling them.

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

Usage Guidelines3/5

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

The description implies when to use it (when you need an app icon set from an image) but provides no explicit context, prerequisites, or alternatives. There is no mention of when not to use it or comparisons to other tools.

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

generate_swift_docsB

Generates documentation for a Swift Package using DocC.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputPathYesDirectory where the generated documentation will be saved
openInBrowserNoOpen the generated documentation in a browser after generation (default: false)
hostingBasePathNoBase path for hosting the documentation (e.g., '/docs')
transformForStaticHostingNoTransform the documentation for static hosting (default: true)

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 must fully disclose behavior. It only states the basic action and method, without mentioning potential side effects, output format, required environment, or failure modes. This is minimal disclosure for a generation tool that likely creates files.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that says exactly what the tool does with no redundant words or filler. It is concise and easy to parse.

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

Completeness2/5

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

Despite having a well-documented schema, the description lacks essential context about prerequisites, expected behavior, or return values. With no annotations and no output schema, the agent has to infer too much about how to invoke and interpret this tool in real workflows.

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 all 4 parameters with descriptions, so the baseline is 3. The description adds no additional parameter semantics beyond the schema, but since schema coverage is 100%, this is acceptable.

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 ('Generates') and specific resource ('documentation for a Swift Package using DocC'). It distinguishes itself from sibling tools like build_spm_package and test_swift_package, which perform other operations on Swift packages.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. While it is the only documentation-generation tool among the siblings, it does not state prerequisites or situational context, such as needing an initialized Swift package or Xcode.

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

get_active_projectB

Retrieves detailed information about the currently active Xcode project.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailedNoIf true, include additional detailed project information

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation but does not mention what 'detailed information' includes, whether any errors can occur (e.g., no active project), or any side effects. This is a significant gap for a tool with no structured safety hints.

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

Conciseness5/5

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

The description is a single clear sentence with no redundant words. It is appropriately front-loaded and efficient.

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

Completeness3/5

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

Given the tool's simplicity (one optional parameter, no output schema), the description is minimally adequate. However, it lacks essential context such as what the return value looks like, error handling when no project is active, and how this tool relates to siblings. More detail would be expected for a tool whose output is not otherwise specified.

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, so the baseline is 3. The parameter description ('If true, include additional detailed project information') adds some meaning, but the tool description itself does not clarify what 'detailed' means or the difference between true and false. The schema does the heavy lifting here.

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

Purpose4/5

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

The description clearly states the tool's function: retrieving detailed information about the active Xcode project. It uses a specific verb ('retrieves') and a specific resource. However, it does not explicitly distinguish itself from the sibling tool 'detect_active_project', which could be confused as a similar operation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'detect_active_project' or 'get_project_configuration'. The description only states what the tool does, not the context or conditions under which it should be used.

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

get_current_directoryB

Returns the current active directory.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description only states 'Returns the current active directory.' It does not disclose potential side effects, error behavior, or what 'active directory' means in context. This leaves the agent without important behavioral information.

Agents need to know what a tool does to the world before 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 directly states the tool's function with no unnecessary words. It is highly concise and structurally clear.

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

Completeness4/5

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

For a zero-parameter getter tool, the description is largely sufficient. It states the purpose and return value. Minor ambiguity about 'active directory' and lack of output format details prevent a perfect score, but overall completeness is good for its 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 tool has zero parameters, and schema coverage is 100%, so the description does not need to explain parameter semantics. The baseline of 4 applies because there are no parameters to describe.

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 ('Returns') and resource ('current active directory'), making the purpose clear. However, it does not explicitly distinguish itself from sibling tools like 'get_active_project' or 'resolve_path', though the resource is reasonably distinct.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. While it is a simple getter, there is no mention of why it might be preferred over 'change_directory' or 'resolve_path'.

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

get_file_infoC

Gets detailed information about a file or directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file or directory. Can be absolute, relative to active directory, or use ~ for home directory.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not explain what 'detailed information' includes (e.g., size, permissions, timestamps), whether the path must exist or if errors are handled, or what the return value looks like. The only behavioral hint is the path flexibility, which is already in the schema.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no unnecessary words. It is efficiently written, though it could benefit from specifying what 'detailed information' means. Still, it earns its place as a concise summary.

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 (one parameter, no output schema), but the description leaves significant gaps. The agent does not know what 'detailed information' entails or how it differs from sibling tools like 'resolve_path' or 'list_directory'. Given no annotations and no output schema, the description should clarify the return format and distinguishing behavior, which it 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?

Schema coverage is 100%, and the schema description already documents the path parameter well (absolute, relative, ~). The tool description adds no additional semantics beyond restating 'file or directory', which is also in the schema. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

The description uses a clear verb+resource ('Gets detailed information about a file or directory') which states the tool's core function. However, it does not distinguish this from sibling tools like 'check_file_exists' or 'list_directory', and 'detailed information' is vague as to what specific data is returned.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'list_directory', 'resolve_path', or 'check_file_exists'. The description gives no context or exclusions, leaving the agent to guess the appropriate use case.

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

get_package_infoC

Gets detailed information about a Swift Package Manager package.

ParametersJSON Schema
NameRequiredDescriptionDefault
packagePathNoOptional path to the directory containing Package.swift. If not provided, uses the active project directory.

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 must disclose behavioral traits itself. It only says 'gets detailed information', which implies a read operation but does not explicitly state safety, side effects, return format, or potential errors. This is minimal disclosure for a tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, concise sentence with no redundant phrases. It front-loads the action and object, making it immediately clear what the tool does. Every word contributes meaning.

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 description is vague about what 'detailed information' includes and what the return format is. Since there is no output schema and no annotations, the description fails to provide essential context such as the nature of the information, potential side effects, or when to prefer this tool over similar ones. It is minimally viable but incomplete 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?

The schema already covers the sole parameter "packagePath" with a description, achieving 100% schema coverage. The tool description adds no additional semantics or context about the parameter, so it doesn't improve on the schema but also doesn't need to. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('gets') and the resource ('detailed information about a Swift Package Manager package'), making the purpose easy to understand. However, it doesn't distinguish itself from sibling tools like dump_swift_package or show_swift_dependencies, which could also provide package-related information.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer appropriate usage from the tool name alone.

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

get_project_configurationA

Retrieves configuration details for the active project, including schemes and targets.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. The verb 'Retrieves' implies a read-only operation, and the phrase 'including schemes and targets' adds useful scope. However, it does not disclose potential error conditions (e.g., what happens if no active project exists) or whether the result contains all configuration details or only selected ones.

Agents need to know what a tool does to the world before 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 efficiently conveys the tool's purpose. There is no redundant information or filler; every word adds value.

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

Completeness3/5

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

The tool has no output schema and no annotations, so the description must carry the burden of explaining what is returned. It provides the core purpose but not the return format or details about edge cases like a missing active project. Given the tool's low complexity, this is minimally adequate but leaves some gaps.

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

Parameters4/5

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

The tool has zero parameters, which earns a baseline score of 4. The description does not need to explain parameter syntax, but it does reference 'active project' as a contextual state that determines behavior, adding slight meaning beyond the empty schema.

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

Purpose5/5

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

The description uses the specific verb 'Retrieves' paired with a clear resource ('configuration details for the active project') and concrete examples ('schemes and targets'). This clearly distinguishes it from sibling tools like get_active_project (which returns the project itself) and list_available_schemes (which lists only schemes).

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

Usage Guidelines3/5

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

The description implicitly communicates when to use the tool—when you need configuration details of the currently active project—but it does not explicitly mention any prerequisites (e.g., needing an active project first) or alternatives. There is no exclusion guidance to help decide between this and related tools like list_available_schemes or list_available_destinations.

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

get_xcode_infoA

Get information about Xcode installations on the system

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the tool 'gets' information, which implies a read-only operation, but does not disclose what specific details are returned (e.g., paths, versions), whether any system changes occur, or if certain permissions are needed.

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

Conciseness5/5

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

The description is a single, focused sentence that conveys the tool's core purpose without unnecessary words. It is appropriately concise and front-loads the key action and resource.

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 absence of an output schema and the simplicity of the tool, the description provides enough to understand its primary function but lacks detail about the content and structure of the returned information. For an agent selecting the tool, it is minimally viable but could benefit from specifying what 'information' includes (e.g., version, path, SDKs).

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

Parameters4/5

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

The tool has zero parameters, and the schema confirms this with an empty properties object. Since there is nothing to describe, the baseline of 4 is appropriate. The description adds no parameter-specific semantics, but none are needed.

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

Purpose5/5

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

The description uses a clear verb 'Get' and specific resource 'information about Xcode installations', making the tool's purpose immediately understandable. It also distinguishes from siblings like switch_xcode, which changes Xcode versions, by focusing on informational retrieval.

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 checking Xcode before switching or building. There are no explicit use cases, prerequisites, or exclusions, leaving the agent to infer appropriateness from context.

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

init_swift_packageA

Initializes a new Swift Package Manager project in the current directory. Use this tool first if your project doesn't have a Package.swift file yet and you want to start using Swift packages.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the package (defaults to directory name)
typeNoType of package to create (library, executable, tool, build-tool-plugin, command-plugin, macro, or empty)
enableTestsNoEnable test targets (default: true)
testingFrameworkNoTesting framework to use (xctest or swift-testing)

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions initialization in the current directory and implies creation of Package.swift, but does not disclose potential side effects like overwriting existing files, whether the directory must be empty, or exactly what files are generated. For a straightforward init tool this is adequate but leaves 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.

Conciseness5/5

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

Two sentences, first gives the core action, second gives usage guidance. No redundant information, front-loaded and efficient.

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

Completeness4/5

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

For a simple init tool with 4 optional parameters fully described in the schema, the description is complete enough: it states what it does, where, and when to use it. It doesn't cover edge cases like overwrite behavior, but the core information needed to select and invoke the tool is present.

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 every parameter has a clear description, so the schema already communicates names, types, defaults, and enums. The description adds no parameter-specific information, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states 'Initializes a new Swift Package Manager project in the current directory', with a specific verb (initializes), resource (Swift Package Manager project), and location (current directory). This distinguishes it from sibling tools like add_swift_package or create_xcode_project.

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

Usage Guidelines5/5

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

Explicitly says 'Use this tool first if your project doesn't have a Package.swift file yet and you want to start using Swift packages', providing a clear condition for when to use it. This implies it is a prerequisite for other package operations and differentiates it from tools that modify existing packages.

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

install_appB

Install an app on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
appPathYesPath to the .app bundle to install

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. It only states the action and does not explain side effects, requirements (e.g., booted simulator, .app bundle format), or behavior on existing installations. This is a minimal description that leaves critical behavior undisclosed.

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

Conciseness5/5

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

The description is a single, direct sentence that efficiently states the purpose without unnecessary words. It is front-loaded and easy to scan, making every word count.

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 (two straightforward parameters, no output schema), the description is minimally acceptable but incomplete. It fails to mention important usage context like the requirement for a booted simulator or the .app bundle format, which could lead to incorrect usage if the agent assumes too much.

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

Parameters3/5

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

The input schema already documents both parameters (udid and appPath) with clear descriptions, achieving 100% schema coverage. The description adds no extra meaning beyond the schema, which is the baseline case.

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 'Install an app on a simulator' uses a specific verb and resource, clearly distinguishing it from sibling tools like launch_app (which runs an installed app) and list_installed_apps. It conveys the tool's core function without 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 gives no guidance on when to use this tool versus alternatives, nor does it mention prerequisites such as the simulator needing to be booted. There is no mention of exclusions or context to help the agent decide between install_app and related simulator tools.

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

launch_appB

Launch an installed app on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoArguments to pass to the app on launch
udidYesThe UDID of the simulator
bundleIdYesBundle identifier of the app to launch
waitForDebuggerNoWait for a debugger to attach before starting the app

TDQS

B3.2/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 states the core action ('Launch') without revealing what happens if the app is not installed, whether the tool is blocking, or if any side effects occur. No additional behavioral context is given.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero wasted wording. It is exactly as concise as possible while still stating the primary purpose.

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

Completeness2/5

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

Given the tool has no annotations, no output schema, and a very terse description, the context is sparse. The description omits important conditions such as requiring the app to be installed and simulator to be booted, and gives no hints about failure modes or expected outcomes. This is insufficient for an agent to use the tool safely in a workflow.

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

Parameters3/5

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

Schema coverage is 100% for all four parameters, so the baseline is 3. The description adds no information beyond the schema; it does not even mention parameters such as udid or bundleId, but the schema already provides clear per-parameter descriptions.

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

Purpose5/5

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

The description uses a specific verb ('Launch') and identifies the resource ('installed app on a simulator'). It clearly distinguishes the tool from siblings like install_app, terminate_app, or open_url by stating exactly what action it performs.

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 install_app or boot_simulator. The description offers no context about prerequisite conditions (e.g., app already installed, simulator booted) or exclusions.

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

list_available_destinationsA

Lists available build destinations for the active Xcode project or workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeNoOptional scheme to show destinations for. If not provided, uses the active scheme.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description is the sole source of behavioral information. 'Lists' clearly indicates a read-only, non-mutating operation, and the optional scheme behavior is disclosed. It does not mention error conditions or output formats, but for a simple listing operation this is not a major 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, focused sentence that states what the tool does and its context. Every word contributes to understanding the tool's purpose and scope, with no redundancy or filler.

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

Completeness5/5

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

The tool is simple with one optional parameter and no output schema. The description covers the core action, the scope (active project/workspace), and the optional scheme behavior, making it complete for effective selection and invocation.

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

Parameters3/5

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

The schema covers the single parameter 100%, including its optional nature and default behavior ('Optional scheme to show destinations for. If not provided, uses the active scheme.'). The description does not add material meaning beyond the schema, so the baseline score of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Lists') and names the resource ('available build destinations') with the scope ('active Xcode project or workspace'). It clearly distinguishes from sibling tools like list_available_schemes by targeting a different resource.

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

Usage Guidelines4/5

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

The description clearly identifies when to use the tool: to list build destinations for the active project or workspace. It also explains the scheme parameter's default behavior, which gives useful context, though it does not explicitly compare against alternatives or state exclusion cases.

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

list_available_schemesA

Lists all available schemes in the active Xcode project or workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses a read-only behavior via 'list' and scopes to the active project/workspace, but doesn't mention potential edge cases (e.g., no active project, private schemes omitted) or the exact return format. For a simple list operation, this is adequate but not comprehensive.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the essence without any filler. Every word adds value, making it highly concise and well-structured.

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

Completeness5/5

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

For a simple tool with no parameters, no output schema, and no annotations, the description is complete. It states the action, the resource, and the relevant context (active project/workspace), which is sufficient for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description correctly implies no inputs are required, and the schema confirms an empty object with no properties.

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

Purpose5/5

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

The description clearly states a specific action: lists all available schemes in the active Xcode project or workspace. The verb 'list' and resource 'schemes' are precise, and the scope (active project/workspace) distinguishes it from sibling tools like list_project_files or list_available_destinations.

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 context 'in the active Xcode project or workspace' implies when to use the tool, but there is no explicit guidance on alternatives or when not to use it. The usage is understood from the purpose, but a more explicit note about using it to enumerate schemes before building or testing would earn a higher score.

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

list_booted_simulatorsA

List all currently booted iOS simulators

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It communicates that the operation is a read-only listing and the 'currently booted' qualifier is meaningful. However, it does not disclose the output format, whether an empty list is possible, or any error conditions. For a simple list tool this is adequate but not rich.

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

Conciseness5/5

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

The description is a single clear sentence with no wasted words. It is appropriately sized and front-loaded with the key action 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 zero-parameter tool with no output schema, the description is nearly complete. It clearly states what is listed and the filter. It does not describe the return format, but 'List' implies a list result, and the simplicity of the tool makes this a minor gap.

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

Parameters4/5

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

The tool has zero parameters and the schema has no properties, so there is nothing to explain. The baseline for 0-param tools is 4, and the description adds no unnecessary parameter information.

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

Purpose5/5

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

The description states a specific verb ('List'), a specific resource ('iOS simulators'), and a clear filter ('currently booted'). This clearly distinguishes it from sibling tools like list_simulators, which likely lists all simulators.

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 use case (need to see only booted simulators) but provides no explicit guidance about when to prefer this over list_simulators or other simulator-related tools. There are no exclusions or alternatives mentioned.

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

list_directoryB

Lists the contents of a directory, showing both files and subdirectories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the directory to list. Can be absolute, relative to active directory, or use ~ for home directory.
formatNoFormat of the output: simple (names only) or detailed (with file information)
showHiddenNoIf true, include hidden files (starting with .)

TDQS

B3.2/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 reveals that the tool shows files and subdirectories, but omits behaviors such as whether hidden files are shown by default (controllable via the showHidden parameter), what the 'simple' vs 'detailed' formats entail, and how errors like nonexistent paths are handled. The description adds minimal context beyond the tool's name.

Agents need to know what a tool does to the world before 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 conveys the core function without any redundant information. Every word contributes to the meaning, making it an exemplary model of efficiency. This earns 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?

Given the lack of annotations and output schema, the description should compensate by explaining return format, defaults, or edge-case behavior. It does none of this. The tool has three parameters and could reasonably be expected to describe its output structure or sorting behavior. The description is minimal and leaves important usage context unaddressed, so a score of 2 reflects its incomplete nature.

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. Per the rubric, baseline is 3 when the schema covers parameters fully. The tool description itself adds no parameter semantics beyond what the schema already provides, so a score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Lists the contents of a directory, showing both files and subdirectories.' It uses a specific verb (lists) and resource (directory contents), and the inclusion of both files and subdirectories distinguishes it from file-specific tools like read_file and get_file_info. This meets the 5-point criterion of specific verb+resource with clear 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. Sibling tools like list_project_files and find_files likely overlap in functionality, but the description does not mention any distinguishing use cases or exclusions. An agent receives no direction on tool selection, resulting in a score of 2 (no guidance).

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

list_installed_appsA

List all installed applications on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses no behavioral traits beyond the basic action, such as whether the simulator must be booted, whether it returns bundle IDs or display names, or any special prerequisites. The simplicity of a list operation mitigates this, but key context 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 with no filler. It communicates the tool's purpose efficiently without wasting words.

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

Completeness4/5

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

For a simple read-only tool with one required parameter and no output schema, the description is adequate: it clearly states what the tool does and the parameter is fully described. It could mention return format or prerequisites, but the low complexity and available schema make it sufficiently complete.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'udid', so the schema already explains it. The description adds no additional meaning beyond the schema, matching the baseline 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 uses a specific verb ('List') and resource ('installed applications on a simulator'), clearly distinguishing it from sibling tools like list_simulators and list_booted_simulators which list simulators, not apps.

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?

Usage context is implied by the description (you use this when you need to see installed apps), but there is no explicit guidance about when to use this versus alternatives, nor any exclusions or prerequisites mentioned.

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

list_project_filesC

Lists all files within an Xcode project.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileTypeNoOptional file extension filter.
projectPathYesPath to the .xcodeproj directory of the project. Can be absolute, relative to active directory, or use ~ for home directory.

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 carry the burden of behavioral disclosure. It only says 'Lists all files within an Xcode project' and does not mention return format, whether the listing is recursive, whether directories are included, or any error/permission behavior. This is minimal for a tool without 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.

Conciseness4/5

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

The description is a single concise sentence, front-loaded with the core action. It is not overly verbose, though it could add useful details (e.g., 'recursively') without losing conciseness. Still, its brevity is appropriate for a simple listing 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's simplicity, high schema coverage, and no output schema, the description is adequate but not complete. It does not specify what the tool returns (e.g., a list of paths) or whether it handles invalid project paths. For an agent to invoke it correctly, the purpose is clear, but the expected output and edge-case behavior are left unspecified.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (projectPath and fileType) clearly documented in the input schema. The tool description itself does not add extra parameter context, but the schema already provides adequate semantics, so the baseline score of 3 applies.

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

Purpose4/5

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

The description clearly states the action ('Lists') and the target ('all files within an Xcode project'), using a specific verb and resource. It is distinguishable from sibling tools like list_directory by focusing on Xcode projects, though it does not explicitly differentiate its scope or mention recursion.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as list_directory, find_files, or get_project_configuration. The description only states what it does, not when it is appropriate, so agents receive no decision-making support.

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

list_simulatorsA

List all available iOS simulators with filtering options

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format (json for raw data, parsed for structured data). Defaults to parsed.
filterNameNoFilter simulators by name (case-insensitive substring match)
filterStateNoFilter simulators by state
filterRuntimeNoFilter simulators by runtime (e.g., 'iOS 16')

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It states a read-only listing operation which is transparent, but it does not detail the return format, what 'available' means, or any dependencies like Xcode. The description is not misleading, but it 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 sentence that immediately conveys the tool's purpose and key capability. No redundant words or phrases, making it highly concise and front-loaded.

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

Completeness4/5

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

For a simple listing tool with four optional parameters fully covered by schema, the description is adequate. It does not explain the return structure, but the absence of an output schema is offset by the tool's straightforward nature. Could mention defaults or examples, but current completeness is good.

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

Parameters3/5

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

The input schema fully documents all four parameters with descriptions and enums, so the description's mention of 'filtering options' adds no extra semantic value. With 100% schema coverage, a 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 uses a specific verb 'List' and a clear resource 'all available iOS simulators', which distinguishes it from the sibling 'list_booted_simulators' tool. It also mentions filtering options, indicating 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 Guidelines3/5

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

The description implies usage by stating 'all available' and 'filtering options', but it does not explicitly compare with alternatives like 'list_booted_simulators' or state when not to use this tool. General context is clear, but exclusions are absent.

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

move_fileB

Moves a file or directory to a new location within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesSource path. Can be absolute, relative to active directory, or use ~ for home directory.
destinationYesDestination path. Can be absolute, relative to active directory, or use ~ for home directory.

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It adds the constraint 'within allowed directories' but fails to disclose important behaviors such as overwrite semantics, cross-filesystem support, permission requirements, or success/error return behavior. This is minimal for a mutating operation.

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

Conciseness5/5

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

The description is a single, clear sentence with no filler. It delivers the core purpose and a key constraint efficiently.

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 absence of annotations and output schema, the description should explain more about behavior, return values, and edge cases. It only states the move capability and the directories restriction, leaving unclear what happens on success or failure, and whether any side effects (e.g., overwriting) occur.

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 descriptions in the input schema. The tool description does not add parameter-specific information beyond the schema, so the baseline of 3 applies. The 'allowed directories' hint indirectly affects possible values but is not parameter-specific.

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 identifies the action 'Moves' and the target 'a file or directory to a new location,' distinguishing it from siblings like copy_file (copy) and delete_file (remove). The scope 'within allowed directories' 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 Guidelines3/5

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

The description implies usage for relocating files/directories but does not explicitly state when to choose this over copy_file or delete_file, nor does it mention exclusions/alternatives. The context is clear but not explicitly differentiated.

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

open_urlB

Open a URL in a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to open
udidYesThe UDID of the simulator

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It states the action but omits whether the simulator must be booted, which app handles the URL, or any side effects or return values. Minimal behavioral disclosure.

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

Conciseness5/5

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

Extremely concise, consisting of a single sentence with no wasted words. The description is front-loaded and easy to read.

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?

Despite having only 2 parameters, the description lacks important context such as prerequisites (booted simulator), behavior (opens default browser), and output. This makes it insufficient for an agent to use the tool correctly in all scenarios.

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 url and udid clearly described. The tool description adds little beyond the schema, simply confirming that the URL is opened in the simulator specified by udid. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (open) and the resource (a URL) in a specific environment (simulator). It distinguishes from siblings like launch_app, which launches an app, as opening a URL is a distinct operation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, prerequisites such as a booted simulator, or typical use cases. The description is a bare statement of the action.

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

pod_deintegrateA

Deintegrate CocoaPods from the active project, removing all traces of CocoaPods.

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 carries the full burden of behavioral disclosure. While 'removing all traces of CocoaPods' hints at a destructive operation, it does not specify what exactly gets removed (e.g., Podfile, Pods directory, workspace) or whether the operation is reversible. This lack of detail is a significant gap for a destructive 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 that front-loads the action ('Deintegrate') and immediately clarifies scope. Every word earns its place, with no unnecessary filler.

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

Completeness3/5

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

Given the tool's simplicity (no parameters, no output schema, no annotations), the description provides the core purpose but misses important destructive context. It does not mention prerequisites, side effects, or post-conditions, making it only partially complete for safe usage.

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

Parameters4/5

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

The tool has zero parameters and the schema is empty, so there are no parameter semantics to explain. The baseline for 0 params is 4, and the description does not need to add parameter information.

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

Purpose5/5

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

The description uses the specific verb 'Deintegrate' with the resource 'CocoaPods' and the scope 'active project', clearly differentiating it from sibling tools like pod_install or pod_update. The action is unambiguous and not a 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 you need to remove CocoaPods from the active project, but it does not explicitly state when to use this tool versus alternatives such as pod_install or pod_update. There are no exclusions or clear when-not-to-use guidance, only implied context.

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

pod_initB

Generate a Podfile for the current project directory.

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?

Without annotations, the description must carry the burden of behavioral disclosure. It only says 'Generate a Podfile' with no details about side effects (e.g., creating/overwriting a file), potential prompts, or required environment setup. This is insufficient for a tool that creates artifacts.

Agents need to know what a tool does to the world before 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 communicates the core purpose without any redundancy. It is appropriately sized for a tool with zero parameters.

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

Completeness2/5

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

Given the large set of sibling tools, the description lacks contextual positioning (e.g., that this is a precursor to pod_install) and does not explain what a Podfile is or what subsequent steps are needed. No output schema exists, so the description should provide more context about the result of generating a Podfile.

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

Parameters4/5

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

The tool has no parameters, and the empty input schema with 100% coverage means the description adds value by specifying the target directory ('current project directory'). This context is helpful and goes beyond the schema, though no parameter explanation is needed.

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

Purpose5/5

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

The description states a specific verb ('Generate') and resource ('Podfile') with a clear location scope ('current project directory'). It clearly distinguishes from sibling tools like pod_install and pod_update, which perform different operations.

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

Usage 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, nor does it mention prerequisites (e.g., CocoaPods installed) or relationship to other tools like pod_install. Usage is only implied by the action itself.

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

pod_installA

Runs 'pod install' in the active project directory to install CocoaPods dependencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
verboseNoShow more debugging information during installation.
repoUpdateNoWhether to update the spec repositories before installation. Defaults to false.
cleanInstallNoIgnore the contents of the project cache and force a full pod installation.

TDQS

A3.5/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 disclosing side effects. It only states that the command runs, omitting that it modifies Podfile.lock and the Pods directory, may require network access, or could fail if CocoaPods is missing. This significant gap in mutation behavior reduces 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, focused sentence that states the command and its purpose. There is no redundant or irrelevant information, making it highly concise and well-structured.

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

Completeness3/5

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

The tool is simple with three self-documenting boolean parameters, but the missing annotation coverage and lack of side-effect disclosure leave the description incomplete. It does not mention what changes occur or prerequisites, though the simplicity of the tool mitigates this somewhat.

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 (verbose, repoUpdate, cleanInstall) already having descriptive text. The tool description adds nothing about parameter behavior or syntax, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly specifies the action ('Runs pod install') and the resource ('in the active project directory to install CocoaPods dependencies'). This distinguishes it from sibling tools like pod_update and pod_repo_update by focusing on the install 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 implicitly suggests use when installing dependencies in the active project directory, but it does not explicitly compare to alternatives such as pod_update or pod_init, nor does it mention when not to use it. The context is clear 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.

pod_outdatedA

Shows outdated pods in the current project and their available updates.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoUpdateNoWhether to update the spec repositories before checking for outdated pods. Defaults to false.
ignorePrereleaseNoDon't consider prerelease versions to be updates. Defaults to true.

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It claims a read-only 'shows' behavior but does not disclose that setting repoUpdate=true will update spec repositories (a side effect). It also does not describe the output format or network interactions.

Agents need to know what a tool does to the world before 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 directly states the tool's function without unnecessary words or repetition.

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

Completeness4/5

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

The tool is simple with only two optional boolean parameters and no output schema. The description conveys the core purpose but omits the fact that repoUpdate modifies repository state and does not describe the return format. Still, for a list-oriented tool, 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% and each parameter has a descriptive comment. The description adds no extra meaning beyond the schema; baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Shows') and resource ('outdated pods in the current project') and explicitly mentions 'available updates', which clearly distinguishes it from sibling tools like pod_update (which actually performs updates) and pod_repo_update (which updates repos).

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 it works on the current project, giving context for use, but does not provide explicit guidance on when to use this tool vs alternatives, such as whether to run pod_repo_update first or use pod_update to apply updates. The distinction is implied by the name but not stated.

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

pod_repo_updateB

Updates the local clone of the CocoaPods spec repositories.

ParametersJSON Schema
NameRequiredDescriptionDefault
silentNoShow nothing during update.
verboseNoShow more detailed 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 must fully disclose behavior. It only says 'Updates the local clone,' but doesn't specify side effects (e.g., modifies local cache, requires network), potential reversibility, or failure modes. This is similar to the update_drive example.

Agents need to know what a tool does to the world before 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, front-loaded sentence that immediately states the tool's purpose. No unnecessary words or redundancy.

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

Completeness3/5

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

For a simple tool with two optional boolean parameters, the description conveys the core purpose. However, it lacks usage context and behavioral details, and with no annotations or output schema, it relies on the description alone. It's minimally viable but has gaps.

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

Parameters3/5

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

The input schema provides descriptions for both boolean parameters ('silent' and 'verbose'), achieving 100% coverage. The description itself adds no additional parameter context, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description states a specific action ('Updates') and resource ('local clone of the CocoaPods spec repositories'). It clearly distinguishes from sibling tool pod_update, which updates project Pods rather than the spec repos themselves.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like pod_update, pod_outdated, or pod_install. There is no mention of prerequisites, expected usage, or exclusions.

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

pod_updateC

Runs 'pod update' in the active project directory to update CocoaPods dependencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
podsNoOptional list of specific pods to update. If not provided, updates all pods.
sourcesNoOptional list of sources from which to update dependent pods.
repoUpdateNoWhether to update the spec repositories before updating pods. Defaults to true.
excludePodsNoOptional list of pods to exclude during update.
cleanInstallNoIgnore the contents of the project cache and force a full pod installation.

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 responsibility for disclosing behavior. It merely states that the command is run and that dependencies are updated, without mentioning side effects such as modifying Podfile.lock, network access, or potential need to install pods first.

Agents need to know what a tool does to the world before 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 is appropriately concise. It contains no filler and directly states the tool's primary action.

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

Completeness2/5

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

Given the tool's moderate complexity (5 optional parameters) and lack of annotations or output schema, the description is too sparse. It doesn't explain command behavior beyond the raw command, its side effects, or how it fits with sibling tools, leaving the agent to infer important context.

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

Parameters3/5

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

The input schema provides 100% coverage with descriptions for all five parameters, so the baseline is 3. The tool description adds no additional parameter semantics beyond what the schema already provides.

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 executes the 'pod update' command to update CocoaPods dependencies, providing a specific verb and resource. However, it doesn't explicitly distinguish itself from sibling tools like pod_install or pod_outdated beyond the inherent meaning of 'update'.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as pod_install or pod_outdated. The only context provided is that it runs in the active project directory, which is a location rather than a usage condition.

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

pop_directoryA

Pops a directory from the stack and changes to it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the core side effect of changing the current directory and mutating the stack, but does not mention behavior on an empty stack, error handling, or whether the operation is reversible.

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

Conciseness5/5

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

One front-loaded, concise sentence with no filler. Every word contributes to understanding the operation.

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 navigation tool with no annotations and no output schema, the description is mostly complete. It could mention empty-stack behavior, but the simplicity of the operation makes this a minor gap rather than a major deficiency.

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

Parameters4/5

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

The tool has zero parameters, so the schema carries no parameter semantics. The description adds useful context by explaining the directory-stack mechanism, which is the only semantic needed here.

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

Purpose5/5

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

The description clearly states the specific verb 'pops' and resource ('a directory from the stack') and says it changes to that directory. This distinguishes it from sibling tools like change_directory and pairs naturally with push_directory.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternative guidance is given, but the phrase 'from the stack' implies it should be used after a push_directory and for LIFO navigation. This is implied usage rather than explicit direction.

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

push_directoryA

Pushes the current directory onto a stack and changes to a new directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryPathYesPath to the directory to set as active. Supports absolute paths, paths relative to the current active directory, and ~ for home directory.

TDQS

A4/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 clearly discloses the two side effects: pushing the current directory onto a stack and changing to a new directory. It does not mention error behavior or stack lifetime, but the core behavioral traits are transparent.

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

Conciseness5/5

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

The description is a single concise sentence that effectively conveys both the push action and the directory change. It avoids redundancy and gets straight to the point.

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

Completeness4/5

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

The tool is simple, with one fully documented parameter and no output schema. The description covers the core operation adequately. It could mention the paired pop_directory or failure conditions, but those are minor gaps given the tool's low complexity.

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

Parameters3/5

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

The schema provides a complete description of directoryPath (absolute, relative, ~), so coverage is 100%. The tool description adds no additional parameter detail beyond 'new directory', so it does not exceed the schema baseline.

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

Purpose5/5

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

The description uses specific verbs 'pushes' and 'changes to' to clearly state the stack push operation and the resulting directory change. This distinguishes it from siblings like change_directory (which simply changes) and pop_directory (which pops), making the purpose unambiguous.

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

Usage Guidelines3/5

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

The stack semantics imply a usage pattern of saving the current directory before changing, but the description does not explicitly say 'use this when you need to return later' or compare with alternatives like change_directory. No exclusions or alternative tools are mentioned.

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

read_fileA

Reads the contents of a file within the active project or allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
asBinaryNoIf true, read the file as binary and return base64-encoded content. Useful for images and other binary files.
encodingNoEncoding to use when reading the file (e.g., 'utf-8', 'latin1'). Default is 'utf-8'.
filePathYesPath to the file to read. Can be absolute, relative to active directory, or use ~ for home directory.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It reveals a path scope restriction but does not mention return format, error handling, or permission requirements. 'Reads' implies a safe read operation, but missing details like binary/text handling are left to 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 a single sentence that front-loads the verb and resource, with no redundant or extraneous text. It is concise and well-structured.

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

Completeness3/5

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

The tool is simple with three well-documented parameters, but with no annotations or output schema, the description could more fully address usage guidance (e.g., when to prefer it over search_in_files) and output/error behavior. It is minimally viable for a straightforward read operation but leaves gaps.

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

Parameters4/5

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

Schema coverage is 100% with clear descriptions for filePath, asBinary, and encoding. The description adds valuable meaning beyond the schema by specifying that the file must be within the active project or allowed directories, qualifying the filePath parameter.

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

Purpose5/5

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

The description uses the specific verb 'Reads' and resource 'contents of a file', clearly distinguishing it from sibling tools like write_file, copy_file, and delete_file. The added scope constraint 'within the active project or allowed directories' provides precision beyond the tool name.

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

Usage Guidelines3/5

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

The description gives a context constraint (active project/allowed directories) but does not specify when to use this tool versus alternatives like search_in_files or get_file_info. No explicit alternatives or exclusions are mentioned, leaving usage to be inferred.

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

remove_swift_packageA

Removes a Swift Package dependency from the active project.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the Swift package to remove
confirmYesConfirmation to remove the package. Must be set to true.

TDQS

A3.6/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 says 'Removes a Swift Package dependency' without mentioning side effects like modifying Package.swift, irreversibility, or the need for confirmation. The confirm parameter exists in the schema but the description adds no context about why it's needed.

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

Conciseness5/5

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

The description is a single sentence with zero redundancy. Every word contributes to the purpose, making it appropriately concise and front-loaded.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is too thin. It fails to mention what files are modified, whether the action is reversible, or any prerequisites. The schema covers parameters but not operational context.

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

Parameters3/5

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

Schema coverage is 100%: both url and confirm are described with clear meanings. The description itself adds no parameter information, but with full schema coverage the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (removes), the resource (Swift Package dependency), and the scope (from the active project). This distinguishes it from sibling tools like add_swift_package or update_swift_package.

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

Usage Guidelines4/5

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

The description gives clear context: it operates on the active project. However, it does not explicitly mention alternatives or when not to use it, but the context makes the intended use clear.

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

reset_simulatorA

Reset a simulator by erasing all content and settings

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator to reset
confirmYesConfirmation to reset the simulator. Must be set to true.

TDQS

A3.8/5.0
Behavior4/5

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

The description explicitly discloses the destructive nature of the operation by stating it erases 'all content and settings.' This is the critical behavioral trait. However, it does not explicitly mention that the reset is irreversible, that confirmation is required (though schema covers it), or what happens to running apps. Still, the core risk is well conveyed.

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

Conciseness5/5

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

The description is a single, clear sentence with no filler words. It front-loads the action and defines the scope with 'all content and settings,' making it efficient and easy to parse.

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

Completeness4/5

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

For a destructive tool with two parameters and full schema coverage, the description covers the essential behavior. It omits mention of the confirm parameter (handled by schema) and does not describe return values, but for this tool the description is largely adequate. It could be enhanced by explicitly noting that the operation is irreversible, but the current text is sufficient.

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

Parameters3/5

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

The input schema already provides complete descriptions for both parameters (udid and confirm, with confirm explicitly required to be true). The description adds no additional paramter-specific semantics, providing no further detail beyond what the schema contains. Thus a 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 uses the specific verb 'Reset' with a direct object 'a simulator' and elaborates 'by erasing all content and settings,' clearly distinguishing it from sibling tools like boot_simulator or shutdown_simulator which do not erase data.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention that this is destructive and should be used sparingly, nor does it reference alternative reset options or prerequisites. The description simply states the action without contextual placement among sibling tools.

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

resolve_pathB

Resolves a path, taking into account the active directory and current project.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to resolve. Can be absolute, relative to active directory, or use ~ for home directory.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states that the path is resolved 'taking into account the active directory and current project,' but does not disclose whether the tool accesses the filesystem, checks existence, or what the return value looks like. 'Resolves' remains vague.

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

Conciseness5/5

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

A single sentence that is direct and free of redundancy. It efficiently communicates the core behavior and context, earning a top score.

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 should explain return values and side effects. It does not, but for a simple path resolution tool, the purpose is largely conveyed. The missing details about output and error behavior leave clear gaps.

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

Parameters4/5

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

The schema already documents the path parameter with examples (absolute, relative, ~). The description adds 'current project' as an additional resolution context, which goes beyond the schema's mention of 'active directory.' This is a meaningful value-add, though not extensive.

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 the specific verb 'resolves' with 'path' as the resource, and adds context about active directory and current project. This makes the core purpose clear, though it doesn't explicitly state that the result is an absolute path or distinguish it from sibling tools like change_directory or get_current_directory.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The mention of 'active directory and current project' implies a use case, but there are no direct comparisons or exclusions. The agent is left to infer when path resolution is needed.

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

run_lldbC

Launches the LLDB debugger with optional arguments

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoArguments to pass to lldb
commandNoSingle LLDB command to execute

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the action without disclosing potential blocking behavior, interaction with the debugger, failure modes, or how output is handled, leaving major behavioral traits undisclosed.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the core action ('Launches the LLDB debugger') and wastes no 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?

Despite a simple signature (two optional string params, no output schema), the description is too sparse for a debugger tool. It does not state whether it enters an interactive session, executes a single command in batch mode, or how arguments are applied, leaving important gaps.

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

Parameters3/5

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

The schema provides descriptions for both parameters, giving 100% coverage. The description adds minimal value by noting 'optional arguments', which is already inferable from the schema's required=0. It does not explain how 'args' and 'command' interact, so baseline 3 applies.

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 launches LLDB with optional arguments, using the verb 'Launches' and the resource 'LLDB debugger'. It distinguishes from sibling tools as no other tool targets LLDB, but it omits the separate 'command' parameter for executing a single command, slightly narrowing the full purpose.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description lacks context about debugging workflows, prerequisites, or when to prefer this over other project tools like build_project or run_tests.

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

run_testsB

Executes tests for the active Xcode project.

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeNoOptional scheme to use for testing. If not provided, will use the active project's scheme.
testPlanNoOptional name of the test plan to run.
destinationNoOptional destination specifier (e.g., 'platform=iOS Simulator,name=iPhone 15'). If not provided, a suitable simulator will be selected automatically.
onlyTestingNoOptional list of tests to include, excluding all others. Format: 'TestTarget/TestClass/testMethod'.
skipTestingNoOptional list of tests to exclude. Format: 'TestTarget/TestClass/testMethod'.
resultBundlePathNoOptional path where test results bundle will be stored.
enableCodeCoverageNoWhether to enable code coverage during testing (default: false).

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It simply says 'Executes tests' without mentioning side effects (e.g., building, generating result bundles), requirements (e.g., active project), or expected behaviors such as failure handling or long-running operations.

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

Conciseness5/5

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

The description is a single, direct sentence that is perfectly concise and front-loaded. Every word adds value, making it a model of efficiency.

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?

Despite high schema coverage, the description lacks workflow context. It does not explain how it relates to sibling tools (e.g., that it is for Xcode projects, not SPM), nor does it mention the need for an active project or the absence of an output schema. For a tool with 7 optional parameters and no annotations, this minimal description is incomplete.

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 detailed descriptions for all 7 parameters, so the description does not need to add parameter-level semantics. The baseline of 3 applies because the schema carries the heavy lifting, and the description adds no extra meaning.

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

Purpose5/5

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

The description clearly states the function: 'Executes tests for the active Xcode project.' It uses a specific verb ('executes') and specifies the resource ('tests') and scope ('active Xcode project'), distinguishing it from sibling tools like test_spm_package which test Swift packages.

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. It does not mention that it is specific to Xcode projects or that test_spm_package is for Swift Package Manager projects, nor does it list any prerequisites or exclusions.

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

run_xcrunC

Executes a specified Xcode tool via xcrun

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoArguments to pass to the tool
toolYesThe name of the Xcode tool to run
workingDirNoWorking directory to execute the command in

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It only states the action without disclosing potential side effects, safety concerns, output behavior, or error handling. For a tool that executes arbitrary commands, 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 filler, front-loading the core action. It is appropriately concise, though it could be expanded with caveats while remaining succinct.

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 3-parameter tool, the description is incomplete because it lacks context on command execution semantics, such as how args are passed, working directory behavior, or potential risks. Given the power of this tool, more context is needed.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions, so baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides.

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 'Executes' and the resource 'a specified Xcode tool via xcrun', which distinguishes it from sibling tools like build_project or run_tests. However, it could be more explicit that it is a generic wrapper for any xcrun tool, but the name reinforces this.

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. It does not mention that it should be used for invoking Xcode command-line tools that lack dedicated wrappers, nor does it specify any exclusions or prerequisites.

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

search_in_filesB

Searches for text content within files in a directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
isRegexNoIf true, treat searchText as a regular expression
patternYesFile pattern to match (e.g., '*.swift', '*.{js,ts}')
directoryYesDirectory to search in. Can be absolute, relative to active directory, or use ~ for home directory.
maxResultsNoMaximum number of results to return
searchTextYesText or regular expression to search for within the files
caseSensitiveNoIf true, perform a case-sensitive search
includeHiddenNoIf true, include hidden files in the search

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It accurately states the core action ('Searches for text content within files'), but it does not disclose important behavior such as whether the search is recursive, how results are formatted, or whether it respects hidden files by default. This is a basic level of transparency, hence a 3.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the essential purpose without any unnecessary words. It is appropriately sized for a tool of this simplicity, achieving maximum 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 (7 parameters, no output schema, and siblings like find_files), the description is insufficiently complete. It does not explain the return format, default search behavior (e.g., recursive or not), or how it differs from similar tools. For an agent to use this effectively, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific meaning beyond what the schema already provides. It neither clarifies parameter usage nor offers examples, 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.

Purpose4/5

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

The description clearly states the tool's function: 'Searches for text content within files in a directory.' It uses a specific verb (searches) and resource (text content in files), which distinguishes it from filename-based search tools like find_files. However, it does not explicitly mention this distinction, so it falls short of a perfect 5.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not mention when to use this tool instead of alternatives like find_files (for filename search) or read_file (for reading individual files). It lacks any contextual clues about appropriate use cases or exclusions.

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

set_project_pathA

Sets the active Xcode project by specifying the path to its .xcodeproj directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
openInXcodeNoIf true, also open the project in Xcode (default: false)
projectPathYesPath to the .xcodeproj directory for the desired project. Supports ~ for home directory and environment variables.
setActiveDirectoryNoIf true, also set the active directory to the project directory

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only says 'Sets the active Xcode project' without disclosing side effects such as persistence, effect on subsequent tool calls, validation behavior, or that openInXcode and setActiveDirectory flags alter behavior. This is minimal at best.

Agents need to know what a tool does to the world before 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 is front-loaded with the primary action. There is no redundant or filler content; every word contributes to the core 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?

For a simple state-setting tool with full schema coverage, the description is adequate but not complete. It misses usage context and behavioral side effects, but the tool's simplicity and parameter documentation prevent it from being severely incomplete.

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 additional parameter meaning beyond what the schema already provides; it merely restates the core purpose using the projectPath parameter.

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

Purpose5/5

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

The description states a specific action ('Sets the active Xcode project') and the means (path to .xcodeproj directory). It clearly distinguishes from sibling tools like get_active_project, detect_active_project, and set_projects_base_dir by focusing on setting the active project.

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 needs to set the active Xcode project, but it does not explicitly state when to use it versus alternatives such as set_projects_base_dir, nor does it mention prerequisites or exclusions. The guidance is present only by implication.

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

set_projects_base_dirC

Sets the base directory where your Xcode projects are stored.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseDirYesPath to the directory containing your Xcode projects. Supports ~ for home directory and environment variables.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only restates the action without disclosing persistence, validation, side effects, or whether this setting affects other tools. As a state-setting tool, this lack of behavioral detail 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 with no unnecessary words, achieving maximum conciseness while conveying the core purpose.

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

Completeness2/5

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

The description does not mention return values, whether the setting persists, or how it impacts sibling tools that depend on the base directory. With no annotations and no output schema, the description should provide more operational context, but it is minimal.

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 fully documents the parameter baseDir with a description covering path format and support for ~ and environment variables. The tool description adds no additional parameter context, but the high schema coverage justifies 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 uses a specific verb ('Sets') and names the resource ('base directory') with a scope ('where your Xcode projects are stored'). It is clear but does not explicitly differentiate from the sibling tool set_project_path, which likely operates on a specific project path rather than a base directory.

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, nor any mention of prerequisites or effects on later operations. The presence of sibling tools like set_project_path and get_current_directory makes this gap more noticeable.

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

show_swift_dependenciesB

Shows the resolved dependencies of a Swift Package.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format (default: text)
verboseNoShow verbose output
outputPathNoPath to save output to a file

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It says 'Shows' but 'resolved dependencies' implies a possibly mutating resolution process, which is not disclosed. No mention of side effects, what happens with missing Package.swift, or whether network access is needed.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It effectively communicates the core purpose, earning a perfect score for 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?

The description lacks essential context given no output schema and no annotations. It does not explain what 'resolved' means, what output formats look like, or how it relates to other Swift Package tools. This incompleteness could hinder correct tool 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 provides full descriptions for all three parameters (format, verbose, outputPath), so the description does not need to add much. However, the description offers no additional semantics about how these parameters affect the output, keeping this at baseline.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('Shows') and resource ('resolved dependencies of a Swift Package'). It distinguishes itself from sibling tools like get_package_info by focusing specifically on dependency resolution.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like get_package_info or dump_swift_package. It does not mention any context, prerequisites, or exclusions.

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

shutdown_simulatorA

Shutdown a simulator by UDID, or shutdown all running simulators

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoShutdown all running simulators
udidNoThe UDID of the simulator to shutdown

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavior. It does not mention side effects, prerequisites (e.g., simulator must be booted), or what happens when parameters are omitted or both provided. This is a significant gap 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.

Conciseness5/5

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

The description is a single, concise sentence that front-loads the action and resource. It contains no filler or repetition, making it highly efficient.

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

Completeness3/5

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

For a tool with two optional parameters and no output schema, the description covers the core functionality. However, it leaves ambiguity around edge cases (no args, both args, or none booted), so it's adequate but not 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% for both parameters, so the baseline is 3. The description only restates the parameter purposes without adding new meaning, such as precedence rules between 'all' and 'udid' or the default behavior when neither is set.

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 specifies the action ('Shutdown') and the resource ('simulator'), with explicit dual modes: by UDID or all running simulators. This effectively distinguishes it from sibling tools like boot_simulator or reset_simulator.

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

Usage Guidelines3/5

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

The description implies usage (when you need to stop simulators) but does not provide explicit when-not-to-use guidance or mention alternatives. It lacks context such as 'use reset_simulator for a clean state' or 'boot_simulator to restart after shutdown'.

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

swift_package_commandC

Executes Swift Package Manager commands in the active project directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe SPM command to execute (e.g., 'build', 'test', 'clean', 'resolve')
extraArgsNoAdditional arguments to pass to the command
configurationNoBuild configuration ('debug' or 'release')

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 mentions executing in the active project directory, but does not disclose potential side effects (e.g., modifying files, running network operations), how output/errors are returned, or whether certain commands are destructive. This is a significant gap for a command execution 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?

A single, clear sentence with no unnecessary words or redundancy. The key information (executes SPM commands, location context) is front-loaded and efficient.

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

Completeness2/5

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

Given the tool's complexity and the absence of annotations and output schema, the description is too sparse. It does not mention prerequisites (like a valid package in the active directory), the variety of commands supported, or behavioral side effects, making it incomplete for reliable tool 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% for all three parameters, so the schema already documents them well. The description adds no additional parameter context, hence the baseline score of 3.

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

Purpose4/5

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

The description clearly states the tool executes Swift Package Manager commands, with a specific verb and resource. However, it does not distinguish this generic tool from sibling-specific tools like build_spm_package or test_spm_package, which limits 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?

No guidance is provided on when to use this generic command runner versus the dedicated Swift package tools. The description does not mention that this is a fallback for arbitrary commands or that it works best alongside specialized tools.

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

switch_xcodeB

Switch the active Xcode version

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion of Xcode to use (e.g., '14.3'). Will use the first matching version found.
xcodePathNoPath to the Xcode.app to use. If not provided, available Xcode installations will be listed.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral transparency, but it provides only the basic action without disclosing side effects, prerequisites, or what happens when no arguments are provided. The parameter description mentions that installations will be listed if xcodePath is omitted, but this is in the schema, not the main description, and does not cover the tool's overall behavior or consequences.

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 unnecessary words, making it concise and front-loaded. However, it is somewhat minimal and does not add much beyond the tool name, though it does specify 'active Xcode version' which adds a bit of context.

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 changes global state (switching Xcode version), the description is incomplete. It does not explain what 'active' means, how to verify the change, what happens with no arguments, or what the tool returns. There is no output schema and no additional context, leaving the agent uncertain about the tool's full 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?

The input schema has 100% parameter description coverage, so the schema already explains each parameter. The main description adds no additional parameter semantics, such as how the version and xcodePath interact. Baseline of 3 is appropriate because the description does not need to repeat schema info.

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

Purpose5/5

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

The description clearly states the tool's function: 'Switch the active Xcode version'—a specific verb ('Switch') and resource ('active Xcode version'). This distinguishes it from sibling tools like get_xcode_info and build_project, which have different purposes.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention that get_xcode_info could be used to check the current version, or any prerequisites or exclusions. The usage context is purely implied by the tool name.

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

take_screenshotB

Take a screenshot of a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
outputPathYesPath where to save the screenshot (PNG format)

TDQS

B3.3/5.0
Behavior2/5

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

There are no annotations, so the description must carry the full burden of behavioral disclosure. It only states the action without revealing how the tool behaves (e.g., whether it requires a booted simulator, overwrites existing files, or fails if the simulator is not running). The schema hints at PNG format, but the description adds no behavioral context beyond the basic action.

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

Conciseness5/5

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

The description is a single, concise sentence that clearly states the tool's purpose without any wasted words or repetition. It is appropriately short for a simple tool with only two parameters.

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

Completeness3/5

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

Given the simplicity of the tool (2 parameters, no output schema, no annotations), the description covers the basic purpose but omits important context such as simulator state requirements. The sibling tools like boot_simulator and list_booted_simulators hint at typical workflows, but the description itself does not complete the context for a new agent. It is minimally viable but with a clear gap in prerequisite awareness.

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?

Both parameters are fully described in the input schema (udid and outputPath), covering 100% of parameters. The description adds no additional meaning to the parameters, so a baseline score of 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the action ('Take a screenshot') and the target resource ('a simulator'). It is unambiguous and distinct from sibling tools which handle simulator management, app installation, or file operations. No other tool appears to offer screenshot capability.

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, prerequisites (e.g., simulator must be booted), or post-conditions. It does not mention alternatives or any conditions where it should not be used. The usage context is entirely implied.

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

terminate_appB

Terminate a running app on a simulator

ParametersJSON Schema
NameRequiredDescriptionDefault
udidYesThe UDID of the simulator
bundleIdYesBundle identifier of the app to terminate

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 of behavioral disclosure. It only states the basic action of terminating an app, without detailing consequences (e.g., unsaved data loss), prerequisites, or behavior when the app is not running.

Agents need to know what a tool does to the world before 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 verb and directly states the target. There is no redundancy or unnecessary detail, making it highly concise and well-structured.

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

Completeness3/5

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

The tool is simple with two clearly described parameters, but the description lacks context on prerequisites (e.g., booted simulator, installed app) and return/error behavior. With no annotations or output schema, these gaps remain unfilled, making it minimally complete but not robust.

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

Parameters3/5

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

The input schema already provides clear descriptions for both parameters (udid and bundleId), covering 100%. The description adds no additional semantic value beyond what the schema states, 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?

Description clearly identifies the action ('Terminate') and the target ('a running app on a simulator'). This distinguishes it from sibling tools like 'launch_app' or 'install_app', establishing a specific verb+resource scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor are prerequisites or exclusions mentioned. The description does not indicate whether the simulator must be booted or the app installed, 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.

test_spm_packageB

Runs tests for a Swift Package Manager package directly using 'swift test' instead of Xcode.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter to run a subset of tests. Format: 'TestTarget[.TestClass[.testMethod]]'.
verboseNoWhether to show verbose output (default: false)
parallelNoWhether to run tests in parallel (default: true)
packagePathNoOptional path to the directory containing Package.swift. If not provided, uses the active project directory.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, but it only says the tool uses 'swift test directly.' It does not disclose side effects such as building the package, creating .build artifacts, or requiring Package.swift. This is a notable gap for a test tool that likely compiles code.

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

Conciseness5/5

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

The description is a single, focused sentence that front-loads the verb and resource. Every word contributes, with no unnecessary 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?

The tool is simple and the schema covers parameters, but the lack of annotations and output schema means the description should clarify return behavior, build side effects, or how it differs from test_swift_package. The one-liner is functional but not fully complete for a state-changing operation.

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

Parameters3/5

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

Schema coverage is 100% and the schema descriptions are clear (e.g., filter format, defaults for verbose/parallel, packagePath behavior). The description adds no parameter-specific meaning, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool's function: 'Runs tests for a Swift Package Manager package directly using swift test.' This is a specific verb+resource+method. However, it does not differentiate from sibling test_swift_package, which likely serves a similar purpose, so it misses the top score.

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 phrase 'instead of Xcode' implies use when you want to test an SPM package without Xcode, but it does not explicitly name alternatives like test_swift_package or provide exclusion criteria. The guidance is implied, not stated.

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

test_swift_packageC

Tests a Swift Package using Swift Package Manager.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoSkip tests matching regular expression
filterNoRun tests matching regular expression (e.g., 'MyTests.MyTestCase/testExample')
parallelNoRun tests in parallel
listTestsNoList all available tests instead of running them
numWorkersNoNumber of parallel test workers
outputPathNoPath for XUnit test results output
codeCoverageNoEnable code coverage
configurationNoBuild configuration (default: debug)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action without mentioning side effects, prerequisites, return values, or whether the tool builds before testing. This is a significant gap for a tool that executes test suites.

Agents need to know what a tool does to the world before 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 redundant information. It is front-loaded and efficiently communicates the core purpose, making it highly concise.

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

Completeness2/5

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

Given the tool's 8 optional parameters and lack of output schema, the description is too minimal. It doesn't explain expected outcomes, interaction with other SPM commands, or potential delays/effects, leaving the agent with insufficient context for reliable invocation.

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

Parameters3/5

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

The description adds no parameter-specific information, but the input schema provides 100% coverage with detailed descriptions for all 8 parameters. Since the schema already handles parameter semantics, the baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Tests') and the resource ('a Swift Package'), making it easy to understand the tool's purpose. However, it does not differentiate from the sibling tool 'test_spm_package', which likely performs the same function, missing the opportunity to distinguish itself.

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 like 'test_spm_package' or 'swift_package_command'. The description lacks any context for tool selection, leaving the agent without explicit direction on choosing the correct tool.

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

trace_appB

Captures a performance trace of an application using xctrace

ParametersJSON Schema
NameRequiredDescriptionDefault
appPathYesPath to the application to trace
durationNoDuration of the trace in seconds (default: 10)
templateNoTrace template to use (default: 'Time Profiler')
outputPathNoPath where to save the trace file (default: app_trace.trace in active directory)
startSuspendedNoStart the application in a suspended state

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It mentions 'using xctrace' but does not explain side effects such as launching the app, requiring a simulator, blocking behavior, output file handling, or return values. This is a significant gap for a tool that likely performs a complex operation.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the key action. Every word contributes meaning, and there is no redundancy 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 has 5 parameters, no annotations, and no output schema, yet the description only states the basic action. It does not explain the trace output, how to interpret results, prerequisites, or what happens after capture, leaving considerable gaps for a tool with this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are well-documented in the schema. The description adds no additional parameter semantics or details beyond what the schema already 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's purpose: 'Captures a performance trace of an application using xctrace'. The verb 'captures' combined with the resource 'performance trace' and the method 'xctrace' is specific and distinguishes this from sibling tools like launch_app or build_project.

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 performance tracing but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. It lacks context such as needing a built app or simulator, making it minimal but not misleading.

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

update_swift_packageB

Updates the dependencies of your Swift project using Swift Package Manager.

ParametersJSON Schema
NameRequiredDescriptionDefault
branchNoThe branch to resolve at (only applies when specificPackage is provided)
versionNoThe version to resolve at (only applies when specificPackage is provided)
revisionNoThe revision to resolve at (only applies when specificPackage is provided)
specificPackageNoOnly update this specific package (leave empty to update all)

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 of behavioral disclosure. It only states the core action of updating dependencies, but it does not mention side effects such as modifying Package.resolved, requiring network access, or the potential for breaking changes. This is a significant gap for a mutation-like tool.

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

Conciseness5/5

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

The description is a single, focused sentence with no filler or redundancy. It is front-loaded and easy to parse.

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

Completeness2/5

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

The description is minimal and lacks important context for safe usage: it does not mention prerequisites (e.g., an active Swift package), effects on project files, or the scope of updates (all vs. specific package). Since there is no output schema or annotations, the agent receives insufficient context for a dependency-updating 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?

The input schema covers 100% of parameters with clear descriptions (e.g., specificPackage, branch/version/revision conditions). The tool description adds no additional parameter semantics, but the schema already provides sufficient meaning, 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 action (updates), the resource (dependencies of your Swift project), and the method (using Swift Package Manager). This distinguishes it from sibling tools like pod_update, show_swift_dependencies, and init_swift_package.

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 to update dependencies, but it does not explicitly state when to use it versus alternatives, nor does it mention exclusions (e.g., targeted updates via specificPackage or using pod_update for CocoaPods). The usage context is implied but not elaborated.

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

validate_appA

Validate an app for App Store submission using altool

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNoAPI Key ID (alternative to username/password)
ipaPathYesPath to the .ipa file to validate
passwordYesApp-specific password for the App Store Connect account
usernameYesApp Store Connect username (usually an email)
apiIssuerNoAPI Key Issuer ID (required if using apiKey)
apiKeyPathNoPath to the API Key .p8 file (required if using apiKey)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only names the tool (altool) and the task, but doesn't disclose side effects, credential handling, network usage, potential authentication errors, or whether the validation is read-only. For an operation involving App Store Connect credentials, 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 conveys the core purpose without redundancy. Every word contributes meaning.

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 no output schema and no annotations, the description should explain what happens on success/failure, what output to expect, and how validation works with App Store Connect. Given the tool has 6 parameters including alternate authentication methods, the single-sentence description 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%, meaning every parameter already has a documented meaning. The description adds no parameter-level detail, but the schema already provides adequate semantics. 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 ('Validate') with a clear resource ('an app for App Store submission') and names the underlying mechanism ('using altool'). This clearly distinguishes it from sibling tools like build_project, archive_project, or export_archive.

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

Usage Guidelines4/5

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

It establishes clear context: validation for App Store submission via altool. It doesn't explicitly state when not to use it or name alternatives, but the purpose is specific enough that no obvious alternative tool exists among siblings, making the usage context reasonably clear.

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

write_fileA

Writes or updates the content of a file within the active project or allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file to update or create. Can be absolute, relative to active directory, or use ~ for home directory.
contentYesThe content to be written to the file.
encodingNoEncoding to use when writing the file (e.g., 'utf-8', 'latin1'). Default is 'utf-8'.
filePathNoAlias for 'path' parameter (deprecated)
createPathNoIf true, creates the directory path if it doesn't exist.
fromBase64NoIf true, decode the content from base64 before writing. Useful for binary files.
createIfMissingNoIf true, creates the file if it doesn't exist.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral disclosure. It only mentions the scope ('within active project or allowed directories') but does not disclose important traits such as overwrite behavior, handling of missing directories, security restrictions, or side effects. The parameter descriptions in the schema cover some of this, but the tool description itself lacks this 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 front-loaded sentence that states the primary verb, object, and scope without any redundancy. Every word earns its place; no filler or irrelevant 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 the tool has 7 parameters, no output schema, and no annotations, the one-sentence description is somewhat minimal. It conveys the core purpose and a key constraint but does not mention important behavioral details like error conditions, permission requirements, or the significance of the various flags. The schema covers parameter definitions, so the overall context is adequate but not rich.

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 tool description does not add any parameter semantics beyond what the schema already provides. It does not clarify relationships between parameters (e.g., when to use createPath vs createIfMissing) or explain the deprecated filePath alias.

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

Purpose5/5

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

The description clearly states the tool's function: 'Writes or updates the content of a file' within a scoped location ('active project or allowed directories'). This specific verb-object pair distinguishes it from sibling tools like copy_file, move_file, or delete_file.

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

Usage Guidelines3/5

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

The description implies usage for any scenario where file content must be written or updated, but it does not provide explicit guidance on when to use this tool versus alternatives like add_file_to_project or create_directory. No exclusions or alternative tool names are mentioned.

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. 76 tool updatesv1.0.3
    • First observedadd_file_to_project
    • First observedadd_project_to_workspace
    • First observedadd_swift_package
    • First observedanalyze_file
    • First observedarchive_project
    • First observedboot_simulator
    • First observedbuild_project
    • First observedbuild_spm_package
    • First observedbuild_swift_package
    • First observedchange_directory
    • First observedcheck_cocoapods
    • First observedcheck_file_exists
    • First observedclean_project
    • First observedclean_swift_package
    • First observedcompile_asset_catalog
    • First observedcopy_file
    • First observedcreate_directory
    • First observedcreate_workspace
    • First observedcreate_xcode_project
    • First observeddelete_file
    • First observeddetect_active_project
    • First observeddump_swift_package
    • First observededit_package_swift
    • First observedexport_archive
    • First observedfind_files
    • First observedfind_projects
    • First observedgenerate_icon_set
    • First observedgenerate_swift_docs
    • First observedget_active_project
    • First observedget_current_directory
    • First observedget_file_info
    • First observedget_package_info
    • First observedget_project_configuration
    • First observedget_xcode_info
    • First observedinit_swift_package
    • First observedinstall_app
    • First observedlaunch_app
    • First observedlist_available_destinations
    • First observedlist_available_schemes
    • First observedlist_booted_simulators
    • First observedlist_directory
    • First observedlist_installed_apps
    • First observedlist_project_files
    • First observedlist_simulators
    • First observedmove_file
    • First observedopen_url
    • First observedpod_deintegrate
    • First observedpod_init
    • First observedpod_install
    • First observedpod_outdated
    • First observedpod_repo_update
    • First observedpod_update
    • First observedpop_directory
    • First observedpush_directory
    • First observedread_file
    • First observedremove_swift_package
    • First observedreset_simulator
    • First observedresolve_path
    • First observedrun_lldb
    • First observedrun_tests
    • First observedrun_xcrun
    • First observedsearch_in_files
    • First observedset_project_path
    • First observedset_projects_base_dir
    • First observedshow_swift_dependencies
    • First observedshutdown_simulator
    • First observedswift_package_command
    • First observedswitch_xcode
    • First observedtake_screenshot
    • First observedterminate_app
    • First observedtest_spm_package
    • First observedtest_swift_package
    • First observedtrace_app
    • First observedupdate_swift_package
    • First observedvalidate_app
    • First observedwrite_file

TDQS

B3/5.0
Disambiguation2/5

With 76 tools, many overlap in purpose: three different build tools (build_project, build_spm_package, build_swift_package), multiple test tools, and several project-detection tools (detect_active_project, get_active_project, get_project_configuration). Agents would struggle to choose the right tool.

Naming Consistency3/5

Most tools follow verb_noun (build_project, list_simulators), but a substantial subset uses noun_verb (pod_install, swift_package_command, pod_repo_update). This inconsistency creates ambiguity about whether the verb comes first.

Tool Count1/5

76 tools is far beyond any reasonable scope, even for a broad Xcode server. Many tools could be consolidated (e.g., a single SPM build tool, a single test tool).

Completeness4/5

Despite the bloat, the surface covers core Xcode workflows: project creation, file operations, building, testing, archiving, simulator control, and dependency management. Minor gaps exist (no scheme editing, no provisioning profile management).

Maintenance

ActivityInactive
ResponsivenessUnresponsive

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

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A server that acts as a bridge between Claude and local Xcode projects, enabling AI-powered code assistance, project management, and automated development tasks without exposing your code to the internet.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enable Claude Code, Cursor, or your favorite LLM to interact with Xcode, building your projects the same way you do, and seeing the same errors. Greatly increases productivity when working on iOS, iPadOS, macOS, visionOS, tvOS projects & Swift packages - or any time you might use Xcode.
    29
    5
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to build, test, run, and manage Apple platform projects (iOS, macOS, tvOS, watchOS, visionOS) directly through Xcode. Provides comprehensive control over Xcode projects, Swift packages, simulators, and development workflows without leaving your editor.
    5
    41
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Bridges AI assistants with Xcode to control projects, builds, simulators, testing, and debugging without manual interaction.
    -

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/r-huijts/xcode-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server