iPhone SSH工具服务

一个独立的MCP服务器,通过SSH连接到越狱的iPhone,并向MCP客户端提供实用的iPhone工具。

  • by davghz
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 davghz/iphone-ssh-mcp

使用说明

iOS Python 3.14-iPhone SSH MCP

独立的MCP服务器,通过SSH连接到越狱的iPhone,并向MCP客户端公开实用的iPhone工具。

特性

  • 使用密钥优先身份验证和密码回退执行SSH命令(sshpass)
  • 安全政策:
    • 丹尼利斯特破坏性行动指挥部
    • 写入操作仅限于已分配的远程根目录
  • 文件工具:读/写/列表/推/拉
  • 设备和日志检查工具
  • 调整HTTP工具(/status, /screenshot,通用端点请求)
  • MCP主机兼容性的标准传输

需求

  • Node.js 18+(在Node 22上测试)
  • SSH访问设备(root@<iphone-ip>)
  • 可选: sshpass 用于密码回退身份验证

安装

npm install
npm run build

跑

npm start

对于当地发展:

npm run dev

环境变量

  • IPHONE_SSH_HOST (默认值: 10.0.0.9)
  • IPHONE_SSH_USER (默认值: root)
  • IPHONE_SSH_PORT (默认值: 22)
  • IPHONE_SSH_KEY_PATH (默认值: ~/.ssh/id_rsa)
  • IPHONE_SSH_PASSWORD (可选,仅与 sshpass)
  • IPHONE_SSH_CONNECT_TIMEOUT_SEC (默认值: 5)
  • IPHONE_SSH_COMMAND_TIMEOUT_SEC (默认值: 30)
  • IPHONE_SSH_STRICT_HOST_KEY_CHECKING (默认值: accept-new)
  • IPHONE_SSH_KNOWN_HOSTS_FILE (默认值: ~/.ssh/known_hosts)
  • IPHONE_TWEAK_PORT (默认值: 8765)
  • IPHONE_TWEAK_TIMEOUT_MS (默认值: 8000)
  • IPHONE_ALLOWED_WRITE_ROOTS (远程根的CSV)
  • IPHONE_LOCAL_ARTIFACT_ROOTS (CSV格式的本地根目录,可以在其中写入文件/截图)

MCP客户端配置示例

mcp-config.example.json:

{
  "mcpServers": {
    "iphone-ssh": {
      "command": "node",
      "args": ["/Users/davgz/iphone-ssh-mcp/dist/server.js"],
      "env": {
        "IPHONE_SSH_HOST": "10.0.0.9",
        "IPHONE_SSH_USER": "root",
        "IPHONE_SSH_PASSWORD": "alpine"
      }
    }
  }
}

工具

  • iphone_get_device_info
  • iphone_run_command
  • iphone_run_write_command
  • iphone_list_dir
  • iphone_read_file
  • iphone_write_file
  • iphone_pull_file
  • iphone_push_file
  • iphone_get_logs
  • iphone_get_crash_logs
  • iphone_respring
  • iphone_tweak_status
  • iphone_tweak_request
  • iphone_take_screenshot

测试

npm run check

备注

  • iphone_run_command 块通过设计编写类似命令。
  • 使用 iphone_run_write_command 用于编写操作并提供 write_paths 在允许的根。
  • iphone_respring 需要 confirm=true.
  • iphone_tweak_status 检查 /status 首先,然后回到 /ping 对于只暴露ping运行状况的守护进程。