Gmail MCP Summarizer
by hasanoz07
README.md
# 📧 Gmail MCP Summarizer
Model Context Protocol (MCP) kullanarak Gmail ile etkileşime geçen akıllı mail asistanı.
## 🌟 Özellikler
- ✅ **Mail Okuma**: Belirli gönderenden gelen mailleri otomatik çekme
- ✅ **Mail Gönderme**: Ek dosyalı mail gönderme
- ✅ **PDF Oluşturma**: Metin içeriğini PDF'e dönüştürme (Türkçe karakter desteği)
- ✅ **Akıllı Özet**: Claude AI ile mail özetleme
- ✅ **Otomatik Yanıt**: PDF ile otomatik ödev/rapor gönderme
## 🎯 Kullanım Senaryosu
1. Hocadan gelen ödev maillerini otomatik oku
2. Claude ile ödev gereksinimlerini özetle
3. Ödev hazırlandıktan sonra PDF'e çevir
4. Otomatik olarak hocaya geri gönder
## 🛠️ Kurulum
### Gereksinimler
- Python 3.8+
- Gmail hesabı
- Claude Desktop uygulaması
- Google Cloud Console erişimi
### 1. Repoyu Klonla
```bash
git clone https://github.com/hasanoz07/mcp-gmail-summarizer.git
cd mcp-gmail-summarizer
```
### 2. Virtual Environment Oluştur
```bash
python3 -m venv venv
source venv/bin/activate # Mac/Linux
# veya
venv\Scripts\activate # Windows
```
### 3. Paketleri Yükle
```bash
pip install -r requirements.txt
```
### 4. Google Cloud Console Ayarları
1. [Google Cloud Console](https://console.cloud.google.com/) git
2. Yeni proje oluştur
3. Gmail API'yi etkinleştir
4. OAuth 2.0 Credentials oluştur (Desktop App)
5. `credentials.json` dosyasını indir ve proje klasörüne koy
### 5. İlk Kimlik Doğrulama
```bash
python test_gmail.py
```
Tarayıcı açılacak, Gmail hesabına izin ver.
### 6. Claude Desktop Konfigürasyonu
**Mac:**
```bash
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
```
**Windows:**
```
%APPDATA%\Claude\claude_desktop_config.json
```
Şunu ekle (yolları kendinize göre düzenleyin):
```json
{
"mcpServers": {
"gmail-summarizer": {
"command": "/PATH/mcp-gmail-summarizer/venv/bin/python3",
"args": [
"/PATH/mcp-gmail-summarizer/gmail_mcp_server.py"
]
}
}
}
```
### 7. Claude Desktop'ı Başlat
1. Claude Desktop'ı aç
2. Sol altta 🔨 simgesine tıkla
3. `gmail-summarizer` aktif olmalı
## 📖 Kullanım
### Mail Okuma
```
makale@example.com adresinden son 5 maili getir ve özetle
```
### PDF Oluştur ve Gönder
```
Şu metni PDF'e çevir ve hoca@example.com adresine gönder:
Ödev 1 - Python Temelleri
Bu ödevde Python'un temel konuları işlenmiştir.
Email konusu: "Ödev 1 Tamamlandı"
```
### Ek Dosyalı Mail Gönder
```
hoca@example.com adresine /path/to/file.pdf dosyasını gönder
Konu: "Proje Raporu"
İçerik: "Raporumu ekte bulabilirsiniz."
```
## 🏗️ Proje Yapısı
```
mcp-gmail-summarizer/
├── gmail_mcp_server.py # MCP sunucu
├── gmail_fetcher.py # Gmail API işlemleri
├── pdf_generator.py # PDF oluşturucu
├── test_gmail.py # Gmail bağlantı testi
├── requirements.txt # Python bağımlılıkları
├── credentials.json # Google OAuth (gitignore'da)
├── token.pickle # Kimlik token (gitignore'da)
├── generated_pdfs/ # Oluşturulan PDF'ler
└── README.md # Bu dosya
```
## 🔧 MCP Araçları
### 1. `get_emails_from_sender`
Belirli bir gönderenden mailleri çeker.
**Parametreler:**
- `sender_email`: Gönderen mail adresi
- `max_results`: Maksimum mail sayısı (varsayılan: 10)
### 2. `send_email_with_attachment`
Mail gönderir (opsiyonel ek ile).
**Parametreler:**
- `to_email`: Alıcı adresi
- `subject`: Mail konusu
- `body`: Mail içeriği
- `attachment_path`: Ek dosya yolu (opsiyonel)
### 3. `create_and_send_pdf`
Metin → PDF → Mail gönder.
**Parametreler:**
- `content`: PDF içeriği
- `to_email`: Alıcı adresi
- `subject`: Mail konusu
- `pdf_title`: PDF başlığı
- `email_body`: Mail içeriği
## 🔐 Güvenlik
- `credentials.json` ve `token.pickle` dosyaları **asla** Git'e eklenmez
- OAuth2 kullanarak güvenli kimlik doğrulama
- Sadece gerekli izinler istenir (gmail.readonly + gmail.send)
## 🐛 Sorun Giderme
### "No module named 'reportlab'" hatası
```bash
pip install reportlab markdown2 Pillow
```
### "Server disconnected" hatası
1. Claude Desktop loglarını kontrol et:
```bash
tail -f ~/Library/Logs/Claude/mcp-server-gmail-summarizer.log
```
2. MCP sunucusunu manuel test et:
```bash
python3 gmail_mcp_server.py
```
### Türkçe karakterler görünmüyor
`pdf_generator.py` doğru font kullanıyor mu kontrol et.
## 📝 Lisans
MIT License
## 👤 Yazar
**Hasan Öz**
- GitHub: [@hasanoz07]
- Email: hasanoz2002@gmail.com
## 🙏 Katkıda Bulunma
Pull request'ler memnuniyetle karşılanır!
1. Fork'la
2. Feature branch oluştur (`git checkout -b feature/amazing-feature`)
3. Commit'le (`git commit -m 'Add amazing feature'`)
4. Push'la (`git push origin feature/amazing-feature`)
5. Pull Request aç
## 📚 Referanslar
- [Model Context Protocol (MCP)](https://modelcontextprotocol.io/)
- [Gmail API](https://developers.google.com/gmail/api)
- [Claude AI](https://www.anthropic.com/claude)
- [ReportLab](https://www.reportlab.com/)
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues