MCP for Zotero — connect your library to Claude, ChatGPT, and other AI assistants

Hi everyone,

I built a small tool called MCP for Zotero. It lets you connect your Zotero library to AI assistants like Claude or
ChatGPT using the Model Context Protocol (MCP).

Once connected, you can do things like:

- Search your library by title, author, tag, or collection
- Add new items (books, articles, theses, etc.) just by describing them in natural language
- Create and organize collections
- Update item metadata, add tags
- Export citations in BibTeX, RIS, or formatted styles like APA or Chicago
- Search inside your PDFs (if indexed by Zotero Desktop)
- Browse and switch between group libraries

The setup is straightforward: you sign in, enter your Zotero API key, and you get an MCP endpoint URL with a token.
You paste that into your AI client settings and that's it — the assistant can read and write to your library directly.

The service acts as a proxy to the Zotero API, so nothing is stored on my end beyond your encrypted credentials. It's
free to use.

You can try it at https://mcpforzotero.alejandroarnaud.dev

Happy to hear any feedback or answer questions.
  • It's the 4th such plugin announcement I can find in this forum. I salute the enthusiasm, but maybe all the developers could get together, join forces and make sure the resulting project is well maintained?

    https://forums.zotero.org/discussion/128934/zotero-mcp-plugin
    https://forums.zotero.org/discussion/comment/505280#Comment_505280
    https://forums.zotero.org/discussion/128857/clean-and-solid-mcp-server-for-zotero

    There might be more.
  • Very cool--thank you!

    I've got it installed and running on Claude Desktop under macOS 26.3.1.

    It took some time to finesse the config file, so I wanted to share here how I finally got it to load correctly:

    ```
    {
    "preferences": {
    "coworkWebSearchEnabled": true,
    "coworkScheduledTasksEnabled": true,
    "ccdScheduledTasksEnabled": true,
    "sidebarMode": "chat"
    },
    "mcpServers": {
    "mcp-for-zotero": {
    "command": "npx",
    "args": [
    "mcp-remote@latest",
    "https://mcpforzotero.alejandroarnaud.dev/mcp/sse",
    "--header",
    "Authorization: Bearer mcp_your key here"
    ]
    }
    }
    }
    ```

    It did require the installation of Node.js
  • To rpallred:

    Yes the original config didn't work. I tried yours and it worked! Hope the creator can update the config setup.
  • Hey rpallred (and caraido)!

    Huge thanks for sharing your working config and for taking the time to debug this. You were
    absolutely right — the original snippet I was handing out was the remote SSE format, which
    Claude Desktop's claude_desktop_config.json doesn't actually support. It only loads stdio
    servers spawned via command/args, so every macOS user trying our config was hitting a silent
    failure. Your npx mcp-remote@latest bridge approach is exactly the right fix.

    I just shipped an update to the dashboard so the Claude Desktop tab now shows the working
    config out of the box:

    {
    "mcpServers": {
    "mcp-for-zotero": {
    "command": "npx",
    "args": [
    "mcp-remote@latest",
    "https://mcpforzotero.alejandroarnaud.dev/mcp/sse",
    "--header",
    "Authorization: Bearer YOUR_MCP_TOKEN"
    ]
    }
    }
    }

    The Claude Desktop tab also now shows a small info banner reminding people they need Node.js
    installed, and a credit line thanking both of you for finding this approach. It felt right
    to put your names where future users can see them — this would have kept biting people for
    weeks without your post.

    If anyone else in this thread had Claude Desktop silently failing on them, head back to your
    dashboard, copy the new snippet from the Claude Desktop tab, and you should be good to go.

    Thanks again — this is exactly the kind of community feedback that makes the project better.
  • here's a couple of Claude skill files for reading Zotero files.

    https://github.com/dougwyu/claude-zotero-skills
Sign In or Register to comment.