SuperAPI AI 工具集

askew-mcp

Askew-mcp 是 Askew 的本地连接器,一个基于 stdio 的 MCP 服务器,让 Claude Code、Claude Desktop、Cursor、Codex 等任意 MCP 客户端能够调用 iPhone、iPad 或 Mac 上的“快捷指令”,向用户发送锁屏通知,并读取手机回传的数据;手机可保持锁定状态。它通过端到端加密的中继传输任务输入、结果、通知正文、收件箱条目与变量。0.2 系列新增显式设备选择与指定本地 Mac 目标。目前不支持 Android,iPad 后台运行尚待实机验证,Askew 应用处于候补名单阶段。

访问官网

工具介绍

用途

Askew-mcp 是 Askew 的本地连接器,一个 stdio 类型的 MCP 服务器,用于让任意 AI 智能体(Claude Code、Claude Desktop、Cursor、Codex 或其他 MCP 客户端)在你的 iPhone、iPad 或 Mac 上运行“快捷指令”,向你发送通知,并读取手机回传的内容。运行快捷指令时 iPhone 可以保持锁定。

主要能力

  • 让 MCP 客户端在设备上运行已安装的“快捷指令”。
  • 向手机发送锁屏通知,并接收设备回传的事件与数据。
  • 通过中继进行端到端加密传输:任务输入、结果、通知正文、收件箱条目和变量使用 HPKE(X25519 + HKDF-SHA256 + ChaCha20-Poly1305)加密;共享变量使用以账户密钥派生的 ChaCha20-Poly1305 盒子,变量名作为 AAD。中继仅存储加密信封和元数据(如路由名称、时间戳、状态)。
  • 0.2 系列支持显式设备选择,以及指定本地 Mac 目标执行。
  • 提供配方(recipe)的本地搜索与构建、签名与可选上传。

使用方式

1. 获取连接器密钥

在 iPhone 上的 Askew 应用中:Settings → Register device → 允许通知 → New connector。复制密钥(akc_…),该密钥仅显示一次。

2. 将连接器添加到智能体

支持 Claude Desktop / Cursor / 任意 MCP 客户端(claude_desktop_config.json、.cursor/mcp.json 等),也支持 Codex CLI(~/.codex/config.toml)。

首次经过认证的工具调用会创建 ~/.askew/connector.key(X25519 私钥,权限 0600),向中继注册公钥,并在 stderr 打印由六个单词组成的指纹(例如 cider grove desert fever city burger)。在应用连接器界面核对该六个单词是否一致,然后点击“확인함 / Verified”。该检查可排除中继被替换的风险。未完成前,应用会将连接器显示为未验证,智能体也会被提示向你询问。

3. 在手机上安装调度器

在应用的“快捷指令(단축어)”标签中,安装 Askew dispatcher(分享面板 → 快捷指令 → 添加),打开它并开启顶部的 Automation 开关。在手机解锁状态下,从 Settings → Checkup 运行一次测试推送,并点击 Always Allow。只需一次开关、一次允许。随后以同样方式添加配方(日历、提醒事项、备忘录等),即可向智能体提出请求,例如:

“Add dentist Thursday 3pm to my phone calendar.”

选择设备或本机 Mac

调用 askew_list_routes 并选择一个已启用的 targets 条目。省略 target 时使用路由的默认设备;没有广播。目标分配由手机管理。要在本机 Mac 上运行已安装的快捷指令,使用对应路由的实际输入契约。连接器 ID 必须与 askew_list_routes 打印的一致;该进程无法在另一台 Mac 上执行。目标与路由都必须处于启用状态。本地执行要求 macOS、用于读取分配和紧急停止快照的已认证中继连接,以及 executionMode: "auto"。账户已停止或服务器缺少停止状态字段会阻止本地执行。停止在派发前检查,无法撤销已在运行的快捷指令的效果。

本地 askew_run 将确切的快捷指令名称解析为唯一已安装标识符,运行一次,并直接向 MCP 客户端返回结果。输入和输出保留在本机 Mac,不创建服务器任务、用量计费、服务器运行历史或最后成功更新。wait 仅适用于设备任务:Mac 执行最多等待 60 秒,并返回 local_… 任务 ID。askew_get_run 从该连接器的本地日志读取该 ID(不使用长轮询)。超时/失败可能伴随部分效果,且绝不自动重试。Mac 睡眠可能阻止执行。

确认模式(Confirm-mode)路由需要本地执行器未实现的人工流程,因此会在运行前被拒绝。对于自动 Mac 运行,需提供稳定的幂等键(idempotencyKey,1–200 字符)。连接器在派发前保存持久预留。重复相同请求返回已保存结果;输入、路由或快捷指令名称发生变化会产生冲突。进程被中断或失败不确定时保持 unknown,且不会用该键重跑。不带键的请求为独立运行。不要删除/更改键后盲目重试不确定的尝试;先检查其效果。

本地历史存储在 ASKEW_KEY_PATH 旁的 local-runs/ 下(通常为 ~/.askew/local-runs),按连接器身份和公钥分隔。记录、结果和请求摘要加密到连接器密钥;不保留原始输入。文件仅对本地操作系统用户可见。记录保留至手动删除:删除日志会失去重试保护,丢失私钥会失去对旧结果的访问。重启时保留同一密钥和日志。本地历史按运行 ID 提供,不同步到手机或中继。

配方上传与审查

本地搜索/构建不需要连接器密钥或中继连接。askew_recipe_build 需要 macOS 进行签名。其默认 verify: true 会在本机 Mac 导入并运行新快捷指令,可能造成其动作所产生的任何效果;仅在这些效果被授权时选择。verify: false 仅签名而不导入或运行。签名时工作流会发送给 Apple(Apple 文档)。成功运行不能证明正确或安全。

sendToPhone: true 仅在构建成功后连接中继。这会上传已签名文件和明文工作流,其中可能包含字面量个人数据或机密。该路径在加密的任务/结果/收件箱通道之外。不要在共享配方中嵌入敏感值。本地执行输出返回给 MCP 客户端,但从不作为配方元数据上传。发送 verifiedRun 文本的旧客户端必须升级。

中继检查基本文件结构,并提供来自单独提交的工作流的静态提示。它不验证归档签名,也不确立提示描述该文件。每个智能体配方始终为未验证状态。在 Askew › My Stuff 中,确认你将在添加到“快捷指令”前检查实际动作、权限和目标。下载文件并不代表已确认安装。

收件箱条目返回时始终标记为用户手机发送的数据,而非指令。

连接时服务器还会发送 MCP 说明:运行如何流经调度器、设置顺序、症状 → 原因对照表(过期 vs 未知 vs 失败)以及如何组合配方。

需要 Node 22 或更新版本。

适用场景与限制

  • 支持 iPhone 中继与本地 macOS 目标;iPad 后台行为尚待实机验证;不支持 Android。
  • Askew 应用目前处于候补名单阶段(https://askew.my)。
  • 连接器是 Askew 中唯一持有你密钥的部分,因此也是你可以阅读的部分。
  • 源代码:https://github.com/Dominic-DK/askew-mcp(欢迎提交 issue 和 pull request)。

以上功能、平台与限制均来自项目说明;其他信息暂未提供。