Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for mcp-server-zotero-dev

Pod holds 7 of 7 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to mcp-server-zotero-dev.

Most discussed

zotero_db_query always fails: "result.columns.join is not a function"

Summary

zotero_db_query fails on every query, including trivial ones. zotero_db_schema is affected by the same underlying cause. Two independent defects are involved — either one alone is sufficient to break the tool.

Environment

@introfini/mcp-server-zotero-dev 1.1.2 (latest on npm)
Zotero 9.0.6 (Firefox 140 platform)
MCP Bridge for Zotero plugin 1.0.5
OS / Node macOS 15 / Node 22

Minimal reproduction

With Zotero running and the RDP br

Read the thread · 2026-08-16 · closed · outside contributor · 2 comments

openListener() reports success when another process holds the port; health check then reopens every 10s forever

Summary

When another process already holds the RDP port, openListener() reports success — at startup and on every health-check reopen — while the bridge is not actually serving. The plugin's internal notion of "listening" stays wrong for as long as the conflict lasts, and the health check reopens on a 10s loop indefinitely.

Why it happens

SocketListener.open() does not reject when the port is already bound (Mozilla server sockets set SO_REUSEADDR; on Windows a second bind is a

Read the thread · 2026-07-31 · open · outside contributor · 1 comment

MCP tool surface audit: add safety/trigger language for execute, scaffold, and log tools

Hi, I ran a deterministic MCP tool-surface audit against the Zotero dev MCP tool definitions and found a few places where description and profile hints could improve agent safety.

Scope: static audit from packages/mcp-server/src/tools/*.ts, not a live runtime test.

Summary

  • 25 tools detected.
  • Average discoverability score: 75/100.
  • Lowest-scoring tools: 56/100.
  • 4 of 25 tools score below 60.
  • 25 of 25 tools are missing explicit "Use when" trigger language.
  • 12 write tools lack exp

Read the thread · 2026-06-21 · closed · external user · 2 comments

evaluateJS silently re-executes side effects after connection drops; pending requests hang 30s on socket close

Summary

Two related reply-loss problems in RDPClient (packages/mcp-server/src/rdp/client.ts):

  1. evaluateJS re-sends the same code after a connection error. A connection drop loses the reply, not necessarily the request — evaluateJSAsync may already have executed in Zotero. The blind resend then runs the code's side effects twice. This is dangerous for non-idempotent tool calls (zotero_plugin_install, UI mutations, DB-adjacent scripts).

  2. **handleClose() leaves pending r

Read the thread · 2026-06-10 · closed · outside contributor · 0 comments

RDP client frames outbound packets with UTF-16 char count — non-ASCII payloads corrupt the stream

Summary

RDPClient.sendMessage() (packages/mcp-server/src/rdp/client.ts) frames outbound packets with

const packet = `${json.length}:${json}`;

but the RDP <length>:<json> prefix is the UTF-8 byte length, and json.length is the UTF-16 character count. Any non-ASCII character in an outbound payload (emoji or accented text inside zotero_execute_js code, search strings, etc.) understates the length: the receiving transport reads a truncated JSON document, the stream desy

Read the thread · 2026-06-10 · closed · outside contributor · 0 comments

Bridge plugin health check closes the live RDP listener every 2s — port refuses most connections

Summary

The bridge plugin's "health check" (packages/zotero-plugin-mcp-rdp/src/bootstrap.js) calls openListener() every 2 seconds, and openListener() unconditionally closes the live listener before rebinding. The comment says a re-open "will fail harmlessly (port in use)" — but since the close frees the port first, the re-open always succeeds. The listening socket is therefore torn down and recreated every 2 seconds for the entire Zotero session.

Measured impact (Windows 11, Zo

Read the thread · 2026-06-10 · closed · outside contributor · 2 comments

MCP server cannot communicate with Zotero bridge plugin on Windows

Thanks so much for building this -- it'd be a great help, but I'm not currently getting it to work.

I have the MCP server show up in clode and the bridge plugin in Zotero 8.0.2-beta.1+62894d56e (64-bit). When I ask Claude code to do anything, I get an incoming communication message pop-up in Zotero, which I OK (could there be a way to permanently allow that rather then having to OK for every communication?). After that, Claude says it's not getting anything back and just keeps waiting until I e

Read the thread · 2026-01-30 · closed · external user · 3 comments

Most recent

The remaining reports are on the project's issue tracker.