Ntfy MCP Server
@cyanheads
About Ntfy MCP Server
Send, manage, and replay ntfy push notifications via MCP. STDIO or Streamable HTTP.
Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"ntfy-mcp-server": {
"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"
]
}
}
}Tools
4Send or update a push notification on an ntfy topic.
Clear or delete a previously-sent notification by `sequence_id`.
Poll cached messages from one or more topics with optional filters.
Look up ntfy emoji tag short codes for use in `tags`.
Overview
What is ntfy-mcp-server?
ntfy-mcp-server sends, manages, and replays ntfy push notifications via the Model Context Protocol (MCP). It wraps the ntfy HTTP API into four tools and one resource, supporting both STDIO and Streamable HTTP transports. Built for developers integrating push notification workflows into AI agents or MCP-enabled applications.
How to use ntfy-mcp-server?
Add the server to your MCP client’s config file using bunx ntfy-mcp-server@latest or a Docker image, then set the required environment variable NTFY_DEFAULT_TOPIC. For authentication, set a bearer token or basic‑auth credentials. Public ntfy.sh works without an account. The server runs via STDIO by default; for HTTP, set MCP_TRANSPORT_TYPE=http and start with bun run start:http.
Key features of ntfy-mcp-server
- Four tools: publish, manage, fetch, and search emoji tags
- One resource providing a snapshot of any topic
- Full ntfy publish parameters (priority, tags, attachments, actions)
- Update or delete previously sent messages by sequence ID
- Multi‑topic polling with optional filters and pagination
- Authenticated access via bearer token or basic auth
- Supports multiple ntfy servers per process
- Retry‑aware HTTP client with configurable timeout
Use cases of ntfy-mcp-server
- Send critical alerts or notifications from an MCP client
- Clear/delete notifications after they are acknowledged
- Replay missed messages or audit topic activity
- Look up emoji tags to enrich notification content
- Integrate with public ntfy.sh or a self‑hosted ntfy instance
FAQ from ntfy-mcp-server
What runtime does ntfy-mcp-server require?
Bun v1.3.11 or higher (or Node.js v24+). The server is written in TypeScript.
How do I configure multiple ntfy servers?
Use the NTFY_SERVERS environment variable – a JSON array of { baseUrl, authToken? | authUsername?+authPassword? } entries. The first entry becomes the default. Per‑call base_url overrides only forward auth when matching a registered server.
Can I use ntfy-mcp-server without authentication?
Yes. The public ntfy.sh server works out of the box without any credentials. For protected topics, generate a bearer token at ntfy.sh/account or use basic auth.
Does the server store data locally?
By default it uses in‑memory storage, but the underlying framework supports swappable storage backends: filesystem, Supabase, or Cloudflare KV/R2/D1.
What transport modes are available?
STDIO (default) and Streamable HTTP. For HTTP, set MCP_TRANSPORT_TYPE=http and configure host/port. Session mode can be stateless, stateful, or auto.
Frequently asked questions
What runtime does ntfy-mcp-server require?
Bun v1.3.11 or higher (or Node.js v24+). The server is written in TypeScript.
How do I configure multiple ntfy servers?
Use the `NTFY_SERVERS` environment variable – a JSON array of `{ baseUrl, authToken? | authUsername?+authPassword? }` entries. The first entry becomes the default. Per‑call `base_url` overrides only forward auth when matching a registered server.
Can I use ntfy-mcp-server without authentication?
Yes. The public ntfy.sh server works out of the box without any credentials. For protected topics, generate a bearer token at `ntfy.sh/account` or use basic auth.
Does the server store data locally?
By default it uses in‑memory storage, but the underlying framework supports swappable storage backends: filesystem, Supabase, or Cloudflare KV/R2/D1.
What transport modes are available?
STDIO (default) and Streamable HTTP. For HTTP, set `MCP_TRANSPORT_TYPE=http` and configure host/port. Session mode can be `stateless`, `stateful`, or `auto`.
Basic information
More Other MCP servers
Maestro
mobile-dev-incPainless E2E Automation for Mobile and Web
MCP Toolbox for Databases
googleapisMCP Toolbox for Databases is an open source MCP server for databases.
Nginx UI
0xJackyYet another WebUI for Nginx
IDA Pro MCP
mrexodiaAI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.
Production-ready MCP integrations for AI applications
Klavis-AIKlavis AI: MCP integration platforms that let AI agents use tools reliably at any scale
Comments