Skip to content
Gemini CLI

NotifyHub — Unified Notification MCP Server for Gemini CLI

io.github.gabrielbbaldez/notify-hub

Send notifications across 23 channels with 36 AI-ready tools. One API, zero boilerplate.

client:Gemini CLI transport:stdio runtime:oci

Install NotifyHub — Unified Notification MCP Server in Gemini CLI

~/.gemini/settings.json · windows: %USERPROFILE%\.gemini\settings.json

Held in this page only — never stored, logged, or sent anywhere but back to your screen.

{
  "mcpServers": {
    "notify-hub": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/gabrielbbaldez/notify-hub:1.1.0"
      ],
      "env": {
        "NOTIFY_CHANNELS_EMAIL_HOST": "<NOTIFY_CHANNELS_EMAIL_HOST>",
        "NOTIFY_CHANNELS_EMAIL_PORT": "<NOTIFY_CHANNELS_EMAIL_PORT>",
        "NOTIFY_CHANNELS_EMAIL_USERNAME": "<NOTIFY_CHANNELS_EMAIL_USERNAME>",
        "NOTIFY_CHANNELS_EMAIL_PASSWORD": "<NOTIFY_CHANNELS_EMAIL_PASSWORD>",
        "NOTIFY_CHANNELS_EMAIL_FROM": "<NOTIFY_CHANNELS_EMAIL_FROM>",
        "NOTIFY_CHANNELS_SMS_ACCOUNTSID": "<NOTIFY_CHANNELS_SMS_ACCOUNTSID>",
        "NOTIFY_CHANNELS_SMS_AUTHTOKEN": "<NOTIFY_CHANNELS_SMS_AUTHTOKEN>",
        "NOTIFY_CHANNELS_SMS_FROMNUMBER": "<NOTIFY_CHANNELS_SMS_FROMNUMBER>",
        "NOTIFY_CHANNELS_SLACK_WEBHOOKURL": "<NOTIFY_CHANNELS_SLACK_WEBHOOKURL>",
        "NOTIFY_CHANNELS_TELEGRAM_BOTTOKEN": "<NOTIFY_CHANNELS_TELEGRAM_BOTTOKEN>",
        "NOTIFY_CHANNELS_TELEGRAM_CHATID": "<NOTIFY_CHANNELS_TELEGRAM_CHATID>",
        "NOTIFY_CHANNELS_DISCORD_WEBHOOKURL": "<NOTIFY_CHANNELS_DISCORD_WEBHOOKURL>",
        "NOTIFY_CHANNELS_TEAMS_WEBHOOKURL": "<NOTIFY_CHANNELS_TEAMS_WEBHOOKURL>",
        "NOTIFY_CHANNELS_GOOGLECHAT_WEBHOOKURL": "<NOTIFY_CHANNELS_GOOGLECHAT_WEBHOOKURL>",
        "NOTIFY_CHANNELS_TWITTER_APIKEY": "<NOTIFY_CHANNELS_TWITTER_APIKEY>",
        "NOTIFY_CHANNELS_TWITTER_APISECRET": "<NOTIFY_CHANNELS_TWITTER_APISECRET>",
        "NOTIFY_CHANNELS_TWITTER_ACCESSTOKEN": "<NOTIFY_CHANNELS_TWITTER_ACCESSTOKEN>",
        "NOTIFY_CHANNELS_TWITTER_ACCESSTOKENSECRET": "<NOTIFY_CHANNELS_TWITTER_ACCESSTOKENSECRET>",
        "NOTIFY_CHANNELS_LINKEDIN_ACCESSTOKEN": "<NOTIFY_CHANNELS_LINKEDIN_ACCESSTOKEN>",
        "NOTIFY_CHANNELS_LINKEDIN_ORGANIZATIONID": "<NOTIFY_CHANNELS_LINKEDIN_ORGANIZATIONID>",
        "NOTIFY_CHANNELS_WHATSAPP_ACCOUNTSID": "<NOTIFY_CHANNELS_WHATSAPP_ACCOUNTSID>",
        "NOTIFY_CHANNELS_WHATSAPP_AUTHTOKEN": "<NOTIFY_CHANNELS_WHATSAPP_AUTHTOKEN>",
        "NOTIFY_CHANNELS_WHATSAPP_FROMNUMBER": "<NOTIFY_CHANNELS_WHATSAPP_FROMNUMBER>",
        "NOTIFY_CHANNELS_PUSH_FIREBASECREDENTIALS": "<NOTIFY_CHANNELS_PUSH_FIREBASECREDENTIALS>",
        "NOTIFY_CHANNELS_NOTION_APIKEY": "<NOTIFY_CHANNELS_NOTION_APIKEY>",
        "NOTIFY_CHANNELS_NOTION_DATABASEID": "<NOTIFY_CHANNELS_NOTION_DATABASEID>",
        "NOTIFY_CHANNELS_TWITCH_CLIENTID": "<NOTIFY_CHANNELS_TWITCH_CLIENTID>",
        "NOTIFY_CHANNELS_TWITCH_CLIENTSECRET": "<NOTIFY_CHANNELS_TWITCH_CLIENTSECRET>",
        "NOTIFY_CHANNELS_TWITCH_BROADCASTERID": "<NOTIFY_CHANNELS_TWITCH_BROADCASTERID>",
        "NOTIFY_CHANNELS_YOUTUBE_CLIENTID": "<NOTIFY_CHANNELS_YOUTUBE_CLIENTID>",
        "NOTIFY_CHANNELS_YOUTUBE_CLIENTSECRET": "<NOTIFY_CHANNELS_YOUTUBE_CLIENTSECRET>",
        "NOTIFY_CHANNELS_YOUTUBE_REFRESHTOKEN": "<NOTIFY_CHANNELS_YOUTUBE_REFRESHTOKEN>",
        "NOTIFY_CHANNELS_YOUTUBE_LIVECHATID": "<NOTIFY_CHANNELS_YOUTUBE_LIVECHATID>",
        "NOTIFY_CHANNELS_INSTAGRAM_ACCESSTOKEN": "<NOTIFY_CHANNELS_INSTAGRAM_ACCESSTOKEN>",
        "NOTIFY_CHANNELS_INSTAGRAM_USERID": "<NOTIFY_CHANNELS_INSTAGRAM_USERID>",
        "NOTIFY_CHANNELS_SENDGRID_APIKEY": "<NOTIFY_CHANNELS_SENDGRID_APIKEY>",
        "NOTIFY_CHANNELS_SENDGRID_FROMEMAIL": "<NOTIFY_CHANNELS_SENDGRID_FROMEMAIL>",
        "NOTIFY_CHANNELS_TIKTOKSHOP_APPKEY": "<NOTIFY_CHANNELS_TIKTOKSHOP_APPKEY>",
        "NOTIFY_CHANNELS_TIKTOKSHOP_APPSECRET": "<NOTIFY_CHANNELS_TIKTOKSHOP_APPSECRET>",
        "NOTIFY_CHANNELS_TIKTOKSHOP_ACCESSTOKEN": "<NOTIFY_CHANNELS_TIKTOKSHOP_ACCESSTOKEN>",
        "NOTIFY_CHANNELS_TIKTOKSHOP_SHOPID": "<NOTIFY_CHANNELS_TIKTOKSHOP_SHOPID>",
        "NOTIFY_CHANNELS_FACEBOOK_PAGEACCESSTOKEN": "<NOTIFY_CHANNELS_FACEBOOK_PAGEACCESSTOKEN>",
        "NOTIFY_CHANNELS_FACEBOOK_PAGEID": "<NOTIFY_CHANNELS_FACEBOOK_PAGEID>",
        "NOTIFY_CHANNELS_AWSSNS_ACCESSKEYID": "<NOTIFY_CHANNELS_AWSSNS_ACCESSKEYID>",
        "NOTIFY_CHANNELS_AWSSNS_SECRETACCESSKEY": "<NOTIFY_CHANNELS_AWSSNS_SECRETACCESSKEY>",
        "NOTIFY_CHANNELS_AWSSNS_REGION": "<NOTIFY_CHANNELS_AWSSNS_REGION>",
        "NOTIFY_CHANNELS_MAILGUN_APIKEY": "<NOTIFY_CHANNELS_MAILGUN_APIKEY>",
        "NOTIFY_CHANNELS_MAILGUN_DOMAIN": "<NOTIFY_CHANNELS_MAILGUN_DOMAIN>",
        "NOTIFY_CHANNELS_MAILGUN_FROMEMAIL": "<NOTIFY_CHANNELS_MAILGUN_FROMEMAIL>",
        "NOTIFY_CHANNELS_PAGERDUTY_APIKEY": "<NOTIFY_CHANNELS_PAGERDUTY_APIKEY>"
      }
    }
  }
}

Gemini expands $VAR and ${VAR} inside env values, so a secret can live in your shell rather than this file. Gemini CLI docs

NotifyHub — Unified Notification MCP Server in other clients