zotero-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port for TRANSPORT=http (default: 3000) | 3000 |
| TRANSPORT | No | Transport protocol: 'stdio' (default) or 'http' | stdio |
| ZOTERO_API_KEY | Yes | The Zotero API key generated from https://www.zotero.org/settings/keys | |
| ZOTERO_LIBRARY_ID | Yes | Numeric user ID or group ID | |
| ZOTERO_API_BASE_URL | No | Override for the local Zotero desktop API (http://localhost:23119/api/) instead of https://api.zotero.org | |
| ZOTERO_LIBRARY_TYPE | Yes | Either 'user' or 'group' |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| zotero_search_itemsA | Search for bibliographic items (articles, books, webpages, etc.) in a Zotero library. This is a READ-ONLY quick search. It matches titles and creator names by default (query_mode='titleCreatorYear'); pass query_mode='everything' to also search full text of PDF attachments. Combine with item_type and/or tag filters to narrow results, and collection_key to search inside one collection only. Args:
Returns: matching items with type, creators, year, title, DOI/URL, tags, and a trimmed abstract. Examples:
Error Handling:
|
| zotero_get_itemA | Retrieve full metadata for a single item by its key, optionally including a formatted bibliography entry. Args:
Returns: full item data (type, creators, title, date, DOI/URL, abstract, tags, collections, notes count), plus a formatted bibliography entry if requested. Examples:
Error Handling:
|
| zotero_get_item_childrenA | List the child items (notes and file attachments) of a parent item. Args:
Returns: child items with their type (note/attachment), and for notes, the note text. Examples:
Error Handling:
|
| zotero_list_collectionsA | List the collections (folders) in a Zotero library, optionally scoped to one parent collection. Args:
Returns: collections with their key, name, parent, and item count. Examples:
|
| zotero_create_collectionA | Create a new collection (folder), optionally as a subcollection of an existing one. This tool WRITES to the library and requires an API key with write access. Args:
Returns: the key of the newly created collection. Examples:
Error Handling:
|
| zotero_list_tagsA | List the tags used in a Zotero library, with the count of items carrying each tag. Useful for discovering what tag vocabulary is already in use before tagging new items (e.g. for the "línea teórica" or "línea de tiempo" categories in a state-of-the-art review), or for checking whether a specific tag already exists. Args:
Returns: tag names with the number of items carrying each one. Examples:
|
| zotero_create_itemA | Create a new bibliographic item (article, book, webpage, report, etc.) in the library. This tool WRITES to the library and requires an API key with write access. It fetches the correct field template for item_type from Zotero before submitting, so only the fields you provide are set — you don't need to know the full schema for every item type. Args:
Returns: the key of the newly created item. Examples:
Error Handling:
|
| zotero_add_noteA | Attach a child note to an existing item. This tool WRITES to the library and requires an API key with write access. Args:
Returns: the key of the newly created note. Examples:
Error Handling:
|
| zotero_update_item_tagsA | Add and/or remove tags on an existing item, leaving all other fields untouched. This tool WRITES to the library and requires an API key with write access. It reads the item's current version first and sends a version-checked PATCH, so it will report a clear conflict error rather than silently overwriting a concurrent change. Args:
Returns: the item's updated tag list. Examples:
Error Handling:
|
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/andresrocha99/zotero-mcp-server-v2'
If you have feedback or need assistance with the MCP directory API, please join our Discord server