通知服务服务器

轻量级的MCP服务器,用于发送ntfy通知。

  • by jpetrucciani
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 jpetrucciani/ntfy-mcp

使用说明

ntfy mcp

用于发送的轻量级MCP服务器 通知 通知。

  • 传输:MCP流式HTTP(/mcp)
  • 运行时:单个Rust二进制文件
  • 发布模式:仅ntfy JSON发布API(v1)

快速开始

使用默认值运行:

ntfy-mcp

# or local
cargo run

使用默认主题和令牌身份验证运行:

ntfy-mcp \
  --default-topic alerts \
  --ntfy-auth-mode bearer \
  --ntfy-token "$NTFY_TOKEN"

配置

CLI标志优先于环境变量。

标志 环境 默认值
--bind-addr MCP_BIND_ADDR 127.0.0.1:8000
--mcp-path MCP_PATH /mcp
--allowed-origins MCP_ALLOWED_ORIGINS (空)
--mcp-auth-token MCP_AUTH_TOKEN 关
--mcp-protocol-version MCP_PROTOCOL_VERSION 2025-11-25
--ntfy-url NTFY_URL https://ntfy.sh
--default-topic NTFY_TOPIC (无)
--force-default-topic NTFY_FORCE_DEFAULT_TOPIC false
--ntfy-auth-mode NTFY_AUTH_MODE none
--ntfy-token NTFY_TOKEN (无)
--ntfy-user NTFY_USER (无)
--ntfy-pass NTFY_PASS (无)
--ntfy-timeout-secs NTFY_TIMEOUT_SECS 15
--allow-ntfy-query-auth NTFY_ALLOW_QUERY_AUTH false

工具

ntfy_publish

发布通知的主要MCP工具。

  • 如果 topic 省略,服务器使用 --default-topic / NTFY_TOPIC.
  • 如果 topic 为空或空白,服务器使用 --default-topic / NTFY_TOPIC.
  • 如果 --force-default-topic / NTFY_FORCE_DEFAULT_TOPIC 如果启用,则始终使用配置的默认主题,并且在未配置默认主题时启动失败。
  • 支持以下字段 message, title, priority, tags, actions, delay, email, call, sequence_id等等。

安全默认值

  • 默认情况下绑定到localhost。
  • 入站MCP承载身份验证是可选的,默认情况下是关闭的。
  • 除非明确启用,否则ntfy的查询身份验证将被禁用。

构建检查

cargo fmt
cargo clippy --all --benches --tests --examples --all-features
cargo test

测试覆盖率

  • 配置解析、输入验证和ntfy错误整形的单元测试。
  • 可流式MCP初始化/列表/呼叫流的HTTP级别测试。
  • 使用本地ntfy兼容服务器进行端到端发布测试,以验证出站有效负载和标头。