mcp-ding
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
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 iconlist_icons— List all 67 available AI brand iconslist_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 |
Gemini | |
google-ai-studio |
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.