mcpField
M
mcp-server-zotero-dev

mcp-server-zotero-dev

Local
github.com/introfiniDeveloper Tools40Updated 5w ago

About mcp-server-zotero-dev

mcp-server-zotero-dev is an MCP server that helps AI assistants build, test and debug Zotero 7+ plugins. It connects to Zotero over Firefox's Remote Debugging Protocol, using a companion MCP Bridge plugin that starts the debugging server inside Zotero, and is aimed at Zotero plugin developers.

Key features

  1. 0125 tools covering UI inspection and build integration
  2. 02JavaScript execution in Zotero's chrome context
  3. 03Access to debug logs and the error console
  4. 04Read-only queries against the Zotero database
  5. 05Plugin install, reload and listing commands

Use cases

  1. 01Letting an AI assistant inspect DOM structure and styles of a plugin UI
  2. 02Reading the error console to locate runtime errors in a plugin
  3. 03Running build, lint and type checks through the scaffold tools
  4. 04Migrating a plugin from Zotero 6 to Zotero 7

MCP support

The server exposes 25 tools and 5 prompts to MCP clients over stdio and connects to a running Zotero instance through RDP on port 6100.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"introfini-mcp-server-zotero-dev": {
"command": "npx",
"args": [
"-y",
"@introfini/mcp-server-zotero-dev"
],
"env": {
"ZOTERO_RDP_PORT": "<ZOTERO_RDP_PORT>",
"ZOTERO_RDP_HOST": "<ZOTERO_RDP_HOST>"
}
}
}
}
Run commandnpx -y @introfini/mcp-server-zotero-dev
Environment variables to set
ZOTERO_RDP_PORTRDP port for Zotero connection
ZOTERO_RDP_HOSTRDP host for Zotero connection

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@introfini/mcp-server-zotero-dev1.1.4

Tools

28

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project 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:

{
  "mcpServers": {
    "zotero-dev": {
      "command": "npx",
      "args": ["-y", "@introfini/mcp-server-zotero-dev"]
    }
  }
}
Claude Code
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:

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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.