Skip to main content
Glama
ckgerteis

cinii-mcp

by ckgerteis

cinii_get_holdings

Read-onlyIdempotent

List libraries that hold a book or journal by NCID, with filters for ILL participation, service type, year, volume, or issue. Returns library names, IDs, and catalogue links.

Instructions

List the libraries that hold a book or journal, by its NCID, from NACSIS-CAT through CiNii Research (/opensearch/holder, live since 30 March 2026). Returns the unified envelope (operation 'get_holdings', record_type 'holding'); each item names a library, its page, its NACSIS-CAT library ID (extra.library_id) and, where the library supplies one, a link into its own catalogue for this title (extra.catalog_url).

Filters narrow the list to libraries that take ILL requests, offer copy or loan service, belong to Japan–US or Japan–Korea ILL, or (journals) hold a given year, volume or number. Zero holdings is HOLDINGS_NONE_REGISTERED, not proof that no library has the item.

Input Schema

NameRequiredDescriptionDefault
paramsYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv3.3.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description focuses on what annotations can't say: the response envelope ('operation get_holdings', 'record_type holding'), the per-item fields including extra.library_id and extra.catalog_url, and the crucial semantic caveat that HOLDINGS_NONE_REGISTERED means zero holdings are registered, not that no library holds the item. That last point materially prevents misreading an empty result.

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?

Three tight blocks: purpose first, then what each returned item contains, then filter scope and the zero-holdings caveat. Dense but front-loaded and free of filler; the parenthetical endpoint/date details are the only mildly expendable content.

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 an output schema present, the description needn't document return values, and it correctly spends its budget on the empty-result semantics and filter scope instead. Remaining gaps are minor: no mention of how pagination behaves beyond the schema's count/start, and no note on rate limits or whether an NCID lookup can fail for non-NACSIS records.

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?

Reported schema description coverage is 0% at the top level (the sole 'params' wrapper is undocumented), yet the description compensates by grouping the filter families in prose — ILL participation, copy/loan service, Japan–US and Japan–Korea ILL, and journal year/volume/number — and flagging that the last three are journals-only. It does not cover pagination (count/start), which is left entirely to the nested 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?

Opens with a specific verb and resource: 'List the libraries that hold a book or journal, by its NCID', plus the upstream source (NACSIS-CAT via CiNii Research) and endpoint. This is clearly distinguishable from every sibling, all of which are search_* or get_record tools.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the NCID requirement and the reference to 'cinii_search_books' (in the schema) tell an agent this is a follow-up call after a search, and the filter paragraph sketches when to narrow. But the description never explicitly says when to call this instead of cinii_get_record or cinii_search_libraries, and offers no exclusions.

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