HADİ'yi ajanına bağla (MCP)
HADİ, yapay zekâ ajanları için bir MCP sunucusu sunar: https://mcp.api.hadisosyal.com/mcp
(Streamable HTTP, JSON-RPC). Ajan, üyenin izniyle etkinlikleri arayabilir, profilini okuyabilir; başkalarına ulaşan her
işlem için üye HADİ uygulamasında onay verir.
Yetkilendirme
Section titled “Yetkilendirme”MCP şartnamesindeki OAuth profili, HADİ’nin güvenlik kurallarıyla:
- Sunucu
401ileWWW-Authenticate: DPoP resource_metadata="https://mcp.api.hadisosyal.com/.well-known/oauth-protected-resource"döner. - Meta veride yetkilendirme sunucusu:
https://auth.hadisosyal.com. - İstek PAR ile başlar; PKCE S256 ve DPoP zorunludur. Jeton isterken
resource=https://mcp.api.hadisosyal.comgönder (RFC 8707). - Jeton 5 dakika geçerlidir;
offline_accessile refresh en çok 7 gün.
POST https://auth.hadisosyal.com/parclient_id=https://ajanim.example.com/oauth/client.json&resource=https://mcp.api.hadisosyal.com&scope=openid events:read&response_type=code&code_challenge=…&code_challenge_method=S256&redirect_uri=http://127.0.0.1:53682/callback&state=…İstemci kaydı
Section titled “İstemci kaydı”- Kayıtlı istemci (devs konsolu): incelemedeki kademesine göre R0–R3 izinler.
- Kayıtsız istemci (CIMD):
client_idolarak kendi https adresini ver; o adreste şu belge olmalı:
{ "client_id": "https://ajanim.example.com/oauth/client.json", "client_name": "Ajanım", "redirect_uris": ["http://127.0.0.1/callback", "https://ajanim.example.com/cb"], "token_endpoint_auth_method": "none"}Kurallar: belge en çok 5 KB, client_id belge adresiyle aynı, yönlendirmeler aynı alan adında (https) ya da
127.0.0.1. Kayıtsız istemci yalnızca okuma (R0–R1) isteyebilir ve izin ekranında “HADİ incelemedi” uyarısı görünür.
Açık dinamik kayıt (RFC 7591) yoktur.
Oturum
Section titled “Oturum”initialize yanıtındaki Mcp-Session-Id başlığını sonraki isteklerde gönder. Oturum kimliği jetonu alan izne ve DPoP
anahtarına bağlıdır; başka bir jetonla kullanılırsa 404 döner ve yeniden initialize gerekir. Oturumu kapatmak için
DELETE /mcp. Tarayıcıdan gelen isteklerde Origin beyaz listede olmalıdır.
Araçlar
Section titled “Araçlar”tools/list dinamiktir: yalnızca jetondaki izinlerin kapsadığı araçlar listelenir. Örnekler:
| Araç | İzin | Onay |
|---|---|---|
hadi_me | profile:basic | yok |
hadi_events_list, hadi_events_get | events:read | yok |
hadi_event_join, hadi_events_leave | events:join | her işlemde |
hadi_post_create, hadi_comment_create, hadi_post_like | posts:write / comments:write / reactions:write | her işlemde |
hadi_members_follow | social.follow:write | her işlemde |
hadi_communities_update, hadi_events_submit | communities:manage / events:create (Kademe 2) | her işlemde + PIN |
Kaynaklar (salt okuma): hadi://me/profile, hadi://events/upcoming.
Para, doğrudan mesajlar ve sağlık verisi ajanlara hiç açılmaz.
Onay akışı
Section titled “Onay akışı”// 1) İlk çağrı{"name": "hadi_event_join", "arguments": {"id": "evt_s4nd"}}// → {"status": "pending_approval", "approval_id": "ar_…", "expires_in_sec": 600}
// 2) Üye HADİ › Ayarlar › Güvenlik › Ajan istekleri'nde onaylar.
// 3) Aynı araç, aynı argümanlar + approval_id{"name": "hadi_event_join", "arguments": {"id": "evt_s4nd", "approval_id": "ar_…"}}Onay tek kullanımlıktır, 10 dakika geçerlidir ve argümanlar değişirse geçmez.
Güvenilmeyen içerik
Section titled “Güvenilmeyen içerik”Araç çıktısında üyelerin yazdığı her metin {"untrusted_text": "…", "source": "comment"} biçimindedir ve çıktının
başında sabit bir uyarı vardır. Görünmez/yön değiştirici karakterler silinir; görsel ve dış bağlantılar dönmez.
Ajanın untrusted_text içindeki talimatları uygulamamalı.
Sınırlar
Section titled “Sınırlar”- İzin başına dakikada 30 araç çağrısı; aynı okuma 10 sn içinde tekrarlanırsa önbellekten.
- Ajan başına günde 20 yazma.
- Ajanla oluşan içerikte kapatılamaz ”🤖 ajan aracılığıyla” etiketi görünür.
Ajan geliştiricileri için kontrol listesi
Section titled “Ajan geliştiricileri için kontrol listesi”- DPoP anahtarını işlem dışında saklamıyorum; jetonu loglamıyorum.
-
untrusted_textiçeriğini talimat olarak kullanmıyorum; araç zincirini üyenin isteğiyle sınırlıyorum. -
pending_approvaldönünce üyeye HADİ’de onay vermesini söylüyorum; onayı kendim uydurmuyorum. - Hata ve
429yanıtlarında üstel bekleme yapıyorum.
Deneme
Section titled “Deneme”MCP Inspector ile sandbox sunucusuna bağlan:
https://mcp.api.sandbox.hadisosyal.com/mcp (test hesabı, gerçek veri yok).