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-282025-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-serverYetkisiz 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.
| Kapsam | Neye izin verir |
|---|---|
qr:read | QR kodlarını, klasörleri ve şablonları listelemek ve okumak |
qr:write | Oluşturmak, değiştirmek, yönlendirmek, yayınlamak, arşivlemek ve silmek |
exports:read | Oluşturulmuş kartları indirmek |
analytics:read | Toplu analitik ve tek tek taramalar |
bulk:write | Toplu işleri oluşturmak ve okumak |
webhooks:write | Webhook aboneliklerini yönetmek |
reviews:read | Mekâ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.