Skip to main content
Glama
README.md
<div align="center">
  <h1>πŸ’¬ Message MCP</h1>
  <p>
    🌐 Available in:
    <a href="README.zh.md">δΈ­ζ–‡</a> |
    <a href="README.ko.md">ν•œκ΅­μ–΄</a> |
    <a href="README.ja.md">ζ—₯本θͺž</a>
  </p>
  <h3>Desktop notifications, custom sounds, ntfy mobile notifications, email notifications, and API pushes reduce anxiety while waiting for AI tasks, allowing you to comfortably enjoy a cup of coffee.</h3>
  <a href="https://modelcontextprotocol.io">
    <img src="https://img.shields.io/badge/MCP-Server-gold?labelColor=wheat&color=limegreen" title="MCP Server"/>
  </a>
  <a href="https://deepwiki.com/gimjin/message-mcp">
    <img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki">
  </a>
  <a href="https://dash.cloudflare.com">
    <img src="https://message-mcp-werker.kimseongrim.workers.dev/visit-count.svg?v=5" title="Visit Count"/>
  </a>
  <a href="https://github.com/gimjin/message-mcp/blob/main/.github/workflows/ci.yml">
    <img src="https://img.shields.io/github/actions/workflow/status/gimjin/message-mcp/ci.yml" alt="MIT License">
  </a>
  <a href="https://www.npmjs.com/package/message-mcp">
    <img src="https://img.shields.io/npm/v/message-mcp" alt="NPM Version">
  </a>
  <a href="https://github.com/gimjin/message-mcp/blob/main/LICENSE">
    <img src="https://img.shields.io/github/license/gimjin/message-mcp" alt="MIT License">
  </a>
  <img src="https://s2.loli.net/2025/08/01/29msh4TAULFgGkn.webp" alt="Messsage MCP Exsample">
</div>

## πŸš€ Boost AI efficiency and free up more time

When waiting for AI to complete tasks, do you wish you could handle other work simultaneously? Now you can confidently take care of other matters while AI executes long-running tasks.

**Message MCP makes your AI collaboration more efficient!**

```text
πŸ§‘: Make a Tetris web game, notify when completed.
πŸ€–: I'll start making the Tetris game
   ...
πŸ’¬: Message MCP executed, message sent.
```

> [!TIP]
>
> - **Allow MCP auto-execution** in client settings.
> - Add "notify when completed" prompts in **user rules** or **rule files** to avoid repetitive manual prompts.

### ⚑️ Quick Installation

[![Click_Install-Cursor](https://img.shields.io/badge/Click_Install-Cursor-171717)](https://cursor.com/install-mcp?name=message-mcp&config=eyJjb21tYW5kIjogIm5weCIsImFyZ3MiOiBbIm1lc3NhZ2UtbWNwQGxhdGVzdCJdfQ==) [![Click_Install-VS_Code](https://img.shields.io/badge/Click_Install-VS_Code-0098FF)](https://insiders.vscode.dev/redirect?url=vscode:mcp/install?{%22name%22:%22message-mcp%22,%22command%22:%22npx%22,%22args%22:[%22message-mcp@latest%22]}) [![Click_Install-VS_Code_Insiders](https://img.shields.io/badge/Click_Install-VS_Code_Insiders-24bfa5)](https://insiders.vscode.dev/redirect?url=vscode-insiders:mcp/install?{%22name%22:%22message-mcp%22,%22command%22:%22npx%22,%22args%22:[%22message-mcp@latest%22]}) [![smithery.ai](https://smithery.ai/badge/@gimjin/message-mcp)](https://smithery.ai/server/@gimjin/message-mcp)

> Supports cloud installation via smithery.ai (e.g., SaaS services like Dify) and offers one-click local deployment. Since the Message MCP actually runs on smithery.ai’s cloud, desktop notifications are not yet supported. End-to-end encryption is applied throughout to ensure data security. [Learn more](https://smithery.ai/docs/getting_started/quickstart_connect#one-click-connect-to-smithery-servers)

### βš™οΈ Standard Installation

#### MacOS, Linux, WSL2

```json
{
  "mcpServers": {
    "message-mcp": {
      "command": "npx",
      "args": ["-y", "message-mcp@latest"]
    }
  }
}
```

#### Windows

```json
{
  "mcpServers": {
    "message-mcp": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "message-mcp@latest"]
    }
  }
}
```

### πŸŽ›οΈ Optional Configuration

#### Modify Desktop Notifications

```json
{
  "mcpServers": {
    "message-mcp": {
      "command": "npx",
      "args": ["-y", "message-mcp@latest"],
      "env": {
        "DISABLE_DESKTOP": "true",
        "SOUND_PATH": "/path/to/your/sound.mp3"
      }
    }
  }
}
```

> - Desktop notifications are enabled by default
> - Default sound provided by zapsplat. If you don't like the default sound, you can download and configure from [zapsplat.com](https://zapsplat.com/).

#### ntfy Mobile Notifications

Install App: [App Store](https://apps.apple.com/us/app/ntfy/id1625396347), [Google Play](https://play.google.com/store/apps/details?id=io.heckel.ntfy), [F-Droid](https://f-droid.org/en/packages/io.heckel.ntfy/)

```json
{
  "mcpServers": {
    "message-mcp": {
      "command": "npx",
      "args": ["-y", "message-mcp@latest"],
      "env": {
        "NTFY_TOPIC": "your-unique-topic"
      }
    }
  }
}
```

#### Email Notifications

```json
{
  "mcpServers": {
    "message-mcp": {
      "command": "npx",
      "args": ["-y", "message-mcp@latest"],
      "env": {
        "SMTP_HOST": "smtp.gmail.com",
        "SMTP_PORT": "587",
        "SMTP_SECURE": "false",
        "SMTP_USER": "user@gmail.com",
        "SMTP_PASS": "your_password"
      }
    }
  }
}
```

#### API Notifications

```json
{
  "mcpServers": {
    "message-mcp": {
      "command": "npx",
      "args": ["-y", "message-mcp@latest"],
      "env": {
        "API_URL": "https://httpbin.org/post",
        "API_METHOD": "POST", // POST, PUT, PATCH
        "API_HEADERS": "{\"Authorization\": \"Bearer token\"}"
      }
    }
  }
}
```

```javascript
fetch(API_URL, {
  method: API_METHOD,
  headers: {
    'Content-Type': 'application/json'
    ...JSON.parse(API_HEADERS)
  },
  body: JSON.stringify({
    title: notifyTitle,
    message: notifyMessage,
  }),
})
```

## πŸ“Œ System Requirements

- Node.js: 18 or higher
- macOS: Native notifications require >= 10.8
- Linux: notify-osd or libnotify-bin installed (Ubuntu includes by default)
- Windows: >= 8, or taskbar balloon notifications for Windows < 8

## ❗️ Troubleshooting

#### Windows System Notifications Not Enabled

Settings > Notifications & actions > Get notifications from apps and other senders β†’ Enable

#### WSL2 (Ubuntu) has no notification sound

```bash
sudo apt install -y pulseaudio mpg123
```

#### WSL2 Environment Missing OS Notifications

```bash
sudo find / -type f -name "snoretoast-*.exe" 2>/dev/null
/path/to/.../node_modules/snoretoast-x64.exe
/path/to/.../node_modules/snoretoast-x86.exe

chmod +x /path/to/.../node_modules/snoretoast-*.exe
```

---

If this project is helpful to you, please give it a ⭐️ to support it and let more people see it!

TDQS

A3.6/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so no possibility of confusion or overlap.

Naming Consistency5/5

Single tool uses a clear, verb-based name 'notify' which is consistent with its purpose.

Tool Count2/5

One tool for a notification domain is too few; typically multiple operations (e.g., send, schedule, manage templates) are needed.

Completeness2/5

The tool sends notifications but lacks capabilities for managing channels, templates, logs, or preferences, leaving significant gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues