Docs › Mobile apps
Real phones
A dev tunnel, so a phone on any network reaches the server on your machine.
Phones: a dev tunnel#
The mobile SDKs (.NET MAUI, SwiftUI, Android, React Native, Flutter) reach notato dev on localhost, which a simulator shares with your machine but a phone does not. notato dev --tunnel (or NOTATO_TUNNEL=1) also puts the server behind a Microsoft dev tunnel, a public https URL that forwards to it:
devtunnel user login # once; the devtunnel CLI is `brew install --cask devtunnel`
claude mcp add notato -- npx notato dev --port 4748 --tunnel # or codex mcp add …, or the args in your agent's config
- It makes the tunnel the first time and reuses it after, so the URL stays the same (a tunnel unused for 30 days expires, and a new one is made). The tunnel runs while the server does.
- The tunnel allows anonymous access, so a phone needs no Microsoft sign-in; the server answers anything that comes through it only with a device token, made once and kept. Requests from your own machine are unchanged. The MCP is never served through it, token or not.
- The URL and the token are written to
.notato/device.json. The .NET MAUI package reads it into debug builds, and then a phone and the Android emulator use the tunnel and the iOS simulator localhost, with nothing to configure. Keep.notato/out of git: the token is a key to your server. - Only the process that runs the server hosts its tunnel: give a project that needs one its own port, so it is not attached to another project's
notato dev. - Or run one server for everything, apart from any agent session:
npx notato --tunnel --dir ~/.notatoruns just the server until it is stopped (notato dev --standaloneis the same), and every session's ownnotato devattaches to it on the same port, so the board shows every project. Agents can also connect to its/mcpdirectly. Point an app's build at its folder (<NotatoDataDirectory>, for .NET MAUI).