mcp-server-zotero-dev — MCP server for Zotero plugin work
Wires your AI assistant into a running Zotero 7+ so it can run JS, inspect the UI, read logs and rebuild the plugin you are working on.
claude mcp add --env ZOTERO_RDP_PORT=<ZOTERO_RDP_PORT> --env ZOTERO_RDP_HOST=<ZOTERO_RDP_HOST> --transport stdio mcp-server -- npx -y @introfini/mcp-server-zotero-devWhat mcp-server-zotero-dev does
The server ships 25 tools. They cover JavaScript execution in Zotero's privileged chrome context, DOM search and computed styles, debug log and error console reads, screenshots, builds through zotero-plugin-scaffold, plugin reload and read-only SELECT queries against the Zotero database.
Transport is Firefox's Remote Debugging Protocol, since Zotero 7+ runs on Firefox ESR. A companion add-on, MCP Bridge for Zotero, opens the DevTools server inside Zotero on port 6100; this server then dials in over stdio. Skip the bridge and nothing connects. You also need Node.js 20 or newer.
Port, host and the Zotero data and profile paths are adjustable via ZOTERO_RDP_PORT, ZOTERO_RDP_HOST, ZOTERO_DATA_DIR and ZOTERO_PROFILE_PATH. Running Zotero with -debugger puts it on port 6000, which is exactly why the bridge sticks to 6100.
What it helps with
- run a JS snippet inside Zotero without restarting it
- locate a DOM node by CSS selector and read its styles
- pull errors from Zotero's console and fix the plugin
- rebuild the plugin and reload it in one pass
- query the Zotero database with a SELECT
Example prompts for the agent
- Call
zotero_pingand tell me which Zotero version answered. - Find
#zotero-items-treeand dump its computed styles. - Read
zotero_read_errorsand explain why my plugin crashes on startup.
How to install mcp-server-zotero-dev
Platform CLI
claude mcp add --env ZOTERO_RDP_PORT=<ZOTERO_RDP_PORT> --env ZOTERO_RDP_HOST=<ZOTERO_RDP_HOST> --transport stdio mcp-server -- npx -y @introfini/mcp-server-zotero-devReplace <…> with your own values
Platform CLI
codex mcp add mcp-server --env ZOTERO_RDP_PORT=<ZOTERO_RDP_PORT> --env ZOTERO_RDP_HOST=<ZOTERO_RDP_HOST> -- npx -y @introfini/mcp-server-zotero-devReplace <…> with your own values
Config file
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@introfini/mcp-server-zotero-dev"
],
"env": {
"ZOTERO_RDP_PORT": "<ZOTERO_RDP_PORT>",
"ZOTERO_RDP_HOST": "<ZOTERO_RDP_HOST>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@introfini/mcp-server-zotero-dev"
],
"env": {
"ZOTERO_RDP_PORT": "<ZOTERO_RDP_PORT>",
"ZOTERO_RDP_HOST": "<ZOTERO_RDP_HOST>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e ZOTERO_RDP_PORT=<ZOTERO_RDP_PORT> -e ZOTERO_RDP_HOST=<ZOTERO_RDP_HOST> mcp-server npx -y @introfini/mcp-server-zotero-devReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about mcp-server-zotero-dev
How do I install mcp-server-zotero-dev in Claude Code?
Run claude mcp add mcp-server-zotero-dev -- npx -y @introfini/mcp-server-zotero-dev. For a custom port and host use the second form with --env ZOTERO_RDP_PORT=<ZOTERO_RDP_PORT> --env ZOTERO_RDP_HOST=<ZOTERO_RDP_HOST> --transport stdio.
What does mcp-server-zotero-dev do?
It exposes tools that act on your running Zotero: evaluate JavaScript, look at UI elements, read logs, build and reload plugins, query the database.
What has to be in place before it connects?
Node.js 20+, Zotero 7+, and the MCP Bridge for Zotero add-on installed inside Zotero so the DevTools server on port 6100 is listening.