Skip to main content
Glama

Search Library

search_library
Read-onlyIdempotent

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. To answer "do you hold X?" call check_duplicate, not this: a ranked list is not a holdings check.

Input Schema

NameRequiredDescriptionDefault
sortNo
limitNoMax results per page (default 10, max 100)
queryYesSearch query — prefer single distinctive concepts ("alchemy", "tree of life") over long natural-language phrases. Wrap in "double quotes" for exact phrase.
offsetNoPagination offset (use with limit to page through total_matches; default 0)
year_toNoPublication year range end
languageNoFilter by original language (e.g., Latin, German, Greek)
year_fromNoPublication year range start
has_translationNoOnly return books with translations

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/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, closed-world), and the description adds genuinely new behavioral detail: what fields are searched (titles, authors, subjects, secondarily translated text) and the shape of results (total_matches, returned, offset for pagination). It also warns that results are ranked rather than exhaustive holdings, which prevents a real misuse pattern.

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?

The most important fact — books, not passages — is front-loaded and capitalized, and the remaining sentences each carry a distinct routing rule or query tip. It is dense with arrows and parentheticals, but nothing is filler; the density is the only cost.

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 filtered search tool with no output schema and 8 parameters, the description supplies the missing return-value contract (total_matches, returned, offset) and explicit sibling routing. An agent has everything needed to call it and interpret the response correctly.

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 88%, so parameters are already well documented; the description reinforces query syntax with concrete examples ('memory palace', 'ouroboros') and explains quoting for exact phrases. It also clarifies the offset/limit relationship to total_matches in the results, which the schema alone does not connect. Sort, year range, language, and has_translation filters are left to the schema, which is acceptable at this coverage level.

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 ('RETURNS A LIST OF BOOKS (works on a topic) — NOT passages') and immediately contrasts with the passage-level siblings. An agent can distinguish this from search_translations, search_concept, and get_book 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 explicit routing rules: use search_translations for quotable exact words, search_concept for meaning, get_book when an author/work is already named, list_books to find IDs, and check_duplicate for holdings questions. It also states the negative case ('a ranked list is not a holdings check'), leaving nothing to inference.

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.