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@) - 可选:
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_infoiphone_run_commandiphone_run_write_commandiphone_list_diriphone_read_fileiphone_write_fileiphone_pull_fileiphone_push_fileiphone_get_logsiphone_get_crash_logsiphone_respringiphone_tweak_statusiphone_tweak_requestiphone_take_screenshot
测试
npm run check备注
iphone_run_command块通过设计编写类似命令。- 使用
iphone_run_write_command用于编写操作并提供write_paths在允许的根。 iphone_respring需要confirm=true.iphone_tweak_status检查/status首先,然后回到/ping对于只暴露ping运行状况的守护进程。
