MCP Notify
Real-time monitoring and notifications for the MCP Registry ecosystem.
Features β’
Quick Start β’
Docs β’
Deploy β’
Contributing
Never miss an MCP update again. MCP Notify monitors the official MCP Registry for changes and delivers instant notifications through Discord, Slack, email, webhooks, and more.
MCP Notify monitors the official MCP Registry for changes and delivers notifications through multiple channels. Track new servers, version updates, and removals across the entire ecosystem or filter to specific namespaces and keywords.
β¨ Features
Core Capabilities
- Real-time Monitoring: Poll the MCP Registry at configurable intervals
- Smart Diffing: Detect new servers, updates, version changes, and removals
- Flexible Filtering: Subscribe to specific namespaces, keywords, or server patterns
- Change History: Full audit trail of all detected changes with timestamps
Notification Channels
- Discord: Rich embeds with server details and direct links
- Slack: Interactive messages with action buttons
- Email: Digest emails (immediate, hourly, daily, weekly)
- Webhooks: Generic HTTP webhooks for custom integrations
- RSS/Atom: Subscribe via any feed reader
- Telegram: Bot notifications via Telegram Bot API
- Microsoft Teams: Adaptive Cards with full Teams integration
Deployment Options
- Docker Compose: One command (
docker compose up -d) brings up the full stack
- Self-Hosted: Deploy your own instance via Docker or Kubernetes
- CLI Tool: One-off checks and local monitoring
Developer Experience
-
REST API: Full API for programmatic subscription management
-
Web Dashboard: Visual configuration and monitoring interface
-
Go SDK: Embed in your own applications
-
OpenAPI Spec: Generate clients in any language
ποΈ Architecture
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP Notify β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββ ββββββββββββ ββββββββββββββββββββββββββββ β
β β Poller βββββΆβ Differ βββββΆβ Notification Dispatcher β β
β ββββββββββββ ββββββββββββ ββββββββββββββββββββββββββββ β
β β β β β
β βΌ βΌ βΌ β
β ββββββββββββ ββββββββββββ ββββββββββββββββββββββββββββ β
β β Registry β β Snapshot β β Channels β β
β β API β β Store β β βββββββββ βββββββββββββ β β
β ββββββββββββ ββββββββββββ β βDiscordβ β Slack β β β
β β β βββββββββ βββββββββββββ β β
β βΌ β βββββββββ βββββββββββββ β β
β ββββββββββββ β β Email β β Webhook β β β
β βPostgreSQLβ β βββββββββ βββββββββββββ β β
β ββββββββββββ β βββββββββ β β
β β β RSS β β β
β β βββββββββ β β
β ββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β REST API β β
β β /subscriptions /changes /feeds /health /metrics β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Web Dashboard β β
β β React + TypeScript + Tailwind + shadcn/ui β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Quick Start
Self-Hosted with Docker
# Clone the repository
git clone https://github.com/nirholas/mcp-notify.git
cd mcp-notify
# Configure environment
cp .env.example .env
# Edit .env with your settings
# Start services
docker compose up -d
# Access dashboard at http://localhost:8080
Create a Subscription
Once your instance is running, manage subscriptions through its REST API:
# Create a webhook subscription via API
curl -X POST http://localhost:8080/api/v1/subscriptions \
-H "Content-Type: application/json" \
-d '{
"name": "My DeFi Alerts",
"filters": {
"keywords": ["defi", "ethereum", "swap"],
"namespaces": ["io.github.*"]
},
"channels": [{
"type": "discord",
"config": {
"webhook_url": "https://discord.com/api/webhooks/..."
}
}]
}'
Using the CLI
# Install CLI
go install github.com/nirholas/mcp-notify/cmd/mcp-notify-cli@latest
# Check for recent changes
mcp-notify-cli changes --since 24h
# Watch with live output
mcp-notify-cli watch --filter "defi,blockchain" --output json
# Subscribe to notifications
mcp-notify-cli subscribe \
--discord-webhook "https://discord.com/api/webhooks/..." \
--filter "io.github.myorg/*"
π¦ Installation
Prerequisites
- Go 1.22+ (for building from source)
- PostgreSQL 15+ (for persistence)
- Redis 7+ (optional, for caching)
- Docker & Docker Compose (for containerized deployment)
From Source
git clone https://github.com/nirholas/mcp-notify.git
cd mcp-notify
make build
./bin/mcp-notify --config config.yaml
Docker
docker pull ghcr.io/nirholas/mcp-notify:latest
docker run -p 8080:8080 -v $(pwd)/config.yaml:/app/config.yaml \
ghcr.io/nirholas/mcp-notify:latest
Kubernetes
helm repo add mcp-notify https://YOUR_USERNAME.github.io/mcp-notify
helm install mcp-notify mcp-notify/mcp-notify \
--set config.registryUrl=https://registry.modelcontextprotocol.io \
--set notifications.discord.enabled=true
π§ Configuration
Environment Variables
| Variable | Description | Default |
|---|
MCP_WATCH_REGISTRY_URL | MCP Registry API URL | https://registry.modelcontextprotocol.io |
MCP_WATCH_POLL_INTERVAL | Polling interval | 5m |
MCP_WATCH_DATABASE_URL | PostgreSQL connection string | Required |
MCP_WATCH_REDIS_URL | Redis connection string | Optional |
MCP_WATCH_API_PORT | API server port | 8080 |
MCP_WATCH_LOG_LEVEL | Log level (debug, info, warn, error) | info |
Configuration File
# config.yaml
server:
port: 8080
host: "0.0.0.0"
cors:
origins: ["*"]
registry:
url: "https://registry.modelcontextprotocol.io"
poll_interval: 5m
timeout: 30s
retry_attempts: 3
database:
url: "postgres://user:pass@localhost:5432/mcp_watch?sslmode=disable"
max_connections: 25
redis:
url: "redis://localhost:6379/0"
notifications:
discord:
enabled: true
rate_limit: 30/min
slack:
enabled: true
rate_limit: 30/min
email:
enabled: true
smtp:
host: "smtp.example.com"
port: 587
username: ""
password: ""
from: "mcp-notify@example.com"
webhook:
enabled: true
timeout: 10s
retry_attempts: 3
rss:
enabled: true
items_per_feed: 100
telemetry:
metrics:
enabled: true
port: 9090
tracing:
enabled: false
endpoint: ""
π‘ API Reference
Subscriptions
# Create subscription
POST /api/v1/subscriptions
# List subscriptions
GET /api/v1/subscriptions
# Get subscription
GET /api/v1/subscriptions/{id}
# Update subscription
PUT /api/v1/subscriptions/{id}
# Delete subscription
DELETE /api/v1/subscriptions/{id}
# Pause/resume subscription
POST /api/v1/subscriptions/{id}/pause
POST /api/v1/subscriptions/{id}/resume
Changes
# Get recent changes
GET /api/v1/changes?since=2025-01-01T00:00:00Z&limit=100
# Get change details
GET /api/v1/changes/{id}
# Get changes for specific server
GET /api/v1/changes?server=io.github.example/my-server
Feeds
# RSS feed (all changes)
GET /api/v1/feeds/rss
# Atom feed (all changes)
GET /api/v1/feeds/atom
# Filtered feed
GET /api/v1/feeds/rss?namespace=io.github.*&keywords=defi
Health & Metrics
# Health check
GET /health
# Readiness check
GET /ready
# Prometheus metrics
GET /metrics
Full API documentation available at /api/docs when running the server, or see api/openapi.yaml.
π Notification Formats
Discord