Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ZOTERO_API_KEYNoYour Zotero API key with library access and write permission.
ZOTERO_LIBRARY_IDNoYour Zotero user ID for API calls (numeric).
ZOTERO_MCP_ENV_FILENoPath to the .env file containing ZOTERO_API_KEY and ZOTERO_LIBRARY_ID. If provided, the server reads credentials from this file. Alternatively, provide ZOTERO_API_KEY and ZOTERO_LIBRARY_ID directly.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
zotero_check_setupA

Diagnose the connection to Zotero. Run this first if anything fails.

zotero_searchA

Search the Zotero library and return matching references.

Use this before citing anything, to find the item keys that the Word tools need.

Args: query: Free-text search. Leave empty to browse. item_type: Restrict to a type, e.g. "journalArticle", "book". Prefix with "-" to exclude, e.g. "-attachment". tag: Restrict to a tag. Supports "tagA || tagB" for OR. collection_key: Restrict to one collection. search_mode: "titleCreatorYear" (default) or "everything" to also search full text of attachments and notes. limit: Max results, 1-100. sort: dateModified, dateAdded, title, creator, date, or itemType. direction: "asc" or "desc". top_level_only: Skip notes and attachments that hang off an item.

zotero_get_itemA

Fetch one reference in full, including its notes and attachments.

Args: item_key: The 8-character Zotero item key. include_children: Also return child notes and attachments.

zotero_list_collectionsA

List collections (folders) in the library.

Args: parent_collection_key: List sub-collections of this collection. Omit for top-level collections.

zotero_list_tagsA

List tags used in the library, optionally filtered by a substring.

zotero_list_saved_searchesA

List the saved searches defined in Zotero.

zotero_get_fulltextA

Read the indexed full text of an attachment (usually a PDF).

Zotero must have indexed the attachment. Pass an attachment key, not the parent reference key -- use zotero_get_item to find it.

zotero_list_librariesA

List the personal library and any group libraries you can access.

zotero_item_type_templateA

Get the empty field template for an item type.

Call this before zotero_create_item when you are unsure which fields a type accepts (they differ a lot between, say, "thesis" and "bill").

zotero_list_item_typesA

List every item type Zotero supports.

zotero_create_itemA

Create a new reference in the Zotero library.

Args: item_type: e.g. "journalArticle", "book", "bookSection", "report", "thesis", "webpage". Call zotero_list_item_types to see all. title: The item title. creators: List of {"creatorType": "author", "firstName": "...", "lastName": "..."} or {"creatorType": "author", "name": "..."} for institutional authors. date: Publication date, e.g. "2024" or "2024-03-15". fields: Any other Zotero fields for this type, e.g. {"publicationTitle": "Nature", "volume": "620", "DOI": "10.1038/..."}. Use zotero_item_type_template to see which fields are valid. tags: Tag names to attach. collection_keys: Collections to file the item into.

zotero_import_identifierA

Look up a DOI, arXiv id or ISBN and save it as a Zotero reference.

This is the fastest way to add a source you have a citation for. The metadata comes from CrossRef (DOI/arXiv) or Open Library (ISBN).

Args: identifier: e.g. "10.1038/nature12373", "arXiv:2103.00020", "isbn:9780262033848". Bare identifiers are auto-detected. collection_keys: Collections to file the new item into. tags: Tags to attach.

zotero_update_itemA

Change fields on an existing reference.

Only the fields you pass are modified. The item's current version is read first, so a concurrent edit in Zotero surfaces as a clear conflict rather than silently overwriting.

Args: item_key: The 8-character item key. changes: Fields to set, e.g. {"title": "...", "date": "2024"}. For tags pass {"tags": [{"tag": "x"}]} (this replaces all tags).

zotero_delete_itemA

Move a reference to the Zotero trash.

This is Zotero's normal delete: the item goes to the trash, where you can restore it. It is not an immediate permanent deletion.

zotero_add_noteA

Attach a note to a reference, or create a standalone note.

Args: text: Note content. Plain text is converted to simple HTML; if you pass HTML it is stored as-is. parent_item_key: Attach the note to this reference. Omit for a standalone note. tags: Tags for the note.

zotero_add_tagsA

Add tags to a reference, keeping the tags it already has.

zotero_attach_linkA

Attach a web link to a reference.

This creates a link attachment (a URL), not an uploaded file. Uploading actual files is not supported yet -- drag them into Zotero directly.

zotero_create_collectionB

Create a collection (folder), optionally nested under another.

zotero_set_item_collectionsC

File a reference into collections, or take it out of them.

zotero_format_citationA

Render references as formatted citation and bibliography text.

Use this for previewing, or for output that is not a Word document (email, markdown, a slide). For Word documents use word_insert_citation instead, which inserts live Zotero fields rather than dead text.

Args: item_keys: Zotero item keys, from zotero_search. style: CSL style id, e.g. "apa", "ieee", "vancouver". Defaults to ZOTERO_DEFAULT_STYLE. locale: e.g. "en-US", "ca-AD", "es-ES".

zotero_list_stylesA

List available CSL citation styles.

Args: query: Filter by substring, e.g. "chicago", "medical", "nature".

word_document_outlineA

Map a .docx paragraph by paragraph, so you can choose where to cite.

Returns each non-empty paragraph with its index and a text preview. Read this before inserting, so anchor text matches the document exactly.

word_list_citationsA

List the Zotero citations already present in a .docx.

word_insert_citationA

Insert a live Zotero citation field into a Word document.

The inserted citation is a real Zotero field, not text: in Word, Zotero's Refresh will update it and changing the document style will reformat it.

The document must be CLOSED in Word. A .docx.bak backup is written next to it on every change.

Args: document_path: Path to the .docx file. item_keys: One or more Zotero item keys (from zotero_search). Pass several to build a single multi-source citation. anchor_text: Insert immediately after this exact text. Get it from word_document_outline so it matches the document character for character. Use this OR paragraph_index. paragraph_index: Insert at the start or end of this paragraph. position: "end" (default) or "start", used with paragraph_index. locator: Page or range to cite, e.g. "45" or "45-47". prefix: Text before the citation, e.g. "see also". suffix: Text after the citation. suppress_author: Omit the author, for "as Smith (2020) argued". style: CSL style for the document. Only applied if the document has no Zotero style set yet.

word_insert_bibliographyA

Insert or refresh the bibliography field, built from the document's citations.

Reads every Zotero citation already in the document, renders the corresponding bibliography entries, and writes them into a live ZOTERO_BIBL field. An existing bibliography is replaced.

Args: document_path: Path to the .docx file. paragraph_index: Place the bibliography after this paragraph. Omit to append it at the end of the document. heading: Optional heading to insert above it, e.g. "References". style: Only used if the document has no Zotero style set yet.

word_set_citation_styleA

Set which CSL style a Word document uses.

This writes Zotero's document-preferences fields. After running it, open the document in Word and click Zotero > Refresh: every citation and the bibliography reformat into the new style automatically.

Args: document_path: Path to the .docx file. style: CSL style id, e.g. "apa", "ieee", "vancouver". Use zotero_list_styles to browse. locale: e.g. "en-US", "ca-AD", "es-ES".

word_remove_citationA

Remove a Zotero citation field from a document.

Args: document_path: Path to the .docx file. citation_id: From word_list_citations. keep_text: Leave the rendered citation behind as plain text.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/RogerAylagas/Zotero-MCP'

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