Skip to main content
Glama

ReadingRate

Get books in progress

get_currently_reading
Read-onlyIdempotent

Lists the books the reader is reading now, from their ReadingRate library: current page, percent complete, pages left, and the hours left at their own logged reading pace. Also lists poems they have recently read again, with how many times.

Use when the user asks what they are reading, how far along they are in a book, or how long a book they are reading will take them to finish.

For books they have finished or want to read, use get_reading_history.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
booksNoBooks in progress, with progress and time estimates
countNoNumber of books in progress
poemsNoPoems the reader has read again recently, most recent first. return_count is how many times each was read.
summaryNoTotals: total_books, total_pages_remaining, total_hours_remaining, reading_velocity_used
poem_countNoNumber of poems in the poems array

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is covered by structured data. The description's added value is modest but real: it says the pace basis is the user's own logged reading speed and that the result is scoped to their ReadingRate library. It says nothing about what happens with no books in progress (empty list vs error) or about pagination/result size.

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 blocks in a deliberate order: what it returns, when to call it, when to call something else. Every clause carries information, including the pace qualifier, and there is no filler or restatement of the title.

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?

Zero parameters, an output schema that documents the return shape, and annotations covering idempotency and read-only safety mean the description only has to explain scope, contents and routing — all of which it does. An agent has everything needed to select and call it correctly.

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?

The tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. The description's implicit scoping (the caller's own library) is consistent with there being no filtering inputs.

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 ('Lists the books the reader is reading now') and enumerates exactly what comes back: current page, percent complete, pages left, and hours left at the reader's own logged pace. It also discloses a non-obvious inclusion (recently re-read poems with counts) and explicitly names the sibling it is not (get_reading_history), so an agent can separate it from the many other reading tools.

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 three concrete user-intent triggers ('what they are reading', 'how far along', 'how long ... to finish') and an explicit exclusion plus alternative: 'For books they have finished or want to read, use get_reading_history.' Nothing about routing is left to 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.