Skip to content
Agentmart
Submit a tool

Zotero Library MCP

Add papers and books to Zotero by DOI, arXiv ID, or ISBN and manage your library

Connector by RaulSimpetru · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 2
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/raulsimpetru-zotero-library-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Add papers and books to Zotero by DOI, arXiv ID, or ISBN and manage your library

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
20 read · 23 write · 8 delete
Secrets
5 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Python package

Tools by what they do 51

Read from the source code; the running server may list different tools.

Read 20 · Look things up without changing anything.

  • fetch
  • find_duplicates
  • get_annotations
  • get_bibtex
  • get_collection_items
  • get_item_details
  • get_item_fulltext
  • get_recent_items
  • get_unfiled_items
  • health_check
  • list_attachments
  • list_collections
Show 8 more tools
  • list_libraries
  • list_notes
  • list_tags
  • list_trash
  • search
  • search_fulltext
  • search_library
  • verify_items

Write 23 · Create, change, send or run things.

  • add_book_by_isbn
  • add_item_from_metadata
  • add_note
  • add_paper_by_arxiv_id
  • add_paper_by_doi
  • add_papers_by_dois
  • add_tags
  • add_to_collection
  • attach_file
  • create_annotation
  • create_collection
  • download_pdf
Show 11 more tools
  • move_collection
  • rename_collection
  • rename_tag
  • restore_item
  • save_bibtex
  • save_pdf
  • set_tag_color
  • trash_item
  • update_annotation
  • update_item_metadata
  • update_note

Delete 8 · Delete, drop, revoke or wipe things.

  • delete_annotation
  • delete_collection
  • delete_item
  • delete_note
  • delete_tags
  • remove_from_collection
  • remove_tags
  • unset_tag_color

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • ZOTERO_API_KEY
  • ZOTERO_LIBRARY_ID
  • ZOTERO_WEBDAV_PASSWORD
  • ZOTERO_WEBDAV_URL
  • ZOTERO_WEBDAV_USER

Network hosts it talks to 9

  • ::1 · found in code
  • api.crossref.org · found in code
  • api.unpaywall.org · found in code
  • arxiv.org · found in code
  • doi.org · found in code
  • export.arxiv.org · found in code
  • github.com · found in code
  • openlibrary.org · found in code
  • zotero.org · found in code

Files it touches

  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (51)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_book_by_isbn

    Add a book to your Zotero library by its ISBN. Resolves metadata automatically via Open Library and creates the item in Zotero. Optionally add it to a specific collection. Args: isbn: The ISBN of the book (e.g. "9780262046824") collection_id: Optional Zotero collection key to add the book to

  • add_item_from_metadata

    Add an item from manual, CSL-like, or previously parsed metadata. The Zotero item template determines which fields are accepted for the requested item type, preventing invalid cross-type metadata.

  • add_note

    Add a note to a Zotero item. The note is created as a child of the specified item. Supports HTML formatting (e.g. <b>bold</b>, <i>italic</i>, <ul><li>lists</li></ul>). Args: item_key: The parent Zotero item key to attach the note to note: The note content (plain text or HTML)

  • add_paper_by_arxiv_id

    Add a paper to your Zotero library by its arXiv ID. Fetches metadata from the arXiv API. If the paper has a DOI, resolves it via CrossRef for richer metadata; otherwise creates a preprint entry directly. Optionally add it to a specific collection. Args: arxiv_id: The arXiv ID of the paper (e.g. "2301.07041") collection_id: Optional Zotero collection key to add the paper to

  • add_paper_by_doi

    Add a paper to your Zotero library by its DOI. Resolves metadata automatically via CrossRef and creates the item in Zotero. Optionally add it to a specific collection. Args: doi: The DOI of the paper (e.g. "10.1038/nature12373") collection_id: Optional Zotero collection key to add the paper to

  • add_papers_by_dois

    Add multiple papers to Zotero by their DOIs (batch, up to 50). Args: dois: List of DOIs to add collection_id: Optional Zotero collection key to add all papers to

  • add_tags

    Add one or more tags to a Zotero item. Optionally assign a color to all added tags. Args: item_key: The Zotero item key tags: List of tags to add color: Optional hex color code (e.g. '#FF0000') to assign to the added tags

  • add_to_collection

    Add an existing Zotero item to a collection. Args: item_key: The Zotero item key (from search results) collection_id: The collection key to add it to

  • attach_file

    Attach a ChatGPT file input or an authorized local file to an item. Args: item_key: The Zotero item key to attach the file to file: File object supplied by ChatGPT through openai/fileParams file_path: Local server path; stdio only unless HTTP roots are explicitly enabled

  • create_annotation

    Highlight a text passage in a PDF attached to a Zotero item. Searches the PDF for the quoted text and creates a visible highlight annotation in Zotero's PDF reader. Tries a normalized word match first, then fuzzy matching (for OCR errors, hyphenation differences, or minor transcription mismatches). Smart overlap handling: - If the same text is already highlighted, appends the new comment to the existing annotation instead of creating a duplicate. - If the new text is a sub-passage of an existing highlight (or vice versa), the new highlight is created in a contrasting color so both are …

  • create_collection

    Create a new collection in your Zotero library. Args: name: Name for the new collection parent_collection_id: Optional parent collection key to nest under

  • delete_annotation

    Permanently delete a Zotero annotation.

  • delete_collection

    Permanently delete a collection from your Zotero library. Items in the collection are NOT deleted — they remain in your library. Args: collection_id: The collection key to delete

  • delete_item

    Permanently delete an item from your Zotero library. Args: item_key: The Zotero item key to delete

  • delete_note

    Permanently delete a Zotero note.

Show 36 more tools
  • delete_tags

    Delete tags from the entire Zotero library. This removes the tags from all items. Args: tags: List of tag names to delete from the library

  • download_pdf

    Return a PDF as a remote-safe MCP resource link. Useful when Zotero's fulltext index is incomplete (e.g. for books) and you need to read the PDF directly with other tools. Args: item_key: The Zotero item key (the parent item, not the attachment) attachment_key: Optional PDF attachment key when the item has multiple PDFs

  • fetch

    Company-knowledge compatible fetch for one Zotero item key.

  • find_duplicates

    Find duplicate top-level items by DOI, ISBN, or normalized title.

  • get_annotations

    List all highlights and annotations on a paper's PDF. Args: item_key: The Zotero item key (the parent item, not the attachment) limit: Maximum number of annotations to return (default 100)

  • get_bibtex

    Export BibTeX entries from your Zotero library. Can export specific items, an entire collection, or your whole library. Use save_bibtex when the export should be written to a local file. Args: item_keys: Optional list of item keys to export. If omitted, exports collection or full library. collection_id: Optional collection key to export all items from. include_abstract: Include abstracts in BibTeX output (default False to save tokens). biblatex: Convert output to BibLaTeX format (default False). Remaps fields like journal→journaltitle, address→location, and merges year+month …

  • get_collection_items

    Get items in a specific collection, one page at a time. Args: collection_id: The collection key to browse limit: Maximum number of items to return per page (default 25, max 100) start: Offset of the first item; pass the value suggested by the previous call's footer to fetch the next page (default 0)

  • get_item_details

    Get full details of a Zotero item by its key. Args: item_key: The Zotero item key

  • get_item_fulltext

    Get bounded plain text from a paper's PDF or Zotero full-text index. Unlike download_pdf, this returns readable text directly and never exposes a server-local temporary path. Args: item_key: The Zotero item key (the parent item, not the attachment) attachment_key: Optional PDF attachment key when an item has several PDFs max_chars: Maximum number of characters to return (1,000-200,000)

  • get_recent_items

    Get recently added items from your Zotero library. Args: limit: Maximum number of items to return (default 10)

  • get_unfiled_items

    Get items that are not in any collection (unfiled items). Args: limit: Maximum number of items to return (default 25)

  • health_check

    Check Zotero credentials, library access, and optional file storage setup.

  • list_attachments

    List attachment keys, filenames, MIME types, links, and sizes for an item.

  • list_collections

    List all collections in your Zotero library.

  • list_libraries

    List the key owner's personal library and a page of shared group libraries. Use the returned library_id and library_type on subsequent tool calls. This does not change the default library. Pagination applies to groups; the personal library is included on each page. Key permissions are not a guarantee of group membership rights; Zotero enforces access on each call.

  • list_notes

    List child notes for an item with bounded note content.

  • list_tags

    List all tags in your Zotero library. Args: limit: Maximum number of tags to return (default 100)

  • list_trash

    List items in Zotero's trash, e.g. to find a key for restore_item. Args: limit: Maximum number of items per page (default 25, max 100) start: Offset of the first item; use the footer's suggestion for the next page

  • move_collection

    Move a collection under another collection, or to the library root.

  • remove_from_collection

    Remove an item from a collection without deleting it from the library. Args: item_key: The Zotero item key collection_id: The collection key to remove it from

  • remove_tags

    Remove one or more tags from a Zotero item. Args: item_key: The Zotero item key tags: List of tags to remove

  • rename_collection

    Rename a Zotero collection without changing its parent.

  • rename_tag

    Rename a tag across all items in the Zotero library. Args: old_name: The current tag name new_name: The new tag name to replace it with

  • restore_item

    Restore an item from Zotero's trash.

  • save_bibtex

    Export BibTeX or BibLaTeX and atomically write it to a local file. Path writes are available by default over local stdio. HTTP deployments must explicitly allow a confined file root.

  • save_pdf

    Save a Zotero PDF to an authorized local server path.

  • search

    Company-knowledge compatible search over Zotero items and full text.

  • search_fulltext

    Search Zotero metadata and indexed full text using qmode=everything.

  • search_library

    Search your Zotero library. Falls back to fuzzy matching if the exact search returns no results. Args: query: Search query matched against titles, creators, and year (use search_fulltext for abstracts, notes, and PDF text) limit: Maximum number of results per page (default 10, max 100) start: Offset of the first result; pass the value suggested by the previous call's footer to fetch the next page (default 0)

  • set_tag_color

    Assign a color to a tag in the Zotero library. Colored tags appear in the tag selector and item lists. Args: tag: The tag name to colorize color: Hex color code (e.g. '#FF0000' for red, '#3366CC' for blue) position: Sort position for the colored tag (0-8, lower = higher priority)

  • trash_item

    Move an item to Zotero's trash so it can be restored later.

  • unset_tag_color

    Remove a tag's assigned library color without deleting the tag.

  • update_annotation

    Update the comment and/or highlight color of an annotation.

  • update_item_metadata

    Update selected bibliographic fields and optionally replace creators. Immutable/internal fields such as item type, key, version, parent item, collections, tags, and deletion state cannot be changed through this tool.

  • update_note

    Replace the content of an existing Zotero note.

  • verify_items

    Verify that recently added items have valid DOIs that match CrossRef metadata. Re-resolves each item's DOI via CrossRef and compares the title. Reports items that have no DOI, DOIs that don't resolve, or title mismatches. Args: limit: Number of recent items to check (default 10)

Compare and alternatives

    Featured in

    Signals

    Stars
    2
    Forks
    1
    Open issues
    0
    Weekly downloads
    208
    Last commit
    Oct 16, 2026 (12 days ago)
    Last release
    Oct 16, 2026 (12 days ago)
    Last package publish
    Oct 16, 2026 (12 days ago)

    From GitHub (fetched Oct 24, 2026) and the package registry.

    Details

    Registry name
    io.github.RaulSimpetru/zotero-library-mcp
    Version
    0.5.0
    Auth
    API key
    Packages
    pypi zotero-library-mcp
    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    Zotero Library MCP. Agent Mart. https://agentmart.dev/connectors/raulsimpetru-zotero-library-mcp (last updated 2026-10-24)