Skip to main content
Glama

Catalo.ai - Book Discovery

explore_books

Destructive

Search and filter fiction books. Filters are far reaching, including things like genre, mood, theme, pacing and more. Call list_filters first to discover available filter identifiers and their valid values. Returns a list of books matching the criteria. Always call list_filters() before calling explore_books(). %!(EXTRA string=https://catalo.ai/details/:id)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (defaults to 50, you are encouraged to set this lower if you are searching for a specific book, or increase it if you are searching for a large number of books. Max 100.)
queryNoText search query (searches title, author, or story depending on query_segment)
seriesNoFilter books by whether they are part of a series, possible values: 'First in Series or Standalone', 'Part of Series'
filtersNoJSON object mapping filter identifiers to values. Call list_filters to see all available filters and their valid values. Selection filters accept a string or array of strings (e.g. {"genre": ["Fantasy", "Mystery"], "mood": "Dark"}). Range filters accept a "min,max" string (e.g. {"pages": "200,400", "year": "2000,2024"}). Prefix a value with "!" to exclude it (e.g. {"triggers": ["!Violence"]}).
includeNoJSON object mapping filter identifiers to inclusion criteria: "Any" (book must have at least one selected value) or "All" (book must have all selected values). Only relevant for multi-value selection filters. Example: {"genre": "Any", "theme": "All"}
similarNoComma-separated book IDs to find similar books
bookmarkNoFilter books by whether they are bookmarked by the user, possible values: 'want', 'read', 'dropped'
query_segmentNoSearch scope: 'Title', 'Author', 'Story', 'All'

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.2/5.0
Behavior2/5

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

Annotations declare destructiveHint=true, which is unusual for a search operation, but the description offers no explanation for this destructive behavior or what side effects occur. Mentions 'Returns a list of books' but provides no details on result structure, pagination behavior, or the implications of openWorldHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Contains redundant instruction (repeats 'Call list_filters first' and 'Always call list_filters() before calling explore_books()'). Includes garbage formatting artifact '%!(EXTRA string=https://catalo.ai/details/:id)' which appears to be a template error, significantly degrading professional structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for basic invocation given the schema quality, but gaps remain: no explanation for destructive annotation, no output schema coverage (description only says 'Returns a list'), and the formatting error suggests incomplete editing. The complex JSON filter syntax is handled in schema descriptions rather than main description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema carries the parameter documentation burden effectively. The description adds workflow context (prerequisite list_filters call) that helps understand the filters parameter, but doesn't add syntax details beyond what's already in the schema property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific action (Search and filter) and resource (fiction books) clearly. Distinguishes from list_bookmarked_books by focusing on general catalog exploration rather than user bookmarks, but misses opportunity to contrast with get_book_details (search vs. specific lookup).

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?

Provides explicit prerequisite workflow: 'Call list_filters first' and 'Always call list_filters() before calling explore_books()'. This is strong sequential guidance. However, lacks explicit 'when not to use' (e.g., vs. get_book_details for known IDs).

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.

Resources