使用说明
项目简介
ntfy MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器端应用,它允许大型语言模型(LLM)客户端通过标准化的 MCP 协议与 ntfy 推送通知服务进行交互。借助此服务器,LLM 可以方便地调用工具发送通知到您的手机或桌面设备,实现更智能的外部系统集成。
主要功能点
- MCP 服务器实现: 基于 '@modelcontextprotocol/sdk' 构建,遵循 MCP 协议标准,易于与各种 MCP 客户端集成。
- ntfy 服务集成: 内置 'send_ntfy' 工具,支持丰富的 ntfy 通知功能,包括自定义消息优先级、添加 Emoji 标签、设置点击动作和按钮、发送附件、延迟发送、Markdown 格式消息等。
- 资源暴露: 将配置的默认 ntfy 主题作为 MCP 资源 'ntfy://default' 暴露,方便客户端获取。
- 易于配置: 通过 '.env' 文件管理服务器配置,支持环境变量自定义 ntfy 服务和日志级别等。
- 结构化日志: 使用 'winston' 和 'winston-daily-rotate-file' 进行详细日志记录和管理。
安装步骤
本服务器支持通过 npm 包全局安装或从源代码构建两种安装方式。
方式一:使用 npm 包 (推荐)
- 确保已安装 Node.js (v16+) 和 npm。
- 运行以下命令全局安装 'ntfy-mcp-server':
npm install -g ntfy-mcp-server
方式二:从源代码构建
- 确保已安装 Node.js (v16+) 和 npm。
- 克隆 GitHub 仓库到本地:
git clone https://github.com/cyanheads/ntfy-mcp-server.git cd ntfy-mcp-server - 安装项目依赖:
npm install - 构建项目:
npm run build
服务器配置
MCP 服务器需要配置以连接到 ntfy 服务。您可以通过创建 '.env' 文件或设置环境变量进行配置。
-
创建 '.env' 文件 (可选): 在项目根目录下创建 '.env' 文件,并根据 '.env.example' 文件的示例进行配置。常用的配置项包括:
- 'NTFY_DEFAULT_TOPIC': 默认的 ntfy 主题名称 (可选)。
- 'NTFY_BASE_URL': ntfy 服务器的基础 URL,默认为 'https://ntfy.sh' (可选)。
-
MCP 客户端配置: 您需要在 MCP 客户端(如 Cline VSCode 扩展或 Claude Desktop App)的配置文件中添加 ntfy MCP Server 的配置信息。以下是针对不同安装方式的配置示例,请根据您的实际安装方式选择配置。
如果使用 npm 包全局安装:
{ "mcpServers": { "ntfy": { "command": "ntfy-mcp-server", "env": { "NTFY_DEFAULT_TOPIC": "your_default_topic" // 替换为您希望使用的默认 ntfy 主题 } } } }如果从源代码构建:
{ "mcpServers": { "ntfy": { "command": "node", "args": ["/path/to/ntfy-mcp-server/dist/index.js"], // 替换为您的 ntfy-mcp-server 项目 dist/index.js 文件的绝对路径 "env": { "NTFY_DEFAULT_TOPIC": "your_default_topic" // 替换为您希望使用的默认 ntfy 主题 } } } }配置参数说明:
- 'server name': 'ntfy' - 服务器名称,在 MCP 客户端中用于标识该服务器。
- 'command': 'ntfy-mcp-server' 或 'node' - 启动 MCP 服务器的命令。全局安装时使用 'ntfy-mcp-server',源代码构建时使用 'node'。
- 'args': '["/path/to/ntfy-mcp-server/dist/index.js"]' (仅源代码构建时需要) - 启动命令的参数,指向服务器入口文件。
- 'env': 环境变量配置,用于传递服务器运行所需的配置信息。
- 'NTFY_DEFAULT_TOPIC': 默认 ntfy 主题,建议配置为您在 ntfy app 中订阅的主题。
基本使用方法
配置完成后,您可以使用 MCP 客户端调用 'send_ntfy' 工具发送通知。
调用 'send_ntfy' 工具发送通知的示例:
{ "tool_code": "send_ntfy", "arguments": { "topic": "your_ntfy_topic", // 替换为您要发送通知的 ntfy 主题 "message": "来自 MCP 服务器的通知消息!", "title": "通知标题", // 可选的通知标题 "tags": ["信息", "提醒"] // 可选的 Emoji 标签 } }
参数说明:
- 'topic': (必填) 要发送通知的 ntfy 主题。
- 'message': (必填) 通知消息内容。
- 'title': (可选) 通知标题。
- 'tags': (可选) Emoji 标签,用于在通知中显示 Emoji 图标。
更多 'send_ntfy' 工具的参数和高级用法,请参考仓库 README.md 文档。
信息
分类
通信与社交