Skip to main content
Glama
README.md
# msteams-mcp: Teams sohbetleri için salt okunur MCP sunucusu (şartname deposu)

Bu depoda **kod yoktur**. Bunun yerine projenin tam şartnamesi vardır: [SPEC.md](SPEC.md).

Şartname, AI asistanının (VS Code Copilot Chat, Claude vb.) kullanıcının **kendi Teams sohbetlerini okuyabilmesi,
son günlerin mesajlarında arama yapabilmesi ve kendisinden bahsedilen mesajları bulabilmesi** için kendi bilgisayarında çalışan, en az yetkiyle ve kullanıcının kendi Entra uygulaması üzerinden çalışan bir
MCP sunucusunun ne olduğunu, neden bu şekilde tasarlandığını ve nasıl yazılacağını anlatır.

*A specification for a small, self-hosted, read-only MCP server for Microsoft Teams chats (delegated permissions,
own Entra app, local stdio or loopback HTTP). This repository contains the spec, not the code: have your coding
agent write it, review it, and run it in your own tenant.*

## Neden kod yerine şartname?

Bu sunucu kuruluşunuzun Teams verisine dokunur. Hazır bir kodu olduğu gibi kurmak yerine:

* kendi Entra uygulama kaydınızla, kendi güvenlik incelemenizle yazdırın,
* her güvenlik kontrolünün testini görün (şartnamede 12 maddelik gereksinim listesi var),
* kuruma özel değerler (tenant, client id) hiçbir yerde paylaşılmasın.

## Nasıl kullanılır?

1. [SPEC.md](SPEC.md) dosyasını boş bir klasöre koyun.
2. Bölüm 2'deki ön koşulları hazırlayın (Entra'da tek tenant uygulama kaydı, `User.Read` ve `Chat.Read` temsilci izinleri).
3. Claude Code'a (tercihen Opus ile) bölüm 13'teki istemi verin. Ajan bölüm 12'deki yapım sırasını adım adım izler.
4. Ortaya çıkan kodu **kendiniz inceleyin**, bölüm 14'teki adımlarla kurun, bölüm 15'teki doğrulama listesini çalıştırın ve
   gizli bilgi taraması yapın.
5. Kurulum ve işletim belgelerini de ajan yazar (bölüm 11).

## Ortaya çıkan sunucunun araçları

| Araç | Ne yapar | İzin |
|---|---|---|
| `auth_status` | Hangi hesapla bağlı olunduğu, verilen izinler, token'ın bitiş zamanı | yok |
| `get_current_user` | Giriş yapan kişinin profili | `User.Read` |
| `list_chats` | Sohbetler (birebir, grup, toplantı), üyeler, son mesaj önizlemesi | `Chat.Read` |
| `get_chat_messages` | Bir sohbetin mesajları; tarih, gönderen ve sıra seçenekleri | `Chat.Read` |
| `search_messages` | Son 1 ile 30 gündeki sohbet mesajlarında metin arama | `Chat.Read` |
| `get_my_mentions` | Son 1 ile 30 günde kişiden @ ile bahsedilen mesajlar | `Chat.Read` |

Hepsi salt okunurdur ve yalnızca `/me/...` üzerinden çalışır. Yönetici onayı gerektiren bir izin yoktur.

## Önemli uyarılar

* **Veri, AI istemciniz üzerinden bilgisayarınızdan çıkar.** Teams mesaj metinleri MCP istemcinizin kullandığı AI
  modeline (çoğunlukla bir bulut servisi) gönderilir. Kurum verisiyle kullanmadan önce hukuk, KVKK ve BT güvenlik
  onayı alın.
* Sunucu yalnızca **kişisel iş istasyonunda, tek kullanıcı için** tasarlanmıştır. Paylaşımlı sunucuda çalıştırmayın.
* Teams verisiyle çalışırken aynı oturumda e-posta, web, dosya yazma ve GitHub gibi dışarı yazabilen MCP
  sunucularını kapalı tutun (prompt injection ile veri sızdırma riski).
* Bu şartname bir güvenlik garantisi değildir. Ortaya çıkan kod sizin sorumluluğunuzdadır.

## Lisans

MIT © 2026 Anıl Yavuz. 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.