Most Recommended Books
Server Details
Read-only MCP server for verified book recommendations and reading lists.
- Status
- Healthy
- Uptime
- 98.9% over 78 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- richardreeze/mrb-api
- GitHub Stars
- 1
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 6 tools
Each tool targets a clearly distinct lookup: book recommenders, topic lists, person recommendations, series order, summaries, and catalog search. The descriptions explicitly steer ambiguous cases, such as preferring get_book_recommenders over search_books for 'who recommends X?'.
All names use snake_case and are readable, with five tools following a get_* pattern. search_books is a minor deviation, but the naming remains predictable overall.
Six tools is well-scoped for a book recommendation server, with each tool covering a distinct user need. There is no obvious redundancy or missing core operation that would require splitting or combining tools.
The surface covers the key workflows: discovering books by topic, checking social proof for a book, seeing a person's recommendations, getting series order, and retrieving summaries. Minor gaps exist, such as browsing available topic lists or getting richer standalone book metadata, but agents can largely work around them.
Available Tools
6 toolsget_book_recommendersWho recommends this book?ARead-onlyIdempotentInspect
Return every verified person who recommends a given book, each with their quote about it and a link to the original source. This is MRB's signature dataset — use it when a user asks 'who recommends Sapiens?', 'is Zero to One worth reading?', or wants social proof / expert opinions on a specific title. Accepts a title ('Sapiens') or author+title for disambiguation.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Book title, e.g. 'Sapiens' or 'Zero to One' |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds useful context annotations cannot express: results are limited to 'verified' recommenders and each carries a quote and original-source link. It does not cover no-match or ambiguity behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what the tool returns, then when to use it, then input form. The one weak spot is 'This is MRB's signature dataset', which is promotional rather than operational.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is already covered, and the description still summarizes the payload adequately. Remaining gaps are minor edge-case behavior (book not found, multiple title matches) for an otherwise simple single-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single documented parameter, so the baseline would be 3. The description goes beyond the schema by stating the input may be a bare title OR author+title for disambiguation, which is non-obvious given the schema only exposes one free-text 'title' field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return every verified person who recommends a given book') plus the payload shape (quote + source link). This implicitly distinguishes it from the inverse-direction sibling get_person_recommendations, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete triggering phrasings ('who recommends Sapiens?', 'is Zero to One worth reading?', social proof/expert opinions) so the agent can pattern-match user intent. It stops short of naming when to prefer get_person_recommendations or get_summary instead, so exclusions and alternatives are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listGet a consensus best-books listARead-onlyIdempotentInspect
Return one of MRB's 1,300+ consensus 'best books' lists for a topic (startups, stoicism, finance, sci-fi…). Every book on a list was recommended by at least two independent expert sources and is ranked by how many sources mention it. Use this when a user asks for 'the best X books' and you want a ranking backed by multiple experts rather than one opinion. Accepts a topic name ('startup', 'personal finance') or MRB list slug.
| Name | Required | Description | Default |
|---|---|---|---|
| list | Yes | Topic or list slug, e.g. 'startup' or 'stoicism' | |
| limit | No | Max books to return (default 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent and non-destructive, so the bar is lower. The description still adds real behavioral context the annotations cannot: every listed book had at least two independent expert sources, and results are ordered by source count — that explains what the ranking actually means. It does not say what happens when a topic matches no list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the resource and catalog size, then the methodology, then the usage trigger. The final sentence about accepted inputs duplicates schema content and is the one piece that does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and four annotations, the description does not need to explain return values, and it correctly focuses on methodology and input flexibility. The only gap an agent might hit is failure behavior for an unrecognized topic, which the description never addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, and the description's note that it accepts a topic name or an MRB slug largely restates the schema's own 'Topic or list slug' wording. The added examples ('personal finance' with a space) hint at loose topic matching, which is a marginal gain over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return one of MRB's 1,300+ consensus best-books lists for a topic') and immediately qualifies what makes it distinct: multi-source consensus ranking. An agent can distinguish it from search_books or get_book_recommenders without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('when a user asks for "the best X books"') and a selection condition ('ranking backed by multiple experts rather than one opinion') that implicitly rules out single-opinion siblings. It stops short of naming search_books or get_book_recommenders as the alternatives, so the routing is inferential rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_person_recommendationsGet a person's book recommendationsARead-onlyIdempotentInspect
Return every book a specific person (entrepreneur, investor, author, celebrity…) has recommended, with their verified quote about each book and a link to the original source (interview, podcast, post). Use this when a user asks 'what books does Naval Ravikant recommend?', 'Tim Ferriss's favorite books', or wants reading habits of a specific public figure. Accepts a name ('Naval Ravikant') or MRB slug ('naval-ravikant').
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max books to return (default 20) | |
| person | Yes | Person's name or MRB slug, e.g. 'Naval Ravikant' |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| mode | Yes | |
| items | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered structurally. The description adds real value beyond that by explaining what comes back — a verified quote per book plus a link to the original interview/podcast/post — which tells the agent the results are citable. Missing rate-limit or pagination behavior for the limit parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the return contract, then when-to-use, then input formats. The example queries are long but they earn their place by matching likely user phrasing. Slight redundancy between the slug example here and in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with a full output schema and complete annotations, this covers everything an agent needs: what it returns, when to call it, and accepted input forms. No material gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the 'person' field already documents 'name or MRB slug', so the description's 'Accepts a name or MRB slug' largely duplicates the schema. It does add concrete slug formatting via the 'naval-ravikant' example, but says nothing about the 'limit' parameter or defaults. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return every book a specific person has recommended') and enumerates the payload (quote, source link), which is enough to distinguish it from the inverse sibling get_book_recommenders. An agent can tell the direction of the relationship without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete trigger phrasings ('what books does Naval Ravikant recommend?', 'Tim Ferriss's favorite books') and the intent class (reading habits of a public figure), which is clear context for when to call it. It never names get_book_recommenders as the inverse alternative or states an exclusion, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_series_reading_orderGet a series' reading orderARead-onlyIdempotentInspect
Return the complete publication-order book list for a book series — the order the author released them, including novellas and companion volumes where cataloged. Use this when a user asks 'what order do I read John Grisham?', 'Harry Potter books in order', or how many books a series has. Accepts a series or author name ('Jack Reacher', 'Brandon Sanderson').
| Name | Required | Description | Default |
|---|---|---|---|
| series | Yes | Series or author name, e.g. 'Jack Reacher' or 'John Grisham' |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, closed-world read, so the bar is lower. The description adds real behavioral value beyond them: results are publication order (not chronological or arbitrary), novellas and companion volumes are included only 'where cataloged', and an author name is accepted in place of a series name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: what it returns, when to call it, and what input it accepts. The most important scoping detail (publication order, novellas included) is front-loaded before the usage examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, full schema coverage, and an output schema, the description covers nearly everything an agent needs. The only residual gap is behavior when the input is an author name that maps to multiple series, or when a series is not found — neither is addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter already documents 'Series or author name' with the same kind of examples used in the description. The description therefore restates rather than extends the schema's semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Return the complete publication-order book list for a book series.' It also pins down the ordering semantics (author release order, including novellas and companion volumes), which cleanly separates it from search_books or get_list without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete trigger utterances ('what order do I read John Grisham?', 'Harry Potter books in order', how many books a series has), so the agent knows exactly when to reach for it. It stops short of naming a sibling as the alternative for non-ordering book lookups, so it is clear context without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_summaryGet a book summaryARead-onlyIdempotentInspect
Return MRB's one-page summary of a book: the overview plus chapter-by-chapter notes (~435 titles available). Use this when a user asks 'summarize Atomic Habits', 'what is Sapiens about?', or wants the key ideas without reading the book. Set full_text=true only when the user explicitly wants the complete chapter notes — they can be very long.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Book title, e.g. 'Atomic Habits' | |
| full_text | No | Include full chapter contents (default false: overview + chapter titles) |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/safe/idempotent/closed-world, so the description focuses on what annotations cannot say: the corpus size (~435 titles), the default one-page shape, and the warning that full chapter notes 'can be very long'. That size/latency warning is genuinely actionable. It stops short of describing the response envelope or what happens when a title is not in the corpus.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the return payload, then trigger examples, then the opt-in caveat. Every sentence carries distinct information and the costliest decision (full_text) is deferred to the end where it reads as a caution.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no prose explanation, and annotations cover the safety profile. Given a 2-parameter read tool, the description supplies everything an agent needs: what comes back, when to call it, and the one flag that changes cost.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 above that by converting full_text into a usage rule ('only when the user explicitly wants...') rather than merely restating the schema's 'include full chapter contents'. The title parameter is only implied, not given format or matching guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return MRB's one-page summary of a book') and enumerates the payload: overview plus chapter-by-chapter notes. The ~435-title corpus bound is a concrete scope statement that lets an agent distinguish this from search_books.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides real trigger phrasings ('summarize Atomic Habits', 'what is Sapiens about?') and an explicit condition for the optional flag ('only when the user explicitly wants the complete chapter notes'). It does not name a sibling such as search_books as the alternative when no summary exists, which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_booksSearch booksARead-onlyIdempotentInspect
Search Most Recommended Books' human-curated catalog by book title or author name. Returns ranked matches with author, publication year, how many verified people recommend each book, the top recommenders, a sourced quote, and a buy link. Use this when a user asks about a specific book, an author's books, or wants recommendations matching a title they half-remember. For 'who recommends X?' prefer get_book_recommenders; for 'what does person X recommend?' prefer get_person_recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 6) | |
| query | Yes | Book title or author name, e.g. 'Atomic Habits' or 'Cormac McCarthy' |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| mode | Yes | |
| items | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed-world scope, so the safety profile is covered. The description adds useful behavioral context beyond that: results are ranked, and it hints that half-remembered titles are tolerated (fuzzy-ish matching). It does not state result limits or ranking criteria, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then output shape, then routing. Every sentence carries distinct information and none repeats the schema verbatim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be enumerated in detail, and the annotations cover safety semantics. Combined with explicit routing guidance, an agent has everything needed to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented with examples, making 3 the baseline. The description adds meaning the schema lacks: the query accepts imperfectly-remembered titles and the output is ranked, which tells the agent how to shape ambiguous queries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (human-curated book catalog) plus the match keys (title or author). It also names the sibling tools it is not, so an agent can separate it from get_book_recommenders and get_person_recommendations without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use triggers are given ('specific book', 'an author's books', 'a title they half-remember') along with two conditional redirects to specific alternatives. 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- Changed
get_book_recommenders2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{}
- Changed
get_list2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{}
- Changed
get_person_recommendations2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{}
- Changed
get_series_reading_order2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{}
- Changed
get_summary2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{}
- Changed
search_books2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{}
6 tool updates
- First observed
get_book_recommenders - First observed
get_list - First observed
get_person_recommendations - First observed
get_series_reading_order - First observed
get_summary - First observed
search_books
Related MCP Connectors
MCP server for Russian books search, details, and recommendation candidates.
MCP book-writing server: 81 classics, genre recipes, drafting pipelines.
Official Bookmax MCP server: search and save bookmarks, read notes and docs from AI assistants.
Curated, trust-first index of vetted MCP servers — scored tiers, monthly re-verified. Read-only.
Related MCP Servers
- AlicenseAqualityAmaintenanceA read-only MCP server for Goodreads that enables LLMs to search for books, retrieve detailed book info with ratings and reviews, and explore recommendations, series, and author bibliographies using public data sources without requiring authentication.126MIT
- AlicenseAqualityCmaintenanceRead-only MCP server for Reddit. Searches and analyzes Reddit content without writing, ensuring all posts are done manually via the Reddit UI.13MIT
- AlicenseNot gradedqualityDmaintenanceRead-only MCP server for Discord that lists guilds, channels, and reads or searches messages using a self-bot account via discord.py-self.MIT
- AlicenseAqualityAmaintenanceA read-only MCP server that connects to Calibre-Web ebook libraries via OPDS feeds, enabling AI assistants to search and browse books, shelves, covers, and library statistics.6103 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.