Token导航 LogoToken导航TokenDH.com
Ntfy MCP Server logo
开发工具stdio官方级别未说明来源级核验

Ntfy MCP Server

MCP Server

An MCP (Model Context Protocol) server designed to interact with the ntfy push notification service. It enables LLMs and AI agents to send notifications to your devices with extensive customization options.

工具数

4

提示词数

0

GitHub Stars

16

资源数

0
多协议支持TypeScriptClaude实时通信Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

cyanheads

提供方

cyanheads

最后核验

2026/5/18 02:52

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run --rm -e NTFY_DEFAULT_TOPIC=your-topic -p 3010:3010 ntfy-mcp-server

详细介绍

ntfy-mcp-server

Send, manage, and replay ntfy push notifications via MCP. STDIO or Streamable HTTP.

4 Tools • 1 Resource

______________________________________________________________________

工具

四个工具涵盖了ntfy发布/订阅表面消息生命周期(发布、管理、获取),加上表情标签查找,为发布工具的 tags 字段:

工具名称描述
ntfy_publish_message发送或更新关于ntfy主题的推送通知。
ntfy_manage_message清除或删除以前发送的通知 sequence_id.
ntfy_fetch_messages使用可选筛选器轮询来自一个或多个主题的缓存邮件。
ntfy_search_emoji_tags查找在中使用的ntfy表情符号标签短代码 tags.

______________________________________________________________________

ntfy_publish_message

发送或更新关于ntfy主题的推送通知。主题是在首次发布时创建的——将主题名称视为秘密,因为任何知道它的人都可以发布或订阅。

  • 完整的发布参数覆盖率-- title, priority (1–5), tags, click, attach, icon, filename, markdown, delay, email, call, cache, firebase
  • 最多三个可区分的操作按钮(view, broadcast, http, copy)每条消息
  • 通过传递原始消息来更新或替换以前发送的消息 sequence_id
  • 每次呼叫 base_url 覆盖,仅当覆盖与注册的服务器匹配时才转发凭据(NTFY_BASE_URL 或a NTFY_SERVERS 条目);否则,请求将在未经身份验证的情况下发出,因此凭据永远不会泄漏到备用主机

______________________________________________________________________

ntfy_manage_message

清除(标记为已读并取消)或删除之前发送的ntfy通知 sequence_id.Append only-原始消息保留在缓存中 message_clear / message_delete 事件被发送给订阅者。我暂时没有。

______________________________________________________________________

ntfy_fetch_messages

使用可选筛选器轮询来自一个或多个主题的缓存邮件。返回快照,而不是实时流——使用它来确认交付、重放错过的警报或审核主题活动。

  • 逗号分隔的多主题查询(例如。 alerts,backups,phil_alerts)
  • 筛选依据 since (持续时间/时间戳/消息ID/ all / latest), priority, tags, id, title, message,仅计划
  • 默认窗口 10m,默认限制每个响应20条消息,硬上限100
  • 长体截断为~500个字符 messageTruncated 报告下降的计数

______________________________________________________________________

ntfy_search_emoji_tags

在绑定的ntfy表情标签引用上进行子字符串搜索。返回 tag 准备插入的字符串 ntfy_publish_messages tags 现场。如果不进行查询,则返回完整引用的第一个片段。

资源和提示

类型名称描述
资源ntfy://{topic}主题快照——过去1小时的最后20条消息,加上主题的浏览器URL

ntfy_fetch_messages 当资源的固定默认值不够时,使用自定义窗口和过滤器覆盖相同的主题数据。

特性

建于 @cyanheads/mcp-ts-core:

  • 声明性工具和资源定义——每个原语一个文件,框架处理注册和验证
  • 通过键入错误合约 ctx.fail(reason, …) 加上框架错误工厂(forbidden, notFound, validationError, …)
  • 可插拔身份验证: none, jwt, oauth
  • 可交换存储后端: in-memory, filesystem, Supabase, Cloudflare KV/R2/D1
  • 带可选OpenTetry跟踪的结构化日志记录
  • STDIO和流式HTTP传输

ntfy特定:

  • 使用重试软件客户端封装ntfy的HTTP API(withRetry +每次请求超时)
  • 每个服务器范围的身份验证--凭据绑定到每个注册的基本URL(NTFY_BASE_URL 或根据以下条目 NTFY_SERVERS);每次通话 base_url 仅当覆盖与注册的服务器匹配时才覆盖前向身份验证,否则未经身份验证就退出
  • 绑定的表情标签引用,从上游重新生成 docs/ntfy/emojis.md 通过 scripts/build-emoji-tags.ts
  • 互斥身份验证模式(承载令牌 *或* 基本身份验证)在配置加载时验证

入门

将以下内容添加到MCP客户端配置文件中。Public ntfy.sh无需帐户即可开箱即用;对于受保护的主题,请在以下位置生成访问令牌 .

{
  "mcpServers": {
    "ntfy": {
      "type": "stdio",
      "command": "bunx",
      "args": ["ntfy-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "NTFY_DEFAULT_TOPIC": "your-topic-name"
      }
    }
  }
}

或者使用Docker:

{
  "mcpServers": {
    "ntfy": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MCP_TRANSPORT_TYPE=stdio",
        "-e", "NTFY_DEFAULT_TOPIC=your-topic-name",
        "ghcr.io/cyanheads/ntfy-mcp-server:latest"
      ]
    }
  }
}

对于Streamable HTTP,设置传输并启动服务器:

MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 NTFY_DEFAULT_TOPIC=your-topic bun run start:http
# Server listens at http://127.0.0.1:3010/mcp

先决条件

  • Bun v1.3.11 或更高版本(或Node.js v24+)。
  • ntfy服务器上的主题名称。公共 ntfy.sh 不需要帐户;自托管实例和受保护主题可能需要承载令牌或基本身份验证凭据。

安装

  1. 克隆存储库:
git clone https://github.com/cyanheads/ntfy-mcp-server.git
  1. 导航到以下目录:
cd ntfy-mcp-server
  1. 安装依赖项:
bun install
  1. 配置环境:
cp .env.example .env
# edit .env and set NTFY_DEFAULT_TOPIC (and auth, if needed)

配置

变量描述默认值
NTFY_SERVERSJSON数组 `{ baseUrl, authToken? \authUsername?+authPassword? } 条目——每个ntfy服务器一个。第一个条目是默认基数。Auth仅限于条目的范围 baseUrl;每次通话 base_url` 与注册基匹配的覆盖转发该服务器的身份验证。当您在单个进程中需要多个经过身份验证的服务器时,请使用此选项;它优先于下面的单服务器变量。
NTFY_BASE_URL单服务器简写——ntfy服务器的基本URL(没有尾随斜线)。在以下情况下使用 NTFY_SERVERS 未设置。https://ntfy.sh
NTFY_DEFAULT_TOPIC工具调用省略时使用的主题 topic.
NTFY_AUTH_TOKEN承载访问令牌(tk_…)对于单服务器简写。相互排斥 NTFY_AUTH_USERNAME / NTFY_AUTH_PASSWORD.
NTFY_AUTH_USERNAME单服务器简写的基本身份验证用户名——与 NTFY_AUTH_PASSWORD.
NTFY_AUTH_PASSWORD单服务器速记的基本身份验证密码——与 NTFY_AUTH_USERNAME.
NTFY_REQUEST_TIMEOUT_MS每个请求的HTTP超时(毫秒)。15000
NTFY_MAX_RETRIES瞬时上游故障的最大重试次数(5xx,网络,429)。3
MCP_TRANSPORT_TYPE运输: stdiohttp.stdio
MCP_SESSION_MODEHTTP会话模型: stateless, stateful,或 auto.auto
MCP_HTTP_HOSTHTTP主机。127.0.0.1
MCP_HTTP_PORTHTTP端口3010
MCP_HTTP_ENDPOINT_PATHHTTP端点路径。/mcp
MCP_AUTH_MODE身份验证模式: none, jwt,或 oauth.none
MCP_LOG_LEVEL日志级别(RFC 5424)。info
LOGS_DIR基于文件的日志目录(仅限节点;在Workers上忽略)。./logs
OTEL_ENABLED启用 开放遥测仪器 (跨度、指标、完成日志)。false

.env.example 查看可选覆盖的完整列表。

运行服务器

本地开发

  • 构建并运行:
  # One-time build
  bun run rebuild

  # Run the built server
  bun run start:stdio
  # or
  bun run start:http
  • 运行检查和测试:
  bun run devcheck     # Lint, format, typecheck, security, changelog sync
  bun run test         # Vitest test suite
  bun run lint:mcp     # Validate MCP definitions against spec

码头工人

docker build -t ntfy-mcp-server .
docker run --rm -e NTFY_DEFAULT_TOPIC=your-topic -p 3010:3010 ntfy-mcp-server

Dockerfile默认为HTTP传输、无状态会话模式,并记录到 /var/log/ntfy-mcp-server默认情况下,OpenTelemetry对等依赖项已安装——使用构建 --build-arg OTEL_ENABLED=false 省略它们。

项目结构

目录目的
src/index.tscreateApp() 入口点——注册工具和资源,初始化服务。
src/config特定于服务器的环境变量解析(NTFY_*)与Zod。
src/mcp-server/tools工具定义(*.tool.ts).
src/mcp-server/resources资源定义(*.resource.ts).
src/services/ntfyntfy HTTP客户端、类型和错误分类器。
src/services/emoji-tags捆绑表情符号短代码参考和查找服务。
docs/ntfy镜像的上游ntfy API文档(在中固定提交 SOURCES.md).
tests/单元和集成测试镜像 src/.

发展指南

CLAUDE.md 了解开发指南和架构规则。简短版本:

  • 处理程序抛出,框架捕获——否 try/catch 工具逻辑
  • 使用 ctx.log 对于请求范围的日志记录, ctx.state 适用于租户范围的存储
  • 包裹外部API调用:验证原始调用→ 规范化为域类型→ 返回输出模式;永远不要伪造缺失的字段
  • 每个工具 errors[] 合约保持内联——重复是为了局部性

贡献

欢迎问题和拉取请求。提交前进行检查和测试:

bun run devcheck
bun run test

许可证

Apache-2.0--参见 许可证 了解详情。

目录标签

目录标签

多协议支持TypeScriptClaude实时通信developer-toolsnotificationsmcpntfyllmllm-agentmodel-context-protocolmcp-server推送通知本地部署消息管理消息重放

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP