hukum-id-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hukum-id-mcpTrace the legal status of PP 82/2021 as of 1 January 2023"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
HukumID Research Platform
Platform evidence-first untuk riset hukum Indonesia dan Hukum Ekonomi Syariah (HES).
Satu legal core melayani Web, REST API v1, MCP lokal stdio, dan remote MCP Streamable HTTP.
Sistem menolak klaim tanpa evidence dan gagal tertutup ketika rujukan exact ambigu atau tidak ada.
Versi 0.6 adalah fondasi pilot: Web search workspace, 10 MCP tool, REST API, upload terenkripsi, AI evidence-first opsional, release indeks atomik, Azure IaC, CI/canary/rollback, dan telemetri privacy-first sudah tersedia. Label production-ready tetap menunggu quality gates ahli dan corpus yang dirinci di launch readiness.
Jalankan lokal
Butuh Node.js 22 atau lebih baru dan curl pada PATH.
npm ci
npm run start:api # http://localhost:3001
npm run dev:web # http://localhost:3000Konfigurasi tersedia di .env.example. Azure menggunakan Managed Identity atau
DefaultAzureCredential; jangan menaruh Storage connection string di repository.
Dokumentasi utama: arsitektur, OpenAPI, deployment Azure, dan runbook alert.
Related MCP server: Openlaw MCP
Sumber
Sumber | Dipakai untuk |
JDIH BPK RI ( | Peraturan pusat dan daerah, status keberlakuan, relasi antarperaturan, PDF resmi |
Direktori Putusan MA ( | Putusan Mahkamah Agung dan pengadilan di bawahnya |
Mahkamah Konstitusi ( | Putusan PUU, SKLN, PHPU, PHPKADA |
OpenAlex ( | Literatur ilmiah dan doktrin |
JDIH Mahkamah Agung ( | PERMA, SEMA, KMA — termasuk KHES (PERMA 2/2008) dan PERMA 14/2016 |
DSN-MUI ( | Seluruh fatwa Dewan Syariah Nasional, terindeks dan dapat dicari |
myquran.com dan quran.com | Ayat Al-Quran dan hadis: teks Arab Unicode, transliterasi, terjemahan |
hadeethenc.com | Ensiklopedia Hadis Nabawi: derajat kesahihan, takhrij, syarah, faedah — berbahasa Indonesia |
api.turath.io | Kitab turats untuk memverifikasi redaksi kaidah fikih; kutipan dibatasi pendek dan selalu bersitasi |
MCP default
Default MCP sengaja dibatasi menjadi sepuluh tool yang tidak tumpang tindih:
Tool | Fungsi |
| Cari kandidat dari sumber hukum nasional, HES, putusan, dan literatur |
| Ambil satu dokumen dari rujukan persis |
| Cari bunyi pasal beserta locator dan provenance; fail-closed |
| Periksa sitasi di dalam draf |
| Telusuri perubahan dan keberlakuan pada tanggal tertentu |
| Cari putusan MA/MK dengan status sumber eksplisit |
| Petakan isu/akad ke fatwa, regulasi, KHES, dalil, dan putusan |
| Analisis yang abstain jika evidence belum cukup |
| Periksa dokumen pengguna sebagai data tidak tepercaya |
| Tampilkan freshness, kegagalan, dan keterbatasan sumber |
Tool lama hanya dimuat bila HUKUM_MCP_LEGACY=1 dan akan dihapus pada major version berikutnya.
Tool legacy (opt-in)
Tool | Fungsi |
| Cari peraturan berdasarkan kata kunci, nomor, tahun, jenis, entitas |
| Metadata lengkap, STATUS berlaku/dicabut, relasi (Mencabut, Diubah dengan, ...), uji materi MK, tautan PDF |
| Unduh PDF resmi lalu ekstrak teksnya; bisa disaring per halaman atau per kata kunci |
| Daftar slug kategori perkara di Direktori Putusan MA |
| Telusuri putusan MA per kategori dan tahun |
| Metadata satu putusan MA plus tautan PDF/ZIP |
| Cari putusan MK, lengkap dengan amar dan tautan salinan |
| Cari jurnal, buku, dan bab buku ilmiah lewat OpenAlex |
| Cari PERMA/SEMA/KMA di JDIH MA (JDIH BPK tidak mengindeksnya) |
| Alur utama. Satu panggilan: identitas, status, relasi, kutipan verbatim pasal, silang-periksa MK, dan peringatan otomatis |
| Cari frasa di seluruh isi satu PDF, kembalikan cuplikan berkonteks dan nomor halaman |
| Periksa sampai 25 putusan MK sekaligus dan hitung kemunculan kata kunci di tiap salinan |
| Titik masuk dua perspektif: fatwa DSN, peraturan positif, dan putusan ekonomi syariah, paralel |
| Pasal Kompilasi Hukum Ekonomi Syariah; menolak jujur bila naskahnya belum diimpor |
| Hadis lengkap dengan derajat kesahihan, takhrij, syarah, dan faedah |
| Pedoman implementasi dan ta'limat DSN-MUI — cara fatwa diterapkan pada produk nyata |
| Verifikasi redaksi kaidah fikih ke kitab turats, lengkap dengan kitab, penulis, jilid, dan halaman |
| Jejak perubahan sebuah pasal lintas undang-undang perubahan, lalu susun rantai sitasi yang benar |
| Periksa seluruh sitasi dalam sebuah draf: keberadaan, status, nomor pasal, dan frasa yang dikutip |
| Apakah sebuah peraturan berlaku pada tanggal tertentu, berikut garis waktunya |
| Butir ketentuan fatwa DSN-MUI sebagai daftar periksa kepatuhan akad |
| Tembak tiap sumber dengan kueri yang hasilnya sudah diketahui, lalu laporkan sehat, lambat, membatasi, atau berubah struktur |
| Cari fatwa DSN-MUI dari indeks lengkap, di-cache 7 hari |
| Ambil isi salinan fatwa DSN-MUI sebagai teks |
| Ayat Al-Quran: Arab, transliterasi, terjemahan Kemenag, asbab nuzul |
| Hadis dari sembilan kitab: Arab dan terjemahan Indonesia |
Pemasangan
Butuh Node.js 22 ke atas dan curl pada PATH (Windows 10 ke atas sudah menyertakannya).
Claude Code
claude mcp add hukum-id --scope user -- npx -y hukum-id-mcpClaude Desktop — tambahkan ke claude_desktop_config.json:
{
"mcpServers": {
"hukum-id": { "command": "npx", "args": ["-y", "hukum-id-mcp"] }
}
}Dari sumber
git clone <url-repo> && cd hukum-id-mcp && npm ci && npm run build
claude mcp add hukum-id --scope user -- node "$(pwd)/dist/mcp/stdio.js"Pengujian:
npm test # uji fixture, unit, security, API, MCP, storage, dan contract
npm run verify # lint + OpenAPI + test + typecheck + build API/Web
npm run test:parser # parser saja, tanpa satu pun permintaan jaringan
npm run smoke # canary end-to-end; menyentuh sumber livetest/parser.test.js menjalankan seluruh parser terhadap salinan HTML nyata di
test/fixtures/. Ini penting karena risiko terbesar proyek ini bukan salah logika,
melainkan situs sumber yang berganti tampilan — ketika itu terjadi, parser rusak diam-diam:
tool tetap menjawab, tetapi isinya kosong. Uji fixture menangkapnya sebelum pengguna
terdampak, dan sudah terbukti: ia menemukan bug pagination yang membuat jumlah halaman hasil
pencarian terbaca 1 padahal 3.560.
Untuk memeriksa apakah situs sumbernya sendiri yang berubah, jalankan tool
periksa_kesehatan_sumber. Status berubah_struktur berarti permintaan berhasil tetapi
hasilnya tidak sesuai bentuk yang diharapkan — itu sinyal parser perlu diperbarui.
Integrasi berkelanjutan
Workflow ci.yml menjalankan verifikasi deterministik, audit dependency, kompilasi Bicep, dan
Docker build pada push/PR. uji.yml hanya menembak sumber resmi seminggu sekali atau secara
manual. deploy.yml membuat revision canary, promote.yml mempromosikannya setelah metrik
ditinjau, dan rollback.yml mengembalikan trafik ke revision sehat yang dipilih operator.
Alasannya bukan teknis melainkan etis: menjalankan uji terhadap server yang dibiayai anggaran publik pada setiap push berarti membebani mereka demi kenyamanan kita. Sekali seminggu sudah cukup untuk mendeteksi situs yang berganti tampilan.
Kontribusi
Lihat CONTRIBUTING.md. Ringkasnya: setiap tool wajib mengembalikan sumbernya, kegagalan tidak boleh menyamar sebagai temuan negatif, parser harus dapat diuji tanpa jaringan, dan penambahan yang menaikkan beban situs sumber tidak akan diterima.
Snapshot korpus inti
Agar peneliti baru tidak perlu menembak situs pemerintah untuk dokumen yang hampir selalu dibutuhkan, isi cache sekali lalu bagikan berkasnya:
npm run snapshot # korpus inti lengkap dengan PDF
npm run snapshot:ringkas # metadata saja, jauh lebih kecilHasilnya ada di cache pengguna (~/.cache/hukum-id-mcp, atau HUKUM_CACHE_DIR). Kemas folder
itu menjadi satu arsip dan bagikan; penerima cukup membongkarnya ke lokasi yang sama. Korpus inti mencakup undang-undang pokok ekonomi syariah,
KUHP dan KUHAP beserta transisinya, UU pembentukan peraturan perundang-undangan berikut
seluruh perubahannya, produk hukum Mahkamah Agung, indeks seluruh fatwa DSN-MUI, dan indeks
hadis kategori fikih.
Etika Pemakaian
Perangkat ini mengambil dokumen dari situs lembaga negara yang dibiayai anggaran publik. Satu peneliti yang mengambil dokumen sesekali bukan masalah; seribu peneliti yang masing-masing mengambil dokumen yang sama berulang-ulang adalah masalah.
Yang dilakukan perangkat ini:
Mengambil atas permintaan pengguna, satu permintaan pada satu waktu, dengan jeda sopan per host dan pemutus arus bila sumber menolak.
Menyimpan hasilnya agar dokumen yang sama tidak diambil berulang kali.
Mengikuti sinyal
robots.txt. JDIH BPK dan Direktori Putusan MA memberiAllow: /denganContent-Signal: search=yes, ai-train=no, use=reference— pemakaian di sini adalah rujukan atas permintaan pengguna, bukan pelatihan model.
Yang tidak dilakukan dan tidak boleh ditambahkan:
Penjelajahan massal atau pengunduhan seluruh basis data.
Pengumpulan untuk melatih model.
Melewati CAPTCHA atau pembatasan akses lainnya.
Bila memakainya dalam skala besar, pakai snapshot bersama, dan pertimbangkan menghubungi lembaga sumber untuk meminta akses resmi.
Perangkat ini bukan nasihat hukum dan bukan fatwa. Penetapan hukum syariah adalah kewenangan lembaga fatwa dan Dewan Pengawas Syariah; penyelesaian sengketa adalah kewenangan pengadilan.
Kinerja
Tiga lapisan membuat pemakaian berulang nyaris seketika:
Cache berkas di disk (
HUKUM_CACHE_DIRatau cache pengguna). Dokumen hukum resmi yang sudah diundangkan tidak berubah, jadi PDF dan salinan putusan disimpan 60 hari, halaman metadata 7 hari, dan hasil pencarian 1 hari.Cache teks hasil ekstraksi PDF. Membedah PDF adalah bagian termahal; sekali dibedah, penyaringan halaman dan kata kunci berjalan di atas hasil simpanan.
Kerja paralel dan anggaran waktu. Bagian yang tidak saling bergantung dijalankan bersamaan, dan pengayaan opsional seperti silang-periksa MK diberi batas waktu ketat supaya sumber yang sedang lambat tidak menahan seluruh jawaban.
Terukur pada rantai riset satu pasal (cari, status, kutip pasal):
Sebelum | Sesudah | |
Rantai tiga panggilan terpisah | 3.159 ms | 30 ms |
Satu panggilan | — | 23-27 ms |
Ada pula pemutus arus: bila sebuah host menolak dua permintaan beruntun, host itu dilewati cepat selama satu menit dengan pesan yang jelas, alih-alih menahan alur lain dengan retry berulang. Data dari cache tetap dilayani selama pemutus aktif.
Catatan Teknis
Transport ganda. Sebagian situs sumber berada di belakang Cloudflare dan menolak sidik jari TLS milik
fetchbawaan Node, tetapi menerimacurl. Karena itusrc/http.jsmemakaifetchlebih dulu lalu jatuh kecurlsebagai cadangan, dan langsung memakaicurluntuk host yang sudah diketahui rewel.curlharus tersedia di PATH (Windows 10 ke atas sudah menyertakannya).Jeda sopan. Ada jeda minimum per host (900 ms umum, 2.600 ms untuk Direktori Putusan MA) plus retry dengan backoff. Server ini dirancang untuk pencarian atas permintaan pengguna, bukan untuk penjelajahan massal.
robots.txt. JDIH BPK dan Direktori Putusan MA memberi sinyal
Content-Signal: search=yes, ai-train=no, use=referencedenganAllow: /untuk agen umum, dan melarang crawler pelatihan model. Pemakaian di sini adalah pencarian rujukan atas permintaan pengguna, satu permintaan pada satu waktu, tanpa pengumpulan massal dan tanpa pelatihan model. Jangan ubah server ini menjadi crawler.Pencarian teks-bebas MA dilindungi CAPTCHA. Karena itu penelusuran MA dilakukan lewat indeks direktori. Untuk pencarian kata kunci, gunakan mesin pencari dengan
site:putusan3.mahkamahagung.go.id, lalu verifikasi hasilnya dengandetail_putusan_ma.Kualitas teks PDF. Sebagian PDF resmi memiliki lapisan teks yang cacat. Bila kutipan terlihat rusak, bandingkan langsung dengan PDF sumbernya sebelum dipakai.
Teks Arab pada PDF fatwa DSN keluar rusak karena memakai font non-Unicode. Terjemahan Indonesianya utuh. Ambil teks Arab dalil lewat
ambil_ayatatauambil_hadis, jangan dari hasil ekstraksi PDF fatwa.Indeks fatwa DSN dibangun sekali (sekitar 25 detik untuk seluruh halaman) lalu disimpan di
.cache/fatwa-dsn.jsondan dipakai ulang selama 7 hari. Paksa perbarui dengan argumenpaksa_segarkan.Naskah KHES tidak beredar dalam bentuk yang dapat diambil mesin. PDF PERMA 2/2008 di JDIH MA hanya memuat batang tubuh PERMA dua halaman; perpustakaan BLDK Mahkamah Agung tidak dapat dijangkau dan JDIH Kemenkeu hanya menyajikan halaman aplikasi. Karena itu
impor_khesdisediakan: muat salinan Anda sendiri sekali, lalucari_pasal_khesbekerja penuh. Naskahnya tidak ikut disebarkan bersama perangkat ini — haknya ada pada Mahkamah Agung. Struktur bukunya sudah diverifikasi ke naskah primer Edisi Revisi 2011: Buku I Pasal 1-19, Buku II 20-667, Buku III 668-727, Buku IV 728-790.POJK, SEOJK, dan PBI ternyata sudah terindeks di JDIH BPK lengkap dengan statusnya, sehingga tidak diperlukan modul khusus untuk situs OJK. Pakai kode
jenis: 80 untuk POJK, 78 untuk PBI, 79 untuk Surat Edaran Bank Indonesia.
Skill Pendamping
Dipasang di ~/.claude/skills/.
Hukum umum: hukum-riset-id (jangkar), penalaran-hukum-id, legal-opinion-id,
legal-drafting-id, sitasi-hukum-id.
Hukum ekonomi syariah: hukum-ekonomi-syariah-id (jangkar dua perspektif), ushul-fiqh,
qawaid-fiqhiyyah.
Lisensi
Kode: MIT — lihat LICENSE.
Isi dokumen hukum yang diambil melalui perangkat ini tetap milik dan tanggung jawab lembaga penerbitnya, bukan milik proyek ini. Batasnya dijelaskan di NOTICE.md.
English
hukum-id-mcp is an MCP server for Indonesian legal research, with a focus on Islamic economic law (hukum ekonomi syariah). It connects an AI assistant to primary sources so that legal claims rest on retrieved documents rather than recalled ones — Indonesian law changes quickly, and answers from memory routinely cite repealed regimes.
Sources. JDIH BPK (statutes, in-force status, amendment relations, official PDFs), Supreme Court decision directory, Constitutional Court decisions, Supreme Court JDIH (PERMA/SEMA/KMA), DSN-MUI fatwas, Quran, hadith with authenticity grading, classical Islamic legal texts, and OpenAlex for scholarship.
What makes it more than a search tool. It checks whether a statute is still in force, traces how a specific article changed across amending statutes and produces the correct citation chain, verifies every citation in a draft, determines whether a rule was in force on a given date, and turns fatwa provisions into a compliance checklist. Every output carries explicit warnings where the underlying source is incomplete or unreliable.
Install
claude mcp add hukum-id --scope user -- npx -y hukum-id-mcpPlease read the Etika Pemakaian (Ethics of Use) section above before deploying this at scale. The tool retrieves from public-funded government sites one request at a time; a shared cache snapshot exists precisely so that many researchers do not each hammer the same endpoints. Bulk crawling and model-training collection are out of scope by design.
This tool is not legal advice and not a fatwa.
Available Tools
10 toolsanalyze_legal_problemAnalisis masalah hukum evidence-firstBRead-onlyIdempotent
Susun research result yang hanya mempertahankan klaim dengan evidence; abstain bila sumber belum cukup.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given the annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, the description adds valuable behavioral context: it only retains evidence-backed claims and abstains when evidence is insufficient. This goes beyond the annotations, though it does not clarify what an abstention looks like in the output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact sentence that front-loads the main action and includes the key constraint. Every word earns its place with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter) and the annotations plus the presence of an output schema cover much of the behavioral and return contract. The description adds the core evidence-filtering and abstention behavior. A slight gap remains around what 'abstain' means operationally and when to reach for this tool instead of a sibling, but overall it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it never explicitly documents the 'question' parameter. The tool name and title imply the parameter is the legal problem to analyze, but this is implicit rather than stated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Susun' / compile) and a clear resource ('research result'), with the qualifier 'hanya mempertahankan klaim dengan evidence' making the evidence-first nature explicit. It does not explicitly differentiate from sibling tools like research_sharia_issue or analyze_uploaded_document, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over alternatives, such as search_legal_sources or analyze_uploaded_document. The phrase 'abstain bila sumber belum cukup' is a behavioral instruction, not a tool-selection guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_uploaded_documentPeriksa dokumen penggunaARead-onlyIdempotent
Periksa sitasi pada teks hasil ekstraksi dokumen. Isi dokumen diperlakukan sebagai data, bukan instruksi.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable context that document contents are treated as data, not instructions ('Isi dokumen diperlakukan sebagai data, bukan instruksi'), which is a meaningful behavioral disclosure about prompt-injection handling beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The primary purpose is front-loaded, and the safety-relevant note about data-vs-instructions is placed second, making the description easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with rich annotations and an output schema, the description covers the core purpose and an important behavioral trait. The main missing piece is guidance on when to choose this over verify_citation, but the tool is simple enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the burden of explaining the single 'text' parameter. It clarifies that the parameter should contain extracted document text and that it will be treated as data, which is useful but does not specify format, encoding, or other details an agent might need.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Periksa sitasi') and a clear resource ('teks hasil ekstraksi dokumen'), so an agent knows this analyzes citations in extracted document text. However, it does not explicitly distinguish itself from the sibling tool verify_citation, which likely has overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The phrase 'hasil ekstraksi dokumen' implies use with uploaded-document extraction output, but no exclusions or sibling comparisons are provided, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_legal_documentAmbil dokumen hukumARead-onlyIdempotent
Ambil metadata lengkap satu peraturan atau putusan MA dari rujukan persis.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| source | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds a bit of context by specifying that it returns complete metadata for a single regulation or MA decision, aligning with the read-only hints. It doesn't disclose error behavior or what happens for unknown refs, which is acceptable given the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, direct sentence in Indonesian that front-loads the core action ('Ambil metadata lengkap') then specifies the scope and condition. No filler or redundant content – every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only retrieval tool with an output schema and rich annotations, the description covers the core use case. But it leaves gaps: what counts as an 'exact reference' is undefined, and the distinction from search_legal_sources/lookup_article is only implicit. An agent would need schema enum and sibling names to fully contextualize.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only hints at 'ref' via 'rujukan persis' and leaves 'source' to be understood from enum values. No format for the exact reference is given, and no per-parameter explanations are provided, leaving the agent to guess what constitutes a valid citation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Ambil metadata lengkap' = get complete metadata), a specific resource type (one regulation or MA decision), and the condition ('dari rujukan persis' = from exact reference). It distinguishes from search-oriented siblings by emphasizing exact reference, though it doesn't name any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'dari rujukan persis' clearly indicates the tool is for exact-reference lookups, implying it should be used when a precise citation is available rather than for open-ended search. However, it doesn't explicitly state when not to use it or name alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_source_statusStatus sumber hukumARead-onlyIdempotent
Laporkan kesehatan dan freshness sumber agar hasil kosong tidak disalahartikan sebagai ketiadaan hukum.
| Name | Required | Description | Default |
|---|---|---|---|
| importantOnly | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive) and open-world semantics. The description adds the useful context that empty results should be checked against source health/freshness, but it does not add operational details such as pagination, response shape, or rate behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states what the tool does and why it matters, with no filler or repetition of schema/annotations. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema covering return values and annotations covering safety/open-world behavior, the description is largely complete for a simple status tool. The only notable gap is the unexplained 'importantOnly' parameter, but that is already penalized under parameter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the single optional boolean parameter 'importantOnly' is never mentioned in the description. The parameter name gives a weak hint, but the description does not clarify what 'important' means, how it affects output, or the default behavior. The description should have compensated for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Laporkan') and resource ('kesehatan dan freshness sumber'), clearly stating that the tool reports source health/freshness rather than performing legal search. It also explains the purpose: preventing empty results from being misinterpreted as absence of law. It does not explicitly name a sibling, so it loses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'agar hasil kosong tidak disalahartikan sebagai ketiadaan hukum' clearly signals when to use this tool: when a legal search returns empty and the agent should check whether source availability/freshness explains it. It gives clear context but no explicit when-not-to-use instructions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_articlePeriksa pasal persisARead-onlyIdempotent
Temukan bunyi pasal beserta halaman dan provenance; gagal tertutup bila frasa tidak ada atau rujukan ambigu.
| Name | Required | Description | Default |
|---|---|---|---|
| article | Yes | ||
| regulation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond annotations by disclosing that the tool fails closed when the phrase is absent or the reference is ambiguous, which is important for an agent deciding whether the result is reliable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the main action and then states the failure behavior. Every part earns its place, with no redundant filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter schema, the presence of an output schema, and annotations covering the safety profile, the description covers the core behavior well. However, it lacks explicit parameter semantics and guidance on selecting this tool over related siblings, so the overall context is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by clarifying parameter usage, but it does not define what forms 'regulation' and 'article' should take or how they relate to the 'frasa' (phrase) mentioned. The parameter names are intuitive but the description leaves the accepted input semantics ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: find the exact wording of an article ('bunyi pasal') along with page and provenance. It also distinguishes itself from search-oriented siblings by emphasizing exact-phrase lookup and fail-closed behavior on ambiguity or absence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when an exact article phrase or reference must be resolved with provenance, and it should fail closed if not found or ambiguous. However, it does not explicitly name alternative tools or state when not to use this tool, leaving the routing decision somewhat implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_sharia_issueRiset hukum ekonomi syariahARead-onlyIdempotent
Petakan topik atau akad ke fatwa DSN, hukum positif, KHES, dalil, dan putusan terkait.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, open-world, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds useful context by enumerating the mapped categories (DSN fatwa, hukum positif, KHES, dalil, putusan), but it does not disclose additional behavioral traits such as breadth of search or ranking of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the action verb and immediately specifies the full scope of what is mapped. There is no redundant or filler content; every word contributes to purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one required parameter and has an output schema, so the description only needs to convey what the mapping covers, which it does. Slight gaps remain around expected topic format and how results are organized, but these are not critical given the output schema presence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does clarify that the 'topic' parameter can also be an 'akad' (contract), which adds meaning beyond the schema, but it lacks examples, formatting hints, or guidance on how specific the topic should be.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb, 'Petakan' (map), and identifies the resource: topics or contracts (akad) mapped to DSN fatwa, positive law, KHES, dalil, and related rulings. This is clear and distinct from generic search tools, though it does not explicitly name sibling tools to draw a contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for mapping a topic or akad across multiple legal source categories, which signals when it is appropriate, but it provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jurisprudenceCari yurisprudensiBRead-onlyIdempotent
Cari putusan MA dan MK dengan status sumber per pengadilan dan kegagalan parsial yang terlihat.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | ||
| query | Yes | ||
| pageSize | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by saying source status is provided per court and that partial failures are visible, which helps an agent interpret incomplete responses. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the main action and target courts. It avoids filler, though 'kegagalan parsial yang terlihat' is awkwardly phrased and slightly reduces clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with an output schema and supportive annotations, the description is adequate but not complete. It conveys the core domain and partial-failure visibility, yet it leaves sibling selection and pageSize/query semantics to inference, which is a meaningful gap given the overlapping sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for missing parameter documentation. It only hints at the 'court' parameter by naming MA/MK and implies a query through 'Cari'; pageSize and query constraints are entirely absent, leaving the agent to infer their meaning from the schema names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Cari' = search) and names the resource ('putusan MA dan MK' = Supreme Court and Constitutional Court decisions), so an agent can identify this as a jurisprudence-search tool. It also adds scope via 'status sumber per pengadilan', though the phrase 'kegagalan parsial yang terlihat' is somewhat ambiguous and it does not explicitly contrast with search_legal_sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to prefer this tool over closely related siblings such as search_legal_sources or get_source_status. The distinctive features ('per pengadilan', 'kegagalan parsial yang terlihat') are implied rather than stated as selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_legal_sourcesCari sumber hukumBRead-onlyIdempotent
Cari metadata sumber resmi hukum nasional dan HES. Hasil pencarian belum menjadi bukti isi pasal.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| query | Yes | ||
| number | No | ||
| sources | No | ||
| pageSize | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral context beyond those hints: the search returns metadata, and results are not evidence of article content. This is a meaningful disclaimer that helps the agent set correct expectations about the tool's output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core purpose is front-loaded, and the limitation about search results not being proof of article content is stated compactly in the second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema means return-value documentation is not required, and the description gives the essential search limitation. However, the acronym HES is unexplained, the optional filters are not described, and no guidance is given on how to use the sources enum. This is a minimally viable definition but leaves clear gaps for an agent operating in an unfamiliar legal domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters, but it mentions none of query, year, number, sources, or pageSize. The phrase 'Cari metadata' only restates the general purpose and adds no meaning to the parameter fields. The agent receives no guidance on how to form a valid query beyond the schema's basic types and constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action and resource: 'Cari metadata sumber resmi hukum nasional dan HES' (search metadata of official national legal sources and HES). It clearly communicates that this is a metadata search, not a content retrieval tool. However, it does not explicitly differentiate itself from the sibling tool search_jurisprudence, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for finding legal source metadata rather than retrieving full content or proving article wording ('Hasil pencarian belum menjadi bukti isi pasal'). This gives the agent some basis for choosing it, but it never states when to use this tool instead of search_jurisprudence, lookup_article, or verify_citation, nor any exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_regulationTelusuri perubahan peraturanARead-onlyIdempotent
Periksa garis waktu keberlakuan atau jejak perubahan pasal tanpa menebak teks konsolidasi.
| Name | Required | Description | Default |
|---|---|---|---|
| asOf | No | ||
| article | No | ||
| regulation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds a meaningful behavioral boundary: it returns a timeline/trail and deliberately avoids guessing consolidated text.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire definition is one focused sentence with no filler. It front-loads the action and scope and ends with a meaningful limitation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations and output schema cover safety and return-shape concerns, and the core purpose is clear. However, the 0% parameter coverage and lack of explicit sibling routing leave gaps an agent would have to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only alludes to 'pasal' (article) and 'peraturan' (regulation). The 'asOf' parameter is never explained or clearly linked to the timeline concept, leaving its format and semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Periksa') and resource: the applicability timeline and article amendment trail. It also distinguishes itself from sibling tools by explicitly stating that it does not reconstruct consolidated text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrasing implies the tool is for history/timeline questions and warns against using it to obtain consolidated text, which is a useful contextual cue. However, it names no sibling tools and gives no explicit when-to-use/when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_citationVerifikasi kutipan hukumARead-onlyIdempotent
Periksa rujukan, status keberlakuan, pasal, putusan, dan fatwa yang disebut dalam draf.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds useful scope (which citation types are checked) but does not disclose any behavioral details beyond that, such as whether it queries live sources or how it handles ambiguous citations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the action verb and lists the key objects. Every word earns its place; there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, safe annotations, and a single parameter, so much context is already structured. The description adequately conveys what the tool does and what input is expected. It could be more explicit about when to use it versus siblings, but that gap is already scored under usage guidelines.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It partially does by implying that the 'text' parameter is the draft containing the citations ('dalam draf'), which gives the parameter contextual meaning. However, it never explicitly explains the parameter's expected content, format, or any constraints beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Periksa' / Check) and a specific resource: citations in a draft, enumerating the types checked (references, validity status, articles, court decisions, fatwas). It is clear and specific, and the unique focus on 'draf' (draft) helps distinguish it from siblings, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case: verifying legal citations mentioned in a draft. However, it gives no explicit guidance on when to choose this tool over siblings like get_source_status, lookup_article, or analyze_uploaded_document, and it does not state any exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v0.6.0- First observed
analyze_legal_problem - First observed
analyze_uploaded_document - First observed
get_legal_document - First observed
get_source_status - First observed
lookup_article - First observed
research_sharia_issue - First observed
search_jurisprudence - First observed
search_legal_sources - First observed
trace_regulation - First observed
verify_citation
TDQS
Most tools target distinct actions and resources: source health, metadata search, article lookup, citation verification, and regulatory tracing are clearly separated. The only mild boundary is verify_citation vs analyze_uploaded_document, both check citations in text, though one handles drafts and the other extracted uploads.
All tool names follow a consistent snake_case verb_noun pattern such as get_, search_, lookup_, verify_, trace_, research_, and analyze_. The verbs are descriptive and match each tool's purpose, with repeated analyze_ used consistently for the two analysis tools.
Ten tools is well within the ideal range for a legal-research server, and each tool covers a distinct step in the research and verification workflow. No tool feels redundant or decorative.
The tool set covers source health, metadata search, exact document retrieval, article lookup, citation verification, regulatory timeline tracing, jurisprudence search, sharia research, and evidence-based legal analysis. This provides an end-to-end legal research surface with no obvious dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Task-oriented MCP for Indonesian law: search, resolve citations, read laws, and MK decisions.
Resolve, search and verify legal citations against the official sources, with provenance.
Public Indian legal search MCP for Roop judgments, statutes, and corpus grounding.
- LegalizeOAuthdev.legalize
Official MCP connector for Legalize: read and search its whole open corpus, at any point in time.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables users to search, retrieve, and validate over 11,000 Philippine statutes and nearly 100,000 provisions through AI-powered legal research tools. It supports full-text search across Republic Acts, the Constitution, and various codes while providing cross-referencing and international law alignment capabilities.1-
- AlicenseNot gradedqualityDmaintenanceOpenLawMCP is an open-source legal AI research tool built to make AI-assisted legal research more reliable. A major problem with using AI for legal research is that it can give confident answers without showing whether the answer is grounded in real legal sources. For legal work, that creates a credibility problem. Users need answers that can be checked against actual legal material.155Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables semantic and keyword search over legal documents, conflict detection, and document overview, supporting Indonesian and English texts.-
- AlicenseNot gradedqualityAmaintenanceEnables searching, retrieving, and analyzing documents from over 30 Egyptian official, legal, academic, and news sources with MCP tools for timeline building, source comparison, and claim tracing.101MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/y3nnthekid-prog/hukum-id-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server