priyankark/phonepi-mcp
Project Overview
PhonePi MCP
MCP server that lets AI assistants control your smartphone over a local WebSocket connection.
True Intent (AI Assessment)
Provide a local MCP+WebSocket bridge so desktop AI assistants can invoke actions on a paired smartphone companion app.
README Accuracy
Notes
The server code is clean and matches the stated purpose, but the actual phone-side tool implementations are not in this repo (closed-source companion app required). WebSocket server accepts any client on the LAN without authentication—users must rely on network-level security as the README notes.
PhonePi MCP is a Model Context Protocol (MCP) server paired with a CLI client that bridges desktop AI tools (like Claude Desktop and Cursor) to a companion smartphone app. The server exposes phone capabilities as MCP tools, and a WebSocket connection on port 11041 relays commands between the AI and the phone app running on the user's device.
The problem it addresses is that desktop AI assistants have no native way to interact with a user's phone. Users who want an AI to send SMS, place calls, check battery, manage contacts, share clipboard content, or trigger notifications on their phone need a bridge. PhonePi provides that bridge without routing traffic through third-party remote servers.
The intended users are developers and power users of MCP-compatible AI clients who own the companion PhonePi mobile app (referenced but not included in this repo). They install the server via npm (`phonepi-mcp`), configure their MCP client to launch it, and their phone connects to the server over the local network. An optional CLI (`phonepi`) provides a standalone chat interface backed by Anthropic's Claude API.
Architecturally, the repo contains two Node.js/TypeScript packages. The `server` package implements an MCP server using `@modelcontextprotocol/sdk` over stdio, plus a `ws` WebSocketServer that listens on 0.0.0.0:11041 for the phone app to connect. Tool calls from the AI are forwarded as JSON messages to the connected phone via WebSocket, and responses are matched back using a pendingRequests map. The `phonepi-cli` package wraps this with an Anthropic-powered interactive chat client that spawns the MCP server as a subprocess.
Notable observations: the WebSocket server binds to 0.0.0.0 with `verifyClient` always returning true, meaning any device on the local network could connect and issue phone-control commands. The README acknowledges this and recommends Tailscale/private networks. The actual phone-side app is closed source and not in this repo, so the 23+ 'tools' advertised are defined on the mobile side, not visible here. Code quality is reasonable, MIT-licensed, and there are no obvious malicious patterns.
| Languages | TypeScript, JavaScript, Shell |
| Runtime | Node.js 14+ |
| Framework | Model Context Protocol SDK |
| Database | None detected |
| Package Manager | npm |
| Key Dependencies | @modelcontextprotocol/sdk, ws, @anthropic-ai/sdk, commander, inquirer, chalk |
| Build Tool | TypeScript compiler (tsc) |
| Test Framework | None detected |