Skip to main content
Glama

ReadingRate

Get reading history

get_reading_history
Read-onlyIdempotent

Lists the books in the reader's ReadingRate library with their status (read, reading, want to read, stopped), rating, start and finish dates, and the reader's own reflection, newest activity first.

Use when the user asks what they have read or finished, what is on their want-to-read list, how they rated a book, or which of a set of books they have already read.

Filter with status. Set include_sessions to add the reading sessions logged for each book.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of books (default 50, max 100)
statusNoOnly books with this status. Omit for all.
include_sessionsNoInclude the reading sessions logged for each book (default false)

Output Schema

NameRequiredDescriptionDefault
statsNoSummary counts: total_books, by_status
filterNoThe filters applied: status, limit, include_sessions
historyNoBooks in the reader's library, newest activity first

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 readOnly, idempotent, non-destructive, closed-world, so safety is covered. The description adds genuinely new behavioral context beyond that: results are ordered by newest activity, status is an optional filter with 'omit for all' semantics, and include_sessions toggles an expansion per book. Pagination cursor behaviour is not mentioned, but limit is schema-documented.

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 paragraphs: what it returns first, when to call it second, how to shape the response third. No filler words, no restatement of the title, and the most decision-relevant information is front-loaded.

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?

With a full output schema and rich annotations carrying safety, defaults, and closed-world semantics, the description only needs to add ordering, use cases, and filter intent, all of which it does. Nothing an agent needs in order to call this correctly is missing.

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; the description earns a point by framing status as an optional filter (omit for all) and clarifying that include_sessions expands each book with its logged sessions rather than filtering results. It does not add format or syntax detail beyond the schema, but it clarifies intent, not just restates names.

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 first sentence names a specific verb (lists) and resource (books in the reader's library) and enumerates the returned fields: status, rating, start/finish dates, reflection, plus ordering (newest activity first). This distinguishes it clearly from get_reading_stats, get_top_books, and get_currently_reading, which summarize rather than enumerate library entries.

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 'Use when' paragraph gives four concrete trigger scenarios (what they've read, want-to-read list, ratings, whether specific books were read), which is strong positive routing. It never names an alternative sibling or a 'when not to use' boundary, so an agent must still infer when to prefer get_currently_reading over this tool.

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.