zotero-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZOTERO_USER_ID | No | Override the local user id (default 0; almost always correct). | 0 |
| ZOTERO_BASE_URL | No | Override the API base (default http://localhost:23119/api). Useful from WSL where Zotero runs on the Windows host. | http://localhost:23119/api |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| zotero_searchA | Search the Zotero library for top-level items. Args: query: Free-text search. Matches title/creator/year by default. item_type: Restrict to a Zotero item type, e.g. "journalArticle", "book". tag: Restrict to items carrying this tag. limit: Maximum number of items to return. everything: If true, search all fields and full-text rather than just title/creator/year. Returns a compact list of items, each with its |
| zotero_get_itemA | Get the full metadata for a single item by its key. |
| zotero_get_childrenA | List the notes, attachments, and annotations belonging to an item. Useful to find the attachment key needed for zotero_get_item_fulltext, or to read a paper's notes. |
| zotero_get_item_fulltextA | Return the extracted full text for an item. Accepts either an attachment key directly, or a parent item key (in which case the first attachment with indexed text is used). Full text is only available when Zotero has indexed the attachment. |
| zotero_list_collectionsA | List collections. Pass a collection key as |
| zotero_collection_itemsC | List the top-level items in a collection. |
| zotero_list_tagsA | List tags in the library, optionally filtered by a substring |
| zotero_saved_searchesA | List the library's saved searches (name + key + conditions). |
| zotero_export_bibtexC | Export one or more items as BibTeX (rendered by Zotero). |
| zotero_export_citationA | Return formatted citation + bibliography HTML for items, in the given CSL style. Args: item_keys: Items to format. style: A CSL style id, e.g. "apa", "chicago-note-bibliography", "ieee". |
| zotero_healthA | Check that the Zotero local API is reachable. Use this to debug connectivity. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose: listing, searching, getting metadata/children/fulltext, exporting in different formats, checking health, and listing collections/tags/saved searches. No overlapping functionality that would cause confusion.
All tools share the 'zotero_' prefix and mostly follow a verb_noun pattern (e.g., zotero_get_item, zotero_search, zotero_list_collections). Minor deviations: 'zotero_collection_items' and 'zotero_saved_searches' are noun phrases rather than explicit verbs, but still clear.
11 tools is well-scoped for a research reference management server. Each tool serves a necessary function without redundancy, covering search, retrieval, listing, export, and health checks.
The tool set provides thorough read capabilities: search, get items/fulltext/children, list collections/tags/saved searches, and export. It lacks create/update/delete operations, but the server appears designed for querying and exporting, so the surface is appropriate for that purpose.