mcpField
A
Askew — iPhone, iPad and Mac via Shortcuts

Askew — iPhone, iPad and Mac via Shortcuts

本地服务
askew.my生产力14 周前更新

关于 Askew — iPhone, iPad and Mac via Shortcuts

askew-mcp 是供 Agent 使用的本地 MCP 连接器,可运行 iPhone 快捷指令、发送通知并读取手机收件箱,也能在同一台 Mac 上运行已分配的自动模式快捷指令。设备任务数据在连接器与手机之间加密;配方上传则使用独立的明文通道。

主要功能

  1. 01通过中继运行已分配的 iPhone 快捷指令
  2. 02在本机 Mac 运行启用的自动模式快捷指令
  3. 03发送手机通知并读取收件箱
  4. 04搜索操作并构建快捷指令配方
  5. 05加密设备任务数据和共享变量

适用场景

  1. 01通过 Agent 向手机日历添加事件
  2. 02在指定设备上运行已分配的快捷指令
  3. 03在本机 Mac 执行自动模式快捷指令
  4. 04构建快捷指令配方并提交手机审核

MCP 相关

stdio MCP 服务提供运行快捷指令、管理路由、通知、收件箱、变量和配方的工具。它通过 Askew 中继处理手机任务,也可执行符合条件的本机 Mac 目标。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dominic-dk-askew": {
"command": "npx",
"args": [
"-y",
"askew-mcp"
],
"env": {
"ASKEW_CONNECTOR_KEY": "<ASKEW_CONNECTOR_KEY>",
"ASKEW_SERVER": "<ASKEW_SERVER>",
"ASKEW_KEY_PATH": "<ASKEW_KEY_PATH>"
}
}
}
}
启动命令npx -y askew-mcp
需要配置的环境变量
ASKEW_CONNECTOR_KEY密钥Connector key (akc_) from Askew Settings. Required for relay and assigned Mac targets; optional for local action search and recipe build.
ASKEW_SERVERRelay URL. Defaults to https://api.askew.my.
ASKEW_KEY_PATH密钥Where the connector's private key file lives. Defaults to ~/.askew/connector.key.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmaskew-mcp0.3.0

工具

13

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitinteger否
querystring是操作标识符、显示名称或参数键的一部分。

详细介绍

askew-mcp

askew-mcp MCP server npm

让任何 AI Agent 都能使用你的 iPhone。 askew-mcp 是 Askew 的本地连接器:一个 MCP 服务(stdio),可让 Claude Code、Claude Desktop、Cursor、Codex 或任何 MCP 客户端在你的 iPhone 上运行快捷指令、向你发送通知,并读取手机发回的内容。iPhone 可以保持锁定。0.2 系列新增了显式设备选择和指定的本地 Mac 目标。设备任务输入、结果和收件箱项目在抵达中继服务前,都会使用你的密钥加密。配方上传有单独的明文边界,详见下文。

iPhone 中继服务和本地 macOS 目标;实体 iPad 后台验证尚未完成。不支持 Android。Askew 应用目前正在 https://askew.my 开放候补名单

完整设置指南:English · 한국어 · 中文 · 日本語

1. 获取连接器密钥

在 iPhone 上的 Askew 应用中:Settings → Register device → allow notifications → New connector。复制密钥(akc_…)。密钥只会显示一次。

2. 将连接器添加到你的 Agent

Claude Code

claude mcp add askew -s user -e ASKEW_CONNECTOR_KEY=akc_XXXX -- npx -y askew-mcp

Claude Desktop / Cursor / 任意 MCP 客户端(claude_desktop_config.json、.cursor/mcp.json、…)

{
  "mcpServers": {
    "askew": {
      "command": "npx",
      "args": ["-y", "askew-mcp"],
      "env": { "ASKEW_CONNECTOR_KEY": "akc_XXXX" }
    }
  }
}

Codex CLI(~/.codex/config.toml)

[mcp_servers.askew]
command = "npx"
args = ["-y", "askew-mcp"]
env = { ASKEW_CONNECTOR_KEY = "akc_XXXX" }

首次通过身份验证的工具调用会创建 ~/.askew/connector.key(X25519 私钥,权限模式为 0600),向中继服务注册公钥,并在 stderr 上输出由六个单词组成的指纹,例如 cider grove desert fever city burger。打开应用的连接器界面,确认显示的是相同的六个单词,然后轻点확인함 / 已验证。这项检查可以排除中继服务被调包的情况。在完成检查之前,应用会将连接器显示为未经验证,并提示你的 Agent 向你询问指纹。

npx -y askew-mcp fingerprint   # print this computer's six fingerprint words

3. 在手机上安装分发器

在应用的 Shortcuts(단축어)标签页中,安装 Askew dispatcher(通过共享菜单 → Shortcuts → Add),打开它并开启顶部的 Automation 开关。解锁手机后,从 Settings → Checkup 运行一次测试推送,然后轻点 Always Allow。只需打开一个开关、允许一次。之后用相同方式添加配方(Calendar、Reminders、Notes 等),并向你的 Agent 说:

“把周四下午 3 点的牙医预约添加到我的手机日历。”

选择设备或这台 Mac

调用 askew_list_routes,并选择一个已启用的 targets 条目。省略 target 时会使用该路由的默认设备;不会广播。目标分配由手机管理。要在这台 Mac 上运行已安装的快捷指令,请使用:

{"routeId":"route-id-from-list","target":{"kind":"connector","id":"this-connector-id"},"input":{"text":"hello"}}

使用该路由的实际输入契约。连接器 ID 必须与 askew_list_routes 打印的 ID 一致;此进程无法在另一台 Mac 上执行。目标和路由都必须已启用。本地执行需要 macOS、经过身份验证的中继连接(用于读取分配和紧急停止状态快照),以及 executionMode: "auto"。账户已停止或服务器缺少停止状态字段时,会阻止本地执行。停止状态会在分发前检查;无法撤销已经运行的快捷指令所产生的影响。

本地 askew_run 会将快捷指令的准确名称解析为唯一的已安装标识符,运行一次,并将结果直接返回给 MCP 客户端。输入和输出都保留在这台 Mac 上;不会创建服务器任务、产生使用费用、记录服务器运行历史或更新上次成功状态。wait 仅适用于设备任务:Mac 执行最多等待 60 秒,并返回一个 local_… 任务 ID。askew_get_run 会从此连接器的本地日志中读取该 ID(不会长轮询)。超时或失败后可能已产生部分影响;系统绝不会自动重试。Mac 进入睡眠可能会阻止执行。

需要确认模式的路由要求人工处理流程,而此本地执行器不支持该流程,因此会在运行前拒绝执行。对于 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 文本的旧版客户端必须升级。

中继会检查基本文件结构,并根据单独提交的工作流提供静态提示。它不会验证归档签名,也无法确认提示描述的就是该文件。每个 Agent 配方都仍然是未经验证的。在 Askew › My Stuff 中,确认你会先在快捷指令中检查实际操作、权限和目标位置,再添加配方。下载文件并不表示已确认安装。

工具(13)

工具功能
askew_actions_search在本地搜索 539 个操作定义和参数键
askew_recipe_build在 macOS 上构建/签名,可选择在本地安装/运行,也可上传以便在 iPhone 上手动审核
askew_run通过加密中继运行一个指定的设备路由,或在这台 Mac 上本地运行已启用的自动模式目标
askew_get_run查看任务状态和结果
askew_list_routes查看路由、设备和连接模式
askew_recipes_catalog查看用户可安装的现成配方及其契约和安装状态(已安装/未安装/已过时)。无需密钥即可使用
askew_setup_check诊断设置(连接器、设备、路由与当前配方);probe: true 会发送一次只读测试运行,并说明运行在哪一步停止
askew_notify向手机发送通知+结果框(Agent → 用户,单向)。有多部手机/iPad 时,选择 deviceId 或传入 allDevices: true
askew_inbox_list / askew_inbox_wait / askew_inbox_ack读取手机发来的内容(最多等待 30 秒),然后确认
askew_variables_get / askew_variables_set获取/设置与手机共享并使用账户密钥加密的变量

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

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

环境

变量默认值
ASKEW_CONNECTOR_KEY—远程中继/指定的 Mac 目标需要此变量;本地操作搜索和配方构建可选
ASKEW_SERVERhttps://api.askew.my中继 URL(本地开发时使用 http://localhost:8787)
ASKEW_KEY_PATH~/.askew/connector.key私钥存放位置

需要 Node 22 或更高版本。

隐私

任务输入、结果、通知正文、收件箱项目和变量均通过 HPKE、X25519 在此连接器与手机之间进行端到端加密。对于这些通道,中继会存储加密信封以及路由名称、时间戳和状态等元数据。本地 Mac 运行的输入/结果会保留在这台电脑上。上传的配方文件和工作流中的字面内容为明文;本地配方测试输出不会上传。详情:https://askew.my/#privacy

Development

Source: https://github.com/Dominic-DK/askew-mcp(欢迎提交问题和拉取请求)。连接器是 Askew 中唯一持有你密钥的部分,因此你可以阅读它的代码。

git clone https://github.com/Dominic-DK/askew-mcp.git && cd askew-mcp
pnpm install
pnpm build          # tsc → dist/
pnpm test           # crypto, stdio/local relay mocks, target authorization; no real Shortcuts run
ASKEW_SERVER=http://localhost:8787 ASKEW_CONNECTOR_KEY=akc_XXXX pnpm dev   # run from source

src/crypto.ts 定义了完整的信封格式:HPKE(X25519 + HKDF-SHA256 + ChaCha20-Poly1305),并将用途绑定为 info;共享变量则使用由账户密钥派生的 ChaCha20-Poly1305 密钥进行加密,变量名称用作 AAD。


韩语

让 Agent(Claude Code · Claude 桌面版 · Cursor · Codex)将 iPhone 用作工具的本地连接器。在 iPhone 应用中,依次进入“设置”→“创建新连接器”→复制密钥(akc_…),然后使用上面的任一命令注册。首次调用中继工具时会显示 6 个单词(例如:cider grove desert fever city burger)。如果应用的连接器页面显示相同的单词,请点击“已确认”。只需操作一次。接下来,在应用的“快捷指令”标签页中安装调度器(共享表单 → 快捷指令 → 添加 → 开启自动化开关 → 解锁状态下测试推送 1 次并选择“始终允许”),这样即使手机锁定,快捷指令也能运行。0.2 版源码新增了目标设备选择和在这台 Mac 上本地运行的功能。该版本尚未发布,iPad 后台运行仍待真机验证。Mac 目标由手机指定;本地运行不支持执行前确认和幂等键,因此会在执行前拒绝请求。没有 Android 计划。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。