Skip to main content
Glama
54yyyu
by 54yyyu

zotero_export_bibliography

Render formatted bibliographies or in-text citations from Zotero items using CSL styles like APA, MLA, Chicago, IEEE, or export raw BibTeX. Choose specific items, a collection, or the active library.

Instructions

Render a formatted bibliography or in-text citations for a set of Zotero items using Zotero's own CSL citation engine, so you can drop references straight into a manuscript. item_keys: optional list of 8-character item keys (also accepts a JSON list string); takes precedence over collection_key. collection_key: optional collection to export instead; if neither is given, the active library is exported (capped). style: CSL style short name (default 'apa'); e.g. 'modern-language-association', 'chicago-note-bibliography', 'ieee'. Ignored for bibtex. export_format: 'bib' (formatted reference-list entries, default), 'citation' (in-text citation strings), or 'bibtex' (raw BibTeX for .bib files). Output: markdown naming the style/format, then the rendered entries (a fenced block for bibtex, a numbered list otherwise). Rendering uses Zotero's own CSL engine and works in local mode with no API credentials, as well as over the web API. Capped at 100 items per call; scope with item_keys or collection_key for anything larger. Example: zotero_export_bibliography(item_keys=['RTKZQI8E'], style='apa', export_format='bib').

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
styleNoCSL style short name (default "apa").apa
item_keysNoOptional list of item keys (or JSON/comma string).
export_formatNo"bib", "citation", or "bibtex".bib
collection_keyNoOptional collection to export.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the 100-item cap, precedence behavior, output structure (markdown naming style/format plus fenced vs numbered blocks), and the fact that rendering uses Zotero's own CSL engine and works without API credentials. It also notes the active library is exported when neither key is given. The only gap is that it doesn't detail off-by-one/cap-trimming behavior or what happens with invalid/malformed item keys.

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 information-dense but every sentence earns its place, covering purpose, all four parameters with defaults and interactions, output format, mode support, caps, and an example. It's moderately long, yet tightly packed with non-redundant instructions; a slightly more compact organization (e.g., separating usage rules from output details) could improve scannability but it is not bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (which relieves the description of explaining return types), the description nonetheless details output structure (fenced block for bibtex, numbered list otherwise), engine usage, mode support, cap, and scoping behavior. It is comprehensive for a 4-parameter, 0-required tool with rich enums. Minor gaps like error handling for invalid keys and precise cap-trim behavior leave small room for improvement.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does add value by clarifying that item_keys 'takes precedence over collection_key', that style is 'Ignored for bibtex', naming example CSL styles, and explaining the enum values ('bib' formatted reference-list entries vs 'citation' in-text strings vs 'bibtex' raw BibTeX). However, these largely re-elaborate what the schema's descriptions already convey, so the added semantic margin is modest.

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 opens with a specific verb+resource: 'Render a formatted bibliography or in-text citations for a set of Zotero items using Zotero's own CSL citation engine'. It clearly distinguishes this export/rendering tool from the many retrieval and management siblings (e.g., search, metadata, annotations), and immediately communicates the output artifacts (bibliography, citations, BibTeX) for manuscript use.

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 explicitly explains precedence among the three input scoping options ('item_keys takes precedence over collection_key; if neither is given, the active library is exported'), covers format selection with defaults and exceptions ('Ignored for bibtex'), mentions the 100-item cap with a scoping recommendation, and states it works both in local mode and over the web API. It also provides a concrete example, making when/how to invoke very clear.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/54yyyu/zotero-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server