Use your phone as a Bluetooth bridge between an AI agent and a board

Some boards are not next to your computer: they sit in an enclosure, on a robot or across the bench. The phone bridge lets the desktop MCP server reach a Bluetooth LE board through your phone, so your agent can read and write its serial link without a USB cable.

Last checked against the source code on 2026-09-17.

How it is wired

  1. The board runs firmware that exposes the Nordic UART Service (service UUID 6e400001-b5a3-f393-e0a9-e50e24dcca9e). The phone writes to its RX characteristic and subscribes to its TX characteristic.
  2. In the companion app you connect to the board, open the Bridge tab and tap Start bridge. The phone starts listening on port 47632 and shows a pairing token. A new token is generated every time the bridge starts.
  3. On the computer you give the MCP server the phone's address and that token, together with your Pro license key.
  4. list_boards now includes an entry labelled "Phone bridge" with family bridge, and the serial tools work on it.

Desktop configuration

{
  "mcpServers": {
    "mcuport": {
      "command": "node",
      "args": ["/absolute/path/to/mcu-mcp/server/dist/index.js"],
      "env": {
        "MCUPORT_LICENSE_KEY": "the key from your Pro purchase email",
        "MCUPORT_BRIDGE_HOST": "http://192.168.1.42:47632",
        "MCUPORT_BRIDGE_TOKEN": "the pairing token shown on the phone"
      }
    }
  }
}

Configuration mistakes are reported, not hidden. With no MCUPORT_BRIDGE_HOST the bridge is simply off. If the host is set but the token is missing, list_boards returns a warning that names the missing variable, while your USB boards still list normally. Without a valid Pro license the bridge board is not listed and serial_open says the bridge requires Pro.

What the agent can do through it

serial_open  { "family": "bridge", "path": "phone-bridge", "baudRate": 115200 }
serial_read  { "family": "bridge", "handle": { ... }, "timeoutMs": 2000 }
serial_write { "family": "bridge", "handle": { ... }, "dataBase64": "..." }
serial_close { "family": "bridge", "handle": { ... } }

Reads wait on the phone until data arrives or the timeout passes. If the phone is asleep or out of range, the server retries its health check a few times and then lists no bridge board, instead of failing every other tool.

Limits you should know

Why a phone at all

Browsers cannot do this job on iOS: Safari implements neither Web Serial nor WebUSB, and WebKit lists WebUSB as opposed. A native app is the only way to reach a board from an iPhone. Among the 32 hardware MCP servers and the 8 phone-to-board apps surveyed on 2026-09-16, none combined the two; see the comparison.

Frequently asked questions

What does the phone bridge actually do?
The companion app connects to a Bluetooth LE board that speaks the Nordic UART Service and runs a small server on your local network. The desktop MCP server connects to that server, so the board appears in list_boards and the agent can open, read, write and close its serial link as if it were plugged in by USB.
Which boards can I reach through the phone?
Any board whose firmware exposes the Nordic UART Service over Bluetooth LE, for example an ESP32 or an nRF52 running a BLE UART sketch, or a BLE-UART adapter wired to another board's serial pins. One board per phone at a time.
Can the agent flash firmware through the phone bridge?
No. The bridge carries serial data only. A flash_firmware call on the bridge family returns an explicit error saying flashing over the phone bridge is not supported yet, rather than pretending to succeed.
Does the phone bridge work away from home?
No. The desktop connects straight to the phone's address on the same local network, on port 47632. There is no relay service, so the phone and the computer have to be on the same network.
What does the phone bridge cost?
It is the Pro unlock: $20 once, with no subscription. The desktop server checks the Pro license before it lists or opens a bridge board. Everything over USB stays free.
Is the companion app in the App Store or Google Play?
Not yet. The app exists for iOS and Android but has not been released on either store, so the phone bridge cannot be used by customers until it is.