Skip to content

MCP · Claude Code · Codex

Let your coding agent run builds on your iPhone

The agent works in Xcode on your Mac. Your phone is somewhere else. Nuticast’s MCP server lets the agent bring the phone into Xcode and run the build on it.

Updated

Short answer

Nuticast includes a local MCP server, nuticast mcp. Add it to Claude Code, Codex or any MCP client on the Mac that runs Xcode. The agent can then start a bridge to an iPhone on another Wi‑Fi, wait until Xcode sees it, and build with xcodebuild -destination id=<UDID>. The Mac and the iPhone need the same mesh VPN, and the iPhone has to be on Wi‑Fi, not cellular.

  1. 01

    You ask

    “Run the tests on my iPhone.” The phone can be on any Wi‑Fi, as long as it’s on the same mesh VPN as the Mac.

  2. 02

    The agent bridges

    It lists your saved devices, starts the Nuticast bridge and waits until Xcode sees the phone.

  3. 03

    Xcode builds

    It gets the device’s UDID and runs xcodebuild with that destination. The app lands on the phone in your hand.

Before you start

  • Nuticast 1.0.17 or later in /Applications, from the download page or with Homebrew: brew install --cask webwarrior06/tap/nuticast (tap).
  • The iPhone paired once next to the Mac and saved in Nuticast. How it works has the steps.
  • The Mac and the iPhone on the same mesh VPN: Tailscale, ZeroTier, Netbird or another one through Manual IP.
  • A license, activated once in your own Terminal. The agent never sees the key:
    /Applications/Nuticast.app/Contents/Helpers/nuticast license activate

Add it to your agent

Claude Code

Adds the MCP server for every project. The Claude plugin, which also adds a skill that teaches the order of the tools, is in review for Anthropic’s plugin directory.

claude mcp add --scope user nuticast -- /Applications/Nuticast.app/Contents/Helpers/nuticast mcp

Codex

Installs the plugin (MCP server plus skill) from its marketplace repository. Start a new session afterwards.

codex plugin marketplace add webwarrior06/nuticast-codex-plugin
codex plugin add nuticast@nuticast

Claude Desktop and other MCP clients

Any client that starts local stdio servers. Add this to its MCP config (for Claude Desktop: Settings → Developer → Edit Config).

{
  "mcpServers": {
    "nuticast": {
      "command": "/Applications/Nuticast.app/Contents/Helpers/nuticast",
      "args": ["mcp"]
    }
  }
}

Plugin sources and full docs: Claude plugin · Codex plugin

The 13 tools

It can’t delete devices, touch the license or install apps.

ToolWhat it doesChanges
nuticast_list_devicesLists saved iPhones and how each is reachedNo
nuticast_list_mesh_peersAsks Tailscale and Netbird for the devices on your networkNo
nuticast_scan_lanFinds iPhones advertising wireless debugging on this Wi‑FiNo
nuticast_list_xcode_devicesLists the devices Xcode can see, with UDIDsNo
nuticast_bridge_statusShows which devices are bridged by the command lineNo
nuticast_wait_for_bridgeWaits for a bridge to come upNo
nuticast_get_logsReads the last lines of the Nuticast log (at most 200)No
nuticast_license_statusShows whether this Mac is licensedNo
nuticast_add_deviceSaves an iPhone with its mesh VPN device (phone on this Mac’s Wi‑Fi or plugged in)Saves a device
nuticast_diagnoseProbes a device over the mesh; saves a moved portSaves a port
nuticast_start_bridgeStarts a bridge for a saved deviceStarts a process
nuticast_ensure_device_readyStarts the bridge if needed and waits for XcodeStarts a process
nuticast_stop_bridgeStops a command-line bridgeEnds a debug session

Without MCP: the command line

Agents that only run shell commands can use the same nuticast tool. Every command takes --json and returns a distinct exit code, and the bridge runs without the menu bar app, so it works on a headless Mac.

nuticast devices --json
Saved devices, machine-readable
nuticast up <device> --detach
Start a bridge without the menu bar app, then return
nuticast status
Which devices are bridged right now
nuticast diagnose <device>
Probe the phone over the mesh and report what answers
nuticast down <device>
Stop a bridge started with up

Limits

  • The iPhone has to be on Wi‑Fi. Cellular doesn’t work; another phone’s hotspot does.
  • The first pairing happens next to the Mac. After that the phone can be anywhere.
  • The MCP server runs on the Mac with Xcode, so cloud agents and mobile apps can’t use it.
  • The Mac has to stay awake and on its network.
  • While the phone is on the Mac’s own Wi‑Fi, Xcode already sees it and the bridge isn’t needed.

The longer story, with TestFlight compared: test AI agent builds on a real iPhone when you’re away from your Mac.

Questions

Can Claude Code or Codex build and run my app on a real iPhone that isn’t on the Mac’s Wi‑Fi?

Yes, if the Mac and the iPhone are on the same mesh VPN (Tailscale, ZeroTier, Netbird or another one through Manual IP) and the iPhone is on any Wi‑Fi. Nuticast’s MCP server lets the agent start the bridge and wait for Xcode; the agent then builds with xcodebuild against the phone’s UDID.

Does the agent see my Nuticast license key?

No. No tool reads, activates or deactivates a license. If the Mac isn’t licensed, the agent asks you to run nuticast license activate in your own Terminal, which reads the key from a hidden prompt.

Does the Nuticast menu bar app have to be running?

No. The MCP server and nuticast up run their own bridge, so this works on a headless Mac. Devices are shared with the app; don’t bridge the same device from both.

Does it work with Cursor or other MCP clients?

Any client that can start a local stdio MCP server can run nuticast mcp. It has to run on the Mac that has Xcode and Nuticast, so cloud-hosted agents and mobile apps can’t use it.

Does it work when the iPhone is on cellular?

No. The iPhone has to be on Wi‑Fi. Any Wi‑Fi works, including another phone’s Personal Hotspot.

What does it cost?

The MCP server ships inside the Nuticast app. Reading devices is free; starting a bridge needs a Nuticast license, the same as in the app.

Give your agent a real iPhone.

Download Nuticast

Questions about agent setups: hello@nuticast.com