Skip to main content
Glama

Search books

search_books
Read-onlyIdempotent

Search the catalogue of Library of Alexandria Press by words from a title or an author's name, or by a topic word, in any language of the catalogue (Chinese in simplified and traditional characters). Returns up to 8 titles with id, title, subtitle, author, language, whether print editions are available, and the address of the title page on libraryofalexandria.com. Pass the asker's language so titles and authors come back in it.

Input Schema

NameRequiredDescriptionDefault
limitNoNumber of titles to return, 1 to 8. Default 8.
queryYesWords from a title or an author's name, or a topic word, in any language. Example: 'Moby Dick', 'Dostoevsky', 'war strategy'.
languageNoLanguage of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / language / description
      Previous value: -"Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."New value: +"Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
    • changedInput schema / properties / language / enum
      Previous value: -[
      -  "en",
      -  "es",
      -  "de",
      -  "nl",
      -  "fr",
      -  "it",
      -  "pt-BR",
      -  "ru",
      -  "zh-CN",
      -  "zh-TW",
      -  "ja",
      -  "ko",
      -  "pl",
      -  "ar",
      -  "hi",
      -  "id"
      -]New value: +[
      +  "en",
      +  "es",
      +  "de",
      +  "nl",
      +  "fr",
      +  "it",
      +  "pt-BR",
      +  "ru",
      +  "zh-CN",
      +  "zh-TW",
      +  "ja",
      +  "ko",
      +  "pl",
      +  "ar",
      +  "hi",
      +  "id",
      +  "ca"
      +]
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, closed-world. The description adds real context beyond them: a hard cap of 8 results, the field set returned (id, title, subtitle, author, language, print availability, page address), and that output language follows the asker. It does not discuss ranking, empty-result behaviour, or partial-match semantics.

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?

Two sentences, front-loaded with the searchable scope before the return description. Dense but readable; the enumerations of languages and returned fields make it longer than strictly necessary, yet each clause carries information an agent needs given there is no output schema.

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 compensates by listing the returned fields, and it covers the query, language and result cap. Missing only the edge cases — what a zero-hit response looks like and how results are ordered — which are minor for a catalogue search.

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%, so the baseline is 3. The description earns an extra point by clarifying that the query accepts any catalogue language (with a note on Chinese scripts) and by reframing 'language' as the asker's language that drives the returned titles/authors — semantics beyond the raw enum list.

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 (search the catalogue of Library of Alexandria Press) and the exact matching semantics — title words, author name, or topic word, in any catalogue language including simplified/traditional Chinese. It also names the returned fields, which further distinguishes it from siblings like get_book or search_in_book.

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?

It establishes clear context: use it when the asker supplies words from a title, an author name, or a topic. It does not explicitly exclude or name alternatives (browse_collection, search_in_book, recommend_classics), so routing between siblings still requires 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.