プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Dbridge MCP

作者:ugurclバージョン 0.7.1i★ –iパソコンで動く
レジストリ名io.github.ugurcl/dbridge-mcp

インストール

概要

作者による説明(英語の原文)

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

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: データベース・データセット

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

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

ターミナルでこれを実行します

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

動かす前に、空欄の値を入力してください。

このサーバーは起動コマンドに値を入れる必要があるので、設定をコピーして入力してください。

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

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

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

このサーバーは起動コマンドに値を入れる必要があるので、設定をコピーして入力してください。

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

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

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

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

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント ugurcl で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

データベース・データセットのほかのサーバーとの比較i

  • このカテゴリのほかの1139件のうち0%よりスターが多い
  • このカテゴリのほかの1139件のうち17%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1139件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Dbridge MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.7.1)がレジストリに届いたのは4 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Supabase, MongoDB MCP Server, Elasticsearch MCP Server

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Supabase

作者:supabase

MCP server for interacting with the Supabase platform

パソコンでもクラウドでも★ 2,993Apache-2.0昨日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

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

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く