https://github.com/kujenga/zotero-mcp
Model Context Protocol (MCP) server for the Zotero API, in Python
https://github.com/kujenga/zotero-mcp
mcp mcp-server zotero
Last synced: 4 months ago
JSON representation
Model Context Protocol (MCP) server for the Zotero API, in Python
- Host: GitHub
- URL: https://github.com/kujenga/zotero-mcp
- Owner: kujenga
- License: mit
- Created: 2025-01-26T20:23:57.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-02-02T17:43:34.000Z (4 months ago)
- Last Synced: 2025-02-02T18:30:14.713Z (4 months ago)
- Topics: mcp, mcp-server, zotero
- Language: Python
- Homepage:
- Size: 45.9 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Model Context Protocol server for Zotero
This project is a python-based server that implements the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) for [Zotero](https://www.zotero.org/).
## Features
This MCP server provides the following tools:
- `zotero_search_items`: Search for items in your Zotero library using a text query
- `zotero_item_metadata`: Get detailed information about a specific Zotero item
- `zotero_item_fulltext`: Get the full text of a specific Zotero itemThese can be discovered and accessed through the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) or any other [MCP client](https://modelcontextprotocol.io/clients).
Each tool returns formatted text containing relevant information from your Zotero items.
## Installation
To use this with Claude Desktop, add the following to the `mcpServers` configuration:
```json
"zotero": {
"command": "uvx",
"args": ["zotero-mcp"],
"env": {
"ZOTERO_LOCAL": "true"
}
}
```The following environment variables are supported:
- `ZOTERO_LOCAL=true`: Use the local Zotero API (default: false)
- `ZOTERO_LIBRARY_ID`: Your Zotero library ID (not required for the local API)
- `ZOTERO_LIBRARY_TYPE`: The type of library (user or group, default: user)
- `ZOTERO_API_KEY`: Your Zotero API key (not required for the local API)You can find your library ID and create an API key in your Zotero account settings: https://www.zotero.org/settings/keys
The [local Zotero API](https://groups.google.com/g/zotero-dev/c/ElvHhIFAXrY/m/fA7SKKwsAgAJ) can be used with Zotero 7 running on the same machine.
> n.b. An upcoming Zotero release is needed to support the fulltext API locally: https://github.com/zotero/zotero/pull/5004
## Development
1. Clone this repository
1. Install dependencies with [uv](https://docs.astral.sh/uv/) by running: `uv sync`
1. Create a `.env` file in the project root with the environment variables aboveStart the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) for local development:
```bash
npx @modelcontextprotocol/inspector uv run zotero-mcp
```### Running Tests
To run the test suite:
```bash
uv run pytest
```## Relevant Documentation
- https://modelcontextprotocol.io/tutorials/building-mcp-with-llms
- https://github.com/modelcontextprotocol/python-sdk
- https://pyzotero.readthedocs.io/en/latest/
- https://www.zotero.org/support/dev/web_api/v3/start