xctools-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| xcrun_find_toolA | Find the path to a development tool using xcrun. Args: tool_name: Name of the tool to find (e.g., 'clang', 'swift', 'texturetool') sdk: SDK name to search in (e.g., 'iphoneos', 'macosx') Returns: Absolute path to the tool |
| xcrun_show_sdk_pathA | Show the path to the SDK. Args: sdk: SDK name (e.g., 'iphoneos', 'macosx'). Uses default if not specified. Returns: Path to the SDK |
| xcrun_show_sdk_versionA | Show the version of the SDK. Args: sdk: SDK name (e.g., 'iphoneos', 'macosx'). Uses default if not specified. Returns: Version of the SDK |
| xcrun_run_toolC | Run a development tool via xcrun. Args: tool_name: Name of the tool to run args: Arguments to pass to the tool sdk: SDK to use when running the tool verbose: Enable verbose output Returns: Output from the tool |
| xcodebuild_buildB | Build an Xcode project or workspace. Args: project: Path to .xcodeproj file workspace: Path to .xcworkspace file scheme: Scheme name to build target: Target name to build configuration: Build configuration (Debug, Release, etc.) sdk: SDK to build against destination: Destination to build for clean: Whether to clean before building Returns: Build output |
| xcodebuild_testA | Run tests for an Xcode project or workspace. Args:
project: Path to .xcodeproj file
workspace: Path to .xcworkspace file Returns: Test results |
| xcodebuild_archiveA | Archive an Xcode project or workspace. Args: project: Path to .xcodeproj file workspace: Path to .xcworkspace file scheme: Scheme name to archive (required) archive_path: Path where to save the archive Returns: Archive result |
| xcodebuild_listA | List targets and configurations in a project, or schemes in a workspace. Args: project: Path to .xcodeproj file workspace: Path to .xcworkspace file Returns: List of targets/schemes and configurations |
| xcodebuild_show_sdksB | List all available SDKs. Returns: List of available SDKs |
| xcodebuild_show_destinationsB | List valid destinations for a project or workspace and scheme. Args: project: Path to .xcodeproj file workspace: Path to .xcworkspace file scheme: Scheme name (required) Returns: List of valid destinations |
| xctrace_recordA | Record a new Instruments trace using the specified template. Args: template: Template name or path to use for recording output_path: Path to save the trace file device: Device name or UDID to record on time_limit: Time limit for recording (e.g., '5s', '1m') all_processes: Record all processes on the system attach_process: Process name or PID to attach to launch_command: Command and arguments to launch and record Returns: Recording result |
| xctrace_importC | Import a supported file format into an Instruments trace file. Args: input_file: Path to the input file to import (e.g., .logarchive, .ktrace) template: Template name or path to use for import output_path: Path to save the imported trace file instrument: Name of instrument to add to import configuration package: Path to Instruments Package to install temporarily Returns: Import result |
| xctrace_exportB | Export data from an Instruments trace file. Args: input_file: Path to the .trace file to export from output_path: Path to save the exported data toc: Export table of contents xpath: XPath expression to select specific data Returns: Exported data or success message |
| xctrace_listA | List available devices, templates, or instruments. Args: list_type: What to list ('devices', 'templates', 'instruments') Returns: List of requested items |
| xctrace_symbolicateB | Symbolicate a trace file using debug symbols. Args: input_file: Path to the .trace file to symbolicate output_path: Path to save the symbolicated trace dsym_path: Path to dSYM file or directory containing dSYMs Returns: Symbolication result |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Tools are clearly separated by domain prefixes (xcodebuild_, xcrun_, xctrace_) and within each group have distinct, non-overlapping purposes. For example, xcodebuild_archive builds a standalone archive while xcodebuild_build compiles the project, and xcrun_find_tool locates a tool versus xcrun_run_tool executes it.
All tool names follow a consistent snake_case pattern with a category prefix and a descriptive verb (e.g., xcodebuild_archive, xcrun_find_tool, xctrace_record). Multi-word verbs are compound but still uniform. No mixing of conventions.
With 15 tools, the set covers the primary Xcode development workflows (building, archiving, testing, running command-line tools, and profiling) without being excessive. Each tool has a defined purpose and the count feels appropriate for the server's domain.
The tool surface covers major Xcode operations: building, archiving, testing, SDK queries, xcrun utilities, and Instruments recording. Minor gaps exist, such as missing xcodebuild clean or analyze, and limited xcrun actions (e.g., no simctl), but the core workflows are complete and agents can work around these omissions.