Zoty demonstrates solid tool design with clear verb-noun naming (search_library, list_collections, get_item) and comprehensive parameter schemas. All 8 tools have descriptions and typed input schemas. However, output schemas are not explicitly documented in the source, parameter descriptions lack constraint details (ranges, formats, enums), and error handling guidance is minimal. Tool composition is strong, each tool has a single responsibility and output fields chain well (e.g., search_library returns 'key' which downstream tools accept). Descriptions average ~120 chars, meeting the 10-1024 baseline, but lack actionable guidance on when to use each tool vs. alternatives.
Add a paper to your Zotero library from an arXiv ID or DOI.
Get BibTeX, citation text, and bibliography text for one or more Zotero items. Provide at least one of `item_key` or `item_keys`.
Get full metadata for one Zotero item or a batch of items.
Get recently added or modified items from your Zotero library.
List items in a specific Zotero collection.
List all Zotero collections with their keys, names, and item counts.
Find which items in your Zotero library match a keyword query. Uses BM25 ranking over title, abstract, and indexed attachment full text.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'BibTeX, citation text, bibliography text') but the response structure, field types, and nested objects are not formally specified. LLMs cannot plan downstream tool calls or extract fields reliably without documented output schemas.
Parameter constraints not specified. 'limit' parameters lack min/max bounds (e.g., 'limit=0 returns no items' is mentioned but not formalized as minimum=0). 'item_type' accepts 'case-insensitive' values but no enum of canonical types is provided. 'style' parameter for CSL styles has no enum or reference to valid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Find which passages within one or more known items match a keyword query. Use after `search_library` to drill into one paper, or compare passage-level relevance across several papers in a single call. The public interface uses `item_keys` as the canonical key input.
Error handling lacks recovery guidance. No tool description explains what to do if a search returns no results, if an item_key is invalid, or if a DOI/arXiv lookup fails. Error responses should guide the LLM to alternative tools or corrective actions.
Tool 'get_bibtex_and_citation_for_items' uses 'and' in the name, suggesting multiple responsibilities (get BibTeX AND get citation AND get bibliography). Consider splitting into separate tools or clarifying that all three are returned in a single call.
Pagination guidance incomplete. 'search_library' and 'search_within_item' accept 'limit' but do not document offset/cursor-based pagination or how to retrieve the next page. Responses mention 'total' and 'returned_count' but no 'next_cursor' or 'offset' field is documented.