mcpField
S
shortcuts-bridge

shortcuts-bridge

远程服务
shortcutsbridge.vercel.app生产力04 天前更新

关于 shortcuts-bridge

shortcuts-bridge 是面向 ChatGPT 用户的 MCP 连接器,可查找并运行 Apple Shortcuts。Mac 本地 Agent 负责列出和运行快捷指令,经过身份验证的中继在 ChatGPT 与 Mac 间传递请求。

主要功能

  1. 01列出快捷指令和文件夹
  2. 02按关键词搜索快捷指令
  3. 03运行快捷指令并传入可选文本
  4. 04将快捷指令输出返回 ChatGPT

适用场景

  1. 01按主题查找现有快捷指令
  2. 02运行晨间简报快捷指令
  3. 03从聊天触发 Mac 自动化

MCP 相关

通过 MCP 工具向 ChatGPT 提供快捷指令列表、搜索、文件夹列表和运行功能。配对的 Mac Agent 在本地执行操作;运行快捷指令前,ChatGPT 会请求确认。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://shortcutsbridge.vercel.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

⚡ ShortcutsBridge

在 ChatGPT 中运行你的 Apple Shortcuts — 使用你自己的 Mac。

License: MIT npm

ShortcutsBridge 是一个 Model Context Protocol(MCP)连接器,可让 ChatGPT 列出、搜索并运行你的 Apple Shortcuts。读取操作会在本地执行,请求的结果会通过经过身份验证的中继传递 — 每项操作都通过一个小型本地 Agent 在你自己的 Mac 上运行。云端部分只是一个无状态中继,用于在 ChatGPT 和你的 Mac 之间传递请求。

  ChatGPT  ──OAuth──►  ShortcutsBridge relay  ──job queue──►  shortcuts-agent  ──►  Shortcuts.app
 (connector)          (Vercel, stateless)      (your Mac, polls & executes)     (via the shortcuts CLI)

你的 Mac 是唯一会列出或运行快捷指令的地方。中继只存储短期有效的任务负载和你的账户记录;除非有任务正在执行,否则它不会接触任何快捷指令,且任务会在几秒后过期。

由于快捷指令几乎可以在 Mac 或 iPhone 上执行任何操作 — 控制 HomeKit、操控应用、运行脚本、调用 Web API — run_shortcut 可以让 ChatGPT 触发你已构建的任意自动化。


面向用户 — 3 个步骤

1. 创建账户:前往 shortcutsbridge.vercel.app 并生成配对码。

2. 安装 Mac Agent(需要 Node 18+):

npx shortcuts-agent pair <YOUR-CODE>   # link this Mac to your account
npx shortcuts-agent install            # keep it running on every restart

某个快捷指令首次运行时,macOS 可能会询问是否允许运行 — 点击 好(每个快捷指令只需操作一次)。这是针对单个快捷指令的授权,不是授予全面的自动化权限。

3. 连接 ChatGPT: 设置 → 插件 → 开启开发者模式(安全与登录)→ 创建自定义插件 → 粘贴 MCP 服务 URL https://shortcutsbridge.vercel.app/mcp → 选择身份验证方式 OAuth → 登录并点击允许。

完成。在新聊天中输入:“搜索我的 Apple Shortcuts,找出与专注相关的内容” 或 “运行我的 Morning Briefing 快捷指令。”

你的 Mac 必须保持唤醒状态并运行 Agent。npx shortcuts-agent install 会让它在登录时自动启动,并在崩溃时自动重启。

管理 Agent
npx shortcuts-agent status      # is it paired & reachable?
npx shortcuts-agent logs        # recent activity
npx shortcuts-agent uninstall   # stop auto-start

ChatGPT 可以做什么

工具操作
list_shortcuts列出 Mac 上的所有快捷指令(只读)
search_shortcuts按关键词查找快捷指令(只读)
list_folders列出你的 Shortcuts 文件夹(只读)
run_shortcut按名称运行快捷指令,可选输入文本,并返回其输出

前三项是只读的目录查询。run_shortcut 是唯一会执行操作的工具 — 它面向开放场景(快捷指令可能会执行现实世界中的操作),因此 ChatGPT 会在运行前向你确认,而且只能运行你已构建的快捷指令。


自托管

你可以运行自己的中继,这样就不必依赖托管实例。

前置条件: 一个 Vercel 账户和一个 Supabase 项目(免费套餐即可)。

  1. 存储 — 在 Supabase 项目的 SQL 编辑器中运行 supabase/schema.sql。它会创建一个轻量的 Redis 形状 KV + 队列接口(nb_* 函数),并启用 RLS。
  2. 部署 server/ 目录到 Vercel。
  3. 设置环境变量(参见 server/.env.example):
    • SUPABASE_URL、SUPABASE_SERVICE_ROLE_KEY — 你的项目和服务角色密钥
    • JWT_SECRET — openssl rand -hex 32
  4. 验证: curl https://YOUR-APP.vercel.app/api/health → redisConfigured、redisOk、jwtSecretSet 均为 true。
  5. 将 Agent 指向该服务:npx shortcuts-agent pair <CODE> --server https://YOUR-APP.vercel.app。

工作原理

  • 身份验证 — 使用 PKCE 和动态客户端注册(RFC 7591)的 OAuth 2.1。ChatGPT 会注册自身,用户在 ShortcutsBridge 授权页面登录,随后 ChatGPT 获得一个范围受限的 MCP 访问令牌。JWT 使用 HMAC 签名;分为三种类型(session、agent、mcp),权限各不相同。可选通过 Resend 验证邮箱(RESEND_API_KEY);未配置时默认关闭,且只有选择启用后才会强制执行(REQUIRE_EMAIL_VERIFICATION)。
  • 中继 — MCP 工具调用 → 任务推送到 jobs:<user>(TTL 不超过调用方的等待时限,因此已放弃的任务不会延迟执行)→ Mac Agent(保持长轮询等待)在约 200 毫秒内收到任务并执行,随后推送结果 → MCP 处理程序返回结果。长轮询意味着任务到达时就会立即投递,而不是按固定间隔投递,因此中继开销约为 300 毫秒,而非约 1 秒。只有在 Agent 处于活动连接状态时,才视为“在线”。
  • Agent — 无依赖的 Node 命令行工具。工具通过 macOS shortcuts 命令行工具执行命令(shortcuts list、shortcuts run);参数作为 argv 传递(绝不通过 Shell 插值)。macOS LaunchAgent 会让它在登录后持续运行,并在崩溃后自动重启。

仓库布局

server/    Vercel functions: OAuth + MCP endpoint + relay        (deploy this)
agent/     shortcuts-agent — the npm-published Mac CLI          (users npx this)
kit/       Browser automations: register the dev-mode connector AND
           fill the OpenAI directory submission (see kit/README.md)
supabase/  schema.sql for self-hosting the storage
test/      end-to-end OAuth + MCP integration test

开发

# server
cd server && cp .env.example .env.local   # fill in, then: vercel dev
# end-to-end test against a live deployment (reads ../.env.local)
node test/e2e-oauth.mjs
# agent unit tests
node --test agent/test-agent-unit.mjs

安全与隐私

  • 快捷指令仅在你的 Mac 上列出和运行。中继会在短期任务队列/结果队列中临时存储请求内容——任务负载存储在类似 Redis 的存储中,TTL 较短,并会在投递后删除。
  • Agent 令牌存储在 ~/.shortcutsbridge-agent.json(模式 600)。
  • 不会提交任何密钥;请参阅 .gitignore 和 .env.example 文件。
  • run_shortcut 被标记为开放世界工具——快捷指令可能会执行现实世界中的操作——因此 ChatGPT 会在运行前询问。只能运行你已经创建的快捷指令。

许可证

MIT © Isaiah Dupree

生产存储与所有者验证

Relay 1.4 在已配置的共享 Supabase 项目中使用仅限服务角色访问的隔离表/函数。生产环境要求必须配置存储;RPC 请求时限最长为十秒;如果存储或签名配置不可用,则返回 HTTP 503。部署此版本前,请应用仓库中已提交的隔离存储迁移;它不会替换其他桥接服务的账户表或函数。

node --env-file=.env.local test/live-storage.mjs 使用临时集成密钥验证实际持久化存储、FIFO、过期时间和计数器。BRIDGE_SESSION_FILE=/private/owner-session.json BRIDGE_READ_TOOL=READ_TOOL node test/live-relay.mjs 验证实际的所有者会话、PKCE OAuth、托管 MCP 和配对 Mac 读取;请选择此桥接服务的清单工具。审核者数据不计为实时验收数据。凭据和会话应存放在 Git 仓库之外。

评论

支持 Markdown

第一次接触 MCP?

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

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