Skip to main content
Glama

get_book

Read-only

Look up a book or specific edition by ID, slug, ISBN-13, ASIN, or edition ID to retrieve details like title, authors, format, pages, release date, and rating.

Instructions

Look up a book or one specific edition of it. Read-only. With id or slug: the book (the work, across all editions) — title, authors, pages, community rating. With exactly one of isbn_13, asin, or edition_id: that specific printing, ebook, or audiobook — format, pages, audio length, release date, language, publisher, and a summary of its book. For a book, include_characters=true adds a 'characters' array in book order (id, name, slug, biography, plus 'spoiler' and 'only_mentioned' flags; don't reveal spoiler characters unless asked), and include_editions=true adds an 'editions' array, most-read first, up to editions_limit. Edition ids work with set_user_book (edition_id, owned). Use search_books first if you only have a title; for your own status/rating of the book use get_user_book.

Input Schema

NameRequiredDescriptionDefault
idNoHardcover book ID.
asinNoAmazon ASIN of a specific edition.
slugNoHardcover book slug (e.g. 'project-hail-mary').
isbn_13NoISBN-13 of a specific edition (e.g. '9780593135204').
edition_idNoHardcover edition ID (e.g. from include_editions).
editions_limitNoWith include_editions: max editions to return (default 10, max 50).
include_editionsNoWith id/slug: also return its editions (default false).
include_charactersNoWith id/slug: also return its characters (default false).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.9.0
    • addedInput schema / properties / asin
      Added value: +{
      +  "description": "Amazon ASIN of a specific edition.",
      +  "type": "string"
      +}
    • addedInput schema / properties / edition_id
      Added value: +{
      +  "description": "Hardcover edition ID (e.g. from include_editions).",
      +  "type": "integer"
      +}
    • addedInput schema / properties / editions_limit
      Added value: +{
      +  "description": "With include_editions: max editions to return (default 10, max 50).",
      +  "type": "integer"
      +}
    • changedInput schema / properties / include_characters / description
      Previous value: -"Also return the book's characters (default false)."New value: +"With id/slug: also return its characters (default false)."
    • addedInput schema / properties / include_editions
      Added value: +{
      +  "description": "With id/slug: also return its editions (default false).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / isbn_13
      Added value: +{
      +  "description": "ISBN-13 of a specific edition (e.g. '9780593135204').",
      +  "type": "string"
      +}
  2. Changed1 schema field changedv0.8.0
    • addedInput schema / properties / include_characters
      Added value: +{
      +  "description": "Also return the book's characters (default false).",
      +  "type": "boolean"
      +}
  3. First observedv0.4.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds real beyond-annotation behavior: the spoiler/only_mentioned flags with a handling instruction ('don't reveal spoiler characters unless asked') and editions returned 'most-read first' up to editions_limit. It restates 'Read-only' redundantly, but the spoiler semantics are genuinely additive.

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?

Dense but front-loaded: the core work-vs-edition distinction leads, followed by the toggle behaviors and routing advice. Every sentence carries information, though the single-block paragraph is slightly heavy to scan for an 8-parameter tool.

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 no output schema, the description compensates fully by enumerating the fields returned for both the work and the edition, plus the shapes of the include_characters and include_editions arrays. Nothing an agent needs 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, but the description goes beyond it by explaining the semantic role of each input group (work-level id/slug vs edition-level isbn/asin/edition_id) and what the include_* toggles inject (characters in book order, editions most-read first). This adds meaning the schema descriptions alone don't convey.

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 ('look up') and resource ('a book or one specific edition of it'), then draws the exact work-vs-edition distinction that defines the tool. It explicitly separates itself from siblings (search_books, get_user_book), so an agent can route 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit selection rules: id or slug yields the work, exactly one of isbn_13/asin/edition_id yields the edition. It also names alternatives and their triggers ('Use search_books first if you only have a title; for your own status/rating... use get_user_book') and points edition ids to set_user_book.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.