Back to MCP Servers

Ntfy Me

An ntfy MCP server for sending/fetching ntfy notifications to your self-hosted ntfy server from AI Agents šŸ“¤ (supports secure token auth & more - use with npx or docker!)

communicationdockeraiagent
By gitmotion
6513Updated 2 months agoTypeScriptGPL-3.0

Installation

npx -y ntfy-me-mcp

Configuration

{
  "mcpServers": {
    "ntfy-me-mcp": {
      "command": "npx",
      "args": ["-y", "ntfy-me-mcp"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes

<img src="https://m2tg1pnwn0.ufs.sh/f/GMqNN8nd9I8l9tUbmif1CnFX8Baqr7mHeicYu0AULDyNVWJE" width=30 /> ntfy-me-mcp

TypeScript Model Context Protocol NPM Version Docker Image Version License GitHub <a href="https://www.buymeacoffee.com/gitmotion" target="_blank" rel="noopener noreferrer"> <img src="https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png" alt="Buy me a coffee" width="105px" /> </a>

A streamlined Model Context Protocol (MCP) server for sending notifications via ntfy service (public or selfhosted with token support) šŸ“²

Overview

ntfy-me-mcp provides AI assistants with the ability to send real-time notifications to your devices through the ntfy.sh service (either public or selfhosted with token support). Get notified when your AI completes tasks, encounters errors, or reaches important milestones - all without constant monitoring.

The server includes intelligent features like automatic URL detection for creating view actions and smart markdown formatting detection, making it easier for AI assistants to create rich, interactive notifications without extra configuration.

<table> <thead> <tr> <th width="50%">Preview</th> <th width="50%">Available via</th> </tr> </thead> <tbody> <tr> <td valign="top"><img src="https://m2tg1pnwn0.ufs.sh/f/GMqNN8nd9I8lvhAeasbt6OQorL7fKJdgMSekE0Wanp5HXNIm" alt="autodetect-preview" width="100%"></td> <td valign="top"> <table> <thead> <tr><th>Name</th><th>Link / Badge</th></tr> </thead> <tbody> <tr> <td>ntfy.sh</td> <td><a href="https://docs.ntfy.sh/integrations/#projects-scripts">Featured on ntfy.sh</a></td> </tr> <tr> <td>Glama.ai</td> <td><a href="https://glama.ai/mcp/servers/@gitmotion/ntfy-me-mcp"><img width="250" src="https://glama.ai/mcp/servers/@gitmotion/ntfy-me-mcp/badge" alt="ntfy-me-mcp MCP server" /></a></td> </tr> <tr> <td>Smithery.ai</td> <td><a href="https://smithery.ai/server/@gitmotion/ntfy-me-mcp"><img src="https://smithery.ai/badge/@gitmotion/ntfy-me-mcp" alt="smithery badge" /></a></td> </tr> <tr> <td>MseeP.ai</td> <td><a href="https://mseep.ai/app/gitmotion-ntfy-me-mcp"><img width="150" src="https://mseep.net/pr/gitmotion-ntfy-me-mcp-badge.png" alt="ntfy-me-mc-mseepai" /></a></td> </tr> <tr> <td>Archestra.ai</td> <td><a href="https://archestra.ai/mcp-catalog/gitmotion__ntfy-me-mcp"><img src="https://archestra.ai/mcp-catalog/api/badge/quality/gitmotion/ntfy-me-mcp" alt="Trust Score" /></a></td> </tr> </tbody> </table> </td> </tr> </tbody> </table>

Features

  • šŸš€ Quick Setup: Run with npx or docker!
  • šŸ”” Real-time Notifications: Get updates on your phone/desktop when tasks complete
  • šŸŽØ Rich Notifications: Support for topic, title, priorities, emoji tags, and detailed messages
  • šŸ” Notification Fetching: Fetch and filter cached messages from your ntfy topics
  • šŸŽÆ Smart Action Links: Automatically detects URLs in messages and creates view actions
  • šŸ“„ Intelligent Markdown: Auto-detects and enables markdown formatting when present
  • šŸ”’ Secure: Optional authentication with access tokens
  • šŸ”‘ Input Masking: Securely store your ntfy token in your vs config!
  • 🌐 Self-hosted Support: Works with both ntfy.sh and self-hosted ntfy instances

Coming soon...

  • šŸ“Ø Email: Send notifications to email (requires ntfy email server configuration)
  • šŸ”— Click urls: Ability to customize click urls
  • šŸ–¼ļø Image urls: Intelligent image url detection to automatically include image urls in messages and notifications
  • šŸ and more!

Table of Contents

<table> <thead> <tr> <th>Section</th> <th>Topics</th> </tr> </thead> <tbody> <tr> <td><a href="#quickstart---mcp-server-configuration">Quickstart - MCP Server Configuration</a></td> <td> <a href="#configuration-examples">Configuration Examples</a> </td> </tr> <tr> <td><a href="#installation">Installation</a></td> <td> <a href="#setting-up-the-notification-receiver">Setting Up the Notification Receiver</a> </td> </tr> <tr> <td><a href="#configuration">Configuration</a></td> <td> <a href="#environment-variables">Environment Variables</a><br/> <a href="#authentication">Authentication</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="#secure-token-handling-vscode">↳ Secure Token Handling (vscode)</a> </td> </tr> <tr> <td><a href="#tools--usage">Tools &amp; Usage</a></td> <td> <a href="#ntfy_me-sending-notifications">ntfy_me: Sending Notifications</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="#using-natural-language">↳ Using Natural Language</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="#example-usage">↳ Example Usage</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="#message-parameters">↳ Message Parameters</a><br/> <a href="#ntfy_me_fetch-polling-notifications">ntfy_me_fetch: Polling Notifications</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="#using-natural-language-1">↳ Using Natural Language</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="#example-usage-1">↳ Example Usage</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="#fetch-parameters">↳ Fetch Parameters</a> </td> </tr> <tr> <td><a href="#development--contributions">Development &amp; Contributions</a></td> <td></td> </tr> <tr> <td><a href="#license">License</a></td> <td></td> </tr> </tbody> </table>

Quickstart - MCP Server Configuration

Choose the config shape that matches your client. All examples below use NTFY_TOPIC as the required variable and keep the optional auth settings commented out until you need them.

Configuration Examples

<table> <thead> <tr> <th width="20%">Type</th> <th width="40%">Use Case</th> <th width="40%">Example</th> </tr> </thead> <tbody> <tr> <td>NPM / NPX</td> <td>Recommended for most MCP clients when you want the lightest setup.</td> <td> <details> <summary>Show config</summary> <pre><code>{ "ntfy-me-mcp": { "command": "npx", "args": ["-y", "ntfy-me-mcp"], "env": { "NTFY_TOPIC": "your-ntfy-topic", "NTFY_URL": "https://ntfy.sh", // "NTFY_TOKEN": "add-your-ntfy-token" } } }</code></pre> </details> </td> </tr> <tr> <td>Local</td> <td>Use a local checkout when you are developing or changing the server yourself. <br>Replace <code>/absolute/path/to/ntfy-me-mcp/build/index.js</code> after building. </td> <td> <details> <summary>Show config</summary> <pre><code>{ "ntfy-me-mcp": { "command": "node", "args": ["/absolute/path/to/ntfy-me-mcp/build/index.js"], "env": { "NTFY_TOPIC": "your-ntfy-topic", "NTFY_URL": "https://ntfy.sh", // "NTFY_TOKEN": "add-your-ntfy-token" } } }</code></pre> </details> </td> </tr> <tr> <td>Docker</td> <td>Use a containerized setup when Docker is already part of your environment. <br/>&nbsp;&nbsp; - DockerHub: <code>gitmotion/ntfy-me-mcp:latest</code><br/>&nbsp;&nbsp; - GHCR: <code>ghcr.io/gitmotion/ntfy-me-mcp:latest</code> </td> <td> <details> <summary>Show config</summary> <pre><code>{ "ntfy-me-mcp": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "NTFY_TOPIC", "-e", "NTFY_URL", "-e", "NTFY_TOKEN", "gitmotion/ntfy-me-mcp:latest" ], "env": { "NTFY_TOPIC": "your-ntfy-topic", "NTFY_URL": "https://ntfy.sh", // "NTFY_TOKEN": "add-your-ntfy-token" } } }</code></pre> </details> </td> </tr> <tr> <td>OpenCode</td> <td>Add to <code>opencode.json</code> in your project root (for project-level config) or <code>~/.config/opencode/opencode.json</code> (for global config). Uses <code>"mcp"</code> as the top-level key with <code>type: "local"</code> and <code>command</code> as an array.</td> <td> <details> <summary>Show config</summary> <pre><code>{ "$schema": "https://opencode.ai/config.json", "mcp": { "ntfy-me-mcp": { "type": "local", "command": ["npx", "-y", "ntfy-me-mcp"], "environment": { "NTFY_TOPIC": "your-ntfy-topic", "NTFY_URL": "https://ntfy.sh", // "NTFY_TOKEN": "add-your-ntfy-token" } } } }</code></pre> </details> </td> </tr> <tr> <td>ClaudeCode</td> <td>Add to <code>.mcp.json</code> at your project root (shared with your team via version control), or to <code>~/.claude.json</code> for user-level access across all projects.</td> <td> <details> <summary>Show config</summary> <pre><code>{ "mcpServers": { "ntfy-me-mcp": { "command": "npx", "args": ["-y", "ntfy-me-mcp"], "env": { "NTFY_TOPIC": "your-ntfy-topic", "NTFY_URL": "https://ntfy.sh", "NTFY_TOKEN": "${NTFY_TOKEN}" } } } }</code></pre> </details> </td> </tr> <tr> <td>Copilot CLI</td> <td>Add to <code>~/.copilot/mcp-config.json</code> for user-level access across all sessions. Use <code>type: "local"</code> for stdio-based servers like this one.</td> <td> <details> <summary>Show config</summary> <pre><code>{ "mcpServers": { "ntfy-me-mcp": { "type": "local", "command": "npx", "args": ["-y", "ntfy-me-mcp"], "env": { "NTFY_TOPIC": "your-ntfy-topic", "NTFY_URL": "https://ntfy.sh", "NTFY_TOKEN": "your-access-token" }, "tools": ["*"] } } }</code></pre> </details> </td> </tr> <tr> <td>Token Auth</td> <td>Required for protected topics or self-hosted servers. See <a href="#secure-token-handling-vscode">Secure Token Handling (vscode)</a> or set <code>NTFY_TOKEN</code> directly.</td> <td> <details> <summary>Show config</summary> <pre><code>{ "ntfy-me-mcp": { "command": "npx", "args": ["-y", "ntfy-me-mcp"], "env": { "NTFY_TOPIC": "your-ntfy-topic", "NTFY_URL": "https://your-ntfy-server.com", "NTFY_TOKEN": "your-access-token" } } }</code></pre> </details> </td> </tr> </tbody> </table>

Installation

If you need to install and run the server directly (alternative to the MCP configuration above):

<table> <thead> <tr> <th>Option</th> <th>Example</th> </tr> </thead> <tbody> <tr> <td valign="top"><b>Install globally</b><br/>Install once, run anywhere with the <code>ntfy-me-mcp</code> command.</td> <td> <code>npm install -g ntfy-me-mcp</code> </td> </tr> <tr> <td valign="top"><b>Run with npx</b><

…

View source on GitHub