Skip to main content
Glama

Check Holdings

check_duplicate
Read-onlyIdempotent

DOES THE LIBRARY HOLD THIS WORK? Call this BEFORE telling the user the library lacks a book, and before proposing one for acquisition. A miss from list_books or search_library is NOT evidence of absence: list_books matches words and search_library ranks by relevance, so a held book can sit behind dozens of better-ranked hits. Give a title + author (+ year if known), or a library URL (Internet Archive, Gallica, e-rara, BSB, a IIIF manifest). Matches the same scan, the same edition, other editions and the same work, plus near and cross-lingual titles (title in any language). Returns a verdict (same_object / same_edition / possible_same_edition / other_edition / related_title / new), confidence, matches with reasons, ids and URLs, held_not_public (copies held but not yet published: counted, not described), and limits (what the check could not search). A "new" verdict from a URL alone has not searched other editions; pass the title and author too.

Input Schema

NameRequiredDescriptionDefault
urlNoA library URL or IIIF manifest for a specific copy (title then optional).
yearNoEdition year, if known. Separates "same edition" from "another edition".
ia_idNoInternet Archive identifier, for an exact same-scan match.
titleNoTitle in any language, original or English, e.g. "Musurgia universalis".
authorNoAuthor in any form ("Athanasius Kircher", "Kircher, Athanasius"). Strongly improves matching.
languageNoLanguage hint for the cross-lingual title match (optional).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), but the description goes well beyond them: it discloses what categories are matched (same scan, same edition, other editions, cross-lingual titles), the verdict enum, the held_not_public behavior (counted, not described), and the limits field. This is rich behavioral context a caller could not infer from structured data.

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-loaded with the core question and the when-to-call rule, and every sentence carries information (inputs, match scope, return fields, caveat). The single dense paragraph is longer than ideal and packs several distinct ideas without breaks, which costs a little readability.

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?

There is no output schema, so the description carries the return-value burden itself and does so completely: it enumerates the verdict values, confidence, matches with reasons, ids/URLs, held_not_public, and limits. Combined with the input guidance and the under-search caveat, an agent has everything needed to call it correctly.

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 already 100%, so the baseline is 3; the description adds practical combination guidance ('give a title + author (+ year if known), or a library URL') and warns that a URL-only verdict under-searches, so pass title and author too. It also restates the year's discriminating role, which is helpful framing even though the schema covers it.

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?

Opens with a specific, capitalized question ('DOES THE LIBRARY HOLD THIS WORK?') that names both the verb (check holdings) and the resource (the work), and explicitly contrasts itself with list_books and search_library. An agent can tell it apart from every sibling 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.

Usage Guidelines5/5

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

Gives an explicit when-to-use rule ('Call this BEFORE telling the user the library lacks a book, and before proposing one for acquisition') and explains why the obvious alternatives are insufficient (list_books matches words, search_library ranks by relevance). It also names the required input shape and the caveat about URL-only checks. Nothing 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.