Zotero MCP Server logo

Zotero MCP Server

skrtis/zotero-mcp
0 starsUpdated 2026-04-08Community
Deploy on Hostinger, 20% off →Your friend gets 20% off too, using this linkFree API →SearchsearchView on GitHubGitHub repositoryReport an issue

Is this your server?

Add your score badge to your README and get your server in front of 45k+ builders a month.

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Enables Poke to search and manage Zotero research library, including items, tags, collections, notes, full text, and annotations.

README.md

Zotero MCP Server for Poke

An MCP server that gives Poke access to your Zotero research library. Built with FastMCP following the InteractionCo template.

Tools

| Tool | Description | |------|-------------| | search_items | Search the library by keyword | | get_recent_items | Get recently added items | | search_by_tag | Filter items by tag | | get_tags | List all tags in the library | | get_item_metadata | Get full metadata for an item by key | | get_item_fulltext | Extract full text from a paper (local mode) | | get_item_children | List attachments and notes for an item | | get_item_notes | Get note content for an item | | get_item_annotations | Get PDF highlights and comments (local mode) | | get_collections | List all collections | | get_collection_items | Get items in a specific collection | | create_note | Create a new note, optionally attached to an item | | add_item_by_doi | Add a paper to Zotero by DOI | | get_library_info | Show connection status and library details |

Setup

1. Copy the example env file and fill it in:

cp .env.example .env

You need:

2. Install dependencies:

/opt/homebrew/bin/python3.11 -m venv .venv
.venv/bin/pip install -r requirements.txt

3. Run locally:

.venv/bin/python src/server.py

The server starts at http://localhost:8000/mcp.

Local Mode (full-text + annotations)

Set ZOTERO_LOCAL=true to connect directly to the Zotero app running on your machine. This enables:

  • get_item_fulltext — extract text from PDFs
  • get_item_annotations — read PDF highlights and comments

In Zotero: Edit → Preferences → Advanced → Allow other applications to access Zotero

Connecting Poke

Add this to your Poke MCP configuration:

{
  "mcpServers": {
    "zotero": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Or if deployed to Render, replace localhost:8000 with your Render URL.

Deploy to Render

Push this repo to GitHub, connect it to Render, and set the environment variables (ZOTERO_LIBRARY_ID, ZOTERO_API_KEY) in the Render dashboard. The render.yaml handles everything else.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Search servers.