Skip to main content
Glama

Vooks catalog

Server Details

Search the Vooks children's library by age, topic and language, and read published prices.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation4/5

Each tool has a distinct job: search, fetch one title, enumerate topics, recommend, price lookup, and a two-step export/poll pair. The only real overlap is search_titles vs recommend_titles, which both return titles, though recommend's personalization and per-pick rationale differentiate it. The export pair is muddied by get_export_job's claim that the job never needs polling and is already succeeded, which contradicts the 'start async, then poll' framing of create_catalog_export.

Naming Consistency5/5

All seven names follow a clean verb_noun snake_case pattern (create_catalog_export, get_export_job, list_topics, search_titles, etc.). The create_/get_ pairing for the export job is predictable and easy to follow.

Tool Count5/5

Seven tools is well within the sweet spot and each one covers a distinct capability (search, detail, faceting, recommendation, pricing, bulk export). Nothing feels padded or redundant.

Completeness4/5

The surface covers the main catalog workflows — discover, inspect, enumerate topics, recommend, price, and bulk export — with no obvious dead ends for a book-recommendation agent. Minor gaps: no way to look up by author/series/publisher, and no explicit language or age-band enumeration outside search.

Available Tools

7 tools
create_catalog_exportStart a Vooks catalog exportA
Idempotent
Inspect

Start an asynchronous export of every Vooks title matching the given filters, for bulk work that would otherwise be hundreds of searches. Returns a job id immediately; poll it with get_export_job. The idempotency_key makes a retry safe: calling again with the same key returns the original job rather than starting a second one.

NameRequiredDescriptionDefault
ageNoOnly export titles published for this age.
topicNoOnly export titles carrying this topic.
languageNoOnly export titles in this narration language.
idempotency_keyYesA key you choose, 8 to 200 characters. Reusing it returns the job it started instead of creating another.

Output Schema

NameRequiredDescription
job_idYesPass this to get_export_job.
statusYesAlways "succeeded": an export is computed from the committed index, not queued.
poll_urlNoThe HTTP endpoint that reports the same status.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, it discloses asynchronous execution, immediate return of a job id, the required polling workflow, and the result of repeating a call with the same key. These details explain the operational lifecycle and safe retry behavior rather than merely asserting idempotency.

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

Conciseness5/5

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

Three compact sentences front-load the operation and use case, then cover polling and retries. Every sentence contributes actionable information, with no filler or unnecessary enumeration of schema values.

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?

Together with the fully described input schema, annotations, and output schema, the description supplies what an agent needs to start an export and follow up on it correctly. Details such as export format or job duration are absent, but they are not necessary for selecting or initiating this straightforward four-parameter tool.

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?

Schema description coverage is 100%, and all four parameters already have clear descriptions, including the key's length and reuse semantics. The description usefully frames the optional fields as export filters and the key as a retry-safety mechanism, but adds little parameter meaning beyond the schema.

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?

The opening sentence specifies the operation and resource: starting an asynchronous export of filtered Vooks titles. The bulk-work contrast distinguishes it from title-search siblings, and naming get_export_job distinguishes export creation from job-status retrieval.

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 explicitly identifies bulk work that would otherwise require hundreds of searches as the use case and directs the agent to poll the returned id with get_export_job. It does not provide an explicit when-not rule or name search_titles or get_title for smaller lookups, so the selection guidance is strong but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_export_jobCheck a Vooks catalog exportA
Read-onlyIdempotent
Inspect

Report the status of an export started by create_catalog_export. download_url points at the finished export. A job is derived from its id rather than stored, so it never expires and needs no polling: the status is succeeded the moment create_catalog_export returns.

NameRequiredDescriptionDefault
job_idYesThe job id returned by create_catalog_export.

Output Schema

NameRequiredDescription
errorNoWhy it failed, when it did.
statusYesAlways "succeeded". Nothing is queued, so nothing can fail later.
title_countNoHow many titles the export holds.
download_urlNoWhere to fetch the finished export.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely non-obvious context beyond that: jobs are derived from the id rather than stored, so they never expire, and download_url points at the finished artifact. It stops short of describing any failure/unknown-id behavior or the possible status values.

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

Conciseness5/5

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

Three short sentences, front-loaded with the purpose, then the return pointer, then the lifecycle caveat. Nothing is wasted and there is no filler or repetition.

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 one-parameter read tool with full annotations and an output schema, the description covers nearly everything an agent needs; return values need not be re-explained. The one gap is that it asserts status becomes succeeded immediately without enumerating other possible statuses or error outcomes, leaving a small ambiguity about when this call is actually informative.

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?

Schema coverage is 100% and the single parameter already documents itself as "the job id returned by create_catalog_export," which the description largely restates. No new format, validation, or naming-convention detail is added beyond the schema, so the baseline 3 applies.

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?

"Report the status of an export started by create_catalog_export" gives a specific verb (report status) plus the exact resource (an export job) and ties it to the sibling that produces the id. An agent can distinguish this from create_catalog_export and the other siblings 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes the context of use (after create_catalog_export has returned a job id) and implicitly steers away from polling. It does not name a scenario where you would deliberately check a job later, nor does it state what to do if the id is unknown, but the when-to-use signal is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pricing_plansGet Vooks subscription pricingA
Read-onlyIdempotent
Inspect

Return every published Vooks subscription plan with its price, billing interval, audience and free-trial length, plus the school and district option, which is quoted per customer rather than priced. Use this to answer what Vooks costs instead of quoting a figure from memory.

NameRequiredDescriptionDefault
audienceNoOnly return plans for this audience. Omit to get them all.

Output Schema

NameRequiredDescription
plansYesPriced plans.
quotedNoOfferings with no list price.
trial_daysYesTrial length shared by every paid plan.
pricing_pageNoThe human-readable pricing page.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, openWorldHint=false, non-destructive), so the bar is lower. The description still adds real context beyond them: that results are limited to published plans and that the school/district option carries no numeric price because it is quoted per customer, which prevents an agent from treating a missing figure as an error.

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

Conciseness5/5

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

Two sentences, front-loaded with the returned content, then the usage directive. Nothing is redundant with the title or restated for padding.

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 zero-required-parameter read tool with full schema coverage, an output schema, and rich annotations, the description covers purpose, trigger, and the one non-obvious edge case (per-customer school/district quoting). An agent has everything needed to call it and interpret the result.

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?

Schema description coverage is 100%, and the single enum parameter already documents "Omit to get them all." The description never references the audience filter, so it adds no meaning beyond the schema — baseline 3 applies.

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?

"Return every published Vooks subscription plan with its price, billing interval, audience and free-trial length" names a specific verb and resource and enumerates what comes back. The added clause about the school/district option being quoted per customer rather than priced distinguishes this from a generic pricing lookup and from the catalog-oriented siblings.

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?

"Use this to answer what Vooks costs instead of quoting a figure from memory" gives a clear triggering condition and explicitly steers the agent away from an incorrect alternative behavior (recalling a price). It stops short of naming a sibling tool it should be preferred over, but no sibling covers pricing, so the omission is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_titleGet one Vooks titleA
Read-onlyIdempotent
Inspect

Fetch a single Vooks title by its slug, including the publisher's full description, age band, Lexile measure, running time and topics. Reads the live catalog rather than the search index, so it is never a snapshot. Use it after search_titles when you need to say more about one book than the search result carries.

NameRequiredDescriptionDefault
slugYesThe title's slug, as returned by search_titles, for example 10-little-fish.

Output Schema

NameRequiredDescription
titleYesThe title.
descriptionNoThe publisher's full description.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, so the description doesn't need to repeat that. It does add genuinely new context: this reads the live catalog rather than the search index and is therefore never a snapshot, which tells the agent results may differ from a prior search.

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

Conciseness5/5

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

Three sentences, front-loaded with the action and return contents, followed by freshness and then usage. No filler or restatement of the tool name.

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 single-parameter read with a full output schema, the description covers everything an agent needs: identity, return contents, data source freshness, and where it fits relative to search_titles. Nothing material is missing.

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?

Schema coverage is 100% and the slug parameter already documents its origin in search_titles with an example value. The description's mention of fetching by slug adds no syntax or format meaning beyond the schema, so the baseline 3 applies.

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?

The description names a specific verb and resource (fetch a single Vooks title by slug) and enumerates what comes back (publisher description, age band, Lexile measure, running time, topics). It is clearly distinguishable from search_titles both by cardinality and by data source.

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 explicitly sequences the tool after search_titles and gives the condition that selects it ('when you need to say more about one book than the search result carries'). No explicit when-not-to-use case is stated, but the two-tool workflow is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_topicsList Vooks topicsA
Read-onlyIdempotent
Inspect

List every topic slug search_titles accepts, with how many titles carry each one. Call this before filtering by topic rather than guessing a slug: a guess that does not exist is rejected, and this tells you what the library is actually organised around.

NameRequiredDescriptionDefault
containsNoOnly return topics whose slug contains this text.

Output Schema

NameRequiredDescription
topicsYesThe topic facets.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds useful context beyond annotations: that guessed slugs are rejected and that the result reflects how the library is organized. It does not need to explain return values because an output schema exists.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary action and followed by the key usage rationale. Every sentence earns its place with no redundant formulation.

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 simple, single-optional-parameter discovery tool with rich annotations and an output schema, the description covers what an agent needs: what it returns, when to call it, and why guessing is unsafe. Nothing material is missing.

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?

Schema description coverage is 100%, so the optional 'contains' parameter is already fully documented in the schema. The description does not add syntax or meaning beyond that, which is acceptable given the schema carries the parameter detail.

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?

The description names a specific verb and resource ('List every topic slug') plus the returned counts, and ties itself explicitly to the sibling tool search_titles. An agent can immediately tell this is the discovery tool for valid topic slugs.

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?

It gives an explicit directive ('Call this before filtering by topic rather than guessing a slug') and explains the consequence of not doing so: an invalid slug guess is rejected. The relationship to search_titles is named directly, leaving little inference needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_titlesRecommend Vooks titles for a childA
Read-onlyIdempotent
Inspect

Pick Vooks titles for one child, given their age, what they are interested in, how many minutes are available and which language to narrate in. Each recommendation comes back with the reason it was chosen, so you can explain the pick to a parent or teacher rather than just listing books.

NameRequiredDescriptionDefault
ageYesThe child's age in whole years.
limitNoHow many to recommend. Defaults to 5.
languageNoNarration language.
interestsNoWhat the child likes, in plain words, for example ["dinosaurs", "kindness"].
max_minutesNoLongest acceptable running time in minutes. Titles longer than this are excluded.

Output Schema

NameRequiredDescription
recommendationsYesThe picks, best first.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The one piece of added context is that each result carries its selection rationale, which is useful but largely overlaps the existing output schema.

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 action and selection criteria, then the return-value rationale. No filler or repetition, though the second sentence leans on output-schema territory that is already covered elsewhere.

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 five fully described parameters, complete annotations, and an output schema, the description supplies enough to call the tool correctly and understand its advisory intent. Only the relationship to sibling search tools is left unaddressed.

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?

Schema description coverage is 100%, so all five parameters including the enum-constrained language and the max_minutes exclusion rule are already documented in the schema. The description restates the same four inputs in prose and never mentions the limit parameter, adding no new semantics; baseline 3 applies.

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?

The description names a specific verb-and-resource pair ('Pick Vooks titles') and enumerates the selection criteria (age, interests, minutes, language), so an agent knows exactly what the tool produces. It stops short of naming a sibling like search_titles to explain why one would pick this over a keyword search, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the mention of explaining picks 'to a parent or teacher' signals the advisory/recommendation context. There is no explicit when-not guidance and no reference to search_titles or get_title as alternatives, so the agent must infer the boundary itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_titlesSearch Vooks titlesA
Read-onlyIdempotent
Inspect

Search the Vooks library of animated read-along storybooks, audiobooks and ebooks for children. Combine a free-text query with a child's age, a topic, a narration language and whether an audio-only version exists. Use this to answer 'what should a five-year-old who likes dinosaurs watch'. Returns the matching titles and the true total for the filters, so you can tell a narrow result from an empty library.

NameRequiredDescriptionDefault
ageNoA child's age in whole years. Matches titles whose published range contains it.
limitNoHow many titles to return, 1 to 50. Defaults to 10.
queryNoFree text matched against title, author, illustrator, summary and topics.
topicNoA topic slug from list_topics, for example animals or counting.
languageNoNarration language of the title.
audio_only_availableNoTrue to return only titles that also play audio-only, for screen-free listening.

Output Schema

NameRequiredDescription
totalYesHow many titles match, across all pages.
titlesYesThe matching titles.
catalog_generated_atNoWhen the search index was built.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the description only needs to add context. It does so by stating the response includes the true total for the filters, letting the agent distinguish a narrow result from an empty library. It says nothing about ordering, pagination beyond the schema's limit, or match-scoring behavior.

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

Conciseness5/5

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

Three sentences, front-loaded with the resource and the operation, then filter composition, then the example and return semantics. No filler and nothing repeated from the schema verbatim.

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 full schema coverage, annotations and an output schema present, the description carries only what structure cannot: the total-count semantics and a usage example. Missing is any word on result ordering or how it differs from recommend_titles, which is the main ambiguity for an agent choosing among siblings.

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?

Schema description coverage is 100%, so every parameter is already documented in the schema, including the age range match and the audio-only flag. The description enumerates the same filter set (query, age, topic, language, audio availability) without adding syntax, precedence, or behavior when filters conflict, so the baseline of 3 applies.

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?

The description uses a specific verb (search) against a clearly named resource (the Vooks library of animated read-along storybooks, audiobooks and ebooks for children) and lists the filter dimensions. It does not explicitly distinguish itself from the closest sibling, recommend_titles, which an agent could reasonably confuse with a discovery-by-filter tool.

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 gives a concrete use case ('what should a five-year-old who likes dinosaurs watch') and explains that filters are combined, which tells the agent when this tool fits. It stops short of explicit exclusions or naming alternatives such as recommend_titles or list_topics.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • First observedcreate_catalog_export
    • First observedget_export_job
    • First observedget_pricing_plans
    • First observedget_title
    • First observedlist_topics
    • First observedrecommend_titles
    • First observedsearch_titles

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources