Keyless lookup of HathiTrust's 18M+ digitized books. Returns bibliographic records plus the list of scanned copies for each item, flagged full-view (readable online) vs limited (search-only) based on rights codes.
Three well-named tools with complete input schemas and strong descriptions (avg 180 chars). All parameters are typed and described. Tool names follow verb_noun pattern (lookup_, get_, check_). Schemas use proper JSON Schema with enums for id_type. However, output schemas are not documented, LLMs cannot predict response structure. Error handling returns generic error objects without recovery guidance. No tool annotations (readOnlyHint, etc.). Missing parameter constraints (e.g., record_number format, id length limits). No pagination support despite potential for large result sets.
Convenience check: given an identifier, report whether a readable (full-view) scanned copy exists on HathiTrust, how many copies are readable, and direct reading URLs. Keyless.
Get a single HathiTrust catalog record by its record number, with the full structured bibliographic metadata (titles, ISBNs, ISSNs, OCLCs, LCCNs, publish dates, record URL) and the complete list of scanned copies flagged full-view vs limited. e.g. record_number "009166282" ("A manual for the study of insects"). Keyless.
Look up HathiTrust's digitized-book holdings by a standard identifier (OCLC, LCCN, ISSN, ISBN, HathiTrust item id, or catalog record number). Returns the bibliographic record(s) plus every scanned copy, each flagged full-view (readable online) or limited (search-only) based on its rights code. Keyless — covers 18M+ volumes.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Callers must infer from examples or trial-and-error.
Error responses are generic objects with 'error' field. No recovery guidance (e.g., 'Try a different id_type' or 'Check that record_number is 9 digits'). LLMs cannot self-correct.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All three tools are read-only but this is not declared in the schema.
Parameter constraints missing. 'id' accepts any string; no length, format, or pattern validation. 'record_number' has no documented format (appears to be 9 digits). LLMs may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
No pagination support. lookup_by_identifier and get_record may return large result sets (18M+ volumes). No limit, offset, or cursor parameters documented.