device_infoLABSCO SUMMARY
The phone as a server rather than a client — with everything that follows from what it can then be asked to do.
The capability with no desktop equivalent is the messaging: sending through WhatsApp or Instagram by driving the actual app, and transcribing the voice note that just arrived. Accessibility control is what makes that possible, and also what makes the reach broad — an agent that can tap by visible text can operate most of what is on the screen. The build is labelled pre-release, and how much it can do depends entirely on which Android permissions you grant it.
What it is
An Android app that serves MCP from the phone itself. A desktop agent can read the device's state, look up contacts, place a call, send messages through WhatsApp, Instagram, Messenger or Google Messages, watch notifications, drive apps through accessibility gestures, and transcribe audio.
What you get
- device_info returns battery, model, OS, network and memory; get_location returns the best recent fix from the device's providers; phone_alert rings and vibrates to help find the handset
- search_contacts finds a number by name, make_call places the call, and send_message sends through WhatsApp, Instagram, Messenger or Google Messages
- send_whatsapp_business_message is a contact-safe sender for WhatsApp Business, and whatsapp_automation drives the app through accessibility control for contact selection and typing
- notifications monitors and manages what arrives on the phone in real time
- App control: list_apps enumerates what is launchable, launch_app opens one by package or name, app_actions runs JSON preset actions, and social_media covers Instagram, YouTube and X interactions
- Screen control through accessibility — tap by visible text, content description or coordinates, scroll_screen, search_screen to find a search box and type into it, and global_action for home, back, recents, notifications, quick settings or lock
- Audio work: voice_record captures a note, transcribe_audio does speech to text from the microphone or a local file, transcribe_file takes a path directly, and transcribe_whatsapp_audio transcribes the most recent WhatsApp voice note
- shell runs commands with safety filters and a timeout, read_file reads from allowed storage paths, http_request makes outbound calls from the phone, flashlight and volume_control cover the hardware, and human_command routes a plain-language instruction across the major tools
Requirements
An Android device running the app from the repository's releases — the current build is marked pre-release. The desktop side connects to the phone over HTTP, or through the stdio bridge in the repository's mcp-bridge folder, across LAN or a Tailscale network, so the phone and the client have to be able to reach one another. Messaging, contacts, notifications, location and accessibility control each depend on the corresponding Android permission being granted on the device, which is the real setup step.
Setup effort
Follow the published steps
USE CASES
Answering a message without picking the phone up
Transcribe the voice note that arrived, then reply through the same app from the desktop.
Finding a number that only exists on the phone
Search the device's contacts by name and place the call from there.
Finding the phone itself
The best recent location fix, and a ring-and-vibrate when it is close enough to hear.
Checking what has been arriving
Notifications monitored in real time, with battery and network state beside them.
Driving an app that has no API
Open it by name, tap by the text that is visible on screen, scroll, and type into its search box.
Turning speech into text on the device
Record a note or point at a local audio file and get the transcription back without uploading anything from the desktop.
27 tools
Listed in project docs. Your client may show a different list.
get_locationsearch_contactsmake_callsend_messagesend_whatsapp_business_messagewhatsapp_automationsocial_mediaapp_actionsnotificationsshellflashlightlaunch_applist_appsglobal_actionscroll_screensearch_screentapvolume_controlphone_alertvoice_recordtranscribe_audiotranscribe_filetranscribe_whatsapp_audiohuman_commandhttp_requestread_fileBEFORE YOU INSTALL
What to know first
Tools you get
27 tools named in the project's documentation.
Requires
- An Android phone running the PocketMCP app, reachable from your client over LAN or Tailscale
- A client that can reach a remote MCP server over HTTP, or Node.js for the stdio bridge
INSTALLATION
Connect your client
Server setup
Download PocketMCP-debug.apk from the pre-release page https://github.com/axonixtools/PocketMCP/releases/tag/v1.0.0-beta.1
Install it on the phone with ADB:
adb install -r PocketMCP-debug.apkOpen PocketMCP, set the port (default 8080), generate or paste an API key, and start the server
Copy the endpoint URL from the app's Quick Connect section, and grant the Android permissions the tools you want need (contacts, phone, microphone, notification access, accessibility)
MCP Clients
Any MCP client — HTTP
{
"mcpServers": {
"phone": {
"url": "http://192.168.1.100:8080/mcp",
"headers": {
"X-API-Key": "<YOUR_API_KEY>"
}
}
}
}Use the address and API key the app shows under Quick Connect. Claude Code and VS Code also need "type": "http" in this entry; Cline takes "type": "streamableHttp", the form the project's own example uses.
Any MCP client — stdio bridge
Clone the repository and install the bridge: git clone https://github.com/axonixtools/PocketMCP.git, then cd PocketMCP/mcp-bridge and npm install
Add the bridge to your client as a stdio server — the client starts it, so you do not run it in a terminal:
{
"mcpServers": {
"phone": {
"command": "node",
"args": [
"<YOUR_PATH_TO_POCKET_MCP>/mcp-bridge/bridge.mjs",
"--url",
"http://192.168.1.100:8080/mcp",
"--api-key",
"<YOUR_API_KEY>"
]
}
}
}<YOUR_PATH_TO_POCKET_MCP> is the full path of the PocketMCP folder you cloned. http://192.168.1.100:8080/mcp is a sample: the URL and API key are the ones shown in the app; POCKET_MCP_URL and POCKET_MCP_API_KEY in the environment work instead of the flags.