{"_id":"@buimanhtoan-it/notify-mcp","_rev":"2-f8948b34f64d52b669f9c8d34d6c65ca","name":"@buimanhtoan-it/notify-mcp","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@buimanhtoan-it/notify-mcp","version":"1.0.0","keywords":["mcp","modelcontextprotocol","notification","slack","discord","google-chat","webhook","claude"],"author":{"name":"Toan Bui","email":"buimanhtoan.it@gmail.com"},"license":"MIT","_id":"@buimanhtoan-it/notify-mcp@1.0.0","maintainers":[{"name":"buimanhtoan.it","email":"buimanhtoan.it@gmail.com"}],"dist":{"shasum":"6f15f2148e86573464335e6d24106e29e5b99373","tarball":"https://registry.npmjs.org/@buimanhtoan-it/notify-mcp/-/notify-mcp-1.0.0.tgz","fileCount":21,"integrity":"sha512-jqFhEux0J42INdF5lhnbj0T7C9qDONHDsG/M3fEAttRbDWwfdWlvU3d/CAB16JtvFLSAFvg52glZWQT3FICGpw==","signatures":[{"sig":"MEQCIEQI7iusiNKb5zflqeEj0aC1dCaPFMr4OQlAdQ+NYvh2AiBKcVqYsSmbCi6DuPySbkg+gZNOi3/iDOUouzl+op1lkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82854},"main":"src/index.js","type":"module","gitHead":"ae78bcedcc05eeea55acc18f8632ed71b2952d69","scripts":{"test":"node --test src/**/*.test.js","start":"node src/index.js"},"_npmUser":{"name":"buimanhtoan.it","email":"buimanhtoan.it@gmail.com"},"_npmVersion":"9.8.1","description":"Universal AI notification MCP server — send notifications to Slack, Google Chat, and Discord via webhooks","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/notify-mcp_1.0.0_1775913047357_0.5555352456919789","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@buimanhtoan-it/notify-mcp","version":"1.1.0","description":"Universal AI notification MCP server — send notifications to Slack, Google Chat, and Discord via webhooks","main":"src/index.js","bin":{"notify-mcp":"src/cli.js"},"exports":{".":"./src/index.js","./utils":"./src/utils/index.js"},"type":"module","scripts":{"start":"node src/index.js","test":"node --test src/**/*.test.js"},"keywords":["mcp","modelcontextprotocol","notification","slack","discord","google-chat","webhook","claude"],"author":{"name":"Toan Bui","email":"buimanhtoan.it@gmail.com"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_id":"@buimanhtoan-it/notify-mcp@1.1.0","gitHead":"3cc0128bbbdb8ba85ccb31da2bf6c6379117564f","_nodeVersion":"20.20.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-mTHwvnQeB28F1Rf5e2ykzpk6LX9L0mQhLipCda/5eKVcKkhUSW4TLXBQq/HzkGW7z53teaH4XPXNu4xvSm+eqg==","shasum":"09ab46cceaa85d8b761596b7f3a30d5f0f98f696","tarball":"https://registry.npmjs.org/@buimanhtoan-it/notify-mcp/-/notify-mcp-1.1.0.tgz","fileCount":29,"unpackedSize":115932,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCskU5nbHnrWC9+Yrkg5K16p5AH1ivqOGfUNE6dcYL9uwIhAPb+jN45B5Tor7qxnAO4RKV6liM+sJnvW+Y/rQhod+/E"}]},"_npmUser":{"name":"buimanhtoan.it","email":"buimanhtoan.it@gmail.com"},"directories":{},"maintainers":[{"name":"buimanhtoan.it","email":"buimanhtoan.it@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/notify-mcp_1.1.0_1775918611901_0.7565014125716756"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-11T13:10:47.212Z","modified":"2026-04-11T14:43:32.219Z","1.0.0":"2026-04-11T13:10:47.488Z","1.1.0":"2026-04-11T14:43:32.115Z"},"author":{"name":"Toan Bui","email":"buimanhtoan.it@gmail.com"},"license":"MIT","keywords":["mcp","modelcontextprotocol","notification","slack","discord","google-chat","webhook","claude"],"description":"Universal AI notification MCP server — send notifications to Slack, Google Chat, and Discord via webhooks","maintainers":[{"name":"buimanhtoan.it","email":"buimanhtoan.it@gmail.com"}],"readme":"# 🔔 notify-mcp\n\n**Let your AI agents send notifications to Slack, Google Chat, Discord — in one line.**\n\n[![npm](https://img.shields.io/npm/v/@buimanhtoan-it/notify-mcp)](https://npmjs.com/package/@buimanhtoan-it/notify-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Downloads](https://img.shields.io/npm/dm/@buimanhtoan-it/notify-mcp)](https://npmjs.com/package/@buimanhtoan-it/notify-mcp)\n\n> \"Let your AI agents notify humans anywhere — in 1 line.\"\n\n---\n\n## TL;DR\n\n```javascript\n// One line to notify your whole team\n{\n  \"tool\": \"notify\",\n  \"input\": {\n    \"platform\": \"slack\",\n    \"webhook_url\": \"https://hooks.slack.com/services/...\",\n    \"message\": \"✅ Claude finished processing 50 PDFs\",\n    \"status\": \"success\"\n  }\n}\n```\n\nThat's it. Your AI agent sends a message. Your team sees it. Everyone's happy.\n\n---\n\n## Features\n\n| Feature | Description |\n|---------|-------------|\n| **3 platforms** | Google Chat, Slack (Block Kit), Discord (Rich Embeds) |\n| **Single tool** | 1 `notify` tool handles 80% of use cases |\n| **Status formatting** | success/error/info with color-coded emojis |\n| **Retry logic** | Auto-retry with exponential backoff on failures |\n| **Markdown** | Parse `**bold**`, `*italic*`, `` `code` `` per platform |\n| **Multi-webhook** | `notify_all` sends to multiple platforms at once |\n| **CLI mode** | Use without an MCP client: `npx @buimanhtoan-it/notify-mcp` |\n| **Config file** | `notify.config.json` — no need to pass webhook every time |\n| **Webhook ping** | `ping_webhook` tool to test connections |\n\n---\n\n## Installation\n\n```bash\nnpm install @buimanhtoan-it/notify-mcp\n```\n\nThen add it to your MCP config:\n\n**Claude Desktop:**\n```json\n// ~/AppData/Roaming/Claude/claude_desktop_config.json\n{\n  \"mcpServers\": {\n    \"notify-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@buimanhtoan-it/notify-mcp\"]\n    }\n  }\n}\n```\n\n**Cursor / other MCP clients:**\n```json\n{\n  \"mcpServers\": {\n    \"notify-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@buimanhtoan-it/notify-mcp\"]\n    }\n  }\n}\n```\n\n---\n\n## Configuration\n\nCreate a `notify.config.json` to avoid passing webhook URLs every time:\n\n```json\n{\n  \"webhooks\": {\n    \"default\": \"https://hooks.slack.com/services/YOUR/WORKSPACE/TOKEN\",\n    \"slack\": \"https://hooks.slack.com/services/YOUR/WORKSPACE/TOKEN\",\n    \"google_chat\": \"https://chat.googleapis.com/v1/spaces/YOUR_SPACE/messages?token=YOUR_TOKEN\",\n    \"discord\": \"https://discord.com/api/webhooks/YOUR/WEBHOOK/TOKEN\"\n  },\n  \"defaults\": {\n    \"platform\": \"slack\",\n    \"retries\": 3,\n    \"markdown\": false\n  }\n}\n```\n\nPlace it in your project root or home directory.\n\n### Getting webhook URLs\n\n**Slack:** `Settings → Integrations → Incoming Webhooks → Add New Webhook`\n\n**Google Chat:** `Space Settings → Apps → Webhooks → Add connection`\n\n**Discord:** `Channel Settings → Integrations → Webhooks → New Webhook`\n\n---\n\n## Tools\n\n### `notify` — Send a notification\n\n```javascript\n{\n  \"tool\": \"notify\",\n  \"input\": {\n    \"platform\": \"slack\",\n    \"webhook_url\": \"https://hooks.slack.com/services/...\",\n    \"message\": \"Build completed in 3m 12s\",\n    \"title\": \"Deploy Success\",\n    \"status\": \"success\",       // optional: success | error | info\n    \"retries\": 3,               // optional: auto-retry on failure\n    \"markdown\": true             // optional: parse markdown formatting\n  }\n}\n```\n\n**Markdown support** (when `markdown: true`):\n- `**bold**` → **bold**\n- `*italic*` → _italic_\n- `` `code` `` → `code`\n\n### `notify_all` — Multi-platform notification\n\n```javascript\n{\n  \"tool\": \"notify_all\",\n  \"input\": {\n    \"targets\": [\n      { \"platform\": \"slack\", \"webhook_url\": \"...\", \"message\": \"Build done!\", \"status\": \"success\" },\n      { \"platform\": \"discord\", \"webhook_url\": \"...\", \"message\": \"Build done!\", \"status\": \"success\" }\n    ]\n  }\n}\n```\n\nResponse:\n```json\n{\n  \"success\": true,\n  \"sent\": 2,\n  \"failed\": 0,\n  \"summary\": \"Sent 2/2 notifications (0 failed)\"\n}\n```\n\n### `ping_webhook` — Test connection\n\n```javascript\n{\n  \"tool\": \"ping_webhook\",\n  \"input\": {\n    \"webhook_url\": \"https://hooks.slack.com/services/...\",\n    \"platform\": \"auto\"  // or \"slack\", \"google_chat\", \"discord\"\n  }\n}\n```\n\n---\n\n## Usage Examples\n\n### Slack with status\n```javascript\n{\n  \"tool\": \"notify\",\n  \"input\": {\n    \"platform\": \"slack\",\n    \"webhook_url\": \"https://hooks.slack.com/services/T00000000/B00000000/XXX\",\n    \"message\": \"Pipeline complete: **847** records updated\",\n    \"status\": \"success\",\n    \"markdown\": true\n  }\n}\n```\n\n### Google Chat\n```javascript\n{\n  \"tool\": \"notify\",\n  \"input\": {\n    \"platform\": \"google_chat\",\n    \"webhook_url\": \"https://chat.googleapis.com/v1/spaces/...\",\n    \"message\": \"ML training complete — 10,000 samples processed\"\n  }\n}\n```\n\n### Discord with rich embed\n```javascript\n{\n  \"tool\": \"notify\",\n  \"input\": {\n    \"platform\": \"discord\",\n    \"webhook_url\": \"https://discord.com/api/webhooks/...\",\n    \"message\": \"Data sync: **1.2M** records processed\",\n    \"title\": \"Sync Complete\",\n    \"status\": \"success\",\n    \"markdown\": true\n  }\n}\n```\n\n### With retry for production\n```javascript\n{\n  \"tool\": \"notify\",\n  \"input\": {\n    \"platform\": \"slack\",\n    \"webhook_url\": \"https://hooks.slack.com/services/...\",\n    \"message\": \"Batch job done: 1000 emails sent\",\n    \"status\": \"success\",\n    \"retries\": 3\n  }\n}\n```\n\n---\n\n## CLI Mode\n\nUse `notify-mcp` directly from the command line — no MCP client needed:\n\n```bash\n# Basic usage\nnpx @buimanhtoan-it/notify-mcp -p slack -w \"https://hooks.slack.com/...\" -m \"Build done!\"\n\n# With config file\nnpx @buimanhtoan-it/notify-mcp -c . -m \"Pipeline complete\" -s success\n\n# With markdown\nnpx @buimanhtoan-it/notify-mcp -p slack -m \"**Bold** and *italic* text\" --markdown\n\n# With retry\nnpx @buimanhtoan-it/notify-mcp -p discord -w \"...\" -m \"Done\" --retries 3\n\n# JSON output\nnpx @buimanhtoan-it/notify-mcp -p google_chat -w \"...\" -m \"Hi\" --json\n```\n\n**Arguments:**\n- `-p, --platform` Platform: `slack`, `google_chat`, `discord`\n- `-w, --webhook` Webhook URL\n- `-m, --message` Message text (required)\n- `-t, --title` Optional title\n- `-s, --status` Optional status: `success`, `error`, `info`\n- `--retries` Retry attempts (default: 0)\n- `--markdown` Parse markdown formatting\n- `-c, --config` Config file directory\n- `--json` Output as JSON\n\n---\n\n## Use Cases\n\n- **CI/CD pipelines** — Get notified when builds pass or fail\n- **ML training** — \"Model trained on 50K samples, AUC: 0.94\"\n- **Data pipelines** — \"Nightly ETL complete: 1.2M rows processed\"\n- **PDF/document processing** — \"50 invoices parsed, 3 flagged for review\"\n- **Code reviews** — \"PR #234 approved, ready to merge\"\n- **Batch jobs** — \"1000 emails sent, 2 bounced\"\n- **Health checks** — \"API latency spike detected: p99 = 2.3s\"\n- **Background tasks** — \"Your video is ready for download\"\n\n---\n\n## API Reference\n\n### `notify` tool parameters\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `platform` | string | Yes | `slack`, `google_chat`, or `discord` |\n| `webhook_url` | string | Yes | Your platform-specific webhook URL |\n| `message` | string | Yes | The notification text |\n| `title` | string | No | Optional title / headline |\n| `status` | string | No | `success`, `error`, or `info` |\n| `retries` | integer | No | Retry attempts (0 = disabled, default: 0) |\n| `markdown` | boolean | No | Parse markdown formatting (default: false) |\n\n### Response\n\n```json\n{ \"success\": true, \"platform\": \"slack\", \"message\": \"Notification sent\" }\n```\n\nOn error:\n```json\n{ \"success\": false, \"error\": \"Slack webhook error 500: Internal Server Error\" }\n```\n\n---\n\n## Roadmap\n\n| Version | Feature |\n|---------|---------|\n| **v1.0** | Slack, Google Chat, Discord webhooks ✅ |\n| **v1.1** | Retry, markdown, multi-webhook, CLI, config ✅ |\n| **v2.0** | Smart routing, mention support |\n| **v3.0** | File attachments, Google Chat Card format |\n| **v4.0** | Interactive buttons, templates |\n\n---\n\n## Contributing\n\n```bash\ngit clone https://github.com/buimanhtoan-it/notify-mcp.git\ncd notify-mcp\nnpm install\nnpm test\nnpm start\n```\n\n---\n\n## License\n\nMIT — use it in your startup, your side project, your enterprise. Go wild.\n","readmeFilename":"README.md"}