Skip to main content
Glama

Get Quote

get_quote
Read-onlyIdempotent

READ PIPELINE step 3 — CITE. Get the exact verbatim text of a single page plus its citation apparatus. ALWAYS use before putting text in quotation marks. The response headline is citation_link (the stable sourcelibrary.org/q/… shortlink) — present it to the user alongside the quote. Render as:

[exact translation text, verbatim] — [Author], [citation.locator]. [citation_link] PAGE BREAKS: this corpus is paginated from physical leaves, and nearly one prose page-boundary in five has a sentence running across it — sometimes a word split by a hyphen ("…our move-" / "movements…"). A page that opens or breaks off mid-sentence still reads as complete prose and still carries a perfectly valid citation, so check the continuity field on every response BEFORE quoting: if continues_on_next or continues_from_previous is true, call again with context: true and quote the whole sentence. Quoting a fragment as though it were the author's complete thought is a misattribution even when the page number is right. NON-LATIN SCRIPTS: where the page is Greek, Hebrew, Arabic, Sanskrit, Cyrillic and so on, the response also carries romanized — the romanization of the original — so the citation can be shown in three layers: original → romanized → translation → citation_link. It is AI-generated reading apparatus, not a transcription; quote the source from original or translation, never from romanized. Absent on Latin-script pages and on non-Latin pages not yet romanized. ENGLISH ORIGINALS: where the leaf is already English there is no translation and none is needed — the response omits translation, sets text_source: "ocr_original", and the verbatim text is original (with a transcription_note). Quote it as the source's own words, never as a translation, and expect period spelling and long-s (ſ) — it is an uncorrected transcription of the scan. text_source is on every response (translation otherwise), so branch on it rather than guessing from pages_translated, which is 0 for an English-original book by construction. TRANSLATED EDITIONS: original means the text printed on this leaf, which on a translated edition is the TRANSLATOR's language, not the author's. When the response carries translation_note, the chain is stated there — attribute the wording to the translator and do not offer the passage as evidence of what the author wrote in their own tongue. Call list_editions to find an original-language witness of the same work. For several pages of one book at once, use get_quotes.

Input Schema

NameRequiredDescriptionDefault
langNoISO code of the EDITION to quote, e.g. "es". Default "en". `quote.lang` on every response says which edition was actually served — where no such edition exists the English translation comes back with lang: "en" and a lang_note, and it must not be presented as the requested edition. The citation link follows the edition served. A page with no translation can be quoted in its OWN language: pass that code (e.g. "de" on a German page; a no_translation answer names it as original_lang) and the transcription comes back as `original` with text_source: "ocr_original" and lang set to that code: the source's own words, never ours (#7458).
pageYesPage number
book_idYesThe book ID
contextNoAlso return the full text of the previous and next pages, so a sentence spanning the page break can be read whole. Set this when continuity.continues_from_previous or continues_on_next came back true on an earlier call, or whenever you are about to quote near a page edge.
include_imageNoAlso return the scan of the cited leaf as an inline image (display size, ≤1200px). Set this when the user would benefit from SEEING the page — an illustrated leaf, a title page, a diagram, disputed OCR — or asks to see it. The image arrives as an MCP image block you can view and the user sees rendered.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / lang / description
      Previous value: -"ISO code of the EDITION to quote, e.g. \"es\". Default \"en\". `quote.lang` on every response says which edition was actually served — where no such edition exists the English translation comes back with lang: \"en\" and a lang_note, and it must not be presented as the requested edition. The citation link follows the edition served."New value: +"ISO code of the EDITION to quote, e.g. \"es\". Default \"en\". `quote.lang` on every response says which edition was actually served — where no such edition exists the English translation comes back with lang: \"en\" and a lang_note, and it must not be presented as the requested edition. The citation link follows the edition served. A page with no translation can be quoted in its OWN language: pass that code (e.g. \"de\" on a German page; a no_translation answer names it as original_lang) and the transcription comes back as `original` with text_source: \"ocr_original\" and lang set to that code: the source's own words, never ours (#7458)."
  2. Changed1 schema field changed
    • addedInput schema / properties / lang
      Added value: +{
      +  "description": "ISO code of the EDITION to quote, e.g. \"es\". Default \"en\". `quote.lang` on every response says which edition was actually served — where no such edition exists the English translation comes back with lang: \"en\" and a lang_note, and it must not be presented as the requested edition. The citation link follows the edition served.",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / include_image
      Added value: +{
      +  "description": "Also return the scan of the cited leaf as an inline image (display size, ≤1200px). Set this when the user would benefit from SEEING the page — an illustrated leaf, a title page, a diagram, disputed OCR — or asks to see it. The image arrives as an MCP image block you can view and the user sees rendered.",
      +  "type": "boolean"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Also return the full text of the previous and next pages, so a sentence spanning the page break can be read whole. Set this when continuity.continues_from_previous or continues_on_next came back true on an earlier call, or whenever you are about to quote near a page edge.",
      +  "type": "boolean"
      +}
  5. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only establish the read-only/idempotent profile, and the description layers on substantial behavior: the citation_link headline, page-break continuity risk (~1 in 5 prose boundaries, hyphen splits), text_source branching including the OCR/long-s caveat for English originals, romanized being apparatus not transcription, and lang fallback with lang_note. It also warns about a concrete failure mode (quoting a fragment as a complete thought = misattribution).

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?

It is long (~450 words) but front-loaded with the identifying clause and organized under clear headers (PAGE BREAKS, NON-LATIN SCRIPTS, ENGLISH ORIGINALS, TRANSLATED EDITIONS). Almost every line carries operative instruction; the mild cost is repetition of the text_source/lang rules already present in the schema.

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?

No output schema exists, so the description must carry the return contract — and it does: citation_link, citation.locator, continuity fields, text_source, translation/translation_note, romanized, and a concrete render template. It is complete enough for an agent to format a correct citation on the first call.

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% and the parameter descriptions are already detailed (lang especially), so the baseline is 3. The description adds workflow meaning on top: context is tied to the continuity fields and 'about to quote near a page edge', and include_image is scoped to when the user should SEE the leaf. Some of the lang/text_source content duplicates the schema, keeping this below a 5.

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 ('Get the exact verbatim text of a single page plus its citation apparatus') and frames it within a named pipeline step (READ step 3 — CITE). It explicitly distinguishes itself from the sibling get_quotes ('For several pages of one book at once, use get_quotes') and from list_editions, so an agent can route without opening any 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?

Gives a hard trigger ('ALWAYS use before putting text in quotation marks') plus conditional branches: call again with context: true when continuity flags are true, use get_quotes for multi-page, call list_editions for an original-language witness. When-to-use, when-to-recurse, and alternatives are all explicit.

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.