ntfy
Publish ntfy notifications, read the message cache, and manage users and topic access
Connector by ni-c · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/ni-c-ntfy-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 6 read · 2 write · 5 delete
- Secrets
- 2 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 13
Read from the source code; the running server may list different tools.
Read 6 · Look things up without changing anything.
check_topic_accessget_accountget_messageget_server_infolist_messageslist_users
Write 2 · Create, change, send or run things.
create_userpublish_message
Delete 5 · Delete, drop, revoke or wipe things.
delete_messagesdelete_usermanage_user_accessmark_messages_readupdate_message
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
NTFY_PASSWORDNTFY_TOKEN
Other settings (environment variables or headers).
NTFY_ALLOW_TOOLSNTFY_DENY_TOOLSNTFY_INSECURE_TLSNTFY_READ_ONLYNTFY_TOPICSNTFY_URLNTFY_USERNAME
Tools (13)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
check_topic_accessCheck topic accessread-onlyReports whether the configured credentials may SUBSCRIBE to each topic, without publishing anything. Read the result carefully: ntfy grants read and write separately, and this endpoint tests the read side only. A write-only publishing token is denied here and can still publish perfectly well — that combination is the single most common source of confusion with ntfy.
create_userCreate a userCreates a non-admin account on a self-hosted instance. Requires an admin account. Grant it access to topics with manage_user_access — a new account can reach nothing until you do. The API cannot create administrators; only the ntfy CLI can (`ntfy user add --role=admin`). Asks a person first; where the client cannot show a dialog, call once to receive a token and again with it. Be aware that a password passed as a tool argument stays in the conversation transcript. For an account that matters, create it on the server instead.
delete_messagesDelete notificationscan change or delete dataDeletes notifications and cancels scheduled ones that have not been delivered yet. Requires a confirmation token: call once without it to receive the token, then again with it. "Deleted" means subscribers are told to remove their copy. ntfy publishes a message_delete event and does **not** remove anything from its own cache, so list_messages and get_message still return the message afterwards, until it expires. Do not read that as the delete having failed, and do not delete again: the delete event is in the list too, alongside the message it refers to. Needs ntfy 2.16.0 or newer. Against an …
delete_userDelete a usercan change or delete dataRemoves an account and every access grant attached to it. Requires an admin account and a confirmation token: call once without it to receive the token, then again with it.
get_accountGet accountread-onlyIdentity, role, tier, limits and current usage of the configured credentials. Access token values are redacted — only their labels and timestamps are shown.
get_messageGet one messageread-onlyFetches a single cached message in full, including the untruncated body, its action buttons and any attachment. Ids come from list_messages or from the result of publish_message.
get_server_infoGet server inforead-onlyHealth, capabilities and usage of the ntfy instance. Health, config and stats are public, so this is the one tool that works before the credentials are right — a good first call after setup. Each section is fetched independently; one that is unavailable is reported as such and does not fail the call. "version" needs an admin account, so its absence is normal.
list_messagesList cached messagesread-onlyPolls the cached messages of one or more topics, oldest first. Returns "next_since": pass it back as "since" to get only what arrived after this call. ntfy has no way to list the topics that exist — a topic is created by publishing to it. You either know the name or you find it in get_account or list_users. Retention is whatever the instance configures (12 hours by default), so an empty result usually means "nothing recent", not "no such topic". Message bodies are shortened here; use get_message for one in full. Entries with an "updates" field revise an earlier notification rather than being…
list_usersList usersread-onlyEvery account on the instance with its per-topic grants — the answer to "who can read or write topic X". Requires an admin account; get_server_info reports whether the current one qualifies. Where NTFY_TOPICS restricts this server, the grants are reported against those topics only: a grant on a wildcard appears once per allowed topic it covers, and one that covers none of them is not shown at all.
manage_user_accessManage topic accesscan change or delete dataSets or removes an account's access to a topic or topic pattern. Requires an admin account and a confirmation token. Destructive in both directions, which is why it is gated: taking access away breaks a running publisher, and granting it exposes a topic's traffic to another account. A pattern may end in "*" to cover a family of topics. "deny" writes an explicit refusal — the only way to carve an exception out of a wildcard grant — whereas "revoke" removes the rule entirely, so a broader wildcard or the server default applies again. Where NTFY_TOPICS restricts this server, the topic must be …
mark_messages_readMark notifications readClears notifications on subscribers' devices. The messages stay in the server cache and remain readable with list_messages — that is the whole difference from delete_messages, which also leaves them there but tells subscribers to remove rather than to clear. Needs ntfy 2.16.0 or newer. Against an older server every id comes back with ok:false inside a result that is not an error — check the per-id results rather than only whether the call succeeded.
publish_messagePublish a notificationSends a notification to one or more topics. ntfy has no multi-topic publish, so this sends one request per topic and reports each outcome separately — a rejection on one topic does not discard the ones that succeeded. Check the "ok" field per entry rather than assuming the whole call worked. The returned id is also the notification's sequence id: pass it to update_message to revise this notification in place, which is how a progress report stays one notification instead of five.
update_messageUpdate a notificationcan change or delete dataReplaces the content of a notification already published, so subscribers see it change in place instead of receiving another one. The sequence id is the id returned by publish_message. It only exists for cached messages: one published with "cache": false cannot be updated. Only the fields given are sent; the cache keeps each revision as its own entry pointing back at the original, which is why list_messages shows them with an "updates" field — the original keeps its old text and a second entry carries the new one. Needs ntfy 2.16.0 or newer, and the failure below that is silent: an older ser…
Compare and alternatives
Featured in
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 53
- Last commit
- Oct 22, 2026 (6 days ago)
- Last release
- Sep 7, 2026 (1 month ago)
- Last package publish
- Sep 7, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.ni-c/ntfy-mcp- Version
- 0.3.0
- Auth
- API key
- Packages
- npm @ni-c/ntfy-mcpoci
ghcr.io/ni-c/ntfy-mcp:0.3.0 - License
- MIT
- Repository
- github.com/ni-c/ntfy-mcp
- Website
- ntfy-mcp.ni-c.de
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from ni-c
- 0.638score
IMAP mailbox
ni-c
Read, search and organise any IMAP mailbox, with writes off by default
ConnectorAFreshness: ALocal★ 3↓ 211/wkClaude Code +5 - 0.630score
OpenStreetMap
ni-c
Geocoding, walking/driving/cycling distances, route optimization, isochrones and POI search on OSM
ConnectorAFreshness: ALocalRead-only★ 4Claude Code +5 - 0.625score
mcp-hub
ni-c
Many stdio MCP servers from one container, published over HTTPS with OAuth 2.1 for any MCP client
ConnectorAFreshness: ARemoteLocal★ 3↓ 67/wkClaude Code +5 - 0.623score
CalDAV calendars
ni-c
Read and write CalDAV calendars: events, tasks and journal entries over the open standard
ConnectorAFreshness: ALocal★ 1↓ 138/wkClaude Code +5 - 0.618score

CardDAV address books
ni-c
Read and write CardDAV address books: contacts, groups and photos over the open standard
ConnectorAFreshness: ALocal↓ 200/wkClaude Code +5 - 0.615score
Wiki.js
ni-c
Search, read and edit Wiki.js pages, and manage its assets, users, groups and comments
ConnectorAFreshness: ALocal★ 3↓ 43/wkClaude Code +5
Cite this page
ntfy MCP server. Agent Mart. https://agentmart.dev/connectors/ni-c-ntfy-mcp (last updated 2026-10-24)