Add a book to a shelf
add_book_to_shelfPuts a library book on a shelf. The book must be in the library first (add_book_to_library).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| shelfId | Yes | ||
| userBookId | Yes |
add_book_to_shelfPuts a library book on a shelf. The book must be in the library first (add_book_to_library).
| Name | Required | Description | Default |
|---|---|---|---|
| shelfId | Yes | ||
| userBookId | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, idempotent, non-destructive, closed-world mutation, so the safety profile is largely covered. The description contributes the ordering dependency on library membership, which is genuinely beyond the annotations. It does not state what happens when the shelf is full, whether shelves are user-owned, or what the call returns.
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?
Two short sentences with zero filler, and the action statement is front-loaded ahead of the precondition. Nothing is repeated from the title or 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 simple two-parameter tool with rich annotations and no output schema, the action and its prerequisite are adequately covered. The notable gap is identifier semantics — with 0% schema coverage, an agent still has to guess what userBookId refers to, which is the one thing the description should have closed.
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 0%, so the description carries the full burden for two parameters, and it supplies none — shelfId and userBookId are never explained. The distinction between a catalog book id and a userBookId (library entry) is exactly the ambiguity an agent would trip over, and neither field's meaning nor format is clarified anywhere.
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?
The description states a specific verb and resource ("Puts a library book on a shelf") and implicitly distinguishes itself from add_book_to_library by naming that tool as a prerequisite step. An agent can tell the two apart, though the phrasing "puts ... on" is slightly informal compared with the sibling names.
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?
It gives an explicit precondition — the book must already be in the library, and add_book_to_library is named as the tool that satisfies it — which routes the agent to the correct alternative when the precondition fails. There is no guidance on when not to use it (e.g. book already on the shelf), but the idempotent annotation partly covers that case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.