Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Dbridge MCP

by ugurclversion 0.7.1i★ –iRuns on your computer
Registry nameio.github.ugurcl/dbridge-mcp

Install

Overview

Description from the maker (original English)

Query SQLite, PostgreSQL, and MySQL in plain language - read-only, with column masking and limits.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Databases & datasets

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: DBRIDGE_CONFIG

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "dbridge": {
      "command": "npx",
      "args": [
        "-y",
        "dbridge-mcp"
      ],
      "env": {
        "DBRIDGE_CONFIG": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add dbridge --env DBRIDGE_CONFIG=your-value -- npx -y dbridge-mcp

Fill in the empty values before running it.

This one needs values on its command line, so copy the settings and fill them in.

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "dbridge": {
      "command": "npx",
      "args": [
        "-y",
        "dbridge-mcp"
      ],
      "env": {
        "DBRIDGE_CONFIG": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one needs values on its command line, so copy the settings and fill them in.

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "dbridge": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "dbridge-mcp"
      ],
      "env": {
        "DBRIDGE_CONFIG": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • DBRIDGE_CONFIG env
    Absolute path to a dbridge.config.json with safety settings (row caps, hidden/masked columns, table allow/block lists)

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account ugurcl, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Databases & datasetsi

  • More stars than 0% of the other 1144 servers in this category
  • Published to the registry more recently than 17% of the other 1144 servers in this category
  • Basic checks equal to or better than 100% of the other 1144 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Dbridge MCP safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.7.1) reached the registry 4 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Supabase, MongoDB MCP Server, Elasticsearch MCP Server

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Supabase

Supabase’s official server lets AI create tables, query data and review project settings in your Supabase database.

by supabaseWidely used↓ 235.4K/wk★ 3KUpdated 2 days ago

Computer or cloud✓ supabase.com

MongoDB MCP Server

MongoDB Model Context Protocol Server

by mongodb-jsWidely used↓ 157.1K/wk★ 1.2KUpdated 4 days ago

Runs on your computer

Elasticsearch MCP Server

MCP server for interacting with Elasticsearch

by cr7258Growing↓ 2.7K/wk★ 315Updated 14 months ago

Runs on your computer

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

dbridge-mcp

An MCP server that lets an AI agent query a SQL database in plain language — safely and read-only.

=22.5">

The agent discovers the schema on its own (list_tables, describe_table), then writes and runs a SELECT for whatever the user asks. No hand-written endpoint per question.

Works with SQLite, PostgreSQL, and MySQL / MariaDB.

Why

A raw LLM cannot know what is inside your database, and web search cannot reach private data. dbridge gives the model a guarded door to that data: it can read and answer, but it cannot write, drop, or leak the whole table.

Why dbridge and not another database MCP?

There are many database MCP servers. dbridge is built around one idea — you should be able to point an AI at a real database without holding your breath — and that shows up as a combination the single-engine servers don't offer:

  • One server, three engines. SQLite, PostgreSQL, and MySQL/MariaDB behind the same tools and the same config. Switch databases by changing the connection string, not the tooling.
  • Read-only twice over. A SQL guard rejects anything but SELECT/WITH *and* every query runs inside a database-enforced READ ONLY transaction — so even a query that outsmarts the guard cannot write.
  • Column-level privacy. Hide columns from the model entirely, or mask values (a***@site.com) while keeping them queryable. Most servers expose whatever the connection can see.
  • Blast-radius controls. Row caps enforced over user-supplied LIMITs, per-query timeouts, EXPLAIN-based cost rejection for expensive queries, per-minute rate limits, and a capped connection pool.
  • No native build step. SQLite uses Node's built-in node:sqlite, so npx -y dbridge-mcp works without a compiler toolchain.
  • Performance insight, not just queries. column_stats and index_health give the model real cardinality and index-usage data, and test_index simulates an index with hypopg before anyone builds it — so the model's optimization advice is grounded in the actual database instead of guesswork.

If all you need is "run SQL from my agent", plenty of servers do that. dbridge is for pointing an agent at data you actually care about.

Tools

ToolPurpose
list_tablesList every table in the database.
describe_tableReturn a table's columns, primary key, foreign keys, and row-count estimate.
sample_tablePreview the first rows of a table (json/csv/markdown).
count_rowsReturn the exact row count of a table.
run_queryRun a single read-only SELECT / WITH and return rows as json, csv, or markdown.
explain_queryReturn a query's plan and estimated cost without running it.
column_statsPer-column distinct-value counts and null fractions — is this column selective enough to index?
index_healthList indexes with sizes and scan counts, flagging unused, duplicate, and invalid ones.
test_indexSimulate a CREATE INDEX without building it and report whether the planner would use it (PostgreSQL, via hypopg).
slow_queriesThe most expensive recorded statements with call counts and timings (PostgreSQL pg_stat_statements, MySQL performance_schema).
get_limitsReport the safety limits in effect (caps, timeouts, hidden/masked columns).

Resources

ResourcePurpose
dbridge://schemaThe full schema (every table and its columns) as one JSON document.

Prompts

PromptPurpose
optimizeA guided optimization pass: find slow queries, inspect plans and index health, and validate every index recommendation with test_index before suggesting it.

Requirements

Node.js 22.5+ (SQLite uses the built-in node:sqlite, no native build step).

Install

The published package ships a dbridge-mcp binary, so no clone or build step is needed to use it. Point it at a database with the connection argument:

npx -y dbridge-mcp demo.db                                  # SQLite (file path)

npx -y dbridge-mcp "postgresql://user:pass@host:5432/mydb" # PostgreSQL npx -y dbridge-mcp "mysql://user:pass@host:3306/mydb" # MySQL / MariaDB

The database engine is chosen from the connection string: a file path is SQLite, postgres:// / postgresql:// is PostgreSQL, and mysql:// is MySQL/MariaDB.

Or install it once, globally:

npm install -g dbridge-mcp

dbridge-mcp "postgresql://user:pass@host:5432/mydb"

MCP clients start the server for you as a subprocess — see the client sections below.

Windows note: MCP clients cannot launch npx directly on Windows because it is a .cmd script. Wrap it with cmd /c — use "command": "cmd" and put "/c", "npx", "-y", "dbridge-mcp", " " in the args. The examples below use the direct form (macOS/Linux); on Windows add the cmd /c prefix.

Use it in Claude Desktop

Claude Desktop only supports a single global config. Add to claude_desktop_config.json:

{

"mcpServers": { "dbridge": { "command": "npx", "args": ["-y", "dbridge-mcp", "postgresql://user:pass@host:5432/mydb"], "env": { "DBRIDGE_CONFIG": "/absolute/path/to/dbridge.config.json" } } } }

For a local SQLite file, replace the connection string with an absolute path to the .db file. Restart Claude Desktop, then ask: _"what were the 5 best-selling products last month?"_

Use it in Claude Code

Add it to the current project with the CLI:

claude mcp add dbridge --scope project \

-e DBRIDGE_CONFIG=/absolute/path/to/dbridge.config.json \ -- npx -y dbridge-mcp "postgresql://user:pass@host:5432/mydb"

--scope project writes a shareable .mcp.json in the project root; use --scope user for a global server or omit it for a private per-project one. The .mcp.json looks like:

{

"mcpServers": { "dbridge": { "command": "npx", "args": ["-y", "dbridge-mcp", "postgresql://user:pass@host:5432/mydb"], "env": { "DBRIDGE_CONFIG": "/absolute/path/to/dbridge.config.json" } } } }

Run claude from that directory; approve the project server once, then check it with /mcp.

Use it in Cursor

Add the same mcpServers block to .cursor/mcp.json in the project root (or ~/.cursor/mcp.json for all projects), enable the server under Settings → MCP, then ask the Agent a question about your data.

Use it in Windsurf

Add the same mcpServers block to ~/.codeium/windsurf/mcp_config.json, then refresh the server list under Settings → Cascade → MCP.

Use it in OpenCode

Add to opencode.json (project root or ~/.config/opencode/opencode.json):

{

"$schema": "https://opencode.ai/config.json", "mcp": { "dbridge": { "type": "local", "command": ["npx", "-y", "dbridge-mcp", "postgresql://user:pass@host:5432/mydb"], "enabled": true } } }

To tune the safety guard, point the server at a config file with the environment block:

"environment": { "DBRIDGE_CONFIG": "/absolute/path/to/dbridge.config.json" }

Docker

Build the image and run the server over stdio:

docker build -t dbridge-mcp .

docker run --rm -i dbridge-mcp "postgresql://user:pass@host:5432/mydb"

Mount a config file and point DBRIDGE_CONFIG at it:

docker run --rm -i \

-v "$PWD/dbridge.config.json:/config.json:ro" \ -e DBRIDGE_CONFIG=/config.json \ dbridge-mcp "postgresql://user:pass@host:5432/mydb"

Safety

  • The connection is opened read-only. On PostgreSQL and MySQL every query also runs inside a READ ONLY transaction, so writes are rejected by the database itself even if a query slips past the guard.
  • Only SELECT and WITH statements pass; writes, DDL, and data-modifying CTEs are rejected.
  • A single statement per call; the row cap is enforced even when a query supplies its own larger LIMIT (default 1000 rows).
  • Each PostgreSQL and MySQL query is bounded by a per-query timeout (statement_timeout / max_execution_time), so a runaway or expensive query cannot pin the database.
  • System catalogs and credential tables (information_schema, pg_authid, sqlite_master, …) are not queryable; schema discovery goes through the tools.
  • Restricted columns can be hidden entirely: the model cannot see them in the schema, query them, or receive them in results.
  • Tables can be restricted with an allow-list or block-list; blocked tables are invisible and unqueryable.
  • Columns can be masked instead of hidden: they stay visible but values come back partially redacted (e.g. a***@site.com).
  • Expensive queries can be rejected up front by an EXPLAIN cost estimate, and callers can be rate-limited per minute.
  • The connection pool size is capped, so dbridge cannot exhaust the database's connections.
Config

Every setting has three sources, in increasing precedence: a JSON file (DBRIDGE_CONFIG), environment variables, then CLI flags. So you can drop the JSON file entirely and set only what you need:

npx -y dbridge-mcp "postgresql://user:pass@host/db" --max-rows 200 --statement-timeout-ms 3000 --masked-columns email,iban

DBRIDGE_MAX_ROWS=200 DBRIDGE_REQUIRE_SSL=true npx -y dbridge-mcp "postgresql://user:pass@host/db"

Or keep everything in one place: point DBRIDGE_CONFIG at a JSON file (see dbridge.config.example.json for a full template). Every field is optional:

{

"maxRows": 500, "hiddenColumns": ["ssn", "password_hash"], "maskedColumns": ["iban", { "column": "email", "strategy": "email" }], "allowedTables": ["products", "sales", "customers"], "blockedTables": ["employees", "audit_log"], "statementTimeoutMs": 5000, "maxCost": 100000, "rateLimitPerMin": 60, "maxPoolSize": 5, "connectionTimeoutMs": 10000, "requireSsl": true, "schemas": ["public", "reporting"], "auditLog": true }

FieldCLI flag / env varDefaultPurpose
maxRows--max-rows / DBRIDGE_MAX_ROWS1000Hard cap on rows returned per query, enforced even over a larger LIMIT.
hiddenColumns--hidden-columns / DBRIDGE_HIDDEN_COLUMNS[]Columns hidden from the schema, queries, and results.
maskedColumns--masked-columns / DBRIDGE_MASKED_COLUMNS[]Columns whose values are redacted in results (see below).
maxCellChars--max-cell-chars / DBRIDGE_MAX_CELL_CHARS0Truncate any string cell longer than this; 0 disables.
maxResultBytes--max-result-bytes / DBRIDGE_MAX_RESULT_BYTES0Cap the total serialized result size, dropping trailing rows; 0 disables.
allowedTables--allowed-tables / DBRIDGE_ALLOWED_TABLES[]If non-empty, only these tables are exposed.
blockedTables--blocked-tables / DBRIDGE_BLOCKED_TABLES[]Tables that are always hidden and unqueryable.

| statementTimeoutMs | --statement-timeout-ms / DBRIDGE_STATEMENT_TIMEOUT_MS | 10000 | Per-query timeout (PostgreSQL statement_timeout, MySQL max_execution_time

Only the beginning is shown; read the rest in the repo

Ask PopNx