Skip to main content
Glama

Pasal.id — Indonesian Law

Read Law

read_law
Read-onlyIdempotent

WHEN a law is known and text is needed, read by forgiving selector strings such as 'pasal 27', 'pasal 27-30', 'pasal 13-16, pasal 27-37, pasal 40-41', 'bab III', 'menimbang', 'lampiran', or 'all'. For parsed-text gaps, 'source find Pasal 65' locates standalone headings in the canonical archived PDF (up to 100 physical pages per scan); 'source pages 29' reads up to 5 physical PDF pages. Stored node page hints are unverified. Budget: max_chars default 30000, hard cap 100000, cursor pagination. law.source has the official link; if source.verified is false, say quoted text is unverified.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lawYesCanonical law_id or citation string accepted by resolve_law.
versiNoasli (default) = naskah asli yang diindeks; terkini = versi konsolidasi tidak resmi, hanya jika law.consolidation.available.asli
cursorNoCursor from a prior truncated response.
selectorYesSelector string: all, pasal 27, pasal 27-30, pasal 13-16, pasal 27-37, pasal 40-41 (multi-range), bab III, menimbang, mengingat, penjelasan umum, penjelasan pasal 5, lampiran; source find Pasal 65, source find penjelasan Pasal 65, source pages 29 (1-based physical PDF pages, at most 5).
max_charsNoMaximum aggregate characters. Default 30000, minimum 1000, hard cap 100000.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / versi / enum
      Added value: +[
      +  "asli",
      +  "terkini"
      +]
  2. Changed1 schema field changed
    • addedInput schema / properties / versi
      Added value: +{
      +  "default": "asli",
      +  "description": "asli (default) = naskah asli yang diindeks; terkini = versi konsolidasi tidak resmi, hanya jika law.consolidation.available.",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / selector / description
      Previous value: -"Selector string: all, pasal 27, pasal 27-30, pasal 13-16, pasal 27-37, pasal 40-41 (multi-range), bab III, menimbang, mengingat, penjelasan umum, penjelasan pasal 5, lampiran."New value: +"Selector string: all, pasal 27, pasal 27-30, pasal 13-16, pasal 27-37, pasal 40-41 (multi-range), bab III, menimbang, mengingat, penjelasan umum, penjelasan pasal 5, lampiran; source find Pasal 65, source find penjelasan Pasal 65, source pages 29 (1-based physical PDF pages, at most 5)."
  4. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the safety profile (readOnly/idempotent), while the description adds operational context the annotations cannot: scan limits (100 physical pages, 5 pages for source pages), that stored node page hints are unverified, the pagination cursor, character budgets, and the instruction to flag text as unverified when source.verified is false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the WHEN precondition and the primary selector contract, then layers fallback behavior and budget caveats. Efficient overall, though the selector enumeration is dense and partially repeats the schema's selector list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described; the description instead supplies everything else an agent needs — version/consolidation relevance via schema, verification caveat, pagination, and hard character caps. Nothing material is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds behavioral meaning beyond the schema: the 'source find'/'source pages' selector modes and their per-scan caps, the practical budget behavior of max_chars, and cursor-based continuation across truncated responses.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('read' a 'law') and the precondition ('WHEN a law is known and text is needed'), which cleanly distinguishes it from resolve_law (used when the law is not yet known) and get_law_context. Selector examples make the retrieval unit unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN a law is known and text is needed' clause gives clear usage context and implicitly routes unknown-law cases to resolve_law. It also explains the fallback paths ('source find', 'source pages') for parsed-text gaps, though it never names sibling tools explicitly to force the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.