Koskamo

Zotero MCP

An open-source MCP server that connects a user's Zotero research library to AI assistants like Claude and ChatGPT. It enables agents to search the library by title, author, or semantic meaning, read PDF metadata and full text, extract and place annotations, and add new items via DOI or file. It supports local mode via zotero.sqlite or the Zotero web API, and includes features like citation tallies and retraction alerts.

Package and access

Local package with source-attributed installation metadata. Koskamo does not execute packages during review.

Zotero MCP logo, by 54yyyuCommunity listingLocal stdioSource reviewed; not executedPublished by 54yyyu
Vendor documentation

What you can do with it

  • Search library by title, author, or semantic meaning
  • Read metadata, BibTeX, and full text of PDFs
  • Extract and place annotations on papers
  • Add papers by DOI, URL, or file to collections

Source and maintenance

Community listingRegistry 0.15.2
Maintenance checked

Packages and installation

Source-provided package data. Koskamo has not executed or live-probed this package.

zotero-mcp-server 0.15.2

pypiuvx
zotero-mcp-server package definition
{
  "version": "0.15.2",
  "transport": "stdio",
  "identifier": "zotero-mcp-server",
  "runtimeHint": "uvx",
  "registryType": "pypi",
  "registryBaseUrl": "https://pypi.org",
  "packageArguments": [
    {
      "type": "positional",
      "value": "serve",
      "valueHint": "serve"
    }
  ],
  "environmentVariables": [
    {
      "name": "ZOTERO_LOCAL",
      "format": "boolean",
      "default": "true",
      "description": "Read from the local Zotero desktop app instead of the web API. Requires Zotero 7+ with the local API enabled in Settings > Advanced."
    },
    {
      "name": "ZOTERO_API_KEY",
      "format": "string",
      "description": "Zotero Web API key from https://www.zotero.org/settings/keys. Only needed when ZOTERO_LOCAL is false, or for write operations in hybrid mode."
    },
    {
      "name": "ZOTERO_LIBRARY_ID",
      "format": "string",
      "description": "Zotero user or group library ID. Only needed when ZOTERO_LOCAL is false, or for write operations in hybrid mode."
    },
    {
      "name": "ZOTERO_LIBRARY_TYPE",
      "format": "string",
      "choices": [
        "user",
        "group"
      ],
      "default": "user",
      "description": "Whether ZOTERO_LIBRARY_ID refers to a personal or a group library."
    },
    {
      "name": "ZOTERO_MCP_TOOLSETS",
      "format": "string",
      "description": "Which optional tool groups to expose, as a comma-separated list. Every tool is sent to the model on each request, so optional capabilities are off by default. Use 'all' for the full surface, 'none' for core only, named groups (scite, duplicates, discovery, feeds, relations, libraries, search-admin, pdf-geometry) to add them, or a leading '-' to subtract."
    }
  ]
}

Tools

Reported by the attributed source; not independently observed by Koskamo.

No tool definitions available.

Connect from your client

Each snippet configures the same source-provided package; replace placeholders before use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Cursor

Merge this local stdio configuration, replace every placeholder environment value, and restart Cursor. Koskamo has not executed this package.
Cursor configuration
{
  "mcpServers": {
    "zotero-mcp-zotero-mcp-server": {
      "command": "uvx",
      "args": [
        "zotero-mcp-server==0.15.2",
        "serve"
      ],
      "env": {
        "ZOTERO_LOCAL": "<YOUR_ZOTERO_LOCAL>",
        "ZOTERO_API_KEY": "<YOUR_ZOTERO_API_KEY>",
        "ZOTERO_LIBRARY_ID": "<YOUR_ZOTERO_LIBRARY_ID>",
        "ZOTERO_LIBRARY_TYPE": "<YOUR_ZOTERO_LIBRARY_TYPE>",
        "ZOTERO_MCP_TOOLSETS": "<YOUR_ZOTERO_MCP_TOOLSETS>"
      }
    }
  }
}

Cline

Merge this local stdio configuration, replace every placeholder environment value, and restart Cline. Koskamo has not executed this package.
Cline configuration
{
  "mcpServers": {
    "zotero-mcp-zotero-mcp-server": {
      "command": "uvx",
      "args": [
        "zotero-mcp-server==0.15.2",
        "serve"
      ],
      "env": {
        "ZOTERO_LOCAL": "<YOUR_ZOTERO_LOCAL>",
        "ZOTERO_API_KEY": "<YOUR_ZOTERO_API_KEY>",
        "ZOTERO_LIBRARY_ID": "<YOUR_ZOTERO_LIBRARY_ID>",
        "ZOTERO_LIBRARY_TYPE": "<YOUR_ZOTERO_LIBRARY_TYPE>",
        "ZOTERO_MCP_TOOLSETS": "<YOUR_ZOTERO_MCP_TOOLSETS>"
      }
    }
  }
}

VS Code

Merge this local stdio configuration, replace every placeholder environment value, and restart VS Code. Koskamo has not executed this package.
VS Code configuration
{
  "servers": {
    "zotero-mcp-zotero-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "zotero-mcp-server==0.15.2",
        "serve"
      ],
      "env": {
        "ZOTERO_LOCAL": "<YOUR_ZOTERO_LOCAL>",
        "ZOTERO_API_KEY": "<YOUR_ZOTERO_API_KEY>",
        "ZOTERO_LIBRARY_ID": "<YOUR_ZOTERO_LIBRARY_ID>",
        "ZOTERO_LIBRARY_TYPE": "<YOUR_ZOTERO_LIBRARY_TYPE>",
        "ZOTERO_MCP_TOOLSETS": "<YOUR_ZOTERO_MCP_TOOLSETS>"
      }
    }
  }
}

Claude Desktop

Merge this local stdio configuration, replace every placeholder environment value, and restart Claude Desktop. Koskamo has not executed this package.
Claude Desktop configuration
{
  "mcpServers": {
    "zotero-mcp-zotero-mcp-server": {
      "command": "uvx",
      "args": [
        "zotero-mcp-server==0.15.2",
        "serve"
      ],
      "env": {
        "ZOTERO_LOCAL": "<YOUR_ZOTERO_LOCAL>",
        "ZOTERO_API_KEY": "<YOUR_ZOTERO_API_KEY>",
        "ZOTERO_LIBRARY_ID": "<YOUR_ZOTERO_LIBRARY_ID>",
        "ZOTERO_LIBRARY_TYPE": "<YOUR_ZOTERO_LIBRARY_TYPE>",
        "ZOTERO_MCP_TOOLSETS": "<YOUR_ZOTERO_MCP_TOOLSETS>"
      }
    }
  }
}

Let your agent find its tools

Find servers like Zotero MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.