notify-mcp
Sends plain-text email notifications through Gmail SMTP to the configured Gmail address.
Provides native, audible desktop notifications on Linux using the operating system notification infrastructure.
Provides native, audible desktop notifications on macOS using the operating system notification infrastructure.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
notify-mcp
Claude Code için masaüstü ve e-posta bildirimi sağlayan, yerel olarak çalışan bir Model Context Protocol (MCP) sunucusu.
notify-mcp, Claude Code uzun süren bir görevi tamamladığında kullanıcıyı bilgilendirmek için iki kanal sunar: işletim sisteminin yerel bildirim altyapısı ve Gmail SMTP üzerinden gönderilen e-posta. Bildirimler Claude tarafından MCP araçları aracılığıyla istenerek ya da isteğe bağlı bir Stop hook'u ile her yanıtın sonunda otomatik olarak gönderilebilir.
Özellikler
Masaüstü bildirimi: Windows, macOS ve Linux'ta yerel, sesli sistem bildirimi.
E-posta bildirimi: Yapılandırılan Gmail hesabından aynı adrese düz metin e-posta.
Otomatik tamamlanma bildirimi: Claude her yanıtını bitirdiğinde sesli uyarı ve son yanıtın özetini içeren e-posta gönderen
Stophook'u.Kullanıcı tercihlerine duyarlılık: Hook, kullanıcının mesajlarını analiz eder. Bir kanalın istenmediği belirtilirse (ör. "e-posta gönderme") o kanalı tek tur ya da sohbet boyunca atlar.
Tekrarlanan bildirimlerin önlenmesi: Claude aynı turda bildirimi MCP aracıyla zaten gönderdiyse hook ikinci kez göndermez.
Related MCP server: Email MCP Server
İçindekiler
Mimari
flowchart LR
CC["Claude Code"] -- "stdio (JSON-RPC)" --> SRV["MCP sunucusu<br/>index.js"]
SRV --> DESK["Masaüstü bildirimi<br/>node-notifier"]
SRV --> MAIL["mailer.js"]
CC -- "Stop hook" --> HOOK["stop-notify.js"]
HOOK --> INTENT["prompt-intent.js<br/>tercih analizi"]
HOOK --> BEEP["Sesli uyarı"]
HOOK --> MAIL
MAIL --> SMTP["Gmail SMTP<br/>port 465 / SSL"]Bileşen | Görev |
| MCP sunucusu. Claude Code ile stdio üzerinden iletişim kurar ve iki araç sunar. |
| Ortak e-posta modülü. |
| Claude Code |
| Kullanıcı mesajlarından bildirim tercihlerini çıkaran kural tabanlı ayrıştırıcı. |
Gereksinimler
Gereksinim | Açıklama |
Node.js 22.22+ veya 24.15+ |
|
MCP sunucusunu çalıştıran istemci. | |
Gmail hesabı ve uygulama şifresi | Yalnızca e-posta bildirimi için gereklidir. |
Kurulum
git clone https://github.com/Harley-Quinnz/notify-mcp.git
cd notify-mcp
npm installYapılandırma
E-posta bildirimi için şablon dosyayı kopyalayın ve kendi bilgilerinizle doldurun:
# macOS / Linux / Git Bash
cp .env.example .env
# Windows (CMD / PowerShell)
copy .env.example .envEMAIL_USER=ornek@gmail.com
EMAIL_PASS=xxxx xxxx xxxx xxxxDeğişken | Açıklama |
| Gmail adresi. E-postalar bu adresten aynı adrese gönderilir. |
| Gmail uygulama şifresi. Hesap şifresi kabul edilmez. Boşluklar otomatik olarak temizlenir. |
.env dosyası her gönderimde yeniden okunduğundan, değerler değiştirildiğinde sunucuyu yeniden başlatmak gerekmez.
Gmail uygulama şifresi oluşturma
Google hesabınızda 2 Adımlı Doğrulama'yı etkinleştirin.
https://myaccount.google.com/apppasswords adresine gidin.
Yeni bir uygulama şifresi oluşturun ve 16 karakterlik değeri
EMAIL_PASSolarak kaydedin.
Claude Code entegrasyonu
MCP sunucusu
Sunucuyu tüm projelerde kullanılabilir olacak şekilde (user scope) ekleyin. Dosya yolunu deponun bulunduğu konuma göre düzenleyin:
# Windows
claude mcp add --scope user notify -- node "C:\\Users\\<kullanici>\\notify-mcp\\index.js"
# macOS / Linux
claude mcp add --scope user notify -- node /home/<kullanici>/notify-mcp/index.jsAlternatif olarak yapılandırma dosyasına elle ekleyebilirsiniz:
{
"mcpServers": {
"notify": {
"type": "stdio",
"command": "node",
"args": ["C:\\Users\\<kullanici>\\notify-mcp\\index.js"]
}
}
}Kurulumu doğrulamak için Claude Code içinde /mcp komutunu çalıştırın. notify sunucusu connected durumunda görünmelidir. Ardından Claude'dan doğrudan bildirim isteyebilirsiniz:
Testleri çalıştır, tamamlandığında masaüstü bildirimi ve e-posta gönder.Stop hook (isteğe bağlı)
stop-notify.js, Claude her yanıtını tamamladığında çalışır:
Kısa bir sesli uyarı çalar (Windows:
[Console]::Beep, macOS:afplay).Proje klasörü, zaman, oturum kimliği ve son yanıtın özetini (en fazla 4000 karakter) içeren bir e-posta gönderir.
Hook'u etkinleştirmek için ~/.claude/settings.json dosyasına ekleyin:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "node",
"args": ["C:\\Users\\<kullanici>\\notify-mcp\\stop-notify.js"],
"async": true,
"timeout": 60
}
]
}
]
}
}async: true ayarı bildirimlerin Claude'u bekletmemesini sağlar. Hatalar ve atlanan bildirimler proje klasöründeki stop-notify.log dosyasına kaydedilir.
Bildirim tercihleri
Stop hook, sohbetteki kullanıcı mesajlarını analiz ederek her kanal için gönderim kararı verir. Tercihler iki kapsamda uygulanır.
Tek tur
Mesajda bir kanalın istenmediği ya da yalnızca birinin istendiği belirtilirse karar yalnızca o tur için geçerlidir. Sonraki mesajda varsayılan davranışa dönülür.
Örnek mesaj | Ses | E-posta |
"Testleri çalıştır" | Çalınır | Gönderilir |
"Ses ve e-posta gönderme", "Bildirim gönderme" | Çalınmaz | Gönderilmez |
"Ses çalma", "Sessiz çalış" | Çalınmaz | Gönderilir |
"E-posta gönderme", "Mail atma" | Çalınır | Gönderilmez |
"Sadece ses gönder" | Çalınır | Gönderilmez |
"Sadece e-posta gönder" | Çalınmaz | Gönderilir |
"Don't send an email" | Çalınır | Gönderilmez |
Sohbet boyunca
Mesajda "bu sohbet boyunca", "ben söyleyene kadar", "aksini söyleyene kadar", "bundan sonra" veya "artık" gibi bir ifade bulunursa ya da "kapat" / "aç" fiilleri kullanılırsa tercih, değiştirilene kadar sohbetin geri kalanında geçerli olur.
Örnek mesaj | Etki |
"Ben söyleyene kadar bildirim gönderme", "Bildirimleri kapat" | Ses ve e-posta kapatılır. |
"Bu sohbet boyunca sadece ses gönder" | Yalnızca ses çalınır. |
"Artık mail atma", "Sesi kapat" | Yalnızca ilgili kanal kapatılır. |
"Bildirimleri tekrar aç", "Sesi aç", "Artık mail atabilirsin" | Kapatılan kanal yeniden açılır. |
Davranış ayrıntıları
Sohbet kapsamındaki tercihler yalnızca ilgili sohbet için geçerlidir. Karar her seferinde sohbetin transcript'inden hesaplanır. Yeni bir sohbet ya da
/clearsonrası varsayılan davranış geçerlidir.Sohbet boyunca kapatılmış bir kanal, bir turda açıkça istenirse ("bitince mail at") o tur için gönderilir.
Aynı mesajda bir kanal hem istenip hem reddedilirse kanal kapalı kabul edilir.
Türkçe karakter kullanımı ("gonderme", "eposta") ve büyük/küçük harf farkı sonucu etkilemez. İngilizce ifadeler de desteklenir.
İsim olarak kullanılan ifadeler ("e-posta gönderme özelliğini düzelt") ve kod blokları içindeki metinler komut olarak değerlendirilmez.
Ayrıştırıcı kural tabanlıdır. Desteklenmeyen bir ifade fark edilmezse varsayılan davranış (gönderim) uygulanır.
MCP araç referansı
send_desktop_notification
Yerel, sesli bir masaüstü bildirimi gösterir.
Parametre | Tip | Açıklama |
|
| Bildirim başlığı |
|
| Bildirim metni |
send_email_notification
EMAIL_USER adresine, aynı adresten düz metin e-posta gönderir (Gmail SMTP, port 465, SSL).
Parametre | Tip | Açıklama |
|
| E-posta konusu |
|
| E-posta gövdesi (düz metin) |
Proje yapısı
notify-mcp/
├── index.js MCP sunucusu ve araç tanımları
├── mailer.js Gmail SMTP üzerinden e-posta gönderimi
├── stop-notify.js Claude Code Stop hook'u
├── prompt-intent.js Bildirim tercihlerinin ayrıştırılması
├── .env.example Ortam değişkenleri şablonu
├── package.json
├── LICENSE
└── README.mdGeliştirme
Hook kararlarını test etme
NOTIFY_DRY_RUN=1 ortam değişkeni ile hook hiçbir bildirim göndermeden verdiği kararı JSON olarak yazdırır:
echo '{"transcript_path":"<transcript.jsonl>"}' | NOTIFY_DRY_RUN=1 node stop-notify.jsstdout kullanımı
stdio transport, stdout akışını JSON-RPC iletişimi için kullanır. Sunucu kodunda console.log kullanılmamalı, tüm loglar console.error (stderr) ile yazılmalıdır.
Güvenlik
.envdosyası.gitignoreile depo dışında tutulur. Depoda yalnızca değer içermeyen.env.examplebulunur.Gmail hesap şifresi yerine her zaman uygulama şifresi kullanın. Uygulama şifreleri hesap şifresini değiştirmeden tek tek iptal edilebilir.
Uygulama şifresinin sızdığından şüpheleniyorsanız https://myaccount.google.com/apppasswords üzerinden iptal edip yenisini oluşturun.
Sunucu yerel olarak çalışır ve Gmail SMTP dışında herhangi bir dış servise veri göndermez.
Sorun giderme
Belirti | Çözüm |
|
|
| Hesap şifresi yerine uygulama şifresi kullanın ve 2 Adımlı Doğrulama'nın etkin olduğunu kontrol edin. |
Masaüstü bildirimi görünmüyor | Windows'ta Ayarlar > Sistem > Bildirimler altında bildirim izinlerini ve "Rahatsız Etme" modunu kontrol edin. |
Sunucu |
|
Hook bildirimi gelmiyor |
|
İstenmediği belirtildiği halde bildirim gönderiliyor |
|
Lisans
Bu proje MIT lisansı ile lisanslanmıştır. Ayrıntılar için LICENSE dosyasına bakın.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect any IMAP/SMTP mailbox to Claude & ChatGPT: search, read, sort, draft. Sends only with OK.
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Give Claude, Cursor or any agent its own email address: send, read and reply in threads.
Mac & Windows: let ChatGPT, Claude & Cursor use your email, calendar, iMessage, Teams, files.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables Claude AI to directly interact with Gmail through natural language for comprehensive email management including sending, reading, searching, organizing, and managing drafts and labels. Uses secure OAuth authentication and runs locally without third-party servers.MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates Gmail with Claude Desktop to fetch unread emails, generate AI-powered draft replies with customizable tone and style guides, and manage your inbox through natural language commands.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered inbox management with natural language commands through Claude Desktop. Supports sending, reading, searching, organizing emails, and managing labels using Gmail API with automatic authentication.8MIT
- FlicenseNot gradedqualityDmaintenanceEnables reading unread emails and creating draft replies in Gmail via Claude Desktop.-