Skip to main content
Glama

ReadingRate

Search books

search_books
Read-onlyIdempotent

Searches the ReadingRate book catalog by title, author, genre, theme or difficulty, and shows the results as book cards. Each result carries a difficulty score from 0 to 100, built from nine scored dimensions of how hard the prose and the meaning are.

Use when the user asks to find books by an author, on a subject, in a genre, or within a difficulty range. For one book's full analysis, use get_book_details. For prize winners, use get_award_winners. For many titles at once, such as a pasted list or a photographed shelf, use lookup_books_batch. Results do not say whether the user has read a book; get_reading_history does.

Returns: title, authors, publication year, difficulty score, literary regard score, genres, description, awards, cover image.

Examples:

  • {"query": "Toni Morrison"}

  • {"genres": ["Literary Fiction"], "difficulty_max": 50}

  • {"query": "war", "genres": ["Historical Fiction"], "difficulty_min": 40, "difficulty_max": 70}

  • {"query": "Преступление и наказание", "locale": "ru"}: answer in Russian using title_localized and description_localized. Difficulty scores do not depend on language.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of results (default 10, max 50)
queryNoWords from a title or an author's name. Close spellings match.
genresNoOnly books in any of these genres
localeNoThe reader's language. "ru" adds each book's Russian title and description (title_localized, description_localized) beside the English ones. Set automatically when the query is in Cyrillic.
themesNoOnly books with any of these themes, e.g. 'grief', 'war', 'identity', 'memory'
difficulty_maxNoHighest difficulty score to include (0-100; higher is harder to read)
difficulty_minNoLowest difficulty score to include (0-100; lower is easier to read)

Output Schema

NameRequiredDescriptionDefault
booksYes
countYes
localeNoLocale the localized fields are in

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, closed-world and non-destructive, so safety is covered; the description adds real behavioral context beyond that — results are presented as cards, difficulty is a 0-100 composite of nine prose/meaning dimensions, and results carry no indication of whether the user has read the book. It stops short of describing ordering, empty-result behavior, or what happens when limit exceeds the catalog, leaving minor gaps.

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 purpose, then usage routing, then returns, then examples — a clean progression with no filler sentences. The explicit 'Returns:' enumeration is partly redundant given an output schema exists, which keeps it off a 5.

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?

For a 7-parameter, zero-required search tool with an output schema, the description supplies everything needed to call it correctly, including the read-history caveat that prevents a wrong inference from results. The only room left is behavioral detail on ordering and pagination past the 50-item cap.

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, but the four worked examples demonstrate how parameters combine (query + genres + a difficulty band, and genre-only with difficulty_max), which the schema cannot express. The Russian example also clarifies the cross-cutting rule that localized fields are added while difficulty scores stay language-independent, going beyond the schema's note about Cyrillic auto-detection.

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 (searches) plus the resource (ReadingRate book catalog) and enumerates the searchable facets (title, author, genre, theme, difficulty). It also names the concrete output shape (book cards with a 0-100 difficulty score built from nine dimensions), so an agent can distinguish it from content search, award lookups, and batch lookups without opening a 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 an explicit when-to-use clause ('asks to find books by an author, on a subject, in a genre, or within a difficulty range') and then routes four alternatives by condition: get_book_details for one book's analysis, get_award_winners for prizes, lookup_books_batch for pasted lists or photographed shelves, get_reading_history for read status. This is the full when/when-not/alternatives pattern.

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.