MCP server for ntfy: publish notifications, read cached messages, manage users and topic access
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add ntfy --env NTFY_URL='<NTFY_URL>' --env NTFY_TOKEN='<NTFY_TOKEN>' --env NTFY_PASSWORD='<NTFY_PASSWORD>' -- npx -y @ni-c/ntfy-mcp~/.codex/config.toml
[mcp_servers.ntfy]
command = "npx"
args = ["-y", "@ni-c/ntfy-mcp"]
env = { NTFY_URL = "<NTFY_URL>", NTFY_TOKEN = "<NTFY_TOKEN>", NTFY_PASSWORD = "<NTFY_PASSWORD>" }
# codex mcp add ntfy --env NTFY_URL='<NTFY_URL>' --env NTFY_TOKEN='<NTFY_TOKEN>' --env NTFY_PASSWORD='<NTFY_PASSWORD>' -- npx -y @ni-c/ntfy-mcp~/.cursor/mcp.json
{
"mcpServers": {
"ntfy": {
"command": "npx",
"args": [
"-y",
"@ni-c/ntfy-mcp"
],
"env": {
"NTFY_URL": "<NTFY_URL>",
"NTFY_TOKEN": "<NTFY_TOKEN>",
"NTFY_PASSWORD": "<NTFY_PASSWORD>"
}
}
}
}.vscode/mcp.json
{
"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>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"ntfy": {
"command": "npx",
"args": [
"-y",
"@ni-c/ntfy-mcp"
],
"env": {
"NTFY_URL": "<NTFY_URL>",
"NTFY_TOKEN": "<NTFY_TOKEN>",
"NTFY_PASSWORD": "<NTFY_PASSWORD>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"ntfy": {
"command": "npx",
"args": [
"-y",
"@ni-c/ntfy-mcp"
],
"env": {
"NTFY_URL": "<NTFY_URL>",
"NTFY_TOKEN": "<NTFY_TOKEN>",
"NTFY_PASSWORD": "<NTFY_PASSWORD>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"ntfy": {
"command": "npx",
"args": [
"-y",
"@ni-c/ntfy-mcp"
],
"env": {
"NTFY_URL": "<NTFY_URL>",
"NTFY_TOKEN": "<NTFY_TOKEN>",
"NTFY_PASSWORD": "<NTFY_PASSWORD>"
}
}
}
}Environment variables
NTFY_URLNTFY_TOKENNTFY_PASSWORD
Replace the placeholders with your own credentials and keep them out of version control.