Lompat ke konten

MCP

API yang sama, ditujukan kepada asisten alih-alih kepada skenario. Klien MCP memilih apa yang dipanggil saat berjalan, dari deskripsi alat — jadi jangkauannya persis sama dengan jangkauan kredensial di belakangnya, dan di bawah setiap alat ada satu panggilan API publik.

Satu endpoint saja

Semua menuju POST /v1/mcp. Tidak ada sesi untuk dibuka dan tidak ada aliran untuk dipegang: GET dan DELETE menjawab 405, dan tiap pesan adalah permintaannya sendiri.

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

Revisi protokol 2025-03-26 sampai 2026-07-28 semuanya dilayani. Klien yang membuka dengan initialize mendapat jabat tangan yang ia harapkan; yang menyebut versinya pada setiap permintaan dilayani dengan cara itu.

Menghubungkan dengan kunci API

Jalur tercepat, dan yang tepat untuk alat yang Anda jalankan sendiri. Kunci apa pun bekerja sebagai token bearer, dan alat yang ditawarkan dipotong sesuai cakupan kunci itu.

Kebanyakan klien menerima blok seperti ini:

{
  "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" }'

Menghubungkan lewat OAuth

Untuk konektor di direktori orang lain, di mana orang tidak pernah memegang kunci. Penemuan mengikuti RFC 9728 dan RFC 8414, klien mendaftarkan diri lewat RFC 7591, dan setiap otorisasi memakai PKCE dengan S256.

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

Panggilan tanpa otorisasi menyebut sendiri ke mana harus pergi dan apa yang diminta:

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"

Yang menyetujui sudah masuk ke Mosaqo, memilih ruang kerja yang berlaku, dan hanya bisa melakukannya di tempat ia pemilik atau admin — batas yang sama yang menentukan siapa boleh menerbitkan kunci API. Setelahnya bisa diputus di Bulk & API.

Apa yang bisa dilakukan asisten

Cakupan yang sudah Anda kenal, tanpa perubahan. Alat yang tidak diizinkan kredensial tidak muncul di tools/list dan tidak bisa dipanggil meski disebut namanya — jadi jawaban hidup untuk setiap koneksi adalah tools/list itu sendiri.

ScopeMemberi hak
qr:readMenampilkan dan membaca kode QR, folder, dan templat
qr:writeMembuat, mengubah, mengalihkan, menerbitkan, mengarsipkan, dan menghapus
exports:readMengunduh kartu yang sudah dirender
analytics:readAnalitik agregat dan pemindaian individual
bulk:writeMembuat dan membaca pekerjaan massal
webhooks:writeMengelola langganan webhook
reviews:readTempat, survei, dan bagaimana hasilnya — tidak pernah jawabannya sendiri

Apa yang tidak akan pernah dijangkaunya

Apa yang orang tulis dalam survei. reviews:read membuka tempat Anda, survei Anda, dan hasilnya: jumlah, skor, sebaran jawaban tiap pertanyaan. Kalimat yang diketik pengunjung tidak dikembalikan di sini, sebagaimana tidak di mana pun kredensial menjangkau — dengan alasan yang sama mengapa peristiwa feedback.* membawa skor dan tidak pernah kata-katanya.

Menghapus kode. Rute REST meminta konfirmasi yang diketik karena menghancurkan pengalihan di balik kode tercetak tidak bisa dibatalkan, dan itu bukan konfirmasi yang diberikan asisten atas nama seseorang. Sebagai gantinya ada pengarsipan, dan itu bisa dibatalkan.

Menulis ditandai sebagai menulis. Alat yang mengubah sesuatu membawa readOnlyHint: false, dan pengarsipan membawa destructiveHint: true — itulah yang membuat klien berhenti dan bertanya kepada seseorang sebelum berjalan.