使用说明

项目简介

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 包 (推荐)

  1. 确保已安装 Node.js (v16+) 和 npm。
  2. 运行以下命令全局安装 'ntfy-mcp-server':
    npm install -g ntfy-mcp-server

方式二:从源代码构建

  1. 确保已安装 Node.js (v16+) 和 npm。
  2. 克隆 GitHub 仓库到本地:
    git clone https://github.com/cyanheads/ntfy-mcp-server.git
    cd ntfy-mcp-server
  3. 安装项目依赖:
    npm install
  4. 构建项目:
    npm run build

服务器配置

MCP 服务器需要配置以连接到 ntfy 服务。您可以通过创建 '.env' 文件或设置环境变量进行配置。

  1. 创建 '.env' 文件 (可选): 在项目根目录下创建 '.env' 文件,并根据 '.env.example' 文件的示例进行配置。常用的配置项包括:

    • 'NTFY_DEFAULT_TOPIC': 默认的 ntfy 主题名称 (可选)。
    • 'NTFY_BASE_URL': ntfy 服务器的基础 URL,默认为 'https://ntfy.sh' (可选)。
  2. 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 文档。

信息

分类

通信与社交