mcp-ding logo

mcp-ding

zhuqingyv/mcp-notify
0 starsUpdated 2026-04-07Community

Is this your server?

Add your score badge to your README and get your server in front of 45k+ builders a month.

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

MCP server for macOS native notifications with 67 AI brand icons and system sound support, enabling AI agents to send desktop notifications via one-line tool calls.

README.md

mcp-ding

MCP server for macOS native notifications with AI brand icons.

Send desktop notifications from any MCP-compatible AI agent with one-line tool calls — complete with 67 AI/Agent brand icons and system sound support.

---

Quick Start

npx -y mcp-ding

Or just tell your AI agent:

Install mcp-ding from https://github.com/zhuqingyv/mcp-notify and set it up as an MCP server.

The agent will clone the repo, install dependencies, register the MCP server, and configure permissions automatically.

---

Features

  • send_notification — Send macOS native notifications via terminal-notifier, with title, subtitle, sound, and icon
  • list_icons — List all 67 available AI brand icons
  • list_sounds — List all macOS system sounds
  • 67 AI brand icons — Covers major providers (Anthropic, OpenAI, Google, DeepSeek, Kimi, and more)
  • Cross-Mac compatible — Dynamic terminal-notifier path detection for both Apple Silicon and Intel Macs

---

Screenshots / Preview

_Coming soon_

---

Prerequisites

  • Node.js 18+
  • terminal-notifier
brew install terminal-notifier

---

Installation

Via npx (recommended)

npx -y mcp-ding

Manual

git clone https://github.com/zhuqingyv/mcp-notify.git
cd mcp-notify
npm install

---

Setup

Universal MCP config (Cursor, Windsurf, Cline, and others)

Add to your MCP client's config file:

{
  "mcpServers": {
    "mcp-ding": {
      "command": "npx",
      "args": ["-y", "mcp-ding"]
    }
  }
}

Claude Code

claude mcp add mcp-ding -s user -- npx -y mcp-ding

Pre-authorize tools (Claude Code only — skip confirmation prompts)

Add to ~/.claude/settings.json under permissions.allow:

"mcp__mcp-ding__send_notification",
"mcp__mcp-ding__list_sounds",
"mcp__mcp-ding__list_icons"

Other MCP clients manage tool permissions through their own UI or config — this step is Claude Code-specific.

---

Usage

Send a notification

Send a notification: task complete

Send a notification with an icon

Send a notification with the openai icon: code review done

Equivalent tool call:

{
  "tool": "send_notification",
  "arguments": {
    "title": "Claude Code",
    "message": "Code review done",
    "icon": "openai",
    "sound": "Hero"
  }
}

List available icons

List all available notification icons

Calls list_icons — returns all icon names (without .png extension).

List available sounds

What notification sounds are available?

Calls list_sounds — returns system sound names usable in the sound parameter.

---

Available Icons

67 icons total. All are 128×128 PNG with brand color background and white label.

International Providers (37)

| Icon name | Provider | Product | |---|---|---| | claude | Anthropic | Claude | | openai | OpenAI | ChatGPT / GPT | | gemini | Google | Gemini | | google-ai-studio | Google | Google AI Studio | | meta-ai | Meta | LLaMA / Meta AI | | copilot | Microsoft | Copilot | | azure-openai | Microsoft | Azure OpenAI | | grok | xAI | Grok | | mistral | Mistral AI | Mistral | | cohere | Cohere | Command / Coral | | perplexity | Perplexity AI | Perplexity | | stability-ai | Stability AI | Stable Diffusion | | midjourney | Midjourney | Midjourney | | cursor | Cursor | Cursor | | replit | Replit | Replit | | github-copilot | GitHub | GitHub Copilot | | amazon-bedrock | Amazon | Bedrock | | amazon-q | Amazon | Amazon Q | | apple-intelligence | Apple | Apple Intelligence | | hugging-face | Hugging Face | Hugging Face | | runway | Runway | Runway ML | | elevenlabs | ElevenLabs | ElevenLabs | | suno | Suno | Suno | | pi-ai | Inflection AI | Pi | | character-ai | Character.AI | Character.AI | | pika | Pika Labs | Pika | | kling | Kling AI | Kling | | groq | Groq | Groq | | together-ai | Together AI | Together AI | | replicate | Replicate | Replicate | | ai21 | AI21 Labs | Jamba / Jurassic | | aleph-alpha | Aleph Alpha | Luminous | | nvidia | Nvidia | Nvidia AI / NIM | | luma-ai | Luma AI | Dream Machine | | adobe-firefly | Adobe | Adobe Firefly | | notion-ai | Notion | Notion AI | | grammarly | Grammarly | Grammarly AI |

Chinese Providers (25)

| Icon name | Provider | Product | |---|---|---| | ernie-bot | 百度 | 文心一言 / ERNIE Bot | | qwen | 阿里巴巴 | 通义千问 / Qwen | | doubao | 字节跳动 | 豆包 / Doubao | | coze | 字节跳动 | Coze (扣子) | | zhipu | 智谱AI | GLM / ChatGLM | | kimi | Moonshot AI | Kimi | | deepseek | DeepSeek | DeepSeek | | yi-ai | 01.AI | Yi 系列 | | minimax | MiniMax | 海螺AI | | baichuan | 百川智能 | Baichuan | | tiangong | 昆仑万维 | 天工AI | | sensenova | 商汤科技 | 日日新 / SenseNova | | xunfei-spark | 科大讯飞 | 星火 / Spark | | hunyuan | 腾讯 | 混元 / Hunyuan | | step-ai | 阶跃星辰 | Step | | tencent-yuanbao | 腾讯 | 元宝 | | youdao-ai | 网易有道 | 有道AI | | 360-ai | 360 | 智脑 / 360AI | | pangu | 华为 | 盘古大模型 | | xiaomi-ai | 小米 | 小爱同学 / MiAI | | sogou-ai | 搜狗/腾讯 | 搜狗AI | | zidong-taichi | 中科院 | 紫东太初 | | mobvoi | 出门问问 | 序列猴子 | | characterglm | 聆心智能 | CharacterGLM | | xverse | 光年之外 | 元象 XVERSE |

AI Dev Tools & Platforms (5)

| Icon name | Provider | Product | |---|---|---| | langchain | LangChain | LangChain | | llamaindex | LlamaIndex | LlamaIndex | | wandb | Weights & Biases | W&B / Wandb | | vercel-ai | Vercel | Vercel AI SDK | | supabase-ai | Supabase | Supabase AI |

---

Adding Custom Icons

Place any 128×128 PNG in the icons/ directory. The filename (without .png) becomes the icon name usable in the icon parameter.

cp my-icon.png /path/to/mcp-notify/icons/my-icon.png
# then use: "icon": "my-icon"

To regenerate all built-in icons from scratch:

python3 gen_icons.py

---

Notification Hook Integration

Auto-notify when Claude finishes a task. Add to ~/.claude/settings.json:

{
  "hooks": {
    "Notification": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "bash -c 'MSG=$(cat); TITLE=$(echo \"$MSG\" | python3 -c \"import sys,json; d=json.load(sys.stdin); print(d.get(\\\"title\\\",\\\"Claude Code\\\"))\" 2>/dev/null || echo \"Claude Code\"); BODY=$(echo \"$MSG\" | python3 -c \"import sys,json; d=json.load(sys.stdin); print(d.get(\\\"message\\\",\\\"Done\\\"))\" 2>/dev/null || echo \"Done\"); terminal-notifier -title \"$TITLE\" -message \"$BODY\" -sound Hero -group claude-notify'"
      }]
    }]
  }
}

---

License

MIT

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use AI & ML servers.