İçeriğe geç

MCP

Aynı API, bir senaryoya değil bir asistana yöneltilmiş. MCP istemcisi neyi çağıracağını çalışırken, araç açıklamalarından seçer — yani tam olarak arkasındaki kimlik bilgilerinin ulaştığı yere ulaşır ve her aracın altında bir genel API çağrısı vardır.

Tek uç nokta

Her şey POST /v1/mcp adresine gider. Açılacak oturum ve tutulacak akış yoktur: GET ve DELETE 405 yanıtlar ve her mesaj kendi isteğidir.

POST https://api.mosaqo.app/v1/mcp
Authorization: Bearer $MOSAQO_KEY
MCP-Protocol-Version: 2026-07-28

2025-03-26 ile 2026-07-28 arasındaki tüm protokol revizyonları karşılanır. initialize ile başlayan istemci beklediği el sıkışmayı alır; sürümünü her istekte bildiren öyle karşılanır.

API anahtarıyla bağlanma

En hızlı yol ve kendi çalıştırdığınız bir araç için doğru olanı. Herhangi bir anahtar bearer token olarak çalışır ve sunulan araçlar o anahtarın kapsamlarına göre kısılır.

Çoğu istemci şuna benzer bir blok kabul eder:

{
  "mcpServers": {
    "mosaqo": {
      "type": "http",
      "url": "https://api.mosaqo.app/v1/mcp",
      "headers": { "Authorization": "Bearer $MOSAQO_KEY" }
    }
  }
}
curl -X POST https://api.mosaqo.app/v1/mcp \
  -H "Authorization: Bearer $MOSAQO_KEY" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2026-07-28" \
  -H "Mcp-Method: tools/list" \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'

OAuth ile bağlanma

Kişinin anahtara hiç dokunmadığı, başkasının dizinindeki bir konektör için. Keşif RFC 9728 ve RFC 8414 uyarınca, istemciler RFC 7591 ile kendilerini kaydeder ve her yetkilendirme S256 ile PKCE kullanır.

curl https://api.mosaqo.app/.well-known/oauth-protected-resource
curl https://api.mosaqo.app/.well-known/oauth-authorization-server

Yetkisiz bir çağrı nereye gidileceğini ve ne isteneceğini kendisi söyler:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="Mosaqo MCP",
  resource_metadata="https://api.mosaqo.app/.well-known/oauth-protected-resource",
  scope="qr:read analytics:read reviews:read exports:read"

Onaylayan kişi Mosaqo'da oturum açmıştır, hangi çalışma alanı için olduğunu seçer ve bunu yalnızca sahip veya yönetici olduğu yerde yapabilir — API anahtarı verme yetkisini belirleyen aynı sınır. Bağlantı sonradan Bulk & API altından kesilebilir.

Bir asistan neler yapabilir

Zaten bildiğiniz kapsamlar, değişmeden. Kimlik bilgilerinin izin vermediği araç tools/list içinde yer almaz ve adını söyleyerek de çağrılamaz — yani her bağlantı için canlı yanıt tools/list kendisidir.

KapsamNeye izin verir
qr:readQR kodlarını, klasörleri ve şablonları listelemek ve okumak
qr:writeOluşturmak, değiştirmek, yönlendirmek, yayınlamak, arşivlemek ve silmek
exports:readOluşturulmuş kartları indirmek
analytics:readToplu analitik ve tek tek taramalar
bulk:writeToplu işleri oluşturmak ve okumak
webhooks:writeWebhook aboneliklerini yönetmek
reviews:readMekânlar, anketler ve nasıl gittikleri — yanıtların kendisi asla

Asla ulaşamayacağı şey

İnsanların bir ankete yazdıkları. reviews:read mekânlarınızı, anketlerinizi ve nasıl gittiklerini açar: sayılar, puanlar, her soru için dağılım. Bir ziyaretçinin yazdığı cümleler burada da, kimlik bilgilerinin ulaştığı başka hiçbir yerde de döndürülmez — feedback.* olaylarının bir puan taşıyıp kelimeleri asla taşımamasıyla aynı nedenden.

Bir kodu silmek. REST yolu yazılı onay ister, çünkü basılı bir kodun arkasındaki yönlendirmeyi yok etmek geri alınamaz ve bu, bir asistanın başkası adına verdiği bir onay değildir. Bunun yerine arşivleme sunulur ve o geri alınabilir.

Yazma, yazma olarak işaretlidir. Bir şeyi değiştiren araç readOnlyHint: false, arşivleme ise destructiveHint: true taşır — istemciyi durdurup çalışmadan önce bir insana sorduran şey budur.