Skip to main content
Glama
QuestLaw Library MCP

QuestLaw Library MCP

Official
by QuestLaw

Read captured source text

get_source_text
Read-onlyIdempotent

Fetch captured statute, regulation, or opinion text by document ID. Filter sections by query, outline structure, or cap returned characters for targeted legal reading.

Instructions

The captured text of a statute, regulation, court rule, or opinion. Document ids come from get_case (capturedSources) or a search_library source hit. It does not have to arrive whole: outline lists the sections and their sizes, query returns only the sections matching it, maxChars caps how much text comes back, and offset pages through sections. Follow readText for exact complete text or each section's readMore for its clipped tail; nextOffset alone does not cover clipped text. Query uses the same phrase, shorthand, and word-form rules as search_library. Use matchedPassage.readMatch to read around a late match. Stored text does not require a manual download.

Input Schema

NameRequiredDescriptionDefault
limitNoMax sections, default 50.
queryNoReturn only the sections that match these words, most matching first. Use it for "the part about X" instead of reading the whole document.
offsetNoFirst section to return, default 0.
outlineNoStructure only: every section's index, label, heading, and length, with no text. The cheapest way to find the part worth reading.
maxCharsNoCap the text returned across all sections; the last one is clipped and says so. An excerpt, rather than all-or-nothing.
documentIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.2

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, so the description's job is to add operational traits — and it does: results may be partial, clipping is signalled, nextOffset alone does not recover clipped tails, and no manual download is needed. It stops short of describing pagination/cursor semantics or ordering guarantees beyond 'most matching first' for query.

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?

Dense and front-loaded — the identity of the resource comes first, then routing advice — with no filler sentences. It is a single run-on paragraph of chained clauses, which costs some scannability for a six-parameter tool.

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

Completeness4/5

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

With no output schema, the description carries the return-value burden and does it reasonably by signposting readText, readMore, nextOffset and matchedPassage.readMatch as the places to continue reading. The response envelope itself (field names, section object shape) is never laid out, which is the main residual gap.

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 already 83%, yet the description adds genuine cross-parameter meaning the schema cannot: how outline, query, maxChars and offset compose, that query follows the same phrase/shorthand/word-form rules as search_library, and that nextOffset does not cover clipped text. The limit parameter is not addressed in the description, but the schema covers it.

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

Purpose4/5

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

The opening sentence names the exact resource (captured text of a statute, regulation, court rule, or opinion) and the ID provenance is spelled out (get_case capturedSources or a search_library source hit). It does not, however, distinguish itself from the sibling read_library_text, so an agent cannot tell from this text alone which text-reader to pick.

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?

Strong in-tool routing: outline for structure, query for 'the part about X', maxChars for an excerpt, offset to page, readText/readMore to finish clipped text. What is missing is sibling-level guidance — no explicit statement of when to use this instead of read_library_text or library_overview.

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