Skip to content

Tracking: ruvector MCP broken upstream (RuVector #715/#710) — local wrapper workaround in place until fixed #49

Description

@pacphi

What

ruvector registered as a user-scope MCP server (npx -y ruvector mcp start) shows ✗ failed in Claude Code. Diagnosed 2026-07-24 on ruvector 0.2.35 (latest at time of filing); two independent upstream defects, both already filed on ruvnet/RuVector:

  1. mcp start: server registers handlers but never listens — mcp-server.js gates bootstrap on require.main === module, which cli.js can never satisfy ruvnet/RuVector#715mcp start never listens: cli.js require()s bin/mcp-server.js, so its if (require.main === module) main() bootstrap can never fire. Module-level init runs (banners on stderr), then the process idles forever; the stdio transport is never connected → Claude Code times out and marks the server failed.
  2. mcp start: console.log in ONNX loader corrupts stdout JSON-RPC → 'Failed to connect' in Claude Code ruvnet/RuVector#710dist/core/onnx/loader.js:199 prints Disk cache hit: <model> via console.log. In MCP stdio mode stdout is the JSON-RPC channel, so even with #715 fixed this line corrupts the handshake.

Independent repro + workaround posted upstream: ruvnet/RuVector#715 (comment)

Workaround currently in place (machine-local, not shipped by ak)

  • ruvector installed globally (stable path for bin/mcp-server.js).
  • ~/.claude/ruvector-mcp-wrapper.mjs registered as the user-scope MCP command; it (a) spawns node <npm-root-g>/ruvector/bin/mcp-server.js directly so it runs as the main module, and (b) forwards only JSON frames from child stdout, rerouting stray lines to stderr.
  • Verified: clean initialize response; claude mcp listruvector ✔ Connected.

Exit criteria (close this issue when all true)

  • RuVector #715 fixed in a released version (mcp start connects the transport)
  • RuVector #710 fixed in a released version (no non-JSON output on stdout in stdio mode)
  • Local registration reverted to plain npx -y ruvector mcp start and verified connected
  • ~/.claude/ruvector-mcp-wrapper.mjs deleted

Open question for ak (optional follow-up, not required to close)

ak already manages MCP registration (ak x mcp) and could detect a broken-known-version ruvector registration and offer the wrapper (or at least surface a status warning naming the upstream issues). If we want that, split it into its own issue — this one is purely tracking the upstream fixes.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions