npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@introfini/mcp-server-zotero-dev

v1.0.6

Published

MCP server for Zotero plugin development - enables AI assistants to build, test, and debug Zotero plugins

Downloads

459

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

| Tool | Description | |------|-------------| | zotero_ping | Test connection to Zotero and get version info | | zotero_execute_js | Execute JavaScript in Zotero's privileged chrome context | | zotero_get_pref | Get a Zotero preference value | | zotero_set_pref | Set a Zotero preference value | | zotero_search_prefs | Search and list Zotero/Firefox preferences | | zotero_inspect_object | Inspect a JavaScript object to discover methods and properties | | zotero_open_preferences | Open Zotero's preferences window, optionally navigating to a pane |

UI Inspection

| Tool | Description | |------|-------------| | zotero_screenshot | Capture a screenshot of Zotero (main window, specific window, or element) | | zotero_inspect_element | Find DOM elements by CSS selector | | zotero_get_dom_tree | Get a simplified DOM tree structure | | zotero_get_styles | Get computed CSS styles for an element | | zotero_list_windows | List all open Zotero windows |

Logging & Debugging

| Tool | Description | |------|-------------| | zotero_read_logs | Read Zotero's debug log output | | zotero_read_errors | Read errors from Zotero's error console | | zotero_clear_logs | Clear the debug log buffer and error console | | zotero_watch_logs | Start/stop watching for new log messages |

Build Integration

| Tool | Description | |------|-------------| | zotero_scaffold_build | Build a Zotero plugin using zotero-plugin-scaffold | | zotero_scaffold_serve | Start/stop the dev server with hot reload | | zotero_scaffold_lint | Run ESLint on a plugin project | | zotero_scaffold_typecheck | Run TypeScript type checking |

Plugin Management

| Tool | Description | |------|-------------| | zotero_plugin_reload | Reload a Zotero plugin | | zotero_plugin_list | List all installed plugins | | zotero_plugin_install | Install a plugin from a local XPI file |

Database Access (Read-only)

| Tool | Description | |------|-------------| | zotero_db_query | Execute a SELECT query on Zotero's database | | zotero_db_schema | Get database schema information | | zotero_db_stats | Get database statistics |

Prompts (5)

| Prompt | Description | |--------|-------------| | setup-dev | Set up Zotero plugin development environment from scratch | | debug-plugin | Connect to Zotero and start debugging your plugin | | fix-errors | Find and fix errors from Zotero's error console | | inspect-api | Interactive exploration of Zotero's JavaScript APIs | | migrate-z7 | Help migrate a plugin from Zotero 6 to Zotero 7 |

Configuration

Environment variables (all optional):

| Variable | Default | Description | |----------|---------|-------------| | ZOTERO_RDP_PORT | 6100 | RDP port to connect to | | ZOTERO_RDP_HOST | localhost | RDP host address | | ZOTERO_DATA_DIR | auto-detected | Zotero data directory path | | ZOTERO_PROFILE_PATH | auto-detected | Zotero 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