使用说明
项目简介
Novu 是一个开源的通知基础设施,novu-ts 仓库是 Novu API 的 TypeScript SDK。除了作为 SDK 客户端使用,该仓库还提供了一个 MCP 服务器 实现,可以将 Novu API 的各项功能以 工具 (Tools) 的形式暴露出来,供支持 Model Context Protocol (MCP) 的 LLM 客户端(如 Claude、Cursor 等)调用。
主要功能点
- 工具注册与执行: 将 Novu API 的各种操作(如触发通知、管理订阅者、集成管理等)注册为 MCP 工具 (Tools),允许 LLM 客户端通过标准的 JSON-RPC 协议调用这些工具,实现与 Novu 通知服务的集成。
- 资源管理 (Resources): 虽然仓库描述中没有明确提及资源 (Resources) 的托管和管理,但根据 MCP 服务器的定义,可以推测该 MCP 服务器实现也支持对通知相关的资源进行管理和访问,具体实现可能需要进一步分析代码仓库。
- Prompt 模板 (Prompts): 仓库描述中没有提及 Prompt 模板 (Prompts) 的功能。该 MCP 服务器主要侧重于将 Novu API 功能以工具形式暴露,可能不包含 Prompt 模板的定义和渲染功能。
- 会话管理和能力声明: MCP 服务器负责会话管理,并声明其提供的工具能力,使得 LLM 客户端能够了解服务器的功能范围。
- 支持多种传输协议: 该 MCP 服务器示例支持 Stdio 和 SSE 传输协议,可以通过命令行参数配置。
安装步骤
- 安装 Node.js: 确保你的环境中安装了 Node.js v20 或更高版本。
- 安装 @novu/api: 使用 npm, pnpm, bun 或 yarn 等包管理器安装 '@novu/api' 包。例如使用 npm:
npm add @novu/api
服务器配置
MCP 服务器配置 (以 Claude 为例)
为了让 MCP 客户端(如 Claude)连接到 novu-ts 提供的 MCP 服务器,需要在客户端的配置文件中添加服务器定义。以下是 Claude 客户端的 'claude_desktop_config.json' 配置文件示例:
{ "mcpServers": { "Novu": { "command": "npx", // 启动服务器的命令,这里使用 npx 运行 npm 包 "args": [ // 传递给启动命令的参数 "-y", "--package", "@novu/api", // 自动安装 @novu/api 包(如果未安装) "--", // 分隔 npx 参数和 MCP 服务器参数 "mcp", "start", // 启动 MCP 服务器的子命令 "--secret-key", "YOUR_SECRET_KEY" // **重要**: 替换为你的 Novu Secret Key,用于 API 鉴权 ] } } }
MCP 服务器配置 (以 Cursor 为例)
对于 Cursor 客户端,需要在 Cursor 设置中手动添加 MCP 服务器。配置步骤如下:
- 打开 Cursor 设置 (Cursor Settings > Features > MCP Servers > Add new MCP server)。
- 填写以下配置信息:
- Name: 'Novu' (服务器名称,自定义)
- Type: 'command' (服务器类型为命令行命令)
- Command:
注意: 将 'YOUR_SECRET_KEY' 替换为你的 Novu Secret Key。npx -y --package @novu/api -- mcp start --secret-key YOUR_SECRET_KEY
基本使用方法
-
启动 MCP 服务器: 按照上述配置,当 MCP 客户端(Claude 或 Cursor)启动时,会自动尝试连接到 novu-ts 提供的 MCP 服务器。
-
在 LLM 客户端中使用工具: 连接成功后,你可以在 LLM 客户端中使用自然语言指令或客户端提供的界面来调用 Novu API 提供的 工具 (Tools),例如:
- 触发通知事件
- 查询订阅者列表
- 管理集成
- 等等
具体的工具列表和使用方法可以参考仓库的 'README.md' 文档中 "Available Resources and Operations" 和 "Standalone functions" 章节,以及 'src/mcp-server/tools' 目录下的工具定义文件。
注意: 请务必将配置文件中的 'YOUR_SECRET_KEY' 替换为你实际的 Novu Secret Key,以确保 API 鉴权成功。
信息
分类
开发者工具