Skip to main content
Glama

ReadingRate

Get a monthly reading summary

get_monthly_reading_summary
Read-onlyIdempotent

Returns ReadingRate's summary of one calendar month of the reader's reading: books finished, time and pages read, the difficulty of what they read, highlights, and how the month compares with the year so far. Summaries are made after each month ends.

Use when the reader asks how a particular month of reading went. For any other range of dates, such as a year or a season, use summarize_reading_period.

Example: {"year": 2026, "month": 9}

Input Schema

NameRequiredDescriptionDefault
yearYesThe year, e.g. 2026
monthYesThe month, 1 to 12

Output Schema

NameRequiredDescriptionDefault
dataNoThe summary: hero, books_read, cognitive_terrain, highlights, year_so_far, growth, daily_words
messageNoWhy there is no summary, when there is none
created_atNoWhen the summary was made

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 cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds genuinely useful behavior the annotations cannot express: 'Summaries are made after each month ends', which warns the agent that a not-yet-complete month may have no summary. It stops short of saying what is returned when no summary exists yet.

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 units — what it returns, the availability caveat, when to use it and what to use instead — front-loaded with the scoping constraint. The example is compact and every sentence earns its place.

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 an output schema present, the description needn't explain return structure, and it still summarizes the payload. Combined with rich annotations and full parameter documentation, an agent has everything needed to choose and call this correctly.

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% (both year and month are documented with ranges and formats), so the baseline is 3. The description only restates the shape in an example call ({"year": 2026, "month": 9}), which illustrates usage but adds no semantics 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?

States a specific verb and resource ('Returns ReadingRate's summary of one calendar month of the reader's reading') and enumerates the contents: books finished, time/pages, difficulty, highlights, and year-to-date comparison. That scope statement plus the named alternative makes it unmistakable against summarize_reading_period or get_reading_stats.

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?

Explicitly gives the selecting condition ('Use when the reader asks how a particular month of reading went') and names the sibling plus the condition that selects it ('For any other range of dates, such as a year or a season, use summarize_reading_period'). No inference required.

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.