This server has basic tool definitions with schemas and descriptions, but falls short of production quality. All 5 tools have names, descriptions, and input schemas visible in src/index.ts. However, descriptions are extremely terse (10-30 chars), parameter descriptions are sparse or missing entirely, output schemas are undocumented, and error handling provides no recovery guidance. The 'search' tool has some parameter descriptions (type, communities, sort) but others lack detail. Most critically, no tool documents what it returns, making it impossible for LLMs to plan downstream calls or extract needed fields. Parameter validation is minimal, no enums for constrained values like 'type' or 'sort', no ranges for numeric params (page, size). The server lacks any tool annotations (readOnlyHint, etc.) despite all tools being read-only. This is typical of early-stage community servers.
List/search communities.
Records in a community.
Single record by Zenodo id.
Files in a record.
Record search.
Output schemas completely undocumented. No tool describes what fields it returns, forcing LLMs to guess structure and preventing downstream tool chaining.
Parameter descriptions missing or incomplete. 'type' in search has a description, but 'query', 'page', 'size' lack detail. 'communities' tool has no parameter descriptions at all. LLMs cannot infer constraints or formats.
No enums for constrained parameters. 'type' accepts 'dataset | publication | software | presentation | poster | image | video | other' but is defined as free-form string. 'sort' accepts 'mostrecent | bestmatch | mostviewed' but lacks enum constraint. LLMs will hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Tool descriptions are extremely terse (10-30 chars). 'Record search.' and 'Single record by Zenodo id.' lack context for when to use each tool vs alternatives. Baseline is 194 chars; these are 10x too short.
No error recovery guidance. znGet() throws generic errors like 'Zenodo: not found' or 'Zenodo: 404 ...' with no hint about what the LLM should do next (retry, search differently, ask user). Errors should guide recovery.