# Vooks catalog

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

- name: com.vooks/catalog
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.vooks%2Fcatalog
- tools: https://api.protogrid.dev/v1/servers/com.vooks%2Fcatalog/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "catalog": {
      "type": "http",
      "url": "https://www.vooks.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-9d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 7 of 7 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,224 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name
- pass `stability.new_links`: no tool change named a new site

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 7, about 2,224 tokens to load them all
- tool set hash: 9a31e6af43be4c5b5966504278f59b1e
- badge: [![protogrid quality](https://protogrid.dev/badge/com.vooks/catalog.svg)](https://protogrid.dev/servers/com.vooks/catalog)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://www.vooks.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (7)

- `create_catalog_export`: 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.
- `get_export_job`: 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.
- `get_pricing_plans`: 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.
- `get_title`: 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.
- `list_topics`: 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.
- `recommend_titles`: 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.
- `search_titles`: 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.
