ReadingRate
REMOTE · MCP.READINGRATE.COM
Book difficulty, reading times and ranked lists, plus your reading log, quotes and clubs.
Available components
Last scanned (2 hours ago)
Scores higher than 45% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Entertainment and Games
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (get_reading_trajectory). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability79
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 11230 tokens (~229/item across 49 items; 45 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
- Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 47 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities47
- Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
- Supports UI / widget rendering.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Nov 26 0
- Stability: unverified → 0.03 ▲ functional
- New tool “list_quote_links” functional
- New tool “save_quote_link” functional
- New tool “suggest_quote_link” functional
- 2 Nov 26 63
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.readingrate.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=readingrate.com | CN=WE1,O=Google Trust Services,C=US | 19 Sept 2026 | 18 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | 1b5ff0426d3306f31333b8213b855932 |
| SANs: readingrate.com, *.readingrate.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.readingrate.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| readingrate.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| content-security-policy | default-src 'none'; frame-ancestors 'none' |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.readingrate.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.readingrate.com/mcp | HTTPS enforced | 301 | https://mcp.readingrate.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
suggest_quote_link Suggest a quote link ~223
Suggests a link between two of the reader's saved quotes in ReadingRate, with a line on why they belong together. The suggestion waits in the app until the reader accepts or dismisses it; it is not a link until they accept. Use when you notice two of the reader's quotes, usually from different books, that speak to each other in a way the reader may not have seen, and the reader has not asked you to link them. Say in the conversation which two you suggested and why. Check list_quote_links first so you do not suggest a link they already have. Example: {"quote_id": "<quote id>", "linked_quote_id": "<quote id>", "note": "Both describe living only in the present."}
| Name | Type | Req | Description |
|---|---|---|---|
| linked_quote_id | string | yes | The other quote: its id, from list_saved_quotes |
| note | string | yes | Optional: one line on why the two belong together, at most 280 characters |
| quote_id | string | yes | One of the two quotes: its id, from list_saved_quotes |
| Name | Type | Req | Description |
|---|---|---|---|
| already_linked | boolean | – | True when the two were already linked or suggested; nothing changed |
| link | object | – | – |
| message | string | – | – |
No examples provided.
summarize_reading_period Summarize a reading period ~214
Builds a summary of the reader's reading between two dates, up to a year apart: books finished, time and pages read, the difficulty of what they read and highlights. ReadingRate computes it from the reader's records and saves it in their account, where it replaces any summary saved earlier for the same dates. Use when the reader asks for a review of a period that is not one calendar month, such as a year in review or a season. For a single calendar month, use get_monthly_reading_summary. Example: {"start_date": "2025-01-01", "end_date": "2025-12-31", "period_label": "2025"}
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | yes | Last day, YYYY-MM-DD, at most 366 days after the first |
| period_label | string | – | A name for the period, e.g. "Summer 2026" (max 60 characters) |
| start_date | string | yes | First day, YYYY-MM-DD |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | – | The summary: hero, books_read, cognitive_terrain, highlights, year_so_far, growth, daily_words |
| success | boolean | – | Whether the summary was made |
No examples provided.
update_book_status Change a book's status ~323
Moves a book that is already in the reader's ReadingRate library to another status: "reading" (sets the start date if there is none), "read" (sets the finish date, with an optional rating), "stopped", or "want_to_read" (clears the finish date). It replaces the book's current status, and for "read" its rating and finish date. Marking a book read also adds it to the reader's ReadingRate activity feed. Other readers see that they finished it while the reader's profile is public and shows finished books (new accounts start private, and finished books start hidden): on the profile, and for people who follow the reader in their feed and on the book's page. Use when the user says they started, finished, stopped or gave up a book in their library, wants to rate a finished book, or wants a book back on their want-to-read list. For a book not yet in their library, use add_book_to_library. Examples: - {"book_id": "<book id>", "status": "reading"} - {"book_id": "<book id>", "status": "read", "rating": 5}
| Name | Type | Req | Description |
|---|---|---|---|
| book_id | string | yes | The book's ReadingRate id or its library entry id |
| date_finished | string | – | Finish date, YYYY-MM-DD, only with status "read" (default: today) |
| rating | number | – | Rating from 1 to 5, only with status "read" |
| status | string | yes | The new status |
| Name | Type | Req | Description |
|---|---|---|---|
| book | object | – | The book: id, slug, title, authors |
| date_finished | string | – | Finish date, when the status is read |
| date_started | string | – | Start date, when the status is reading |
| message | string | yes | Human-readable result |
| new_status | string | – | The status after the change |
| old_status | string | – | The status before the change |
| rating | number | – | The rating recorded, when finishing |
| success | boolean | yes | Whether the status changed |
No examples provided.
How do I install the ReadingRate MCP server?
ReadingRate is a hosted endpoint at https://mcp.readingrate.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.readingrate.com
claude mcp add --transport http com-readingrate-readingrate 'https://mcp.readingrate.com/mcp'
What is the ReadingRate MCP server?
ReadingRate is an MCP server listed in the public MCP registry as com.readingrate/readingrate. Book difficulty, reading times and ranked lists, plus your reading log, quotes and clubs. This page covers its hosted endpoint (https://mcp.readingrate.com/mcp).
Is the ReadingRate MCP server safe to use?
ReadingRate scores 64 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the ReadingRate MCP server expose?
ReadingRate exposes 45 tools: search_books, get_book_details, compare_books, get_award_winners, get_top_books, and 40 more. Their descriptions and schemas cost roughly 10,319 tokens of context every time the server is loaded.
Does the ReadingRate MCP server require authentication?
No. We connected to ReadingRate without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the ReadingRate MCP server still maintained?
ReadingRate is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.