phonelink-mcp-server
MCP server that interacts with the Phone Link Windows app via UI Automation to read messages, calls, notifications, and photos, and perform actions like sending SMS and making calls.
README
phonelink-mcp-server
MCP server that reads and interacts with the Phone Link (MyPhone) Windows app via UI Automation.
Since Microsoft doesn't offer public APIs for Phone Link, this server scrapes the UI using PowerShell + .NET's System.Windows.Automation.
Features
| Tool | Type | Description |
|---|---|---|
phonelink_get_status |
Read | Connection status + phone info |
phonelink_get_messages |
Read | List conversations or read a specific chat |
phonelink_get_calls |
Read | Call history (incoming/outgoing/missed) |
phonelink_get_notifications |
Read | Phone notifications |
phonelink_get_photos |
Read | Photo gallery metadata |
phonelink_inspect_ui |
Read | Debug: dump full UI automation tree |
phonelink_send_message |
Write | Send an SMS via the Phone Link UI |
phonelink_make_call |
Write | Initiate a phone call |
phonelink_launch_app |
Write | Launch Phone Link if not running |
Requirements
- Windows 10/11 with Phone Link installed and configured
- Node.js >= 18
- PowerShell (Windows PowerShell 5.1+ or PowerShell Core 7+)
- Phone connected and paired in Phone Link
Setup
cd phonelink-mcp-server
npm install
npm run build
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"phonelink": {
"command": "node",
"args": ["C:/path/to/phonelink-mcp-server/dist/index.js"],
"env": {
"PHONELINK_PS_EXECUTABLE": "powershell.exe"
}
}
}
}
Note: Use
pwsh.exeinstead ofpowershell.exeif you have PowerShell Core installed (recommended for better performance).
How It Works
Claude ←→ MCP (stdio) ←→ Node.js Server ←→ PowerShell Scripts ←→ UIAutomation ←→ Phone Link UI
- Claude calls an MCP tool (e.g.,
phonelink_get_messages) - The Node.js server executes the corresponding PowerShell script
- The PowerShell script uses .NET's
System.Windows.Automationto:- Find the Phone Link window
- Navigate to the correct tab
- Traverse the UI element tree
- Extract text, names, and metadata
- Results are returned as JSON through the MCP protocol
Environment Variables
| Variable | Default | Description |
|---|---|---|
PHONELINK_PS_EXECUTABLE |
powershell.exe |
PowerShell executable path |
Troubleshooting
"Phone Link window not found"
- Make sure Phone Link is running (use
phonelink_launch_appfirst) - Check that Phone Link's window title matches expected names. Use
phonelink_inspect_uito debug. - The server searches for: "Phone Link", "Collegamento al telefono", "Il tuo telefono", "Your Phone"
UI elements not found
- Phone Link updates may change the UI structure. Use
phonelink_inspect_uito see current elements. - Try increasing
max_depthin inspect_ui to find deeper elements. - The PowerShell scripts include multi-language support (EN, IT, DE, ES) but your locale might use different strings.
Slow responses
- UI Automation traversal can be slow, especially with high
max_depth. - Keep
max_depthat 10-12 for most operations. - The first call after launching Phone Link may be slower while the UI loads.
Permission issues
- PowerShell must run with sufficient privileges to use UIAutomation.
- If running as a service, ensure the service account has access to the desktop session.
Limitations
- UI-dependent: Changes to Phone Link's UI can break scraping. Use
inspect_uito adapt. - Single language per session: Element names depend on the Windows display language.
- No photo download: The photos tool lists metadata but cannot export actual image files.
- Sequential only: Only one tool should run at a time (concurrent UI automation will conflict).
- Foreground required: Phone Link window must be visible (not minimized) for some operations.
Development
npm run dev # Watch mode
npm run build # Build once
npm start # Run server
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.