home / mcp / zotero dev mcp server

Zotero Dev MCP Server

Provides MCU-style access to Zotero for UI inspection, JS execution, plugin management, and debugging through an MCP client.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "introfini-mcp-server-zotero-dev": {
      "command": "npx",
      "args": [
        "-y",
        "@introfini/mcp-server-zotero-dev"
      ],
      "env": {
        "ZOTERO_DATA_DIR": "<ZOTERO_DATA_DIR>",
        "ZOTERO_RDP_HOST": "<ZOTERO_RDP_HOST>",
        "ZOTERO_RDP_PORT": "6100",
        "ZOTERO_PROFILE_PATH": "<ZOTERO_PROFILE_PATH>"
      }
    }
  }
}

You run an MCP server that lets your AI assistant interact with Zotero plugin development. It provides a lightweight bridge to Zotero’s context, enabling UI inspection, code execution, build tooling, and debugging in a secure, read-only environment. This makes building and testing Zotero plugins faster and more reliable by giving your AI a rich, actionable view of Zotero’s state.

How to use

Open Zotero normally and start your AI assistant. The MCP server exposes a stdio-based interface that the client connects to, so you can perform actions like taking screenshots, inspecting the DOM, running code in Zotero’s privileged context, building plugins, and reading logs. Start by issuing commands through your MCP client to access the available tools and begin interactive development sessions.

How to install

Prerequisites: Install Node.js 20 or newer and npm. Ensure you have Zotero 7 or newer installed on your system.

1) Install the MCP server client integration using the inline command shown here.

npx -y install-mcp @introfini/mcp-server-zotero-dev --client claude-code

Additional setup for Zotero and dev workflow

Install the MCP Bridge plugin in Zotero to enable the Remote Debugging Protocol. This needs to be done once and works across Zotero 7+ builds.

2) Add the following MCP client configuration to enable development with Zotero. This example uses the local stdio flow via npx.

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

Start developing

Open Zotero and start your AI assistant. You can now issue requests like taking a screenshot of Zotero or listing installed plugins to begin your development session. No extra launch flags are required.

Configuration notes

If you prefer to run the MCP server directly from the terminal without the assistant’s first-party installer, you can start the server using the same command shown in the configuration example above. The port for remote debugging is 6100 by default, and you can override it via ZOTERO_RDP_PORT.

Security and best practices

Run the MCP server on trusted networks and keep Zotero’s data directory access read-only for debugging sessions. Use the provided tooling to inspect and mutate only the intended plugin code during development.

Troubleshooting tips

If you encounter connection issues, verify that Zotero is running and that the MCP Bridge plugin is installed. Check that ZOTERO_RDP_PORT is accessible and that your MCP client is configured to connect to the same port.

Available tools

zotero_screenshot

Capture window, element, or region screenshots for visual context.

zotero_inspect_element

Find elements by CSS selector to inspect the DOM.

zotero_get_dom_tree

Retrieve the DOM tree of a window or panel for structural understanding.

zotero_get_styles

Fetch computed CSS styles for a selected element.

zotero_list_windows

List all open Zotero windows to identify targets.

zotero_execute_js

Run JavaScript in Zotero's privileged context and return results.

zotero_inspect_object

Explore Zotero APIs and inspect methods/properties of objects.

zotero_open_preferences

Open Zotero preferences window, optionally at a specific pane.

zotero_search_prefs

Search preferences by pattern to discover keys and values.

zotero_get_pref

Retrieve a preference value from Zotero.

zotero_set_pref

Set a preference value in Zotero.

zotero_scaffold_build

Build a Zotero plugin using the scaffold tool.

zotero_scaffold_serve

Serve a Zotero plugin with hot reload during development.

zotero_scaffold_lint

Run ESLint on the plugin source code.

zotero_scaffold_typecheck

Run TypeScript type checking for the plugin.

zotero_read_logs

Read debug output from Zotero (Zotero.debug).

zotero_read_errors

Read error console entries from Zotero.

zotero_watch_logs

Stream Zotero logs in real-time for live monitoring.

zotero_clear_logs

Clear the log buffer in the MCP environment.

zotero_plugin_reload

Hot reload your development plugin without restarting Zotero.

zotero_plugin_install

Install a plugin from an XPI path.

zotero_plugin_list

List installed plugins with version and status.

zotero_db_query

Execute SELECT queries on zotero.sqlite for debugging.

zotero_db_schema

Get database schema information for Zotero tables.

zotero_db_stats

Get statistics about items, attachments, and size.