{"id":28089007,"url":"https://github.com/gitmotion/ntfy-me-mcp","last_synced_at":"2026-04-08T08:03:18.014Z","repository":{"id":287274672,"uuid":"964136538","full_name":"gitmotion/ntfy-me-mcp","owner":"gitmotion","description":"An ntfy MCP server for sending/fetching ntfy notifications to any/self-hosted ntfy.sh server from AI Agents 📤 (supports secure token auth \u0026 more - use with npx or docker!)","archived":false,"fork":false,"pushed_at":"2025-08-06T18:07:00.000Z","size":82,"stargazers_count":30,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-06T18:16:47.370Z","etag":null,"topics":["agent","ai","claude","docker","llm","llm-agent","mcp","modelcontextprotocol","notifications","npm","npx","ntfy","ntfy-mcp","ntfy-mcp-server","ntfy-me-mcp","ntfymcp","ntfysh","vscode"],"latest_commit_sha":null,"homepage":"https://npmjs.com/package/ntfy-me-mcp","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gitmotion.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-10T18:38:58.000Z","updated_at":"2025-08-06T18:07:05.000Z","dependencies_parsed_at":"2025-05-13T12:53:26.093Z","dependency_job_id":"7a0d72f3-f1a9-4757-9b64-36350903c1f8","html_url":"https://github.com/gitmotion/ntfy-me-mcp","commit_stats":null,"previous_names":["gitmotion/ntfy-me-mcp"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/gitmotion/ntfy-me-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitmotion%2Fntfy-me-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitmotion%2Fntfy-me-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitmotion%2Fntfy-me-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitmotion%2Fntfy-me-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gitmotion","download_url":"https://codeload.github.com/gitmotion/ntfy-me-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitmotion%2Fntfy-me-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274100678,"owners_count":25222443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","ai","claude","docker","llm","llm-agent","mcp","modelcontextprotocol","notifications","npm","npx","ntfy","ntfy-mcp","ntfy-mcp-server","ntfy-me-mcp","ntfymcp","ntfysh","vscode"],"created_at":"2025-05-13T12:53:14.484Z","updated_at":"2026-04-08T08:03:18.008Z","avatar_url":"https://github.com/gitmotion.png","language":"JavaScript","funding_links":["https://www.buymeacoffee.com/gitmotion"],"categories":["Communication \u0026 Messaging","Messaging MCP Servers","💬 \u003ca name=\"communication\"\u003e\u003c/a\u003eCommunication","Community Servers","💬 Communication","پیاده‌سازی‌های سرور","Email and Messaging","Communication","MCP Servers \u0026 Protocol"],"sub_categories":["Notifications","💬 \u003ca name=\"communication\"\u003e\u003c/a\u003eارتباطات","How to Submit"],"readme":"# \u003cimg src=\"https://m2tg1pnwn0.ufs.sh/f/GMqNN8nd9I8l9tUbmif1CnFX8Baqr7mHeicYu0AULDyNVWJE\" width=30 /\u003e ntfy-me-mcp\n\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.9.3-blue.svg?logo=typescript)](https://www.typescriptlang.org/)\n[![Model Context Protocol](https://img.shields.io/badge/MCP-1.29.0-green.svg?logo=anthropic)](https://modelcontextprotocol.io/)\n[![NPM Version](https://img.shields.io/npm/v/ntfy-me-mcp.svg?logo=npm\u0026color=orange)](https://www.npmjs.com/package/ntfy-me-mcp)\n[![Docker Image Version](https://img.shields.io/docker/v/gitmotion/ntfy-me-mcp?logo=docker\u0026label=Docker)](https://hub.docker.com/r/gitmotion/ntfy-me-mcp)\n[![License](https://img.shields.io/badge/license-GPL--3.0-blue.svg)](LICENSE)\n[![GitHub](https://img.shields.io/github/stars/gitmotion/ntfy-me-mcp?style=social)](https://github.com/gitmotion/ntfy-me-mcp)\n\u003ca href=\"https://www.buymeacoffee.com/gitmotion\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n\u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png\" alt=\"Buy me a coffee\" width=\"105px\" /\u003e\n\u003c/a\u003e\n\n\u003e A streamlined Model Context Protocol (MCP) server for sending notifications via ntfy service (public or selfhosted with token support) 📲\n\n## Overview\n\nntfy-me-mcp provides AI assistants with the ability to send real-time notifications to your devices through the [ntfy](https://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.\n\nThe 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.\n\n\u003cimg src=\"https://m2tg1pnwn0.ufs.sh/f/GMqNN8nd9I8lvhAeasbt6OQorL7fKJdgMSekE0Wanp5HXNIm\" alt=\"autodetect-preview\" width=50%\u003e\n\n### Available via:\n\n| Name         | Link / Badge                                                                                                                                                                       |\n| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  |\n| Glama.ai     | \u003ca href=\"https://glama.ai/mcp/servers/@gitmotion/ntfy-me-mcp\"\u003e\u003cimg width=\"250\" src=\"https://glama.ai/mcp/servers/@gitmotion/ntfy-me-mcp/badge\" alt=\"ntfy-me-mcp MCP server\" /\u003e\u003c/a\u003e |\n| Smithery.ai  | [![smithery badge](https://smithery.ai/badge/@gitmotion/ntfy-me-mcp)](https://smithery.ai/server/@gitmotion/ntfy-me-mcp)                                                           |\n| MseeP.ai     | \u003ca href=\"https://mseep.ai/app/gitmotion-ntfy-me-mcp\"\u003e\u003cimg width=\"150\" src=\"https://mseep.net/pr/gitmotion-ntfy-me-mcp-badge.png\" alt=\"ntfy-me-mc-mseepai\" /\u003e\u003c/a\u003e                   |\n| Archestra.ai | [![Trust Score](https://archestra.ai/mcp-catalog/api/badge/quality/gitmotion/ntfy-me-mcp)](https://archestra.ai/mcp-catalog/gitmotion__ntfy-me-mcp)\u003c/a\u003e                            |\n\n## Table of Contents\n\n- [Features](#features)\n  - [Coming soon...](#coming-soon)\n- [Quickstart - MCP Server Configuration](#quickstart---mcp-server-configuration)\n  - [Configuration Examples](#configuration-examples)\n  - [VS Code Token Input Example](#vs-code-token-input-example)\n- [Installation](#installation)\n  - [Option 1: Install Globally](#option-1-install-globally)\n  - [Option 2: Run with npx](#option-2-run-with-npx)\n  - [Option 3: Install Locally](#option-3-install-locally)\n  - [Option 4: Build and Use Locally](#option-4-build-and-use-locally-with-node-command)\n    - [Using locally built server with MCP](#using-locally-built-server-with-mcp)\n  - [Option 5: MCP Marketplace Installations](#option-5-mcp-marketplace-installations)\n- [Configuration](#configuration)\n  - [Environment Variables](#environment-variables)\n- [Usage](#usage)\n  - [Authentication](#authentication)\n  - [Setting Up the Notification Receiver](#setting-up-the-notification-receiver)\n  - [Sending Notifications (ntfy_me tool)](#sending-notifications-ntfy_me-tool)\n    - [Using Natural Language](#using-natural-language)\n    - [Message Parameters](#message-parameters)\n    - [Action Links](#action-links)\n    - [Emoji Shortcodes](#emoji-shortcodes)\n    - [Markdown Formatting](#markdown-formatting)\n  - [Retrieving Messages (ntfy_me_fetch tool)](#retrieving-messages-ntfy_me_fetch-tool)\n    - [Using Natural Language](#using-natural-language-1)\n    - [Message Parameters](#message-parameters-1)\n    - [Examples](#examples)\n  - [Development](#development)\n    - [Building from Source](#building-from-source)\n- [License](#license)\n- [Contributing](#contributing)\n\n## Features\n\n- 🚀 **Quick Setup**: Run with npx or docker!\n- 🔔 **Real-time Notifications**: Get updates on your phone/desktop when tasks complete\n- 🎨 **Rich Notifications**: Support for topic, title, priorities, emoji tags, and detailed messages\n- 🔍 **Notification Fetching**: Fetch and filter cached messages from your ntfy topics\n- 🎯 **Smart Action Links**: Automatically detects URLs in messages and creates view actions\n- 📄 **Intelligent Markdown**: Auto-detects and enables markdown formatting when present\n- 🔒 **Secure**: Optional authentication with access tokens\n- 🔑 **Input Masking**: Securely store your ntfy token in your vs config!\n- 🌐 **Self-hosted Support**: Works with both ntfy.sh and self-hosted ntfy instances\n\n### (Coming soon...)\n\n- 📨 **Email**: Send notifications to email (requires ntfy email server configuration)\n- 🔗 **Click urls**: Ability to customize click urls\n- 🖼️ **Image urls**: Intelligent image url detection to automatically include image urls in messages and notifications\n- 🏁 and more!\n\n## Quickstart - MCP Server Configuration\n\nChoose 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.\n\n### Configuration Examples\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eType\u003c/th\u003e\n      \u003cth\u003eUse when\u003c/th\u003e\n      \u003cth\u003eExample\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eNPM / NPX\u003c/td\u003e\n      \u003ctd\u003eRecommended for most MCP clients when you want the lightest setup.\u003c/td\u003e\n      \u003ctd\u003e\n        \u003cdetails\u003e\n          \u003csummary\u003eShow config\u003c/summary\u003e\n          \u003cpre\u003e\u003ccode\u003e{\n  \"ntfy-me-mcp\": {\n    \"command\": \"npx\",\n    \"args\": [\"-y\", \"ntfy-me-mcp\"],\n    \"env\": {\n      \"NTFY_TOPIC\": \"your-ntfy-topic\",\n      \"NTFY_URL\": \"https://ntfy.sh\",\n      // \"NTFY_TOKEN\": \"add-your-ntfy-token\"\n    }\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n        \u003c/details\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eLocal\u003c/td\u003e\n      \u003ctd\u003eUse a local checkout when you are developing or changing the server yourself.\u003c/td\u003e\n      \u003ctd\u003e\n        \u003cdetails\u003e\n          \u003csummary\u003eShow config\u003c/summary\u003e\n          \u003cpre\u003e\u003ccode\u003e{\n  \"ntfy-me-mcp\": {\n    \"command\": \"node\",\n    \"args\": [\"/absolute/path/to/ntfy-me-mcp/build/index.js\"],\n    \"env\": {\n      \"NTFY_TOPIC\": \"your-ntfy-topic\",\n      \"NTFY_URL\": \"https://ntfy.sh\",\n      // \"NTFY_TOKEN\": \"add-your-ntfy-token\"\n    }\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n        \u003c/details\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eDocker\u003c/td\u003e\n      \u003ctd\u003eUse a containerized setup when Docker is already part of your environment.\u003c/td\u003e\n      \u003ctd\u003e\n        \u003cdetails\u003e\n          \u003csummary\u003eShow config\u003c/summary\u003e\n          \u003cpre\u003e\u003ccode\u003e{\n  \"ntfy-me-mcp\": {\n    \"command\": \"docker\",\n    \"args\": [\n      \"run\",\n      \"-i\",\n      \"--rm\",\n      \"-e\",\n      \"NTFY_TOPIC\",\n      \"-e\",\n      \"NTFY_URL\",\n      \"-e\",\n      \"NTFY_TOKEN\",\n      \"gitmotion/ntfy-me-mcp:latest\"\n    ],\n    \"env\": {\n      \"NTFY_TOPIC\": \"your-ntfy-topic\",\n      \"NTFY_URL\": \"https://ntfy.sh\",\n      // \"NTFY_TOKEN\": \"add-your-ntfy-token\"\n    }\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n        \u003c/details\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eOpenCode\u003c/td\u003e\n      \u003ctd\u003eUse OpenCode's local launcher format when configuring MCP there.\u003c/td\u003e\n      \u003ctd\u003e\n        \u003cdetails\u003e\n          \u003csummary\u003eShow config\u003c/summary\u003e\n          \u003cpre\u003e\u003ccode\u003e{\n  \"ntfy-me-mcp\": {\n    \"enabled\": true,\n    \"type\": \"local\",\n    \"command\": [\"npx\", \"-y\", \"ntfy-me-mcp\"],\n    \"environment\": {\n      \"NTFY_TOPIC\": \"your-ntfy-topic\",\n      \"NTFY_URL\": \"https://ntfy.sh\",\n      // \"NTFY_TOKEN\": \"add-your-ntfy-token\"\n    }\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n        \u003c/details\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nDocker images:\n\n- `gitmotion/ntfy-me-mcp:latest` (Docker Hub)\n- `ghcr.io/gitmotion/ntfy-me-mcp:latest` (GitHub Container Registry)\n\nReplace `/absolute/path/to/ntfy-me-mcp/build/index.js` with the real path on your machine after running `npm run build`.\n\n### VS Code Token Input Example\n\n\u003e [!NOTE]\n\u003e Since `v1.4.0`, the `PROTECTED_TOPIC` env has been removed. This handling is now auto-detected from the unresolved `NTFY_TOKEN` input reference instead.\n\nIf your client supports prompt-based secret inputs (i.e. VS Code), prefer that over hardcoding `NTFY_TOKEN` in config files. (Otherwise use your token directly)\n\nUse matching values like this in your `mcp.json` file:\n\n| Field | Value | Purpose |\n| --- | --- | --- |\n| `env.NTFY_TOKEN` | `\"${input:ntfy_token}\"` | References the secure prompt-backed token value |\n| `inputs[].id` | `\"ntfy_token\"` | Defines the input name used by `NTFY_TOKEN` |\n| `inputs[].type` | `\"promptString\"` | Prompts the user for the token at runtime |\n\n\u003cdetails\u003e\n\u003csummary\u003eShow VS Code mcp.json example\u003c/summary\u003e\n\n```jsonc\n{\n  \"inputs\": [\n    {\n      \"type\": \"promptString\",\n      \"id\": \"ntfy_token\",\n      \"description\": \"Ntfy Token\",\n      \"password\": true\n    }\n  ],\n  \"servers\": {\n    \"ntfy-me-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ntfy-me-mcp\"],\n      \"env\": {\n        \"NTFY_TOPIC\": \"your-ntfy-topic\",\n        \"NTFY_URL\": \"https://your-ntfy-server.com\",\n        \"NTFY_TOKEN\": \"${input:ntfy_token}\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n- Add this to your VS Code `mcp.json` file, either the user-level file or your workspace `.vscode/mcp.json`\n- Set `NTFY_TOKEN` exactly to `\"${input:ntfy_token}\"` when you want VS Code to treat it as a secure prompt-backed value.\n\nIf the client resolves `\"${input:ntfy_token}\"` before launch, the server receives the real token directly. If the placeholder is passed through unchanged, ntfy-me-mcp detects that unresolved input reference and prompts for the token itself at startup.\n\n## Installation\n\nIf you need to install and run the server directly (alternative to the MCP configuration above):\n\n### Option 1: Install globally\n\n```bash\nnpm install -g ntfy-me-mcp\n```\n\n### Option 2: Run with npx\n\n```bash\nnpx ntfy-me-mcp\n```\n\n### Option 3: Install locally\n\n\u003cdetails\u003e\n\u003csummary\u003eShow local install steps\u003c/summary\u003e\n\n```bash\n# Clone the repository\ngit clone https://github.com/gitmotion/ntfy-me-mcp.git\ncd ntfy-me-mcp\n\n# Install dependencies\nnpm install\n\n# Copy the example environment file and configure it\ncp .env.example .env\n# Edit .env with your preferred editor and update the variables\n# nano .env  # or use your preferred editor\n\n# Build the project\nnpm run build\n\n# Start the server\nnpm start\n```\n\n\u003c/details\u003e\n\n### Option 4: Build and use locally with node command\n\nIf you're developing or customizing the server, you might want to run it directly with node:\n\n\u003cdetails\u003e\n\u003csummary\u003eShow local build steps\u003c/summary\u003e\n\n```bash\n# Clone the repository\ngit clone https://github.com/gitmotion/ntfy-me-mcp.git\ncd ntfy-me-mcp\n\n# Install dependencies\nnpm install\n\n# Copy the example environment file and configure it\ncp .env.example .env\n# Edit the .env file to set your NTFY_TOPIC and other optional settings\n# nano .env  # or use your preferred editor\n\n# Build the project\nnpm run build\n\n# Run using node directly\nnpm start\n```\n\n\u003c/details\u003e\n\n#### Using locally built server with MCP\n\nWhen configuring your MCP to use a locally built version, specify the node command and path to the built index.js file:\n\n\u003cdetails\u003e\n\u003csummary\u003eShow local MCP config\u003c/summary\u003e\n\n```jsonc\n{\n  \"ntfy-me\": {\n    \"command\": \"node\",\n    \"args\": [\"/path/to/ntfy-mcp/build/index.js\"],\n    \"env\": {\n      \"NTFY_TOPIC\": \"your-topic-name\",\n      //\"NTFY_URL\": \"https://your-ntfy-server.com\", // Use if using a self-hosted server\n      //\"NTFY_TOKEN\": \"your-auth-token\" // Use if using a protected topic/server\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\nFor secure token handling in VS Code, replace the commented `NTFY_TOKEN` line with `\"NTFY_TOKEN\": \"${input:ntfy_token}\"` and define the `ntfy_token` prompt in the same `mcp.json` file under the top-level `inputs` array.\n\nRemember to use the absolute path to your build/index.js file in the args array.\n\n### Option 5: MCP Marketplace installations\n\n#### Installing via Smithery\n\nTo install ntfy-me-mcp for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@gitmotion/ntfy-me-mcp):\n\n```bash\nnpx -y @smithery/cli install @gitmotion/ntfy-me-mcp --client claude\n```\n\n## Configuration\n\n### Environment Variables\n\nCreate a `.env` file in your project directory by copying the provided example:\n\n```bash\n# Copy the example file\ncp .env.example .env\n\n# Edit the file with your preferred editor\nnano .env  # or vim, code, etc.\n```\n\nYour `.env` file should contain these variables:\n\n\u003cdetails\u003e\n\u003csummary\u003eShow example .env\u003c/summary\u003e\n\n```dotenv\n# Required\nNTFY_TOPIC=your-topic-name\n\n# Optional - Configure these if using a private/protected ntfy server\n# NTFY_URL=https://ntfy.sh  # Default is ntfy.sh, change to your self-hosted ntfy server URL if needed\n                            # Include port if needed, e.g., https://your-ntfy-server.com:8443\n# NTFY_TOKEN=your-access-token  # Required for authentication with protected topics/servers\n```\n\n\u003c/details\u003e\n\n## Usage\n\n### Authentication\n\nThis server supports both authenticated and unauthenticated ntfy endpoints:\n\n- **Public Topics**: When using public topics on ntfy.sh or other public servers, no authentication is required.\n- **Protected Topics**: For protected topics or private servers, you need to provide an access token.\n\nIf authentication is required but not provided, you'll receive a clear error message explaining how to add your token.\n\n### Setting Up the Notification Receiver\n\n1. Install the [ntfy app](https://ntfy.sh/app) on your device\n2. Subscribe to your chosen topic (the same as your `NTFY_TOPIC` setting)\n\n### Sending Notifications (ntfy_me tool)\n\nThis section covers all functionality related to sending notifications using the ntfy_me tool.\n\n#### Using Natural Language\n\nWhen working with your AI assistant, you can use natural phrases like:\n\n```\n\"Send me a notification when the build is complete\"\n\"Notify me when the task is done\"\n\"Alert me after generating the code\"\n\"Message me when the process finishes\"\n\"Send an alert with high priority\"\n```\n\n#### Message Parameters\n\nThe tool accepts these parameters:\n\n| Parameter   | Description                                            | Required |\n| ----------- | ------------------------------------------------------ | -------- |\n| taskTitle   | The notification title                                 | Yes      |\n| taskSummary | The notification body                                  | Yes      |\n| priority    | Message priority: min, low, default, high, max         | No       |\n| tags        | Array of notification tags (supports emoji shortcodes) | No       |\n| markdown    | Boolean to enable markdown formatting (true/false)     | No       |\n| actions     | Array of view action objects for clickable links       | No       |\n\nExample:\n\n```javascript\n{\n  taskTitle: \"Code Generation Complete\",\n  taskSummary: \"Your React component has been created successfully with proper TypeScript typing.\",\n  priority: \"high\",\n  tags: [\"check\", \"code\", \"react\"]\n}\n```\n\nThis will send a high-priority notification with a checkmark emoji.\n\n#### Action Links\n\nYou can add clickable action buttons to your notifications using the `actions` parameter, or let the server automatically detect URLs in your message.\n\n##### Automatic URL Detection\n\nWhen URLs are present in the message body, the server automatically creates up to 3 view actions (ntfy's maximum limit) from the first detected URLs. This makes it easy to include clickable links without manually specifying the actions array.\n\nFor example, this message:\n\n```javascript\n{\n  taskTitle: \"Build Complete\",\n  taskSummary: \"Your PR has been merged! View the changes at https://github.com/org/repo/pull/123 or check the deployment at https://staging.app.com\"\n}\n```\n\nWill automatically generate view actions for both URLs, making them easily clickable in the notification.\n\n##### Manual Action Configuration\n\nFor more control, you can manually specify actions:\n\n| Property | Description                                       | Required |\n| -------- | ------------------------------------------------- | -------- |\n| action   | Must be \"view\"                                    | Yes      |\n| label    | Button text to display                            | Yes      |\n| url      | URL to open when clicked                          | Yes      |\n| clear    | Whether to clear notification on click (optional) | No       |\n\nExample with action links:\n\n\u003cdetails\u003e\n\u003csummary\u003eShow action links example\u003c/summary\u003e\n\n```javascript\n{\n  taskTitle: \"Pull Request Review\",\n  taskSummary: \"Your code has been reviewed and is ready for final checks\",\n  priority: \"high\",\n  tags: [\"check\", \"code\"],\n  actions: [\n    {\n      action: \"view\",\n      label: \"View PR\",\n      url: \"https://github.com/org/repo/pull/123\"\n    },\n    {\n      action: \"view\",\n      label: \"View Changes\",\n      url: \"https://github.com/org/repo/pull/123/files\",\n      clear: true\n    }\n  ]\n}\n```\n\n\u003c/details\u003e\n\n#### Emoji Shortcodes\n\nYou can use emoji shortcodes in your tags for visual indicators:\n\n- `warning` → ⚠️\n- `check` → ✅\n- `rocket` → 🚀\n- `tada` → 🎉\n\nSee the [full list of supported emoji shortcodes](https://docs.ntfy.sh/emojis/).\n\n#### Markdown Formatting\n\nYour notifications support rich markdown formatting with intelligent detection! When you include markdown syntax in your `taskSummary`, the server automatically detects it and enables markdown parsing - no need to set `markdown: true` explicitly.\n\n##### Automatic Detection\n\nThe server checks for common markdown patterns like:\n\n- Headers (#, ##, etc.)\n- Lists (-, \\*, numbers)\n- Code blocks (```)\n- Links ([text](url))\n- Bold/italic (_text_, **text**)\n\nWhen these patterns are detected, markdown parsing is automatically enabled for the message.\n\n##### Manual Override\n\nWhile automatic detection works in most cases, you can still explicitly control markdown parsing:\n\n```javascript\n{\n  taskTitle: \"Task Complete\",\n  taskSummary: \"Regular plain text message\",\n  markdown: false  // Force disable markdown parsing\n}\n```\n\n### Retrieving Messages (ntfy_me_fetch tool)\n\nThis section covers all functionality related to fetching and filtering messages using the ntfy_me_fetch tool.\n\n#### Using Natural Language\n\nAI assistants understand various ways to request message fetching:\n\n```\n\"Show me my recent notifications\"\n\"Get messages from the last hour\"\n\"Find notifications with title 'Build Complete'\"\n\"Search for messages with the test_tube tag\"\n\"Show notifications from the updates topic from the last 24hr\"\n\"Check my latest alerts\"\n```\n\n#### Message Parameters\n\nThe tool accepts these parameters:\n\n| Parameter    | Description                                                                            | Required |\n| ------------ | -------------------------------------------------------------------------------------- | -------- |\n| ntfyTopic    | Topic to fetch messages from (defaults to NTFY_TOPIC env var)                          | No       |\n| since        | How far back to retrieve messages ('10m', '1h', '1d', timestamp, message ID, or 'all') | No       |\n| messageId    | Find a specific message by its ID                                                      | No       |\n| messageText  | Find messages containing exact text content                                            | No       |\n| messageTitle | Find messages with exact title/subject                                                 | No       |\n| priorities   | Find messages with specific priority levels                                            | No       |\n| tags         | Find messages with specific tags                                                       | No       |\n\n#### Examples\n\n1. **Fetch Recent Messages**\n\n```javascript\n{\n  since: \"30m\"; // Get messages from last 30 minutes\n}\n```\n\n2. **Filter by Title and Priority**\n\n```javascript\n{\n  messageTitle: \"Build Complete\",\n  priorities: \"high\",\n  since: \"1d\"\n}\n```\n\n3. **Search Different Topic with Tags**\n\n```javascript\n{\n  ntfyTopic: \"updates\",\n  tags: [\"error\", \"warning\"],\n  since: \"all\"\n}\n```\n\n4. **Find Specific Message**\n\n```javascript\n{\n  messageId: \"xxxxXXXXxxxx\";\n}\n```\n\nMessages are returned with full details including:\n\n- Message ID and timestamp\n- Topic and title\n- Content and priority\n- Tags and attachments\n- Action links and expiration\n\n\u003e **Note**: Message history availability depends on your ntfy server's cache settings. The public ntfy.sh server typically caches messages for 12 hours.\n\n## Development \u0026 Contributions\n\nDevelopment and contribution guidance now lives in [CONTRIBUTING.md](CONTRIBUTING.md), including setup steps and the npm scripts reference.\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.\n\n---\n\nMade with ❤️ by [gitmotion](https://github.com/gitmotion)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitmotion%2Fntfy-me-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgitmotion%2Fntfy-me-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitmotion%2Fntfy-me-mcp/lists"}