Skip to main content
Glama

build_project

Build the active Xcode project with specified configuration and scheme, and optionally set SDK, destination, or derived data path.

Instructions

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

Input Schema

TableJSON 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).
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.

Install Server

Other Tools

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