Skip to main content
Glama

shelf_rate

Destructive

Set a book's Goodreads rating from 1 to 5 using its book ID or slug, with optional JSON, CSV, or plain output for scripts and agents.

Instructions

Set a Goodreads rating for a book.

Input Schema

NameRequiredDescriptionDefault
csvNoOutput as CSV (table and array responses) (default: false)
yesNoSkip confirmation prompts (for agents and scripts) (default: false)
argsNoAdditional positional arguments or raw CLI flags to append to the command.
jsonNoOutput as JSON (default: false)
agentNoSet all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false)
plainNoOutput as plain tab-separated text (default: false)
quietNoBare output, one value per line (default: false)
configNoConfig file path
ratingYesRating from 1 to 5 (default: 0)
selectNoComma-separated fields to include in output (e.g. --select id,name,status)
book-idNoGoodreads book id/slug or GraphQL kca://book id
compactNoReturn only key fields (id, name, status, timestamps) for minimal token usage (default: false)
deliverNoRoute output to a sink: stdout (default), file:<path>, webhook:<url>
dry-runNoShow request without sending (default: false)
profileNoApply values from a saved profile (see 'goodreads profile list')
timeoutNoRequest timeout (default: 30s)
no-cacheNoBypass response cache (default: false)
no-colorNoDisable colored output (default: false)
no-inputNoDisable all interactive prompts (for CI/agents) (default: false)
idempotentNoTreat already-existing create results as a successful no-op (default: false)
rate-limitNoMax requests per second (0 to disable) (default: 0)
data-sourceNoData source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
human-friendlyNoEnable colored output and rich formatting (default: false)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is known. The description adds nothing beyond that: it doesn't say whether an existing rating is overwritten, whether auth is required, or what the result looks like, despite this being a destructive mutation with 23 parameters.

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?

One short, front-loaded sentence with no filler. It is efficient, though the brevity edges into under-specification rather than genuine concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent mutation with 23 parameters and no output schema, the description is far too thin. It should at minimum cover overwrite behavior, auth requirements, and the relationship to shelf_set/shelf_unrate.

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%, so parameters such as rating (1 to 5) and book-id are already documented in the schema. The description adds no syntax or format detail beyond that, which is acceptable given full coverage — baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: set a Goodreads rating for a book. That is unambiguous about what the tool does, but it never distinguishes itself from close siblings such as shelf_unrate or shelf_set, so an agent must guess which one applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no guidance on when to use this versus shelf_set or shelf_unrate, nor any prerequisites such as authentication or whether the book must already be on a shelf. Usage has to be inferred entirely from the name.

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