Phone Link交互服务器

一个通过UI自动化与Windows Phone Link应用交互的服务器,提供读取手机状态、消息、通话记录等功能。

  • by Heartran
  • PowerShell
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Heartran/phonelink-mcp-server

使用说明

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 build

Claude桌面配置

添加到您的 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
  1. Claude调用MCP工具(例如。, phonelink_get_messages)
  2. Node.js服务器执行相应的PowerShell脚本
  3. PowerShell脚本使用。NET System.Windows.Automation 致:
    • 查找电话链接窗口
    • 导航到正确的选项卡
    • 遍历UI元素树
    • 提取文本、名称和元数据
  4. 结果通过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

许可证

麻省理工学院