Skip to main content
Glama

Read a law's text

qv_law
Read-onlyIdempotent

Read the full text of an Iranian law, regulation, court vote or opinion as articles and sections, or fetch a single article, with paging, dates and optional interpretive opinions.

Instructions

Read the full text of a law, regulation, court vote or opinion as sections (articles, notes, headings).

Each section has id, label ('ماده 10', 'تبصره 1'), text, status ('amended', 'repealed', 'opinion'; absent when plain) and history: true when qv_article_history can show its amendments. Long laws are paged by offset/next_offset within max_chars; the civil code has about 1,500 sections and takes about 15 s to load the first time. Get the id from qv_search. Use article to answer "what does article N say".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idsYesLaw id (IDS) from qv_search, digits only, e.g. '12021850837713548188'.
dateNoJalali 'YYYY/MM/DD': the text as it stood on that date (before later amendments).
offsetNoSkip this many sections (use next_offset from the last call).
articleNoOnly this article with its notes, e.g. '10', 'ماده 10', '10 مکرر'.
max_charsNoText budget per call.
with_opinionsNoAdd interpretive opinions (نظر تفسیری) as extra sections.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds material context beyond them: first-call latency (~15 s) and scale (~1,500 sections in the civil code), pagination semantics via offset/next_offset bounded by max_chars, and the per-section field structure (`id`, `label`, `text`, `status`, `history`). With no output schema, this is exactly the burden the description should carry.

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

Conciseness5/5

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

Front-loads the core purpose, then layers return structure, paging/perf, and sourcing in descending priority. Every sentence carries actionable information; no filler or restatement of the name.

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?

For a read tool with six parameters, no output schema, and rich annotations, the description covers purpose, sourcing, pagination, latency, and return shape. An agent has everything needed to call it correctly and interpret the result.

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 would be 3, but the description earns extra value: it explains the paging contract between `offset` and `next_offset` within `max_chars`, and ties `article` to the 'what does article N say' question, and shows example labels ('ماده 10', 'تبصره 1') that clarify the label format the id must match.

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?

Names a specific verb and resource ('Read the full text of a law, regulation, court vote or opinion') and immediately scopes the output shape ('as sections'). It is distinguishable from siblings: qv_search supplies the id, qv_article_history supplies amendments, and qv_law supplies the text itself.

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?

Gives clear routing ('Get the id from qv_search') and a concrete use case for the `article` parameter ('to answer "what does article N say"'), plus points at qv_article_history via the `history: true` flag. It lacks an explicit statement of when NOT to use this tool versus qv_law_info or qv_lookup, so it stops short of full when/when-not guidance.

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