Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ZOTERO_API_KEYNoZotero web API key (required when using web transport).
ZOTBRIDGE_TIMEOUTNoNetwork timeout in seconds.30
ZOTERO_LIBRARY_IDNoNumeric Zotero user or group ID (required when using web transport).
ZOTBRIDGE_LOG_LEVELNoLog verbosity, written to stderr.INFO
ZOTBRIDGE_TRANSPORTNoTransport mode: 'auto', 'local', or 'web'.auto
ZOTERO_LIBRARY_TYPENoLibrary type: 'user' or 'group'.user
ZOTBRIDGE_ALLOW_WRITESNoMaster switch for all write tools.false
ZOTBRIDGE_LOCAL_API_KEYNoLocal write key obtained from the zotero_authorize_local tool.
ZOTBRIDGE_LOCAL_BASE_URLNoBase URL for the Zotero desktop API.http://localhost:23119/api
ZOTBRIDGE_MAX_FULLTEXT_CHARSNoCap on returned PDF text.50000

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

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

Tools

Functions exposed to the LLM to take actions

NameDescription
zotero_searchA

Search the library and return a compact list of matching items.

Args: query: Free-text query. Matched against titles, creators and years by default. search_mode: "titleCreatorYear" for metadata only (fast), or "everything" to include note text and indexed PDF full text. item_type: Restrict to one Zotero item type, for example "journalArticle", "book", "thesis" or "preprint". tag: Restrict to items carrying this tag. Prefix with "-" to exclude a tag. collection: Collection key or collection name to search within. limit: Maximum number of items to return (1-100).

Returns: A Markdown list, one line per item, ending in the item key needed by zotero_get_item and the citation tools.

zotero_advanced_searchA

Search by individual metadata fields and filter by publication year.

Field filters other than item_type and tag are applied client-side after a broad server-side query, which keeps the tool usable on both the local and the web transport.

Args: title: Substring to match in the title. creator: Substring to match in any creator's name. publication: Substring to match in the journal or book title. year_from: Earliest publication year to include. year_to: Latest publication year to include. item_type: Restrict to one Zotero item type. tag: Restrict to items carrying this tag. limit: Maximum number of items to return (1-100).

Returns: A Markdown list of matching items with their item keys.

zotero_list_collectionsA

List the collections in the library with their keys and item counts.

Args: limit: Maximum number of collections to return.

Returns: A Markdown list of collections, showing nesting where a collection has a parent.

zotero_list_tagsA

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

Args: contains: Only return tags containing this substring. limit: Maximum number of tags to return.

Returns: A comma-separated list of tag names.

zotero_get_recentA

List the most recently added items in the library.

Args: limit: Number of items to return (1-50).

Returns: A Markdown list of items, newest first.

zotero_statusA

Report which transport is in use and whether writes are permitted.

Call this first when something is not working; the answer names the setting to change.

Returns: A short Markdown status report.

zotero_get_itemA

Fetch the full metadata of a single item by its Zotero key.

Args: item_key: Eight-character Zotero item key, as returned by the search tools. include_abstract: Include the abstract in the output.

Returns: Markdown metadata for the item, followed by a ready-made APA 7th reference and in-text citation.

zotero_get_childrenA

List the notes and attachments belonging to an item.

Args: item_key: Eight-character Zotero item key of the parent item.

Returns: A Markdown list of child items with their own keys, which zotero_get_annotations and zotero_get_fulltext accept.

zotero_get_collection_itemsA

List the items held in one collection.

Args: collection_key: Eight-character collection key from zotero_list_collections. limit: Maximum number of items to return (1-200).

Returns: A Markdown list of items with their keys.

zotero_get_fulltextA

Extract readable text from the best attachment of an item.

The attachment is downloaded through the Zotero API and parsed locally, so the text is the document's own, not a summary.

Args: item_key: Key of the parent item, or of the attachment itself. pages: Optional 1-based page selection such as "1-8" or "2,5,9-11". Omit to read the whole document. max_chars: Override the configured character cap for this call.

Returns: The extracted text, preceded by a short provenance header.

zotero_export_citationsA

Render one or more items as formatted citations.

Args: item_keys: One item key, or several separated by commas. style: "apa" for an alphabetised APA 7th reference list with hyperlinked DOIs, "apa-intext" for parenthetical citations, "bibtex" for a .bib fragment, or "csl-json" for CSL-JSON.

Returns: The formatted citations, ready to paste into a manuscript or a reference manager.

zotero_export_collection_bibliographyA

Render every item in a collection as a bibliography.

Args: collection_key: Eight-character collection key. style: "apa", "apa-intext", "bibtex" or "csl-json". limit: Maximum number of items to include (1-500).

Returns: The formatted bibliography.

zotero_get_annotationsA

Retrieve the annotations stored on an item's PDF attachments.

Highlights, underlines, sticky notes and image annotations are all returned, grouped by page, with any comment you attached to them.

Args: item_key: Key of the parent item or of an attachment. annotation_type: Restrict to "highlight", "underline", "note" or "image". colour: Restrict to one highlight colour, given as a hex value such as "#ffd400". Useful when colour encodes a coding scheme.

Returns: A Markdown report of the annotations, ordered by page.

zotero_search_annotationsA

Search the text of highlights and comments across the whole library.

Args: query: Substring to look for in highlighted text and comments. limit: Maximum number of matching annotations to return (1-100).

Returns: A Markdown list of matches, each naming the annotation key and the attachment it belongs to.

zotero_authorize_localA

Ask the Zotero desktop application for a local API key.

Zotero raises a confirmation dialogue on the desktop. Approve it, then copy the returned key into ZOTBRIDGE_LOCAL_API_KEY and restart the MCP client. Read access does not need this; writes over the local transport do.

Returns: The granted key and the next step, or an explanation of why the request failed.

zotero_add_by_doiA

Look a DOI up on Crossref and save the resulting item to Zotero.

Args: doi: The DOI, with or without the https://doi.org/ prefix. collection_key: Optional collection to file the new item in. tags: Optional comma-separated tags to apply. dry_run: Fetch and show the metadata without writing anything.

Returns: A confirmation carrying the new item key and an APA 7th rendering of what was saved.

zotero_create_noteA

Attach a child note to an existing item.

Args: item_key: Key of the parent item. content: Note text. Plain text is converted to simple HTML paragraphs; if the text already contains HTML tags it is sent unchanged. tags: Optional comma-separated tags for the note. dry_run: Show the payload without writing.

Returns: The new note's key, or the payload if dry_run is set.

zotero_update_itemA

Change one or more metadata fields on an existing item.

The item's current version is read first and supplied as If-Unmodified-Since-Version, so a concurrent edit in the Zotero desktop application causes the write to fail rather than silently overwrite.

Args: item_key: Key of the item to edit. fields_json: A JSON object of field names to new values, for example {"volume": "12", "pages": "45-58"}. dry_run: Show the change without writing.

Returns: A before-and-after summary of the fields that changed.

zotero_manage_tagsA

Add or remove tags on an item without touching its other fields.

Args: item_key: Key of the item. add: Comma-separated tags to add. remove: Comma-separated tags to remove. dry_run: Show the resulting tag set without writing.

Returns: The item's tag list after the change.

zotero_add_itemA

Create an item from a metadata object you supply directly.

Use this for sources without a DOI, such as a thesis, a technical report or a dataset.

Args: item_json: A JSON object with at least "itemType" and "title". Creators take the Zotero shape: [{"creatorType": "author", "firstName": "J.", "lastName": "Odipio"}] collection_key: Optional collection to file the item in. dry_run: Show the payload without writing.

Returns: The new item key and its APA 7th rendering.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 20 tools

Disambiguation5/5

Each tool targets a distinct operation: search vs. field-based search, item retrieval vs. annotation retrieval vs. annotation search, citation export for items vs. collections, etc. Even the two add tools are clearly separated (manual JSON vs. DOI lookup). No two tools appear to serve the same purpose.

Naming Consistency5/5

All tools follow a consistent 'zotero_verb_noun' pattern with snake_case throughout. Verbs like get, add, list, create, update, search, export, and manage are used predictably, and there are no mixed conventions or arbitrary abbreviations.

Tool Count4/5

With 20 tools, the surface is comprehensive but not bloated; it covers searching, retrieval, editing, annotation, citation export, collection/tag management, and authentication. The count is on the higher end of reasonable for a full-featured Zotero client, but each tool addresses a distinct need.

Completeness3/5

The toolset covers most core workflows (add, get, update, search, read fulltext, annotations, citations), but notable gaps exist: there is no delete item, create/delete collection, move item between collections, or attachment upload. These missing operations could leave agents unable to complete lifecycle management tasks.

Maintenance

ActivityMaintained
ResponsivenessNo issues