Skip to main content
Glama

Find the caller's ebooks

list_ebooks
Read-onlyIdempotent

Find ebooks in the caller's Unplain account by name, newest first. Use this FIRST whenever the user refers to an ebook by name rather than by id, for example "restyle the carrot ebook": it returns the projectId that every other ebook tool needs. Pass 'search' to match text against the dashboard name and the cover title, or omit it to see the most recently updated ones. Never ask the user for a project id before trying this.

Input Schema

NameRequiredDescriptionDefault
limitNoHow many to return. Defaults to 25.
searchNoOptional case-insensitive text to match against each ebook's dashboard name and cover title. Omit it to list the most recently updated ebooks, which is the right call when the user has not named one precisely.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description adds the crucial non-obvious behavior that the result carries the projectId every downstream ebook tool requires. It does not discuss pagination beyond the limit parameter or result ordering ties, but the essential behavioral fact is disclosed.

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?

Front-loads purpose, then usage, then the negative instruction — good ordering with no filler. Slight redundancy: "by name, newest first" in sentence one is restated by the search/omit sentence.

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

Completeness4/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 by naming the key return field (projectId), which is what makes this tool callable in a chain. It stops short of sketching the rest of the returned shape (name, cover, ids), which is the only remaining gap for a read-only 2-param lookup.

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 both parameters are already documented; the description's 'search' explanation (matching dashboard name and cover title) largely restates the schema. It adds the consequence of omitting search (recently updated listing), which is marginally useful but already derivable from the schema.

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 and resource ("Find ebooks in the caller's Unplain account"), plus the ordering ("newest first") and the scoping to the caller's own data. It is clearly distinguishable from get_ebook, which the \"by id\" framing implicitly contrasts with.

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?

Explicit routing rules: "Use this FIRST whenever the user refers to an ebook by name rather than by id," a concrete example ("restyle the carrot ebook"), and a negative instruction ("Never ask the user for a project id before trying this"). It also says when to pass 'search' versus omitting it.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources