Skip to main content
Glama
README.md
# zotero-mcp

MCP server for interacting with your Zotero library via the [Zotero Local API](https://www.zotero.org/support/dev/web_api/v3/local_api).

## Prerequisites

- Zotero desktop application running
- Local API enabled: Zotero → Settings → Advanced → check "Allow other applications on this computer to communicate with Zotero"

## Install

```bash
uvx zotero-mcp
```

Or install permanently:

```bash
pip install zotero-mcp
```

## Configuration

### opencode

Add to `~/.config/opencode/opencode.json`:

```json
{
  "mcp": {
    "zotero": {
      "type": "local",
      "command": ["uvx", "zotero-mcp"],
      "enabled": true
    }
  }
}
```

### Claude Desktop / Other MCP Clients

```json
{
  "mcpServers": {
    "zotero": {
      "command": "uvx",
      "args": ["zotero-mcp"]
    }
  }
}
```

## Tools

| Tool | Description |
|------|-------------|
| `zotero_search_items` | Full-text search with type/tag/collection filters |
| `zotero_get_item` | Get complete item metadata |
| `zotero_get_item_fulltext` | Get PDF/attachment text content |
| `zotero_list_collections` | Browse collection hierarchy |
| `zotero_list_collection_items` | List items in a collection |
| `zotero_list_tags` | List all tags with counts |
| `zotero_create_item` | Create new items (book, article, thesis, etc.) |
| `zotero_update_item` | Update item fields |
| `zotero_add_note` | Attach notes to items |
| `zotero_add_tags` | Add tags to items |
| `zotero_delete_item` | Move items to trash |
| `zotero_get_citation` | Generate formatted citations (APA, MLA, Chicago, etc.) |

## Development

```bash
# Clone
git clone <your-repo-url>
cd zotero-mcp

# Install dependencies
uv sync

# Test with MCP Inspector
npx @modelcontextprotocol/inspector uv run zotero-mcp

# Run directly
uv run zotero-mcp
```

## License

MIT