Skip to main content
Glama

list_full_text

Read-onlyIdempotent

Returns the plain-text body of documents (id, uuid, version, text). This is the plain-text read: wording only, with no Markdown headings or lists, and no citation metadata.

When to use: When you need the body as plain text. Examples: 'quote the operative wording of this Belgian statute', 'give me the raw text of uuid …'. Pass uuid when you already have one document; otherwise filter by title and paginate. When not: For structured Markdown that keeps headings and lists, use list_markdown. For a complete citation bundle in one call — metadata, permanent legal link, citation template, body, and a temporary source-file URL — use evidence_pull (example: 'show me the source'). For only a temporary URL to the original PDF or source file, use document_presigned_url (example: 'download the original file'). To browse titles and dates without the body, use list_documents or search. For one historical version's metadata plus both bodies, use document_version. Do not call without an iso from list_jurisdictions. Skip if you already have this plain text for the same iso, uuid, and filters.

Parameters: iso (required) is a jurisdiction code from list_jurisdictions and is uppercased before the query (e.g. BE, or US_CA for a state). uuid is optional; when set, the call targets that document. title is an optional case-insensitive substring. with_empty_data defaults to false and omits documents that have no stored plain text; true includes them with text null. limit defaults to 20 and is capped at 100. include_total adds pagination.total_count when true. Other optional filters match the input schema and are combined with AND.

Behavior: Read-only SELECT plus a read of the stored text. Does not create, update, or delete records, files, or credentials. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads current subscription data and the stored plain text. An archived uuid returns an archived error instead of the body.

Returns: A page of {id, uuid, version, text} where text is plain text. Empty data means nothing matched, or the iso is outside the subscription.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "iso": "<iso>"
    },
    "name": "list_full_text"
  }
}

Input Schema

NameRequiredDescriptionDefault
isoYesFilter by Jurisdiction ISO code (e.g. 'US')
urlNoFilter by document URL
langNoExact portal language name, for example English. Filters the portal, not the document language.
uuidNoFilter by UUID. Leave blank to apply no UUID filter.
limitNoPage size. Default 20, maximum 100.
titleNoFilter by title
portalNoFilter by portal name
statusNoFilter by document status
next_idNodocument id of the first row of the next page, from pagination.next_id. Omit on the first page.
portal_idNoFilter by portal ID
is_repealedNoFilter by repealed documents. default value is false
last_updatedNoYYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter.
crawling_dateNoYYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter.
include_totalNoInclude total count in response
effective_dateNoYYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter.
last_amendmentNoYYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter.
expiration_dateNoYYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter.
with_empty_dataNoReturn empty data if no full text is found
publication_dateNoYYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter.
date_of_enactmentNoYYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter.

Output Schema

NameRequiredDescriptionDefault
dataYesPlain-text bodies for matching documents. Empty if none match. This is not Markdown, not a citation bundle, and not a source-file URL.
messageYesResult message
paginationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, yet the description still adds real context: OAuth/Bearer auth with 401 conditions, no MCP-layer rate limits, "safe to retry", no caching, and the specific edge case that an archived uuid returns an archived error rather than a body. It also states what the call does not do (no create/update/delete), which is more than the annotations convey.

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-loaded with the return contract, then clearly labeled "When to use", "When not", "Parameters", "Behavior", "Returns" sections — easy to scan. It is long and a few clauses are redundant with the schema (limit's default and cap are stated verbatim), but almost every sentence carries routing or behavioral information.

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 20-parameter, open-world read tool this covers everything an agent needs: required jurisdiction code and its origin, narrowing strategy, pagination, empty-result interpretation ("nothing matched, or the iso is outside the subscription"), auth, retry safety, and archived-document failure mode. It even summarizes returns despite an output schema existing, which is helpful rather than padding.

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

Parameters5/5

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

Schema coverage is 100%, so baseline is 3, but the description earns more: it explains that iso is uppercased before the query and accepts state codes like US_CA, gives the uuid-vs-title-plus-pagination strategy, clarifies with_empty_data semantics (documents included with text null), and restates limit's 20/100 defaults as operational guidance. These points add meaning beyond the field-level schema strings, notably the uppercasing behavior and the uuid narrowing.

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 and resource plus the exact return shape: "Returns the plain-text body of documents (id, uuid, version, text)", then pins the distinction down ("wording only, with no Markdown headings or lists, and no citation metadata"). This separates it cleanly from list_markdown and evidence_pull without opening either schema.

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

Usage Guidelines5/5

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

Has an explicit "When to use" with concrete example utterances, an explicit "When not" that routes to list_markdown, evidence_pull, document_presigned_url, list_documents/search, and document_version, plus a prerequisite ("Do not call without an iso from list_jurisdictions") and an idempotency skip rule. Every alternative sibling an agent might confuse this with is named with the condition that selects it.

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.