drio
Open app

Model Context Protocol server for Zotero

Source

Model Context Protocol (MCP) server for the Zotero API, in Python

Catalog onlyCatalog onlySTDIO

Overview

Zotero MCP is a Model Context Protocol server for the Zotero API, implemented in Python, allowing users to interact with their Zotero libraries programmatically.

To use Zotero MCP, install it by adding the configuration to your mcpServers in Claude Desktop, and set the necessary environment variables. You can then access its features through the MCP Inspector or any compatible MCP client.

  • zotero_search_items: Search for items in your Zotero library using a text query. - zotero_item_metadata: Retrieve detailed information about a specific Zotero item. - zotero_item_fulltext: Access the full text of a specific Zotero item.
  1. Automating the retrieval of bibliographic data from Zotero.
  2. Integrating Zotero with other applications for enhanced research workflows.
  3. Facilitating the management of research materials through programmatic access.

Add to your AI client

Use these steps to connect Model Context Protocol server for Zotero in Cursor, Claude, VS Code, and other MCP-compatible apps. The same JSON appears in the Use with menu above for one-click copy.

Cursor

Add this to your .cursor/mcp.json file in your project root, then restart Cursor.

.cursor/mcp.json

{
  "mcpServers": {
    "zotero-mcp-kujenga": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-zotero-mcp-kujenga"
      ]
    }
  }
}

Claude Desktop

Add this server entry to the mcpServers object in your Claude Desktop config, then restart the app.

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

{
  "mcpServers": {
    "zotero-mcp-kujenga": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-zotero-mcp-kujenga"
      ]
    }
  }
}

Claude Code

Add this to your project's .mcp.json file. Claude Code will detect it automatically.

.mcp.json (project root)

{
  "mcpServers": {
    "zotero-mcp-kujenga": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-zotero-mcp-kujenga"
      ]
    }
  }
}

VS Code (Copilot)

Add this to your .vscode/mcp.json file. Requires the GitHub Copilot extension with MCP support enabled.

.vscode/mcp.json

{
  "servers": {
    "zotero-mcp-kujenga": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-zotero-mcp-kujenga"
      ]
    }
  }
}

Windsurf

Add this to your Windsurf MCP config file, then restart Windsurf.

~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "zotero-mcp-kujenga": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-zotero-mcp-kujenga"
      ]
    }
  }
}

Cline

Open Cline settings, navigate to MCP Servers, and add this server configuration.

Cline MCP Settings (via UI)

{
  "mcpServers": {
    "zotero-mcp-kujenga": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-zotero-mcp-kujenga"
      ]
    }
  }
}

FAQ

Can Zotero MCP be used with the local Zotero API?

Yes! Zotero MCP supports the local Zotero API for users running Zotero on the same machine.

Is there a need for an API key?

An API key is not required for the local API but is necessary for remote access to your Zotero library.

How do I run tests for Zotero MCP?

You can run the test suite using the command `uv run pytest`.