# zotero-bridge

Connects an AI client to a Zotero SQLite library for searching records, handling PDFs, and maintaining collections. Useful when research data should be available through MCP.

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

## What it does

zotero-bridge connects to Zotero’s `zotero.sqlite` database and exposes its records through MCP. An AI client can search items, inspect metadata, update collections and tags, read notes and abstracts, extract PDF text, search indexed content, and retrieve annotations.

It also looks up publications by DOI, ISBN, PMID, arXiv ID, or URL. Related-item searches can use manual links, shared tags, authors, or collections. Library tools find duplicates, check attachment files, clean orphan records, and merge items. The project contains TypeScript database and PDF modules and builds with `npm run build`.

The setup requires Node.js 18.0 or later and Zotero 7.0 or later. Zotero should be closed before write operations, because its database can be locked; backing up `zotero.sqlite` before changes is a practical safeguard.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add zotero-bridge -- npx -y zotero-bridge
```

### Codex

**Platform CLI**
```bash
codex mcp add zotero-bridge -- npx -y zotero-bridge
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "zotero-bridge": {
            "command": "npx",
            "args": [
                "-y",
                "zotero-bridge"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "zotero-bridge": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "zotero-bridge"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add zotero-bridge npx -y zotero-bridge
```

## When to use it
- search Zotero records by title or identifier
- organize collections and item tags
- extract and search text from attached PDFs
- find duplicate records and validate attachments
- add notes or update item abstracts

## Example prompts
- Search my Zotero library for records whose titles contain “deep learning”.
- Extract the full text from PDF attachment 100 and search it for “neural network”.
- Find duplicate records in my library and check whether item 1234 has a valid attachment.

## Similar
- [zotero-obsidian-bridge](https://affpapa.org/en/nevibecode/skills/zotero-obsidian-bridge.md) — skill · 473 installs
- [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 Native MCP](https://affpapa.org/en/nevibecode/mcp/zotero-native-mcp.md) — MCP server · ★ 11
- [zotero-mcp-local](https://affpapa.org/en/nevibecode/mcp/zotero-mcp-local.md) — MCP server · ★ 8
- [DocsAgent — Zotero, Obsidian & Apple Notes MCP Server](https://affpapa.org/en/nevibecode/mcp/docsagent-zotero-obsidian-apple-notes-mcp-server.md) — MCP server · ★ 578

---
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
