<div align="center">
<h1>๐ฌ Message MCP</h1>
<p>
๐ ๋ค๋ฅธ ์ธ์ด:
<a href="README.md">English</a> |
<a href="README.zh.md">ไธญๆ</a> |
<a href="README.ja.md">ๆฅๆฌ่ช</a>
</p>
<h3>๋ฐ์คํฌํฑ ์๋ฆผ, ๊ฐ์ธ ๋ง์ถค ์ฌ์ด๋, ntfy ๋ชจ๋ฐ์ผ ์๋ฆผ, ์ด๋ฉ์ผ ์๋ฆผ ๋ฐ API ํธ์๋ก AI ์์
๋๊ธฐ ๋ถ์์ ์ค์ด๊ณ ํธ์ํ๊ฒ ์ปคํผ ํ์์ ์ฆ๊ธฐ์ธ์.</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>
## ๐ AI ์ฌ์ฉ ํจ์จ์ฑ์ ๋์ด๊ณ ๋ ๋ง์ ์๊ฐ์ ํ๋ณดํ์ธ์
AI๊ฐ ์์
์ ์๋ฃํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ๋ค๋ฅธ ์
๋ฌด๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋ผ์๋์? ์ด์ AI๊ฐ ์ฅ์๊ฐ ์์
์ ์คํํ๋ ๋์ ์์ฌํ๊ณ ๋ค๋ฅธ ์ผ๋ค์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
**Message MCP๋ก AI ํ์
์ ๋์ฑ ํจ์จ์ ์ผ๋ก ๋ง๋ค์ด๋ณด์ธ์!**
```text
๐ง: ํ
ํธ๋ฆฌ์ค ์น ๊ฒ์์ ๋ง๋ค์ด ์ฃผ์ธ์, ์๋ฃ ์ ์๋ฆผ.
๐ค: ํ
ํธ๋ฆฌ์ค ๊ฒ์์ ๋ง๋ค๊ธฐ ์์ํ๊ฒ ์ต๋๋ค
...
๐ฌ: Message MCP ์คํ๋จ, ๋ฉ์์ง ์ ์ก ์๋ฃ.
```
> [!TIP]
>
> - ํด๋ผ์ด์ธํธ ์ค์ ์์ **MCP ์๋ ์คํ ํ์ฉ**์ ํ์ฑํํ์ธ์.
> - **์ฌ์ฉ์ ๊ท์น** ๋๋ **๊ท์น ํ์ผ**์ "์๋ฃ ์ ์๋ฆผ" ํ๋กฌํํธ๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฐ๋ณต์ ์ธ ์๋ ํ๋กฌํํธ๋ฅผ ํผํ ์ ์์ต๋๋ค.
### โก๏ธ ๋น ๋ฅธ ์ค์น
[](https://cursor.com/install-mcp?name=message-mcp&config=eyJjb21tYW5kIjogIm5weCIsImFyZ3MiOiBbIm1lc3NhZ2UtbWNwQGxhdGVzdCJdfQ==) [](https://insiders.vscode.dev/redirect?url=vscode:mcp/install?{%22name%22:%22message-mcp%22,%22command%22:%22npx%22,%22args%22:[%22message-mcp@latest%22]}) [](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]}) [](https://smithery.ai/server/@gimjin/message-mcp)
> smithery.ai๋ฅผ ํตํด ํด๋ผ์ฐ๋ ์ค์น๋ฅผ ์ง์ํ๋ฉฐ(์: Dify ๋ฑ SaaS ์๋น์ค), ๋ก์ปฌ์ ์ํด๋ฆญ ๋ฐฐํฌ๋ ๊ฐ๋ฅํฉ๋๋ค. Message MCP๋ ์ค์ ๋ก smithery.ai ํด๋ผ์ฐ๋์์ ์คํ๋๋ฏ๋ก ํ์ฌ ๋ฐ์คํฌํฑ ์๋ฆผ์ ์ง์๋์ง ์์ต๋๋ค. ์ ๊ณผ์ ์ ๊ฑธ์ณ ์ข
๋จ๊ฐ ์ํธํ๊ฐ ์ ์ฉ๋์ด ๋ฐ์ดํฐ ๋ณด์์ ๋ณด์ฅํฉ๋๋ค. [์์ธํ ์์๋ณด๊ธฐ](https://smithery.ai/docs/getting_started/quickstart_connect#one-click-connect-to-smithery-servers)
### โ๏ธ ํ์ค ์ค์น
#### 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"]
}
}
}
```
### ๐๏ธ ์ ํ์ ๊ตฌ์ฑ
#### ๋ฐ์คํฌํฑ ์๋ฆผ ์์
```json
{
"mcpServers": {
"message-mcp": {
"command": "npx",
"args": ["-y", "message-mcp@latest"],
"env": {
"DISABLE_DESKTOP": "true",
"SOUND_PATH": "/path/to/your/sound.mp3"
}
}
}
}
```
> - ๋ฐ์คํฌํฑ ์๋ฆผ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค
> - ๊ธฐ๋ณธ ์ฌ์ด๋๋ zapsplat์์ ์ ๊ณต๋ฉ๋๋ค. ๊ธฐ๋ณธ ์ฌ์ด๋๊ฐ ๋ง์์ ๋ค์ง ์์ผ๋ฉด [zapsplat.com](https://zapsplat.com/)์์ ๋ค์ด๋ก๋ํ์ฌ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
#### ntfy ๋ชจ๋ฐ์ผ ์๋ฆผ
์ฑ ์ค์น: [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"
}
}
}
}
```
#### ์ด๋ฉ์ผ ์๋ฆผ
```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 ์๋ฆผ
```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,
}),
})
```
## ๐ ์์คํ
์๊ตฌ์ฌํญ
- Node.js: 18 ์ด์
- macOS: ๋ค์ดํฐ๋ธ ์๋ฆผ์ 10.8 ์ด์ ํ์
- Linux: notify-osd ๋๋ libnotify-bin ์ค์น ํ์(Ubuntu๋ ๊ธฐ๋ณธ ํฌํจ)
- Windows: 8 ์ด์, ๋๋ 8 ๋ฏธ๋ง์ ์์
ํ์์ค ํ์ ์๋ฆผ
## โ๏ธ ๋ฌธ์ ํด๊ฒฐ
#### Windows ์์คํ
์๋ฆผ์ด ํ์ฑํ๋์ง ์์
์ค์ > ์๋ฆผ ๋ฐ ์์
> ์ฑ ๋ฐ ๊ธฐํ ๋ฐ์ ์๋ก๋ถํฐ ์๋ฆผ ๋ฐ๊ธฐ โ ํ์ฑํ
#### WSL2 (Ubuntu)์ ์๋ฆผ ์๋ฆฌ๊ฐ ์์ต๋๋ค
```bash
sudo apt install -y pulseaudio mpg123
```
#### WSL2 ํ๊ฒฝ์์ OS ์๋ฆผ ๋๋ฝ
```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
```
```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
```
---
์ด ํ๋ก์ ํธ๊ฐ ๋์์ด ๋์๋ค๋ฉด โญ๏ธ์ ๋๋ฌ ์ง์ํด ์ฃผ์๊ณ ๋ ๋ง์ ์ฌ๋๋ค์ด ๋ณผ ์ ์๋๋ก ํด์ฃผ์ธ์!