Skip to main content
Glama
edouardArmit

Zotero MCP Server

by edouardArmit

search_library

Search your entire Zotero library across metadata, full-text PDFs, and notes. Get snippets, page numbers, and source details to locate and cite specific information.

Instructions

Search across the whole library. scope is one of: 'metadata' (titles/authors/abstracts, always available), 'fulltext' (inside PDF text, requires the index to have been built — see rebuild_search_index / scripts/build_index.py), 'notes' (inside your notes, same index requirement), or 'all' (default: every scope, merged). Searches across every library — your personal library and all group/shared libraries — by default; pass library_id (see list_libraries) to scope to just one. Each fulltext/notes result includes a library_id, a snippet, and the exact page (for PDFs) so you can cite it, plus the parent item_key to fetch more with get_item / get_item_fulltext. IMPORTANT: whenever you report fulltext or notes results to the user, mention the index_last_updated timestamp included in the response (e.g. "based on your library as of ") — those two scopes come from a separately built search index, not a live query, so the user should know how current it is. metadata-only results don't need this since they're always live.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
scopeNoall
library_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden, and it does so thoroughly. It discloses that fulltext/notes rely on a separately built index rather than live queries, that results include index_last_updated, and that the agent must surface that timestamp to users. This exceeds what annotations would typically provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence adds necessary operational context. It front-loads the core purpose, then structures scope, library scoping, result shape, and the index freshness caveat in a logical order.

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?

Given no output schema, the description still conveys what results contain, how to fetch more details, when to expect live versus indexed data, and what to tell the user about freshness. An agent has enough context to invoke the tool correctly and interpret its output.

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 description coverage is 0%, so the description must compensate. It thoroughly explains scope values and library_id behavior, and it implies query semantics through the overall search purpose. It does not elaborate on limit, but the schema title and default make it self-explanatory.

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?

States a specific verb and resource: 'Search across the whole library', and clarifies the operation by enumerating the four scope modes. It distinguishes itself from siblings by covering metadata, fulltext, notes, and all-library scope rather than a simple metadata or item listing.

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

Usage Guidelines4/5

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

Gives clear context for when to use the tool: use it for cross-library search, pass library_id to narrow to one library, and use rebuild_search_index when fulltext/notes are unavailable. It does not explicitly say 'use search_metadata instead for metadata-only queries', but it does explain the metadata scope and points to related tools for fetching results.

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