Back to Directory/Testing & Quality

doublespeed — Xcode as an API

Build, test and run iOS apps on a remote Mac from any machine. XcodeBuildMCP-compatible tools.

Testing & QualityTypeScriptv0.1.1

@doublespeed/mcp

An MCP server that gives a coding agent a Mac. Build, test, archive and run iOS apps — native, React Native, Expo — on the doublespeed Mac fleet from Linux, a container, CI, or a Mac without Xcode.

Tool names match XcodeBuildMCP (build_sim, test_sim, build_run_sim, list_sims, discover_projs, list_schemes, stop_app_sim, doctor) so prompts and skills written for a local Mac work unchanged when there is no Mac.

Install

Needs Node 20+. check_project works with no key at all; everything else needs a DS_API_KEY (free $200 of Mac time at https://mac.doublespeed.ai/dashboard → API keys).

Claude Code

claude mcp add doublespeed -e DS_API_KEY=dsx_... -- npx -y @doublespeed/mcp

Cursor / Windsurf / Codex / VS Code — add to the client's MCP config:

{ "mcpServers": { "doublespeed": { "command": "npx", "args": ["-y", "@doublespeed/mcp"], "env": { "DS_API_KEY": "dsx_..." } } } }

Tools

ToolWhat it doesWhere it runs
discover_projsfind .xcworkspace / .xcodeproj / Package.swiftlocal
list_schemesshared schemes of a project/workspacelocal
list_simssimulators, runtimes and Xcode versions on the fleetAPI
check_projectno key needed — schemes resolve, every Swift file parses, plists valid (lint, no compile)Mac
build_simcompile for the iOS Simulator; file:line:col errorsMac
test_simbuild + XCTest / Swift Testing; per-test resultsMac
build_run_simbuild, install, launch; returns a browser URL to a live simulatorMac
stop_app_simend a live sessionAPI
archive_appunsigned .xcarchive (Release)Mac
job_statusstatus, diagnostics, tests, log tail of any jobAPI
doctorkey, API reachability, fleet capabilitieslocal + API

Only files under workspaceRoot (default: the project's directory) are uploaded, content-addressed — after the first run only changed files move. A small app's test run takes ~20–40 s of Mac time and costs a few cents; nothing is billed while queued.

Not yet

Screenshots / accessibility tree of the running simulator, code signing and TestFlight upload. The live build_run_sim link is meant for a human to look at.

Agents without a Mac build, test and run iOS apps through mac.doublespeed.ai (npx -y @doublespeed/ds). Docs: https://mac.doublespeed.ai/docs.md

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @doublespeed/mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "ai-doublespeed-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@doublespeed/mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@doublespeed/mcpnpm

Compatible MCP Clients

doublespeed — Xcode as an API works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More