NotifyHub — Unified Notification MCP Server
Send notifications across 23 channels with 36 AI-ready tools. One API, zero boilerplate.
The record the registry holds
There is no address to call. This one is a package you install and run yourself, wherever your assistant runs.
{
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.GabrielBBaldez/notify-hub",
"description": "Send notifications across 23 channels with 36 AI-ready tools. One API, zero boilerplate.",
"title": "NotifyHub — Unified Notification MCP Server",
"repository": {
"url": "https://github.com/GabrielBBaldez/notify-hub",
"source": "github"
},
"version": "1.1.0",
"packages": [
{
"registryType": "oci",
"identifier": "ghcr.io/gabrielbbaldez/notify-hub:1.1.0",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "SMTP server host for email notifications",
"format": "string",
"name": "NOTIFY_CHANNELS_EMAIL_HOST"
},
{
"description": "SMTP server port",
"format": "string",
"name": "NOTIFY_CHANNELS_EMAIL_PORT"
},
{
"description": "SMTP authentication username",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_EMAIL_USERNAME"
},
{
"description": "SMTP authentication password",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_EMAIL_PASSWORD"
},
{
"description": "Default sender email address",
"format": "string",
"name": "NOTIFY_CHANNELS_EMAIL_FROM"
},
{
"description": "Twilio Account SID for SMS",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_SMS_ACCOUNTSID"
},
{
"description": "Twilio Auth Token for SMS",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_SMS_AUTHTOKEN"
},
{
"description": "Twilio sender phone number",
"format": "string",
"name": "NOTIFY_CHANNELS_SMS_FROMNUMBER"
},
{
"description": "Slack incoming webhook URL",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_SLACK_WEBHOOKURL"
},
{
"description": "Telegram Bot API token",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TELEGRAM_BOTTOKEN"
},
{
"description": "Telegram chat/group ID",
"format": "string",
"name": "NOTIFY_CHANNELS_TELEGRAM_CHATID"
},
{
"description": "Discord webhook URL",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_DISCORD_WEBHOOKURL"
},
{
"description": "Microsoft Teams webhook URL",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TEAMS_WEBHOOKURL"
},
{
"description": "Google Chat webhook URL",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_GOOGLECHAT_WEBHOOKURL"
},
{
"description": "Twitter/X API key",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TWITTER_APIKEY"
},
{
"description": "Twitter/X API secret",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TWITTER_APISECRET"
},
{
"description": "Twitter/X access token",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TWITTER_ACCESSTOKEN"
},
{
"description": "Twitter/X access token secret",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TWITTER_ACCESSTOKENSECRET"
},
{
"description": "LinkedIn OAuth2 access token",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_LINKEDIN_ACCESSTOKEN"
},
{
"description": "LinkedIn organization/company ID",
"format": "string",
"name": "NOTIFY_CHANNELS_LINKEDIN_ORGANIZATIONID"
},
{
"description": "Twilio Account SID for WhatsApp",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_WHATSAPP_ACCOUNTSID"
},
{
"description": "Twilio Auth Token for WhatsApp",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_WHATSAPP_AUTHTOKEN"
},
{
"description": "WhatsApp sender number (with whatsapp: prefix)",
"format": "string",
"name": "NOTIFY_CHANNELS_WHATSAPP_FROMNUMBER"
},
{
"description": "Firebase Cloud Messaging credentials JSON (base64 or path)",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_PUSH_FIREBASECREDENTIALS"
},
{
"description": "Notion integration API key",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_NOTION_APIKEY"
},
{
"description": "Notion database ID",
"format": "string",
"name": "NOTIFY_CHANNELS_NOTION_DATABASEID"
},
{
"description": "Twitch application client ID",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TWITCH_CLIENTID"
},
{
"description": "Twitch application client secret",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TWITCH_CLIENTSECRET"
},
{
"description": "Twitch broadcaster/channel ID",
"format": "string",
"name": "NOTIFY_CHANNELS_TWITCH_BROADCASTERID"
},
{
"description": "YouTube/Google OAuth2 client ID",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_YOUTUBE_CLIENTID"
},
{
"description": "YouTube/Google OAuth2 client secret",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_YOUTUBE_CLIENTSECRET"
},
{
"description": "YouTube/Google OAuth2 refresh token",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_YOUTUBE_REFRESHTOKEN"
},
{
"description": "YouTube Live Chat ID",
"format": "string",
"name": "NOTIFY_CHANNELS_YOUTUBE_LIVECHATID"
},
{
"description": "Instagram Graph API access token",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_INSTAGRAM_ACCESSTOKEN"
},
{
"description": "Instagram Business account user ID",
"format": "string",
"name": "NOTIFY_CHANNELS_INSTAGRAM_USERID"
},
{
"description": "SendGrid API key for email delivery with tracking",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_SENDGRID_APIKEY"
},
{
"description": "SendGrid sender email address",
"format": "string",
"name": "NOTIFY_CHANNELS_SENDGRID_FROMEMAIL"
},
{
"description": "TikTok Shop application key",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TIKTOKSHOP_APPKEY"
},
{
"description": "TikTok Shop application secret",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TIKTOKSHOP_APPSECRET"
},
{
"description": "TikTok Shop access token",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_TIKTOKSHOP_ACCESSTOKEN"
},
{
"description": "TikTok Shop ID",
"format": "string",
"name": "NOTIFY_CHANNELS_TIKTOKSHOP_SHOPID"
},
{
"description": "Facebook Page access token",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_FACEBOOK_PAGEACCESSTOKEN"
},
{
"description": "Facebook Page ID",
"format": "string",
"name": "NOTIFY_CHANNELS_FACEBOOK_PAGEID"
},
{
"description": "AWS access key ID for SNS",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_AWSSNS_ACCESSKEYID"
},
{
"description": "AWS secret access key for SNS",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_AWSSNS_SECRETACCESSKEY"
},
{
"description": "AWS region for SNS (e.g., us-east-1)",
"format": "string",
"name": "NOTIFY_CHANNELS_AWSSNS_REGION"
},
{
"description": "Mailgun API key",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_MAILGUN_APIKEY"
},
{
"description": "Mailgun sending domain",
"format": "string",
"name": "NOTIFY_CHANNELS_MAILGUN_DOMAIN"
},
{
"description": "Mailgun sender email address",
"format": "string",
"name": "NOTIFY_CHANNELS_MAILGUN_FROMEMAIL"
},
{
"description": "PagerDuty Events API v2 integration key",
"format": "string",
"isSecret": true,
"name": "NOTIFY_CHANNELS_PAGERDUTY_APIKEY"
}
]
}
]
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"statusChangedAt": "2026-03-17T23:23:58.133705Z",
"publishedAt": "2026-03-17T23:23:58.133705Z",
"updatedAt": "2026-03-17T23:23:58.133705Z",
"isLatest": true
}
}
}
Draft an Agent Plugin from this
An MCP server is raw capability: some tools, wired to something. An Agent Plugin is the packaging that says what job it does, what it leaves behind and where it stops. The prompt below carries this record and asks for the packaging; your own assistant writes it, and nothing here is sent anywhere.
MCP server
These are the publisher's own words, filed by them with the official MCP registry and mirrored here. This catalog did not read them from the publisher and has not run, called or installed anything.
The publisher's own address
https://github.com/GabrielBBaldez/notify-hub
The address the publisher put in their registry record, printed as they wrote it. Nobody here has opened it.