phonelink mcp服务器
读取并与之交互的MCP服务器 电话链接 (MyPhone)Windows应用程序通过UI自动化。\ 由于Microsoft不提供Phone Link的公共API,因此此服务器使用PowerShell+抓取UI。NET System.Windows.Automation.
特性
| 工具 | 类型 | 描述 |
|---|---|---|
phonelink_get_status | 读取 | 连接状态+电话信息 |
phonelink_get_messages | 阅读 | 列出对话或阅读特定聊天 |
phonelink_get_calls | 已读 | 通话记录(呼入/呼出/未接) |
phonelink_get_notifications | 阅读 | 电话通知 |
phonelink_get_photos | 阅读 | 照片库元数据 |
phonelink_inspect_ui | 读取 | 调试:转储完整的UI自动化树 |
phonelink_send_message | 写 | 通过电话链接UI发送短信 |
phonelink_make_call | 写 | 发起电话 |
phonelink_launch_app | 写入 | 如果未运行,则启动电话链接 |
需求
- Windows 10/11 已安装并配置电话链接
- Node.js >= 18
- PowerShell (Windows PowerShell 5.1+或PowerShell Core 7+)
- 在Phone Link中连接和配对手机
设置
cd phonelink-mcp-server
npm install
npm run buildClaude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"phonelink": {
"command": "node",
"args": ["C:/path/to/phonelink-mcp-server/dist/index.js"],
"env": {
"PHONELINK_PS_EXECUTABLE": "powershell.exe"
}
}
}
}备注:使用pwsh.exe而不是powershell.exe如果您安装了PowerShell Core(建议使用以获得更好的性能)。
运作原理
Claude ←→ MCP (stdio) ←→ Node.js Server ←→ PowerShell Scripts ←→ UIAutomation ←→ Phone Link UI- Claude调用MCP工具(例如。,
phonelink_get_messages) - Node.js服务器执行相应的PowerShell脚本
- PowerShell脚本使用。NET
System.Windows.Automation致:
- 查找电话链接窗口 - 导航到正确的选项卡 - 遍历UI元素树 - 提取文本、名称和元数据
- 结果通过MCP协议以JSON形式返回
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
PHONELINK_PS_EXECUTABLE | powershell.exe | PowerShell可执行文件路径 |
故障排除
“找不到电话链接窗口”
- 确保电话链接正在运行(使用
phonelink_launch_app第一) - 检查Phone Link的窗口标题是否与预期名称匹配。使用
phonelink_inspect_ui调试。 - 服务器搜索: “Phone Link”, “连接到电话”, “您的电话”, “Your Phone”
找不到UI元素
- 电话链接更新可能会更改UI结构。使用
phonelink_inspect_ui查看当前元素。 - 尝试增加
max_depth在inspectui中查找更深层次的元素。 - PowerShell脚本包括多语言支持(EN、IT、DE、ES),但您的区域设置可能使用不同的字符串。
反应缓慢
- UI自动化遍历可能很慢,尤其是在高
max_depth. - 保持
max_depth大多数手术为10-12。 - 在加载UI时,启动电话链接后的第一个呼叫可能会变慢。
权限问题
- PowerShell必须以足够的权限运行才能使用UIAutomation。
- 如果作为服务运行,请确保服务帐户有权访问桌面会话。
局限性
- UI依赖:更改Phone Link的UI可能会破坏抓取。使用
inspect_ui适应。 - 每节课使用一种语言:元素名称取决于Windows显示语言。
- 无照片下载:照片工具列出元数据,但无法导出实际的图像文件。
- 仅顺序:一次只能运行一个工具(并发UI自动化将发生冲突)。
- 需要前景:对于某些操作,电话链接窗口必须可见(而不是最小化)。
发展
npm run dev # Watch mode
npm run build # Build once
npm start # Run server许可证
麻省理工学院
