Source Library
Server Details
Search 15K rare pre-modern texts translated to English: philosophy, religion, science, literature.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- Embassy-of-the-Free-Mind/sourcelibrary-v2
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 10 of 10 tools scored. Lowest: 3.5/5.
Each tool has a clearly distinct purpose: browsing, semantic search, literal search, image search, reading, quoting, and feedback. No two tools overlap in function, and descriptions explain when to use each.
All tool names follow a consistent verb_noun pattern (e.g., get_book, search_library) using snake_case. The naming clearly indicates the action and resource, making tools predictable.
10 tools is ideal for a library MCP: covers browsing, multiple search modes, reading, and feedback without being excessive. Each tool serves a distinct need.
The tool set covers the full lifecycle of library exploration: discover (list_books, search_library), find passages (search_translations, search_concept, search_within_book), get overview (get_book), read details (get_book_text), cite (get_quote), and improve (submit_feedback). No obvious gaps.
Available Tools
12 toolsget_bookGet BookARead-onlyIdempotentInspect
READ PIPELINE step 1 — DISCOVER. START HERE for any named work or author. Returns the book's AI-generated summary, chapter list, edition metadata, DOI, page counts, and IIIF manifest. The summary is typically a multi-paragraph orientation covering the book's argument, structure, and significance — often answering the question without further searching. Then: get_book_text to read a chapter or page range (step 2), get_quote / get_quotes to lock specific pages with full citation apparatus (step 3). search_within_book locates passages inside this book.
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | Yes | The book ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, which cover safety. The description adds behavioral context: the summary is 'multi-paragraph... often answering the question without further searching' and lists return fields (summary, chapter list, edition metadata, etc.), which is helpful. No contradictions. Slight gap: does not mention pagination or error handling, but annotations cover the main concerns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and well-structured, with bold emphasis on key directives. It front-loads the purpose and then lists return values and workflow. Each sentence adds value, though the pipeline exposition could be slightly more compact. Still efficient for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no nested objects, no output schema), the description is fully adequate. It covers the tool's purpose, return content, and integration with sibling tools, leaving no ambiguity about what the tool does and how it fits into the broader system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (book_id) with 100% schema description coverage (schema states 'The book ID'). The description adds no additional semantic information about the parameter beyond what the schema already provides. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies as a discovery tool for books ('READ PIPELINE step 1 — DISCOVER. START HERE for any named work or author.') and specifies it returns summary, chapter list, edition metadata, DOI, page counts, and IIIF manifest. It distinguishes from siblings by explicitly naming subsequent tools (get_book_text, get_quote, etc.) and their roles in the pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'START HERE' and provides a step-by-step usage sequence: after get_book, use get_book_text to read a chapter or page range (step 2), then get_quote/get_quotes for citations (step 3), and search_within_book for passages. It also notes that the summary often answers the question without further searching, guiding when to stop.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_book_textRead Book TextARead-onlyIdempotentInspect
READ PIPELINE step 2 — READ. Read a book's text. Call get_book first (step 1) for the chapter list, then come here. Preferred: use the chapter param to read one chapter at a time (includes [Page N] markers for citation). Alternatively, use from/to for explicit page ranges (e.g. from=1 to=50). When you find passages worth quoting, hand the page numbers to get_quote / get_quotes (step 3) for verbatim text + a citation link. TRUNCATION: the response always includes truncated: true/false. When truncated=true, the truncation_note field gives the exact next from/to values to call — this means content was cut short by a page-budget limit, NOT that the book ended. An AI agent MUST NOT infer end-of-book from pages_returned alone; check truncated first. Budget limits apply to anonymous callers (~50 pages per 24h); sign in at sourcelibrary.org/auth/signin or get an API key at sourcelibrary.org/developers for higher limits.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End page number (inclusive). Recommended chunk size: 50 pages. If the response has truncated=true, use the next from/to from truncation_note. | |
| from | No | Start page number (inclusive). Use with to for explicit page ranges. | |
| part | No | Part number (1-based) for large chapters split into multiple parts | |
| format | No | json (default, structured with per-page fields) or plain (concatenated text with page markers) | |
| book_id | Yes | The book ID | |
| chapter | No | Chapter index (0-based). Preferred over from/to — returns pre-structured chapter text with embedded [Page N] markers. | |
| content | No | Which text to include: ocr (original language), translation (English), or both (default) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate safe read operation; description adds critical details about truncation behavior and budget limits, which are not in annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured, front-loaded with purpose and steps. Every sentence adds value, no redundancy. Efficient use of text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers usage order, param selection, truncation, and rate limits. Lacks explicit output structure details beyond truncated/truncation_note, but format param partially addresses this. Very good overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of params with descriptions. Description adds value by recommending chapter over from/to, specifying chunk size (50 pages), and explaining truncation_note usage. Provides context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Read a book's text.' and positions it as step 2 in a pipeline, distinguishing it from siblings like get_book (step 1) and get_quote/get_quotes (step 3).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidelines: call get_book first, prefer chapter param, handle truncation using truncation_note, hand page numbers to get_quote/get_quotes. Also mentions budget limits and authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteGet QuoteARead-onlyIdempotentInspect
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], p. [N]. [citation_link] For several pages of one book at once, use get_quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | Page number | |
| book_id | Yes | The book ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and idempotent. Description adds context on retrieving exact text, citation apparatus, and rendering format including citation_link. Minor gap on error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact but includes purpose, usage rule, and output formatting. Every sentence contributes value; slightly verbose with blockquote but acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, and output format. Siblings and annotations provide additional context. Missing error handling but adequate for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add new parameter details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it is for getting verbatim text of a single page with citation apparatus. Distinguishes from sibling get_quotes for multiple pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'ALWAYS use before putting text in quotation marks' and directs to get_quotes for multiple pages, providing clear when-to-use and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quotesGet Quotes (batch)ARead-onlyIdempotentInspect
READ PIPELINE step 3 — CITE, in batch. Get verbatim text + citation_link for SEVERAL pages of a single book in one round-trip, to assemble a multi-passage dossier. Specify either pages (an explicit array, e.g. [12, 40, 41]) or an inclusive from/to range. Max 25 pages per call. Each entry carries its own citation_link to present alongside the quote.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End page (inclusive) of a range. Use with from. | |
| from | No | Start page (inclusive) of a range. Use with to. | |
| pages | No | Explicit list of page numbers (e.g. [12, 40, 41]). Use this OR from/to. | |
| book_id | Yes | The book ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds that each entry carries its own citation_link and the 25-page limit, which are useful behavioral details beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with purpose, and every sentence adds unique value (purpose, usage modes, limit). No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by stating entries contain verbatim text and citation_link. It covers constraints and usage modes. Could be more explicit about what 'verbatim text' includes (e.g., page number), but sufficient for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter descriptions exist. The description adds semantic value by clarifying that from/to is inclusive, pages is exclusive from from/to, and the max 25 pages constraint. This aids correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves verbatim text and citation links for several pages of a single book in batch, and positions it as step 3 of a READ PIPELINE (CITE). It distinguishes from siblings like get_quote (single quote) and get_book_text (full text) by specifying batch and multi-passage dossier use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (to assemble a multi-passage dossier), how to specify pages (array or from/to range), and a max limit (25 pages). However, it does not explicitly state when not to use or mention alternative tools like get_quote for single quotes, though it is implied by the batch nature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_booksList BooksARead-onlyIdempotentInspect
BROWSES/FILTERS THE CATALOG by metadata (author/title fragment, language, category, translation recency) — no content/topic matching. PICK THIS to see WHAT EXISTS by an author or in a tradition. Returns books with title, author, language, year, and translation progress. → For a relevance-ranked topic search use search_library; for passages on a theme use search_translations (exact words) or search_concept (by meaning).
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | Max results (default 100, max 200) | |
| search | No | Filter by title or author | |
| category | No | ||
| language | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds value by specifying the return fields (title, author, language, year, translation progress) and the constraint of no content matching, without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences plus a line for alternatives. It is front-loaded with purpose, every sentence adds value, and there is no redundant or irrelevant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description lists return fields. It covers filtering scope and alternatives. It does not mention pagination defaults beyond the limit parameter (which has a schema description), but overall it is sufficiently complete for a simple list tool with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, but the description explains the filtering metadata (author/title, language, category, translation recency) and maps 'translation recency' to the sort parameter. It adds context for the two undocumented parameters (category and language) beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses/filters the catalog by metadata (author/title fragment, language, category, translation recency) and explicitly excludes content/topic matching. It distinguishes from siblings by naming alternative tools for different use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'PICK THIS to see WHAT EXISTS by an author or in a tradition.' It also tells when not to use it, pointing to search_library, search_translations, and search_concept for other needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_conceptSearch by ConceptARead-onlyIdempotentInspect
RETURNS QUOTABLE PASSAGES matched by MEANING (cosine similarity on Gemini embeddings, 768d) — paraphrases and adjacent phrasings match even with zero keyword overlap. PICK THIS when the modern term won't literally appear in historical texts — e.g. "distributed cognition" maps to passages about active intellect, art of memory, wax tablet metaphors; "social contract" maps to pre-Hobbesian discussions of consent and authority. → For exact words/distinctive terms use search_translations (cheaper, more precise); to list which BOOKS cover a topic use search_library; if the user named an author/work, get_book first (semantic search is expensive — reserve it for cross-corpus discovery). Similarity calibration: 0.70+ is a strong match, 0.55–0.70 is worth reading but verify, below 0.55 is mostly conceptual drift. Set max_per_book to diversify results across many books rather than cluster on one source. Each passage carries a snippet_type — quote only "translation" snippets, never "summary". Cross-cultural tip: for pre-modern or non-Western topics, also try source-tradition vocabulary — e.g. for seminal economy try "jing preservation" or "bindu yoga" or "istimnāʾ"; for masturbation try "mollities" (Latin) or "hastamaithuna" (Sanskrit) or "shouyin" (Chinese). The corpus is indexed via period translations that use tradition-internal terminology, so adjacent/euphemistic terms often surface material that modern English keywords miss.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max passages (default 15, max 50) | |
| query | Yes | A concept or natural-language description — full sentences are fine (e.g. "tools that extend the mind beyond the body"). Unlike search_translations, this does NOT require words that appear in the corpus. | |
| year_to | No | Restrict to books published in or before this year. | |
| language | No | Filter by a single original language | |
| languages | No | Filter to any of these languages, e.g. ["Sanskrit", "Arabic", "Chinese"]. Use instead of language when targeting multiple traditions. | |
| year_from | No | Restrict to books published in or after this year (filters out modern editions and translations). | |
| max_per_book | No | Cap on passages from any single book. Useful when one book dominates the conceptual neighborhood; set to 1–2 for diverse author/work coverage. | |
| exclude_languages | No | Exclude these languages, e.g. ["Latin", "French", "German", "English"] to surface non-Western sources. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds significant behavioral details: uses cosine similarity on Gemini embeddings, similarity calibration thresholds (0.70+ strong, 0.55-0.70 worth reading, below 0.55 conceptual drift), snippet_type restriction (only 'translation'), and cross-cultural search tips.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence adds value. It front-loads the core purpose, then provides usage guidance and tips. Could be slightly more concise, but efficient for the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a semantic search tool with 8 parameters and no output schema, the description covers key aspects: what it returns, when to use, similarity scoring, filtering options, and cross-cultural strategies. Missing details on exact output structure, but sufficient for an AI agent to use appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The description adds contextual value beyond schema: explains max_per_book for diversifying results, suggests using full sentences as query, gives examples of language filters (e.g., exclude_languages to surface non-Western). It also adds global behavioral notes (calibration, snippet type) that are not tied to specific parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns quotable passages matched by meaning using semantic similarity, and explicitly distinguishes it from siblings like search_translations, search_library, and get_book.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'PICK THIS when the modern term won't literally appear in historical texts' and gives examples. It also tells when to use alternatives like search_translations for exact words, search_library for book listing, and get_book for specific authors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_imagesSearch ImagesARead-onlyIdempotentInspect
Search 110,000+ historical illustrations, emblems, engravings, diagrams, AND 23,000+ artworks (paintings, prints, sculptures). Filter by type, subject, figure, symbol, year.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Image type (woodcut, engraving, emblem, diagram) | |
| limit | No | Max results (default 20, max 50) | |
| query | No | Text search (e.g., "ouroboros", "tree of life") | |
| figure | No | ||
| symbol | No | ||
| book_id | No | ||
| subject | No | ||
| year_to | No | ||
| year_from | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's 'Search' verb aligns. The description adds context like image counts but does not disclose pagination, rate limits, or auth requirements, which are not critical for a read-only search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys core functionality and key filtering options without superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and only basic annotations, the description provides a high-level view but lacks details on parameter combinations, result format, and limits (e.g., max results 50 is in schema but not repeated). Adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), but the description mentions several parameters (type, subject, figure, symbol, year) and provides example queries. However, parameters like 'book_id', 'year_from', 'year_to' are not explained, requiring users to infer from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search 110,000+ historical illustrations... artworks' with specific examples ('woodcut, engraving, emblem, diagram') and distinguishes from sibling tools like 'search_concept' and 'search_within_book' by focusing on image content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists filterable dimensions (type, subject, figure, symbol, year) and implies use for historical image searches. However, it does not explicitly state when not to use this tool or mention alternatives, though sibling tools provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_librarySearch LibraryARead-onlyIdempotentInspect
RETURNS A LIST OF BOOKS (works on a topic) — NOT passages. PICK THIS to discover which works exist on a subject. → For quotable text use search_translations (exact words) or search_concept (by meaning); if the user already named an author/work, call get_book directly (or list_books to find the ID) — the AI summary + chapter outline is usually the right first answer. Searches titles, authors, subjects, and (as a secondary signal) translated text. Query tips: single distinctive words or short phrases work best ("memory palace", "ouroboros"); quoted phrases match exactly. Each result includes total_matches (full count) + returned (this page) + offset for pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | Max results per page (default 10, max 100) | |
| query | Yes | Search query — prefer single distinctive concepts ("alchemy", "tree of life") over long natural-language phrases. Wrap in "double quotes" for exact phrase. | |
| offset | No | Pagination offset (use with limit to page through total_matches; default 0) | |
| year_to | No | Publication year range end | |
| language | No | Filter by original language (e.g., Latin, German, Greek) | |
| year_from | No | Publication year range start | |
| has_translation | No | Only return books with translations |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant context beyond annotations: describes search scope (titles, authors, subjects, translated text), pagination details (total_matches, offset), and explicitly says it does not return passages. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise single paragraph with front-loaded key message, all sentences add value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all critical aspects: what is returned, scope of search, usage guidance, pagination, and query tips. Adequate for an agent to use without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 88%, but description adds query tips (single words, quoted phrases) and pagination explanation that enhance understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a list of books, not passages, and distinguishes it from sibling tools like search_translations and get_book. It uses specific verbs and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to pick this tool (discover works on a subject) and when to use alternatives (search_translations, search_concept, get_book, list_books). Also provides query tips.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_translationsSearch TranslationsARead-onlyIdempotentInspect
RETURNS QUOTABLE PASSAGES (page-level snippets + citation URLs), matched by KEYWORD/term. PICK THIS to find a quote or textual evidence on a topic across the whole library. → If the modern word won't literally appear in historical texts, use search_concept (matches by meaning); to list which BOOKS cover a topic use search_library; to dig inside one known book use search_within_book; if the user named an author/work, get_book first (its AI summary is usually the right first read). Query tips: single distinctive terms ("memory palace", "wax tablet") work best; multi-word natural-English queries ("unity of the intellect") may return fewer results because matching is term-based, not phrase-based. Each snippet has a snippet_type — "translation"/"ocr" means it is a verbatim extract from the source text; "summary" means it is AI-generated description (do not quote those as the author's words). Response includes total_matches, returned, and offset for pagination. Cross-cultural tip: for pre-modern or non-Western topics, search source-tradition vocabulary rather than modern English terms — e.g. for seminal economy search "jing" or "bindu" or "istimnāʾ", not "semen retention"; for female homoeroticism search "tribade" or "sahq", not "lesbian". The corpus is indexed via period translations that use tradition-internal terminology.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per page (default 20, max 50) | |
| query | Yes | Search term — prefer single distinctive concepts ("harmony of the spheres", "active intellect") over long natural-language phrases. Multi-word queries match all terms (not phrase); wrap in "double quotes" for exact phrase. | |
| offset | No | Pagination offset (use with limit to page through total_matches; default 0) | |
| book_id | No | Search within a specific book | |
| year_to | No | ||
| language | No | Filter by a single original language | |
| languages | No | Filter to any of these languages, e.g. ["Sanskrit", "Arabic", "Chinese"]. Use instead of language when targeting multiple traditions. | |
| year_from | No | ||
| exclude_languages | No | Exclude these languages, e.g. ["Latin", "French", "German", "English"] to surface non-Western sources. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds snippet types (translation/ocr vs summary) and response structure (total_matches, returned, offset), providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with clear sections: purpose, alternatives, query tips, cross-cultural tips. It is slightly verbose but every sentence adds value; front-loading of purpose aids quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters (1 required) and no output schema, the description covers purpose, usage, parameter tips, response format, and cultural considerations. It is fairly complete, though output schema would further reduce ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 78% with descriptions for most parameters. Description adds query interpretation details (e.g., multi-word queries match all terms, double quotes for exact phrase) and language filtering guidance, enhancing parameter semantics significantly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns quotable passages (page-level snippets + citation URLs) matched by keyword/term. It distinguishes from siblings by naming search_concept, search_library, search_within_book, and get_book as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (find quotes/evidence) and when not (e.g., use search_concept if modern word won't appear). Provides query tips and cross-cultural advice for term selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_within_bookSearch Within BookARead-onlyIdempotentInspect
SEARCHES INSIDE ONE BOOK (requires book_id) — runs keyword AND scoped semantic search in parallel over that book's pages and merges them, so it handles both literal terms ("ouroboros") and conceptual queries ("the marriage of opposites"). PICK THIS once you have a candidate book and want every relevant page in it. → To find the book first, use search_library or search_concept (then pass its book_id here). Faster than a global re-search because it's scoped to one book's 100-500 pages. Returns OCR and translation snippets with page numbers, ready to cite.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| book_id | Yes | The book ID to search within |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds that it runs parallel keyword and semantic search, merges results, and returns OCR and translation snippets with page numbers. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with arrows and line breaks, front-loads the core action. Each sentence adds value, though slightly verbose. Could be more concise without losing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains return values (OCR/translation snippets with page numbers). Covers internal process, speed, and scope. Complete for a 2-parameter tool with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal parameter-specific detail beyond the schema; it implies query can be literal or conceptual, but this is more about behavior than parameter semantics. No additional syntax or constraints are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches inside one book, requires book_id, runs keyword and semantic search in parallel, and merges results. It distinguishes from siblings by specifying when to use it (after obtaining a candidate book) and contrasts with global tools like search_library.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'PICK THIS once you have a candidate book' and 'To find the book first, use search_library or search_concept (then pass its book_id here).' Also notes it's faster than global re-search, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedbackSubmit FeedbackAInspect
Submit feedback, bug reports, or feature requests to the Source Library team.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| No | |||
| message | Yes | Your feedback (2-5000 chars) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate not read-only and not destructive, and the description aligns with 'submit' as a write operation. However, no additional behavioral context like authentication needs or data handling is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple feedback tool with no output schema and low complexity, the description is sufficient but could benefit from mentioning any constraints or response behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema coverage (only 'message' has a description), the description does not add meaning for other parameters like 'name' or 'email', failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Submit feedback, bug reports, or feature requests to the Source Library team,' using a specific verb and resource, and clearly distinguishes from sibling tools which are all read/search oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for providing feedback, but lacks explicit guidance on when to use this tool versus alternatives or any prerequisites, such as authentication or rate limits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!