zotero-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZOTERO_MCP_BASE_URL | No | Base URL for Zotero local API | http://127.0.0.1:23119 |
| ZOTERO_MCP_TOKEN_FILE | No | Path to the token file | ~/.research-workbench/zotero-bridge.json |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| zotero_search_itemsB | Search the local Zotero library by title, creator, and year. Read-only. |
| zotero_get_itemA | Get one Zotero item and optionally its children or indexed full text. Read-only. |
| zotero_list_collectionsB | List local Zotero collections. Read-only. |
| zotero_get_collection_itemsB | List top-level items in a Zotero collection. Read-only. |
| zotero_list_tagsC | List tags from the local Zotero library. Read-only. |
| zotero_get_item_notesB | List note children for a Zotero item. Read-only. |
| zotero_create_itemC | Create a Zotero item through the authenticated Research Workbench extension. |
| zotero_update_itemC | Update Zotero fields with optimistic version checking through the authenticated extension. |
| zotero_create_noteB | Create a standalone or child HTML note through the authenticated extension. |
| zotero_add_tagsC | Add tags to a Zotero item through the authenticated extension. |
| zotero_create_collectionC | Create a Zotero collection through the authenticated extension. |
| zotero_add_to_collectionA | Add existing items to a Zotero collection through the authenticated extension. |
| zotero_attach_linkA | Create a linked-URL attachment. File-content uploads are not supported in v1. |
| zotero_trash_itemB | Move an item to Zotero trash. This never permanently deletes it. |
| zotero_healthA | Check Zotero, its local read API, the Research Workbench write API, and bearer authentication. Never errors. |
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 15 tools
Most tools target a distinct Zotero resource and action, such as search_items, get_item, list_collections, and add_tags. There is minor overlap where get_item can optionally return children while get_item_notes specifically lists note children, but descriptions are clear enough to usually guide correct selection.
All tools use the zotero_ prefix and follow a consistent verb_noun snake_case pattern: search_items, get_item, list_collections, create_item, update_item, add_tags, trash_item. The one exception, zotero_health, is a simple and recognizable single-purpose action rather than a confusing deviation.
With 15 tools, this server sits at the upper boundary of a well-scoped toolset, and each tool maps to a meaningful Zotero operation. Read operations, write operations, collection management, tagging, attachments, and health checking are all represented without obvious redundancy.
The toolset covers core item search/read/create/update, note creation, tag adding, collection creation, and item trashing, but there are notable gaps: no remove-from-collection, no remove-tags, no note update/delete, and no restore-from-trash. The attach_link tool also explicitly does not support file-content uploads, which limits one common attachment workflow.