Back to Browse

Questdb MCP Server

by Questdb
Developer ToolsModerate5.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

Connects coding agents to a running QuestDB Web Console: notebook cells, SQL queries, and charts.

About

Connects coding agents to a running QuestDB Web Console: notebook cells, SQL queries, and charts.

Security Report

5.2
Moderate5.2Moderate Risk

This is a well-engineered MCP server that bridges coding agents to QuestDB's Web Console over WebSocket. The codebase demonstrates strong security practices with proper token-based authentication, input validation, and careful state management. Permissions align well with the server's purpose (local WebSocket communication and environment variable access). Minor code quality observations exist but do not materially affect security. Supply chain analysis found 2 known vulnerabilities in dependencies (2 critical, 0 high severity). Package verification found 1 issue.

3 files analyzed · 7 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

What You'll Need

Set these up before or after installing:

QuestDB Web Console origin.Optional

Environment variable: CONSOLE_ORIGIN

Fixed WebSocket port for pairing. Auto-allocated when unset.Optional

Environment variable: MCP_BRIDGE_PORT

Log file location. Defaults to a timestamped file under /tmp/questdb-mcp-bridge.Optional

Environment variable: LOG_PATH

Log verbosity. DEBUG adds heartbeats and full tool payloads.Optional

Environment variable: LOG_LEVEL

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-questdb-mcp-server-questdb": {
      "env": {
        "LOG_PATH": "your-log-path-here",
        "LOG_LEVEL": "your-log-level-here",
        "CONSOLE_ORIGIN": "your-console-origin-here",
        "MCP_BRIDGE_PORT": "your-mcp-bridge-port-here"
      },
      "args": [
        "-y",
        "@questdb/mcp-server-questdb"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

@questdb/mcp-server-questdb

Formerly published as @questdb/mcp-bridge. Every release from 0.3.0 on is published under both names, so existing configs keep working. On an old install, run npx @questdb/mcp-bridge upgrade once — it migrates your agent configs to the new name.

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-server-questdb 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-server-questdb@<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-server-questdb"]
    }
  }
}

Environment variables

LabelValueDefault ValueDescription
CONSOLE_ORIGINorigin URLhttp://127.0.0.1:9000QuestDB Web Console origin. 127.0.0.1 and localhost are interchangeable.
MCP_BRIDGE_PORT165535auto-allocatedWhen specified, the bridge uses a fixed port. The port is bound on the first pairing attempt, pairing fails with a bridge_bind_failed error if the port is taken.
LOG_PATHfile path/tmp/questdb-mcp-bridge/<ISO-ts>-<pid>.logOverride the log file location.
LOG_LEVELERROR / WARN / INFO / DEBUGINFODEBUG 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:

CommandDescription
npx @questdb/mcp-server-questdb (no args)Start the bridge — same as start.
npx @questdb/mcp-server-questdb startStart the bridge.
npx @questdb/mcp-server-questdb setupInteractively configure the bridge for your coding agents.
npx @questdb/mcp-server-questdb --versionPrint the version and exit. Alias: -v.
npx @questdb/mcp-server-questdb --helpPrint this help and exit. Alias: -h.

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

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.

Reviews

No reviews yet

Be the first to review this server!