ntfy MCP Server
by ni-cio.github.ni-c/ntfy-mcpv0.3.0
Send push notifications through ntfy, read back sent messages, update a notification in place while a job runs, and administer users and topic access.
context tax
queued
security
queued
cold start
queued
freshness
Active2d ago
Install ntfy MCP server
Install in Claude Code
claude mcp add ntfy -e NTFY_URL='<ntfy-url>' -e NTFY_TOKEN='<ntfy-token>' -e NTFY_PASSWORD='<ntfy-password>' -- npx -y @ni-c/ntfy-mcpInstall in Cursor
{
"mcpServers": {
"ntfy": {
"command": "npx",
"args": [
"-y",
"@ni-c/ntfy-mcp"
],
"env": {
"NTFY_URL": "<ntfy-url>",
"NTFY_TOKEN": "<ntfy-token>",
"NTFY_PASSWORD": "<ntfy-password>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"ntfy": {
"command": "npx",
"args": [
"-y",
"@ni-c/ntfy-mcp"
],
"env": {
"NTFY_URL": "<ntfy-url>",
"NTFY_TOKEN": "<ntfy-token>",
"NTFY_PASSWORD": "<ntfy-password>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"ntfy": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ni-c/ntfy-mcp"
],
"env": {
"NTFY_URL": "<ntfy-url>",
"NTFY_TOKEN": "<ntfy-token>",
"NTFY_PASSWORD": "<ntfy-password>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"ntfy": {
"command": "npx",
"args": [
"-y",
"@ni-c/ntfy-mcp"
],
"env": {
"NTFY_URL": "<ntfy-url>",
"NTFY_TOKEN": "<ntfy-token>",
"NTFY_PASSWORD": "<ntfy-password>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| NTFY_URL | yes | — | Base URL of the ntfy server, e.g. https://ntfy.example.net. There is deliberately no default. |
| NTFY_TOKEN | — | yes | ntfy access token (tk_...). Optional: an open instance needs no credentials. Mutually exclusive with NTFY_USERNAME/NTFY_PASSWORD. |
| NTFY_USERNAME | — | — | Username for basic authentication. Must be set together with NTFY_PASSWORD. |
| NTFY_PASSWORD | — | yes | Password for basic authentication. Must be set together with NTFY_USERNAME. |
| NTFY_TOPICS | — | — | Comma-separated topics the server may use. The first is the default when a tool omits one, and the list restricts every read and write tool. |
| NTFY_READ_ONLY | — | — | Set to exactly true to register only the six read tools (default: false — ntfy exists to publish) |
| NTFY_INSECURE_TLS | — | — | Set to true to accept a self-signed certificate from the ntfy server (default: false) |
| NTFY_ALLOW_TOOLS | — | — | Comma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools) |
| NTFY_DENY_TOOLS | — | — | Comma-separated tool names or list_* prefixes to remove from whatever the allow list left |
Freshness
Active — last maintenance signal 2d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-10-08 · 2d ago · GitHub
Latest release
2026-09-07 · 32d ago · GitHub · v0.3.0
Package published
no data · npm/PyPI
Registry entry updated
2026-09-07 · 32d ago · official registry · v0.3.0
FAQ
›How do I install the ntfy MCP server in Claude Code?
Run: claude mcp add ntfy -e NTFY_URL='<ntfy-url>' -e NTFY_TOKEN='<ntfy-token>' -e NTFY_PASSWORD='<ntfy-password>' -- npx -y @ni-c/ntfy-mcp. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does ntfy require an API key?
Yes. It expects NTFY_URL, NTFY_TOKEN, NTFY_PASSWORD, of which 2 are secrets.
›Can I use ntfy as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is ntfy in the official MCP registry?
Yes, as io.github.ni-c/ntfy-mcp.
Alternatives to ntfy
Other communication MCP servers.