Siri Shortcuts MCP Server
项目简介
本项目是一个 MCP (Model Context Protocol) 服务器,它将 macOS 上的 Siri 快捷指令功能集成到 LLM (大型语言模型) 应用中。通过此服务器,LLM 可以列出、打开和运行用户在 macOS 快捷指令 App 中创建的所有快捷指令,从而扩展 LLM 的功能边界,使其能够与 macOS 系统进行更深入的交互。
主要功能点
- 快捷指令发现: LLM 可以通过 'list_shortcuts' 工具获取当前 macOS 系统中所有可用的 Siri 快捷指令列表。
- 快捷指令打开: LLM 可以使用 'open_shortcut' 工具在 macOS 快捷指令 App 中打开指定的快捷指令进行查看或编辑。
- 快捷指令执行: LLM 可以使用 'run_shortcut' 工具或动态生成的快捷指令专属工具来运行指定的 Siri 快捷指令,并能传递文本或文件路径作为输入参数。
- 动态工具生成: 服务器会根据用户已创建的 Siri 快捷指令,自动生成对应的工具,方便 LLM 直接调用特定快捷指令。
- 标准 MCP 协议: 完全遵循 Model Context Protocol 协议,易于与各种支持 MCP 协议的 LLM 客户端集成。
安装步骤
- 环境准备: 确保你的 macOS 系统已安装 Node.js 和 npm (或 yarn)。
- 克隆仓库: 在终端中使用 'git clone https://github.com/dvcrn/mcp-server-siri-shortcuts' 命令克隆仓库到本地。
- 安装依赖: 进入克隆的仓库目录,运行 'npm install' 或 'yarn install' 安装项目依赖。
服务器配置
MCP 客户端需要配置以下 JSON 对象来连接 Siri Shortcuts MCP Server。以下配置信息可以直接添加到支持 MCP 协议的 LLM 客户端的服务器配置中,例如 Claude 的 'mcpServers' 配置项。
{ "siri-shortcuts": { // 服务器名称,可以自定义 "command": "npx", // 启动命令,这里使用 npx 执行 npm 包 "args": ["mcp-server-siri-shortcuts"] // 命令参数,这里指定要执行的 npm 包名称 } }
配置参数说明:
- 'siri-shortcuts': MCP 服务器的名称,客户端用此名称来引用该服务器。可以自定义。
- 'command': 启动服务器的命令。由于项目 'package.json' 中配置了 'bin' 字段,安装后可以直接使用 'npx mcp-server-siri-shortcuts' 命令启动,因此这里配置为 'npx'。
- 'args': 'command' 命令的参数,这里指定了要执行的 npm 包名称 'mcp-server-siri-shortcuts'。
基本使用方法
- 启动服务器: 在克隆的仓库目录下,在终端中运行 'npx mcp-server-siri-shortcuts' 命令启动服务器。默认情况下,服务器通过标准输入输出 (stdio) 与客户端通信。
- 配置客户端: 将上述服务器配置 JSON 添加到你的 MCP 客户端配置中,并确保客户端已连接到该服务器。
- 调用工具: 在 LLM 客户端中,你可以指示 LLM 使用以下工具来操作 Siri 快捷指令:
- 'list_shortcuts': 列出所有可用的快捷指令。
- 'open_shortcut': 打开指定的快捷指令,需要提供快捷指令的 'name' 参数。
- 'run_shortcut': 运行指定的快捷指令,需要提供快捷指令的 'name' 参数,可选提供 'input' 参数 (文本或文件路径)。
- 'run_shortcut_[sanitized_shortcut_name]': 运行特定的快捷指令,'[sanitized_shortcut_name]' 是快捷指令名称的标准化版本,例如 'run_shortcut_my_shortcut_1'。同样可以可选提供 'input' 参数。
示例对话 (LLM 指示):
用户: "列出所有可用的快捷指令" LLM 指示 (Tool Call): 'list_shortcuts'
用户: "打开名为 'My Shortcut' 的快捷指令" LLM 指示 (Tool Call): 'open_shortcut', 参数: '{ "name": "My Shortcut" }'
用户: "运行 'My Shortcut' 快捷指令,输入 'Hello'" LLM 指示 (Tool Call): 'run_shortcut', 参数: '{ "name": "My Shortcut", "input": "Hello" }' 或 'run_shortcut_my_shortcut', 参数: '{ "input": "Hello" }' (如果 "My Shortcut" 标准化名称为 "my_shortcut")
注意: 确保你的 macOS 系统中已安装并配置了 "快捷指令" App,并且创建了你希望 LLM 调用的快捷指令。
信息
分类
桌面与硬件