Ntfy MCP Server

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

Remote serverstreamable-httpGo

What is the Ntfy MCP server?

Send, manage, and replay ntfy push notifications via MCP. STDIO or Streamable HTTP. Exposed over MCP by the ntfy mcp server, that capability becomes something an assistant can invoke while it works, not something you go and do afterwards.

What it actually does

  • Declarative tool and resource definitions — single file per primitive, framework handles registration and validation
  • Typed error contracts via ctx.fail(reason, …) plus framework error factories (forbidden, notFound, validationError, …)
  • Pluggable auth: none, jwt, oauth
  • Swappable storage backends: in-memory, filesystem, Supabase, Cloudflare KV/R2/D1
  • Structured logging with optional OpenTelemetry tracing
  • STDIO and Streamable HTTP transports

Its toolset

Everything the assistant can do here goes through one of these:

  • ntfy_publish_message — Send or update a push notification on an ntfy topic
  • ntfy_manage_message — Clear or delete a previously-sent notification by sequence_id
  • ntfy_fetch_messages — Poll cached messages from one or more topics with optional filters
  • ntfy_search_emoji_tags — Look up ntfy emoji tag short codes for use in tags
  • Prerequisites — The Prerequisites tool exposed by this server
  • Installation — The Installation tool exposed by this server

Adding it to your client

Being a remote server, there is no local install. You register the endpoint with your client, authorise it once, and the tools appear.

Configuration

You will need 7 environment variables: MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, NTFY_DEFAULT_TOPIC, NTFY_BASE_URL, NTFY_AUTH_TOKEN, MCP_HTTP_HOST, MCP_HTTP_ENDPOINT_PATH. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

  • Bun v1.3.11 or higher (or Node.js v24+). - A topic name on an ntfy server. Public ntfy.sh requires no account; self-hosted instances and protected topics may need a bearer token or basic-auth credentials.

When to reach for it

Plenty of file and storage access servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Ntfy's toolset — ntfy_publish_message, ntfy_manage_message, ntfy_fetch_messages and 3 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Caveats

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the ntfy mcp server does with a few real requests.

Available tools

ToolWhat it does
ntfy_publish_messageSend or update a push notification on an ntfy topic.
ntfy_manage_messageClear or delete a previously-sent notification by sequence_id.
ntfy_fetch_messagesPoll cached messages from one or more topics with optional filters.
ntfy_search_emoji_tagsLook up ntfy emoji tag short codes for use in tags.
PrerequisitesThe Prerequisites tool exposed by this server.
InstallationThe Installation tool exposed by this server.

How to install the Ntfy MCP server

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

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Bun v1.3.11 or higher (or Node.js v24+). - A topic name on an ntfy server. Public ntfy.sh requires no account; self-hosted instances and protected topics may need a bearer token or basic-auth credentials.
VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
MCP_LOG_LEVELConfiguration value read at startup.Optional
NTFY_DEFAULT_TOPICConfiguration value read at startup.Optional
NTFY_BASE_URLEndpoint or connection string the server talks to.Yes
NTFY_AUTH_TOKENCredential the server authenticates with.Yes
MCP_HTTP_HOSTEndpoint or connection string the server talks to.Optional
MCP_HTTP_ENDPOINT_PATHFilesystem location the server is allowed to use.Optional

Example prompts to try

  • Use Ntfy to ntfy publish message.
  • Use Ntfy to ntfy manage message.
  • Use Ntfy to ntfy fetch messages.

Frequently asked questions

It connects Ntfy to MCP-compatible AI assistants such as Claude and Cursor, exposing 6 tools (ntfy_publish_message, ntfy_manage_message, ntfy_fetch_messages, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Ntfy directly.