Skip to main content
Glama
edouardArmit

Zotero MCP Server

by edouardArmit

list_libraries

List all accessible Zotero libraries, including personal and group libraries, with their IDs, names, and types to target specific shared libraries for further queries.

Instructions

List every Zotero library this server can see: your personal library ("My Library", library_id 1) plus every group/shared library you belong to, with its library_id, name, and type. Pass a group's library_id as the library_id argument to list_collections, list_items, search_metadata, get_tags, search_library, or get_library_stats to scope to that shared library specifically — otherwise those tools already search across every library by default. Item-level tools (get_item, get_item_fulltext, get_item_notes, get_item_annotations, compare_items) work the same regardless of which library an item lives in — just pass its key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the description must disclose behavioral traits. It does not explicitly state that the tool is read-only or non-destructive, but the nature of listing is inherently read-only. It does not mention potential side effects or limitations, but the absence of parameters and side effects allows a 4.

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?

The description is well-organized and front-loaded with the core purpose. It is four sentences, but each adds essential context about usage with siblings. It could be slightly more concise, but every sentence earns its place.

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?

The tool has no parameters, no output schema, and no annotations, so the description is the only source of information. It fully explains what the tool does, what it returns, and how to use the result with other tools. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the description clearly explains the output (library_id, name, type) which is the primary useful information. Schema coverage is 100% but with no parameters, the description adds meaning by explaining what the returned data contains.

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?

The description clearly states the tool lists all Zotero libraries visible to the server, including personal and group libraries, and specifies what it returns (library_id, name, type). It distinguishes itself from sibling tools by explaining how library_id is used by other tools.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: it explains when to use this tool (to discover library IDs) and how to use the result with other tools. It also clarifies that item-level tools don't need library scoping, preventing misuse.

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