Skip to main content
Glama

ReadingRate

Save a reading insight

save_reading_insight

Saves a reading insight to the reader's ReadingRate account: a short summary and the key takeaways, in the reader's terms, about one or more books in their library, with optional topics. It is stored with those books, appears in their ReadingRate journal, comes back in later conversations through get_reading_notes, and is copied to the reader's Notion if they have connected Notion to ReadingRate. Only the fields below are sent; nothing else from the conversation is.

Use only when the reader asks to save or keep something from the discussion. Show them the summary and takeaways first and save once they agree. Each call saves a new insight, so save a discussion once; the reader can remove one with delete_reading_insight.

Example: {"book_ids": [""], "summary": "Humbert's eloquence works on the reader as a defense brief.", "key_insights": ["The prose's beauty is a manipulation", "The reader is cast as the jury"], "topics": ["unreliable narration"]}

Input Schema

NameRequiredDescriptionDefault
topicsNoThemes the insight is about, e.g. "unreliable narration" (up to 20)
summaryYesWhat the reader wants to keep, in 2 to 4 sentences (20 to 1000 characters)
book_idsYesThe books the insight is about: ReadingRate book ids or library entry ids (1 to 20), books in the reader's library
key_insightsYesThe takeaways, one sentence or two each (1 to 10)

Output Schema

NameRequiredDescriptionDefault
insightYesThe saved insight
messageYesHuman-readable confirmation naming the books
successYesTrue when the insight was saved
view_urlYesWhere the reader can see the insight in ReadingRate
synced_to_notionYesTrue when a copy was written to the reader's Notion

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare non-readonly, non-idempotent, non-destructive, and open-world behavior; the description adds substantive side effects the annotations cannot convey — persistence with the books, surfacing in the journal, retrieval via get_reading_notes, and an external copy to Notion. It also states the privacy boundary ('Only the fields below are sent'). The non-idempotent hint is reinforced rather than contradicted.

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?

Front-loads the effect, then the usage rule, then the example — a sensible order with no filler sentences. Slightly dense (three stacked clauses in the opening sentence), but every element adds usable information.

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 mutation tool with rich annotations and an output schema, the description covers trigger conditions, side effects, deduplication, and downstream visibility, leaving nothing an agent needs before calling it. Return-value details are correctly delegated to the output schema.

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 description coverage is 100%, so the baseline would be 3; the description goes beyond it with a worked example showing how book_ids, summary, key_insights, and topics combine, plus the framing of takeaways 'in the reader's terms'. It does not restate the length limits, which properly remain in 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+resource ('Saves a reading insight to the reader's ReadingRate account') and enumerates exactly what the insight contains (summary, key takeaways, books, optional topics). It clearly distinguishes itself from adjacent tools by naming get_reading_notes as the retrieval path and delete_reading_insight as the removal path.

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?

Explicit trigger ('Use only when the reader asks to save or keep something from the discussion'), a required confirmation workflow ('Show them the summary and takeaways first and save once they agree'), and a de-duplication rule ('Each call saves a new insight, so save a discussion once'). It also names the alternative for removal.

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.