msteams-mcp
by anielyavuz
README.md
# msteams-mcp (Python)
AI asistanının (VS Code Copilot Chat, Claude vb.) **kendi Teams sohbetlerinizi okuyabilmesi** için
küçük, kendi bilgisayarınızda çalışan bir **MCP sunucusu**. En az yetkiyle ve sizin kendi Entra
uygulamanız üzerinden çalışır.
*A small, self-hosted, read-only MCP server for Microsoft Teams chats (delegated permissions, own Entra app, local HTTP or stdio).*
* **Yalnızca temsilci izin:** giriş yapan kişi adına çalışır, onun görebildiğinden fazlasını göremez (`/me/...`).
* **Salt okuma:** v0.1'de 4 okuma aracı var, Graph istemcisi yalnızca GET yapar.
* **Kendi uygulama kaydınız:** tek tenant, secret yok, uygulama izni yok, yalnızca atanmış kişiler.
* **Yerel:** `127.0.0.1` üzerinde token korumalı HTTP ya da stdio. Telemetri yok.
* **İzlenebilir:** her istek için bir log satırı (hesap, istemci, araç, sonuç), mesaj içeriği olmadan.
* **Genişletilebilir:** yeni Teams yetenekleri, izinlerini kendisi bildiren ayrı araçlar olarak eklenir ([yol haritası](docs/YOL-HARITASI.md)).
> ⚠️ **Veri, AI istemciniz üzerinden bilgisayarınızdan çıkar.** Araç sonuçları, Teams mesaj metinleri
> dahil, MCP istemcinizin kullandığı AI modeline (çoğunlukla bir bulut servisi) gönderilir. Kurum verisiyle
> kullanmadan önce **[docs/VERI-AKISI.md](docs/VERI-AKISI.md)** dosyasını inceleyin.
## Araçlar (v0.1)
| Araç | Ne döndürür | İzin |
|---|---|---|
| `auth_status` | Sunucunun hangi hesap adına çalıştığı, verilen izinler, token'ın bitiş zamanı | yok |
| `get_current_user` | Profiliniz | `User.Read` |
| `list_chats` | Sohbetleriniz (birebir, grup, toplantı), üyeler, son mesaj önizlemesi, tür ve metin filtresi | `Chat.Read` |
| `get_chat_messages` | Bir sohbetinizin mesajları düz metin olarak, adet, tarih aralığı, gönderen ve sıra seçenekleriyle | `Chat.Read` |
## Hızlı başlangıç
Gerekenler: Python 3.10+, bir Entra uygulama kaydı ([docs/ENTRA-KURULUMU.md](docs/ENTRA-KURULUMU.md)).
```bash
git clone <repo adresi> msteams-mcp && cd msteams-mcp
python3 -m venv .venv && source .venv/bin/activate # projeye özel sanal ortam
pip install -r requirements-dev.txt -c constraints.txt # sabit sürümlerle kurulum
python -m pytest # ağa çıkmayan birim testleri
cp .env.example .env && chmod 600 .env # TENANT_ID, CLIENT_ID, MCP_ACCESS_TOKEN doldurun
python -m msteams_mcp login # cihaz koduyla giriş
python -m msteams_mcp start # http://127.0.0.1:3978/mcp
python scripts/selftest.py --live # ikinci terminalde güvenlik ve canlı testler
```
Adım adım anlatım: [docs/KURULUM.md](docs/KURULUM.md). İstemciyi bağlamak: [docs/ISLETIM.md](docs/ISLETIM.md#istemci-bağlamak).
## Nasıl çalışır
```
AI istemcisi ──HTTP 127.0.0.1 + Bearer──▶ msteams-mcp ──HTTPS, temsilci token──▶ Microsoft Graph (/me/chats…)
│ │
└──▶ AI model sağlayıcısı (bulut) └── token dosyası 600, log (içeriksiz)
```
Ayrıntılar: [docs/MIMARI.md](docs/MIMARI.md) (dosyalar, fonksiyonlar, akışlar, yeni araç eklemek).
## Belgeler
| Belge | Ne için |
|---|---|
| [docs/KURULUM.md](docs/KURULUM.md) | Sıfırdan adım adım kurulum |
| [docs/VERI-AKISI.md](docs/VERI-AKISI.md) | Güvenlik ve gizlilik değerlendirmesi: hangi veri nereye gidiyor, AI sağlayıcısı dahil |
| [SECURITY.md](SECURITY.md) | Kontroller, sınırlar, açık bildirimi |
| [docs/ENTRA-KURULUMU.md](docs/ENTRA-KURULUMU.md) | Uygulama kaydı, izinler, kullanıcı kısıtlama |
| [docs/ISLETIM.md](docs/ISLETIM.md) | Komutlar, ayarlar, istemciler, loglar, sorun giderme |
| [docs/MIMARI.md](docs/MIMARI.md) | Bileşenler, fonksiyonlar, istek ve giriş akışları |
| [docs/YOL-HARITASI.md](docs/YOL-HARITASI.md) | Planlanan araçlar ve her biri için değerlendirme kuralı |
## Lisans
MIT © 2026 Anıl Yavuz. Bağımlılıklar: `mcp`, `msal` (MIT), `httpx`, `uvicorn`, `python-dotenv` (BSD).
Microsoft ile bağlantılı değildir ve Microsoft tarafından onaylanmamıştır. Microsoft, Microsoft Teams,
Microsoft Entra ve Microsoft Graph, Microsoft şirketler grubunun ticari markalarıdır.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues