A lightweight notification service that integrates with MCP (Model Context Protocol) to send webhooks when AI agents complete tasks.
Originally created by tuberrabbit@gmail.com.
Currently maintained by zudsniper.
npm install -g mcp-server-notifier
docker pull zudsniper/mcp-server-notifier:latest
# Run with environment variables
docker run -e WEBHOOK_URL=https://your-webhook-url -e WEBHOOK_TYPE=discord zudsniper/mcp-server-notifier
git clone https://github.com/zudsniper/mcp-server-notifier.git
cd mcp-server-notifier
npm install
npm run build
MCP
in the sidebar, then click + Add new global MCP server
mcp-server-notifier
.{
"mcpServers": {
"notifier": {
"command": "npx",
"args": [
"-y",
"mcp-server-notifier"
],
"env": {
"WEBHOOK_URL": "https://ntfy.sh/webhook-url-example",
"WEBHOOK_TYPE": "ntfy"
}
}
}
}
By default, the notifier supports several webhook types:
You can specify the webhook type and URL through environment variables:
env WEBHOOK_URL="https://your-webhook-url" WEBHOOK_TYPE="discord" npx -y mcp-server-notifier
WEBHOOK_TOKEN
is an optional environment variable. When set, it will be included as a Bearer token in the Authorization
header only for ntfy webhook requests. If WEBHOOK_TOKEN
is not set, no Authorization header is sent.
Example:
env WEBHOOK_URL="https://ntfy.sh/your-topic" WEBHOOK_TYPE="ntfy" WEBHOOK_TOKEN="your-secret-token" npx -y mcp-server-notifier
For more advanced configuration, you can create a webhook-config.json
file:
{
"webhook": {
"type": "discord",
"url": "https://discord.com/api/webhooks/your-webhook-url",
"name": "My Notifier"
},
"imgur": {
"clientId": "your-imgur-client-id"
}
}
See the Configuration Guide for full details and examples.
For detailed usage instructions, see the Usage Guide.
notify
message
- Text content of the notificationtitle
(optional) - Title for the notificationlink
(optional) - URL to include in the notification (used as click action for ntfy)imageUrl
(optional) - URL of an image to include (legacy, use image
or attachments
)image
(optional) - Local file path of an image to upload to Imgurpriority
(optional, ntfy only) - Notification priority (1-5)attachments
(optional, ntfy only) - Array of URLs to attachtemplate
(optional, ntfy only) - Predefined template to use: status, question, progress, problemtemplateData
(optional, ntfy only) - Data to populate the chosen templateactions
(optional, ntfy only) - Array of action button definitions (view
or http
)Note: Template functionality is currently under development and has limited support. Templates work best with ntfy.sh but may not be fully implemented for all webhook providers. See the ROADMAP.md file for future implementation plans.
When using ntfy.sh as your webhook provider, you can use the following predefined templates:
Status Template (status
)
status
- Current status (e.g., "online", "completed", "pending")details
(optional) - Additional information about the statustimestamp
(optional) - When this status was recordedcomponent
(optional) - The system component this status applies toQuestion Template (question
)
question
- The main question being askedcontext
(optional) - Background information for the questionoptions
(optional) - Possible answer optionsdeadline
(optional) - When a response is needed byProgress Template (progress
)
title
- Name of the task or processcurrent
- Current progress valuetotal
- Total value to reach completionpercentage
(optional) - Explicit percentage value (calculated if not provided)eta
(optional) - Estimated time to completiondetails
(optional) - Additional information about the progressProblem Template (problem
)
title
- Short description of the problemdescription
(optional) - Detailed information about the problemseverity
(optional) - How severe the problem is (e.g., "critical", "warning")source
(optional) - Where the problem originatedtimestamp
(optional) - When the problem occurredsolution
(optional) - Suggested ways to fix the problemExample Using Template:
// Send a progress notification
{
"template": "progress",
"templateData": {
"title": "Database Backup",
"current": 75,
"total": 100,
"eta": "2 minutes remaining",
"details": "Compressing backup files"
},
"priority": 3
}
The MCP Server Notifier is available as a Docker image:
docker pull zudsniper/mcp-server-notifier:latest
Run with environment variables:
docker run -e WEBHOOK_URL=https://your-webhook-url -e WEBHOOK_TYPE=discord zudsniper/mcp-server-notifier
Example webhook configurations are available in the examples directory.
git clone https://github.com/zudsniper/mcp-server-notifier.git
cd mcp-server-notifier
npm install
npm run build
# Install the MCP Inspector if you haven't already
npm install -g @modelcontextprotocol/inspector
# Start the server with the Inspector
npx @modelcontextprotocol/inspector node build/index.js
To release a new version:
package.json
release
branchRequired repository secrets for CI/CD:
DOCKERHUB_USERNAME
- Docker Hub usernameDOCKERHUB_TOKEN
- Docker Hub access tokenNPM_TOKEN
- npm access tokenMIT License - see LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
Seamless access to top MCP servers powering the future of AI integration.