Mcp Server Zotero Dev

io.github.introfiniPublished by GitHub account introfiniv1.1.4Updated Oct 24, 2026

MCP server enabling AI assistants to build, test, and debug Zotero plugins

Overview

AI-generated overview

Local MCP server that lets an AI assistant build, test and debug Zotero 7+ plugins by driving a running Zotero over Firefox's Remote Debugging Protocol.

What you can do
  • Connect to Zotero and run JavaScript in its privileged context, read and set preferences, inspect objects and open the preferences window
  • Inspect the UI: take screenshots, find DOM elements by CSS selector, read DOM trees and computed styles, list open windows
  • Read, watch and clear Zotero debug logs and error-console errors
  • Build plugins with zotero-plugin-scaffold, run a hot-reload dev server, lint with ESLint and type-check TypeScript
  • List, install from a local XPI and reload Zotero plugins
  • Run read-only SELECT queries and inspect schema and statistics of Zotero's database
When to use it
Use it when you are developing or maintaining a Zotero 7+ plugin and want an assistant to inspect the live Zotero UI, execute code, read logs and errors, and run build and reload steps without switching tools.
Requirements
Runs locally via npx or a global npm install; needs Node.js 20 or newer, Zotero 7+ running, and the separate MCP Bridge for Zotero plugin installed so a DevTools server listens on port 6100. Optional environment variables ZOTERO_RDP_HOST, ZOTERO_RDP_PORT, ZOTERO_DATA_DIR and ZOTERO_PROFILE_PATH override defaults.
Before you install
The assistant can execute arbitrary JavaScript in Zotero's privileged chrome context, change preferences, install plugins from XPI files and clear logs, so actions affect your real Zotero profile and library. Database access is described as read-only SELECT queries. The RDP port is unauthenticated by default, so keep it bound to localhost.

Installation

In SourceWeft

  1. Open Mcp Server Zotero Dev in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

MCP Server for Zotero Plugin Development

An MCP (Model Context Protocol) server that enables AI assistants to build, test, and debug Zotero 7+ plugins. It provides 25 tools for UI inspection, JavaScript execution, build integration, logging, database access, and plugin management.

How it works: Zotero 7+ is built on Firefox ESR, so this server communicates with Zotero through Firefox's built-in Remote Debugging Protocol (RDP). A small companion plugin (MCP Bridge for Zotero) starts the DevTools server inside Zotero, and this MCP server connects to it.

AI Assistant (Claude, Cursor, Windsurf, etc.)         | MCP Protocol (stdio)         v    MCP Server (this package)         | Firefox RDP (TCP port 6100)         v    Zotero + MCP Bridge Plugin

Prerequisites

  • Node.js >= 20
  • Zotero 7+ (release, beta, or dev build)
  • MCP Bridge for Zotero plugin installed in Zotero — download the latest XPI

Installing the MCP Bridge plugin

  1. Download zotero-mcp-bridge-*.xpi from GitHub Releases
  2. In Zotero: Tools > Add-ons > gear icon > Install Add-on From File...
  3. Select the downloaded .xpi file
  4. Restart Zotero

The plugin automatically starts a DevTools server on port 6100 when Zotero launches.

Setup

Claude Desktop

Add to your claude_desktop_config.json:

json
{  "mcpServers": {    "zotero-dev": {      "command": "npx",      "args": ["-y", "@introfini/mcp-server-zotero-dev"]    }  }}

Claude Code

bash
claude mcp add zotero-dev -- npx -y @introfini/mcp-server-zotero-dev

Cursor / Windsurf / Other MCP clients

Configure the MCP server with:

  • Command: npx
  • Arguments: -y @introfini/mcp-server-zotero-dev

Or install globally:

bash
npm install -g @introfini/mcp-server-zotero-dev

Tools (25)

JavaScript Execution & Inspection

ToolDescription
zotero_pingTest connection to Zotero and get version info
zotero_execute_jsExecute JavaScript in Zotero's privileged chrome context
zotero_get_prefGet a Zotero preference value
zotero_set_prefSet a Zotero preference value
zotero_search_prefsSearch and list Zotero/Firefox preferences
zotero_inspect_objectInspect a JavaScript object to discover methods and properties
zotero_open_preferencesOpen Zotero's preferences window, optionally navigating to a pane

UI Inspection

ToolDescription
zotero_screenshotCapture a screenshot of Zotero (main window, specific window, or element)
zotero_inspect_elementFind DOM elements by CSS selector
zotero_get_dom_treeGet a simplified DOM tree structure
zotero_get_stylesGet computed CSS styles for an element
zotero_list_windowsList all open Zotero windows

Logging & Debugging

ToolDescription
zotero_read_logsRead Zotero's debug log output
zotero_read_errorsRead errors from Zotero's error console
zotero_clear_logsClear the debug log buffer and error console
zotero_watch_logsStart/stop watching for new log messages

Build Integration

ToolDescription
zotero_scaffold_buildBuild a Zotero plugin using zotero-plugin-scaffold
zotero_scaffold_serveStart/stop the dev server with hot reload
zotero_scaffold_lintRun ESLint on a plugin project
zotero_scaffold_typecheckRun TypeScript type checking

Plugin Management

ToolDescription
zotero_plugin_reloadReload a Zotero plugin
zotero_plugin_listList all installed plugins
zotero_plugin_installInstall a plugin from a local XPI file

Database Access (Read-only)

ToolDescription
zotero_db_queryExecute a SELECT query on Zotero's database
zotero_db_schemaGet database schema information
zotero_db_statsGet database statistics

Prompts (5)

PromptDescription
setup-devSet up Zotero plugin development environment from scratch
debug-pluginConnect to Zotero and start debugging your plugin
fix-errorsFind and fix errors from Zotero's error console
inspect-apiInteractive exploration of Zotero's JavaScript APIs
migrate-z7Help migrate a plugin from Zotero 6 to Zotero 7

Configuration

Environment variables (all optional):

VariableDefaultDescription
ZOTERO_RDP_PORT6100RDP port to connect to
ZOTERO_RDP_HOSTlocalhostRDP host address
ZOTERO_DATA_DIRauto-detectedZotero data directory path
ZOTERO_PROFILE_PATHauto-detectedZotero profile path

Troubleshooting

"Cannot connect to Zotero"

  1. Make sure Zotero is running
  2. Verify the MCP Bridge plugin is installed (Tools > Add-ons)
  3. Restart Zotero after installing the plugin
  4. Check port 6100 is not blocked: lsof -i :6100

"Port already in use"

  • Another Zotero instance may be running, or Zotero was started with the -debugger flag (which uses port 6000). The MCP Bridge uses port 6100 to avoid conflicts.

License

MIT

Source: packages/mcp-server/README.md at commit 24f8f50

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v1.1.4LatestSep 20, 2026
  2. v1.1.3Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts