DOKUMENTASI / SANAD MCP

Mulai menggunakan
SANAD MCP.

Hubungkan client, pilih sumber, lalu periksa jejak teks yang dikembalikan.

01 / PRASYARAT

Siapkan client dan akses.

Gunakan client yang mendukung MCP serta transport yang disediakan server. Pastikan koneksi dan scope penggunaan sudah dikonfigurasi oleh owner. Website ini tidak membuat kredensial atau membuka akses baru.

  • Client mendukung tools MCP dan dapat menampilkan hasil terstruktur.
  • Transport, autentikasi, serta izin sumber cocok dengan koneksi yang diberikan.
  • Untuk contoh publik website, tidak diperlukan koneksi MCP; contoh telah tersimpan.
ENDPOINT MCPhttps://mcp.atsarai.com/mcp

Endpoint dikonfigurasi oleh owner. Website ini tidak melakukan pemeriksaan koneksi langsung. Dukungan transport dan autentikasi mengikuti konfigurasi server serta client yang digunakan.

02 / KONEKSI

Pilih jalur yang sesuai.

Hubungkan ke ChatGPT atau Claude ?

ChatGPT melalui koneksi ATSAR yang disediakan owner

  1. Gunakan koneksi/plugin ATSAR yang sudah dikonfigurasi pada client oleh owner. Koneksi tunnel uji merupakan koneksi terpisah dari domain HTTP.
  2. Aktifkan tools koneksi tersebut, kemudian panggil list_sources untuk melihat sumber yang dapat diakses.
  3. Panggil get_verse dengan referensi dan source ID eksplisit. Periksa ok, provenance, serta snapshot/engine pada respons.
  4. Pisahkan hasil teks asli dari analisis yang disusun model client.

Evidence lokal 11 Oktober 2026 mencatat tiga panggilan melalui ChatGPT pada tunnel uji: list_sources, get_verse, dan get_tafsir. Owner telah menggunakan plugin ATSAR; catatan uji ini tidak menetapkan status seluruh koneksi owner.

Client dengan Streamable HTTP

  1. Pastikan deployment yang diberikan owner memang melayani transport Streamable HTTP.
  2. Masukkan endpoint di atas pada konfigurasi server MCP client. Gunakan autentikasi sesuai konfigurasi yang diberikan, bila diperlukan.
  3. Lakukan initialize, tools/list, lalu panggil tool. Periksa hasil tool, bukan hanya respons health endpoint.

Adapter HTTP tersedia pada kode backend. Pemeriksaan 12 Oktober 2026 melalui hostname domain berhasil melakukan initialize, tools/list, dan get_verse untuk Tanzil 1:4 tanpa kredensial. Ini belum memverifikasi pemasangan pada setiap akun ChatGPT atau Claude. Nama menu dan format konfigurasi berbeda antar-client; tidak ada JSON konfigurasi universal pada panduan ini.

MCP berbeda dari REST API dan GPT Actions. Jangan menggunakan GET biasa ke /mcp sebagai pengganti sesi dan panggilan tool MCP.

03 / REFERENSI TOOLS

Lima cara mengambil sumber.

Semua tools menerima snapshot_id dan retrieval_engine_id opsional. Jika tidak diberikan, server memilih binding sesuai konfigurasi. Nilai bahasa adalah ar atau id; jenis sumber quran, translation, atau tafsir.

Input strict: field yang tidak dikenal ditolak, dan angka berupa string tidak otomatis dikonversi. source_ids menerima 1–10 ID unik. Cursor terikat snapshot, engine, filter, dan limit; gunakan parameter yang konsisten saat melanjutkan halaman.

list_sources

Kenali sumber yang tersedia

Daftar sumber yang dapat diakses dalam snapshot terpilih.

Wajib
Tidak ada.
Opsional
kind, language, limit, cursor
Limit
Default 20, maksimum 50; pagination keyset dengan next_cursor.
Output
data.items: identitas sumber, publisher, edisi, rights, review_status dan coverage; next_cursor.
Error penting
INVALID_CURSOR, CURSOR_MISMATCH; error akses snapshot.
Contoh argumen tool · bukan respons tersimpan
{
  "limit": 5
}

Metadata sumber tidak menggantikan provenance dan checksum unit teks.

get_verse

Ambil ayat dari sumber pilihan

Lookup teks Arab dan satu sumber terjemahan opsional.

Wajib
surah (1–114), ayah, quran_source_id
Opsional
translation_source_id (singular)
Limit
Satu referensi; tanpa pagination. Validitas ayah mengikuti skema korpus.
Output
data.verse dan data.translation atau null. Setiap unit membawa teks asli dan provenance. Footnotes berupa objek nullable dengan format html, reference, text_original dan provenance.
Error penting
INVALID_REFERENCE, SOURCE_KIND_MISMATCH, EDITION_MISMATCH, CONTENT_NOT_AVAILABLE.
Contoh argumen tool · bukan respons tersimpan
{
  "surah": 1,
  "ayah": 4,
  "quran_source_id": "tanzil-quran-uthmani-ar",
  "translation_source_id": "quranenc-indonesian-sabiq"
}

Terjemahan yang diminta tetapi tidak tersedia menghasilkan error; tidak diganti sumber lain.

get_tafsir

Telusuri segmen tafsir

Tafsir dari sumber yang dinyatakan eksplisit dalam request.

Wajib
surah, ayah, tafsir_source_id
Opsional
Tidak ada selain binding versi bersama.
Limit
1–20 segmen; tanpa pagination.
Output
data.requested_reference dan data.segments; rentang sumber asli dan provenance tiap segmen.
Error penting
INVALID_REFERENCE, SOURCE_KIND_MISMATCH, CONTENT_NOT_AVAILABLE, RESPONSE_TOO_LARGE.
Contoh argumen tool · bukan respons tersimpan
{
  "surah": 1,
  "ayah": 2,
  "tafsir_source_id": "quranenc-indonesian-mokhtasar"
}

Segmen dapat mencakup rentang ayat. Tafsir ini adalah teks sumber, bukan penjelasan model.

search_sources

Cari kata dan frasa

Pencarian leksikal PostgreSQL FTS dan trigram; ranking juga mengenali referensi eksplisit seperti 1:4.

Wajib
query, language (ar atau id)
Opsional
source_ids, kind, limit, cursor
Limit
Query setelah trim 2–500 Unicode code point, maksimum 2.048 byte UTF-8. Default 5 hasil, maksimum 20.
Output
query_normalized, ranking_version, items dan next_cursor. Items memuat score, provenance dan snippet maksimal 400 code point; full source_unit disertakan bila diwajibkan policy sumber.
Error penting
EMPTY_NORMALIZED_INPUT, SOURCE_NOT_FOUND, INVALID_CURSOR, CURSOR_MISMATCH, ENGINE_INCOMPATIBLE.
Contoh argumen tool · bukan respons tersimpan
{
  "query": "pembalasan",
  "language": "id",
  "source_ids": [
    "quranenc-indonesian-sabiq"
  ],
  "kind": "translation",
  "limit": 5
}

Bukan semantic search. Snippet adalah prefix teks asli, bukan jaminan bagian yang paling relevan. Filter sumber/bahasa/jenis digabungkan.

match_quote

Temukan kecocokan kutipan

Pencocokan exact, normalized, atau kandidat similar dalam sumber terpilih.

Wajib
quote, language (ar atau id)
Opsional
source_ids, kind, mode (default normalized), limit
Limit
Quote setelah trim 5–2.000 code point, maksimum 8.192 byte UTF-8. Default 5 hasil, maksimum 10; tanpa cursor.
Output
status, matches, ambiguous, truncated, searched_source_ids dan coverage_notes. Span memakai Unicode code point dengan akhir eksklusif; bukan byte atau indeks UTF-16.
Error penting
EMPTY_NORMALIZED_INPUT, SOURCE_NOT_FOUND, ENGINE_INCOMPATIBLE; warning MATCHES_TRUNCATED.
Contoh argumen tool · bukan respons tersimpan
{
  "quote": "Hari Pembalasan",
  "language": "id",
  "source_ids": [
    "quranenc-indonesian-sabiq"
  ],
  "mode": "normalized",
  "limit": 5
}

Exact literal; normalized mencoba exact dahulu lalu normalisasi; similar mencoba keduanya dahulu lalu trigram dengan threshold 850.000 ppm. Ambiguous dihitung dari unit berbeda sebelum limit. Similar bukan autentisitas/kesamaan makna; not_found hanya berlaku dalam scope pencarian.

04 / MEMBACA HASIL

Teks dan identitasnya.

Respons sukses memiliki ok: true, contract_version, snapshot_id, retrieval_engine_id, data, dan warnings. Di MCP, envelope aplikasi berada dalam hasil tool; periksa juga status error wrapper protokol.

Identitas
source_id, source_version_id, edition_id, publisher
Lokasi
reference, locator, upstream_url
Integritas
content_sha256, review_status, attribution
Catatan
footnotes: objek dengan format html, reference, text_original dan provenance, atau null

Checksum membantu memeriksa kesamaan byte teks terhadap versi yang dicatat. Ia bukan pengganti penilaian substansi atau izin penggunaan. Footnotes mempunyai checksum/provenance sendiri; HTML sumber harus disanitasi sebelum dirender oleh client.

Periksa contoh tersimpan

05 / BATAS KEMAMPUAN

Pahami scope hasilnya.

  • Pencarian leksikal menggunakan FTS dan trigram, bukan embeddings atau penalaran semantik.
  • Normalized match dapat mengabaikan variasi harakat/tatweel Arab atau tanda baca/spasi Indonesia; teks asli tetap dipertahankan.
  • Similar adalah kandidat kemiripan teks, bukan autentisitas, kesamaan makna, atau keputusan agama.
  • Ambiguous berarti beberapa unit cocok sebelum limit. Truncated berarti daftar yang terlihat belum lengkap.
  • Not_found berlaku pada sumber, bahasa, coverage, dan snapshot yang dicari.
  • Published berarti tersedia secara operasional; status review dan rights tetap harus diperiksa.

Envelope aplikasi dibatasi 64 KiB dan wire MCP 256 KiB. Respons terlalu besar menghasilkan RESPONSE_TOO_LARGE; server tidak memotongnya diam-diam. Rights, freshness, expiry, dan withdrawal sumber dapat memengaruhi akses walaupun hasil pernah ditemukan sebelumnya.

06 / TROUBLESHOOTING

Bedakan error dari hasil kosong.

Koneksi gagal
Periksa transport, endpoint dan autentikasi client. Jangan menafsirkan kegagalan transport sebagai “tidak ada ayat”.
SNAPSHOT_UNAVAILABLE
Snapshot belum published atau akses sedang tidak tersedia. Periksa binding dan scope dengan owner.
SOURCE_NOT_FOUND / SOURCE_KIND_MISMATCH
Gunakan source ID dari list_sources dengan jenis yang sesuai tool.
INVALID_REFERENCE / CONTENT_NOT_AVAILABLE
Periksa surah, ayah, skema edisi, dan coverage sumber.
CURSOR_MISMATCH
Jangan mengganti filter, limit, snapshot, atau engine di tengah pagination.
DATABASE_UNAVAILABLE / QUERY_TIMEOUT
Error ditandai retryable. Ikuti kebijakan retry client; hindari retry tanpa batas.

Error aplikasi memiliki ok: false dan error berisi code, message, retryable serta details. Binding dapat null dan tidak ada field warnings pada envelope gagal. Kegagalan validasi SDK atau JSON-RPC dapat terjadi sebelum envelope aplikasi dibuat.