zotero-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZOTERO_API_KEY | Yes | Your Zotero API key | |
| ZOTERO_LIBRARY_ID | Yes | Your Zotero user ID (numeric) or group ID | |
| ZOTERO_LIBRARY_TYPE | No | Type of library: 'user' or 'group' | user |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| zotero_search_itemsA | Search the Zotero library for items (references), matching against title, creator names, and full text of attached PDFs. Args:
Returns matching items with key, title, creators, date, tags, and abstract. Use the item 'key' with zotero_get_item, zotero_update_item, or zotero_get_item_children for further work. Does NOT create or modify anything - read-only. Examples:
|
| zotero_get_itemA | Fetch full metadata for a single Zotero item by its key. Args:
Returns all fields for the item, including the current 'version' number, which is required for zotero_update_item and zotero_delete_item to avoid overwriting concurrent changes. Error Handling:
|
| zotero_get_item_childrenA | List the child items (attachments and notes) of a parent Zotero item. Args:
Returns attachments (PDFs, links) and notes attached to the item, each with its own key. Use this to find a PDF attachment's key or to read existing notes before adding a new one. |
| zotero_list_collectionsA | List collections (folders) in the Zotero library. Args:
Returns each collection's key, name, and item count. Use a collection's key with zotero_get_collection_items or zotero_add_items_to_collection. |
| zotero_get_collection_itemsA | List the items filed under a specific Zotero collection. Args:
Returns the items in the collection (not sub-collections). For a broader text search restricted to a collection, use zotero_search_items with collection_key instead. |
| zotero_list_tagsA | List tags used in the Zotero library, optionally filtered by substring. Args:
Useful for discovering the exact tag spelling before using it in zotero_search_items or zotero_update_item. |
| zotero_create_itemA | Create a new top-level item (reference) in the Zotero library. Args:
Returns the created item's key and version. This is a destructive/write operation - it permanently adds to the user's library. Examples:
|
| zotero_update_itemA | Apply a partial update to an existing Zotero item. Args:
Returns the updated item. Fails with a version-mismatch error if the item changed since current_version was read - in that case, call zotero_get_item again and retry. Don't use when: adding the item to a collection is the only goal - zotero_add_items_to_collection is simpler and avoids the version-conflict risk. |
| zotero_delete_itemA | Delete an item from the Zotero library. Args:
This is a destructive operation, and the library is synced - the deletion propagates to the user's desktop Zotero and any other synced device. Always confirm with the user before calling this. Never pass permanent=true unless the user has explicitly asked for irreversible deletion; the default trash behaviour leaves them able to undo it. |
| zotero_create_noteA | Create a standalone note or a child note attached to an existing item. Args:
Use for recording reading notes, screening decisions, or extraction summaries against a reference. |
| zotero_create_collectionA | Create a new collection (folder) in the Zotero library. Args:
Returns the new collection's key, for use with zotero_add_items_to_collection. |
| zotero_add_items_to_collectionA | Add one or more existing items to a Zotero collection, without needing to fetch or manage version numbers. Args:
This adds to the collection; it does not remove the items from any collection they're already in, and does not affect other items already in the target collection. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/adolinjonathan-bot/zotero-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server