Phone MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Phone MCPget the phone number and wait for the SMS code from Uber"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Phone MCP
A real Android phone with a real SIM, exposed to AI agents as a single MCP tool set: the Company Phone.
AI Agent → Phone MCP (https://phonemcp.agent24.io/mcp) → Phone MCP Bridge (Android) → Real SIM / mobile networkAn agent signing up for an external service calls get_phone_number, types the number into the
form, then calls wait_for_verification_code and receives the SMS code seconds later. The owner
pairs the phone once from the web interface and never has to touch it again.
Web interface | |
MCP endpoint (Streamable HTTP) | |
Health | |
Android APK |
|
What is in the box
Directory | Contents |
| Node.js 22 + TypeScript + Fastify service: MCP server ( |
| Premium admin + Test Lab interface (Vite, React, TypeScript, Tailwind v4, Framer Motion), served by the server. |
| Phone MCP Bridge — Kotlin / Jetpack Compose app with a foreground service, offline queue and QR pairing. |
|
|
| Architecture · SMS transport · Admin API · Deployment · Android setup · MCP usage · Security |
Related MCP server: AgentPhone MCP Server
MCP tools
Tool | Purpose |
| Paired phones and their connection state |
| Battery, network, heartbeat, round-trip time |
| The company phone number ( |
| Block until the OTP for |
| Block until the next SMS (optionally filtered by sender / text) |
| Recent messages with codes masked |
| Queue an SMS on a specific device (returns a |
| Outbound lifecycle: queued → waiting_for_device → sending → sent → delivered, or failed / expired / cancelled |
| Durable, cursor-paginated event log ( |
| Signed webhook delivery of the same events |
The same capabilities are available as a REST API under /api/v1/* for applications that are not
MCP hosts. Design, lifecycle and guarantees: docs/SMS-TRANSPORT.md.
Connections granted the Full admin permission can also manage Phone MCP itself (settings,
devices, webhooks, other connections and their permissions) over the MCP tools or /api/admin/*;
see docs/ADMIN-API.md.
Quick start (development)
export PATH=$HOME/.local/node22/bin:$PATH # Node 22 on this machine
npm install
ADMIN_INITIAL_PASSWORD=devpassword123 npm run dev --workspace=server # http://127.0.0.1:7870
npm run dev --workspace=web # http://localhost:5173 (proxies /api)
npm test # OTP + end-to-end suitesWithout a phone you can simulate one: generate a pairing code in the web UI, then
cd server
npx tsx scripts/simulate-device.ts pair http://127.0.0.1:7870 7KQ4-M2XN # prints the device credential
npx tsx scripts/simulate-device.ts run http://127.0.0.1:7870 dev_….pds_… +15551234567and type +18005550100|Your Phone MCP Test code is 482931 to deliver an SMS.
Production
./deploy/deploy.sh builds the web app and server, syncs them to /srv/phonemcp on the
production host, installs the systemd unit, brings up the Traefik edge container and checks
/health. The initial owner password is generated into /srv/phonemcp/phonemcp.env on the first
deploy. Details: docs/DEPLOYMENT.md.
Security model in one paragraph
Three independent credentials: the owner's HttpOnly session cookie for the web UI, a per-device
credential (dev_….pds_…) that only the Android app holds, and per-client MCP bearer tokens
(pmcp_…) shown once at creation. All three are stored as keyed hashes. Verification codes are
delivered exactly once, never written to logs or audit events, masked in every listing, and deleted
from the database after the OTP retention window (10 minutes by default). SMS history is kept for
48 hours by default. See docs/SECURITY.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Give AI agents real phone numbers, messages, and voice calls via MCP.
Give AI agents a phone number. Voice calls, SMS, and phone number management for MCP clients.
Virtual phone numbers for AI agents — rent numbers in 200+ countries, receive SMS.
Reach your own phone from an AI agent: notifications, approval questions, reminders, ring, files.
Related MCP Servers
AlicenseAqualityCmaintenanceEnables AI agents to manage SimRelay SIMs: list, lock, release, read SMS history, and stream incoming messages in real-time via WebSocket.1112 npmISC- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage phone numbers, send/receive SMS, and place voice calls through natural language, connecting to the phone network via the AgentPhone API.281 npm124MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to retrieve SMS messages from Android devices via ADB.1-
- AlicenseAqualityDmaintenanceGives AI agents real phone numbers to receive SMS and extract verification codes through tool calls.631 npmMIT