# Zotero Native MCP

Links AI assistants to a local Zotero 10 library without plugins or web credentials. It lets models query citations, manage collections, and link PDF files on disk.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 11
- Author: dvdsosa
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/dvdsosa/zotero-native-mcp
- Updated: 2026-10-20
- HTML: https://affpapa.org/en/nevibecode/mcp/zotero-native-mcp

## What it does

The server communicates directly with the desktop app over `127.0.0.1`. No network round trip occurs. Read latency stays within 8 to 60 ms because requests stay on your machine. All 28 packaged tools interact with personal and shared group libraries.

Agents can search full text across stored papers, create collections, update tags, and link local PDFs. Item removal defaults to sending files into the Zotero trash bin. However, passing `permanent: true` or invoking the trash purge removes records from disk immediately. Copying the folder with `zotero.sqlite` beforehand prevents accidental data loss.

Running Zotero 10 or newer is mandatory for write operations. Earlier releases reject any modifications. You also need Node.js 22 or later. In Zotero advanced preferences, remember to allow communication with other local applications.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `ZOTERO_LOCAL_PORT`, `ZOTERO_LOCAL_APP_NAME` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env ZOTERO_LOCAL_PORT=<ZOTERO_LOCAL_PORT> --env ZOTERO_LOCAL_APP_NAME=<ZOTERO_LOCAL_APP_NAME> --transport stdio zotero-native-mcp -- npx -y zotero-native-mcp
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add zotero-native-mcp --env ZOTERO_LOCAL_PORT=<ZOTERO_LOCAL_PORT> --env ZOTERO_LOCAL_APP_NAME=<ZOTERO_LOCAL_APP_NAME> -- npx -y zotero-native-mcp
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "zotero-native-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "zotero-native-mcp"
            ],
            "env": {
                "ZOTERO_LOCAL_PORT": "<ZOTERO_LOCAL_PORT>",
                "ZOTERO_LOCAL_APP_NAME": "<ZOTERO_LOCAL_APP_NAME>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "zotero-native-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "zotero-native-mcp"
            ],
            "env": {
                "ZOTERO_LOCAL_PORT": "<ZOTERO_LOCAL_PORT>",
                "ZOTERO_LOCAL_APP_NAME": "<ZOTERO_LOCAL_APP_NAME>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e ZOTERO_LOCAL_PORT=<ZOTERO_LOCAL_PORT> -e ZOTERO_LOCAL_APP_NAME=<ZOTERO_LOCAL_APP_NAME> zotero-native-mcp npx -y zotero-native-mcp
```
Replace <…> with your own values

## When to use it
- Attach downloaded PDF documents to citation records on disk
- Search research papers by indexed full-text content locally
- Organize reference libraries into targeted topical collections
- Batch update inconsistent tags across research items

## Example prompts
- Run zotero_status to verify the local connection
- Search my local library for papers on neural scaling laws and show summaries
- Create a Zotero collection named Survey Draft and place matching references there

## Similar
- [zotero-paper-reader](https://affpapa.org/en/nevibecode/skills/zotero-paper-reader.md) — skill · 606 installs
- [Zotero MCP](https://affpapa.org/en/nevibecode/mcp/zotero-mcp.md) — MCP server · ★ 5585
- [zotero-mcp-local](https://affpapa.org/en/nevibecode/mcp/zotero-mcp-local.md) — MCP server · ★ 8
- [zotero-obsidian-bridge](https://affpapa.org/en/nevibecode/skills/zotero-obsidian-bridge.md) — skill · 473 installs
- [zotero](https://affpapa.org/en/nevibecode/plugins/zotero.md) — plugin · ★ 7604
- [zotero-bridge](https://affpapa.org/en/nevibecode/mcp/zotero-bridge.md) — MCP server · ★ 10

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
