Skip to main content
Glama

BCD — Bridge Control Delegate

ios_archive

Archive a scheme for devices (an .xcarchive) on this Mac, signed with the project's signing settings. Runs as a background job and returns its jobId; poll ios_build_status with it. Nothing is uploaded; ios_testflight archives and uploads.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyIdNoApp Store Connect API key ID; the key file stays in ~/.appstoreconnect/private_keys. With it, Xcode may update signing profiles
schemeYes
teamIdNoApple Developer team ID for signing, when the project has none (DEVELOPMENT_TEAM)
projectYes.xcodeproj or .xcworkspace path from ios_projects
deviceIdNoComputer name or id from list_devices. Optional with one computer online or a default set.
issuerIdNoApp Store Connect issuer ID; remembered on this Mac after the first TestFlight upload
buildNumberNoSets CURRENT_PROJECT_VERSION
configurationNo
workSessionIdNoWork session from create_work_session. Pass the same ID on every call in this conversation; omit for legacy unscoped work.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, which fit an archiving write, so no contradiction. The description adds behavior annotations do not carry: it runs as a background job, returns a jobId, requires polling via ios_build_status, performs signing with project settings, and uploads nothing. It does not say whether an existing .xcarchive is overwritten or how long the job typically takes.

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?

Three short sentences, zero waste, front-loaded with the core action and immediately followed by the key exclusion and the required follow-up. Every sentence earns its place.

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

Completeness4/5

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

For a 9-parameter async mutation with no output schema, the description supplies the critical missing pieces: async job semantics, the jobId return, the polling tool, and the no-upload scope. Remaining gaps (overwrite behavior, success/failure reporting) are minor given annotations cover the safety profile.

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 78%, so the schema already documents most parameters including keyId, teamId, project, deviceId, and buildNumber. The description only alludes to signing settings generally and adds no syntax or format detail beyond the schema, which is the expected baseline 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?

States a specific verb (Archive) and resource (a scheme for devices -> .xcarchive) plus the locality (on this Mac) and signing basis. It also names the sibling it is not, ios_testflight, so the agent can separate archival-only from archive-and-upload without opening either schema.

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?

Explicit routing: 'Nothing is uploaded; ios_testflight archives and uploads' tells the agent which tool to pick and why. It additionally instructs the caller to poll ios_build_status with the returned jobId, covering the follow-up step after invocation.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources