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

@questdb/mcp-bridge

v0.1.0

Published

MCP bridge that exposes the QuestDB Web Console notebook to external coding agents (Claude Code, Codex) over a local WebSocket.

Readme

@questdb/mcp-bridge

An MCP server that connects coding agents (Claude Code, Codex, Cursor, OpenCode …) to a running QuestDB Web Console. The agent gets tools to create notebook cells, run queries, and build charts. Every action executes in the browser against your already-established QuestDB session.

Setup

Quick setup (recommended)

The interactive wizard detects your installed coding agents and writes the bridge into each one's MCP config:

npx @questdb/mcp-bridge setup

It walks you through two steps:

  1. Pick agents: multi-select from the ones it detects (Claude Code, Codex, Cursor, OpenCode, Gemini CLI).
  2. Review settings: optionally override CONSOLE_ORIGIN and MCP_BRIDGE_PORT; press Enter to keep the defaults.

The wizard pins each agent's config to the bridge version that ran it. Your QuestDB Web Console expects a specific bridge version. If you're on an older console, run the matching version: npx @questdb/mcp-bridge@<version> setup. The config it writes will launch that same version. (When unsure, pair first; on a version mismatch the agent is told which version to switch to.)

Manual setup

Or add it to your MCP client's config by hand (e.g. ~/.claude/.mcp.json):

{
  "mcpServers": {
    "questdb": {
      "command": "npx",
      "args": ["-y", "@questdb/mcp-bridge"]
    }
  }
}

Environment variables

| Label | Value | Default Value | Description | | ----------------- | ------------------------------------ | ------------------------------------------------ | ---------------------------------------------------------------------------------- | | CONSOLE_ORIGIN | origin URL | http://127.0.0.1:9000 | QuestDB Web Console origin. 127.0.0.1 and localhost are interchangeable. | | MCP_BRIDGE_PORT | 165535 | auto-allocated | When specified, the bridge uses a fixed port. Bridge fails to start if specified port is taken. | | LOG_PATH | file path | /tmp/questdb-mcp-bridge/<ISO-ts>-<pid>.log | Override the log file location. | | LOG_LEVEL | ERROR / WARN / INFO / DEBUG | INFO | DEBUG adds heartbeats and full tool payloads. |

Commands

Your MCP client runs the bridge for you via the config above, so you rarely invoke it by hand. When you do:

| Command | Description | | ----------------------------------- | ---------------------------------------- | | npx @questdb/mcp-bridge (no args) | Start the bridge — same as start. | | npx @questdb/mcp-bridge start | Start the bridge. | | npx @questdb/mcp-bridge setup | Interactively configure the bridge for your coding agents. | | npx @questdb/mcp-bridge --version | Print the version and exit. Alias: -v. | | npx @questdb/mcp-bridge --help | Print this help and exit. Alias: -h. |

An unknown command exits non-zero with a short error. Pin a version with npx @questdb/[email protected] start. (Installed on your PATH, the executable is named questdb-mcp-bridge.)

Pairing

Before any notebook / chart / SQL tool works, your browser has to pair with the bridge. The agent drives the flow.

When the agent needs to pair, it calls get_pairing_credentials and shows you both:

  • A one-click deep link — open it in the tab showing your Web Console.
  • A WebSocket URL + token — paste into the MCP pill at the bottom of the Web Console if the deep link doesn't land in the right tab.

Either path lands you on a consent prompt. Accept it and the agent's next tool call goes through.

Each bridge run generates a fresh port and pairing token, held only in memory. On restart the old credentials stop working — the agent will surface new ones the next time it needs to pair.

Logs

The bridge writes to stderr and to a log file. Tail the newest:

tail -F "$(ls -t /tmp/questdb-mcp-bridge/*.log | head -1)"

At default INFO:

2026-05-15T12:29:27.142Z [INFO] tool_call: run_query
2026-05-15T12:29:27.318Z [INFO] tool_result: run_query ok
2026-05-15T12:29:28.011Z [ERROR] tool_result: update_cell internal_error timeout after 15000ms

At DEBUG (full payloads as continuation lines):

2026-05-15T12:29:27.142Z [INFO] tool_call: run_query
2026-05-15T12:29:27.142Z [DEBUG]   args: {"query":"SELECT count() FROM trades"}
2026-05-15T12:29:27.318Z [INFO] tool_result: run_query ok
2026-05-15T12:29:27.318Z [DEBUG]   content: [{"type":"text","text":"..."}]

License

Apache-2.0.