Supabase
MCP server for interacting with the Supabase platform
Descripción del creador (original en inglés)
Query SQLite, PostgreSQL, and MySQL in plain language - read-only, with column masking and limits.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
DBRIDGE_CONFIGNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"dbridge": {
"command": "npx",
"args": [
"-y",
"dbridge-mcp"
],
"env": {
"DBRIDGE_CONFIG": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add dbridge --env DBRIDGE_CONFIG=your-value -- npx -y dbridge-mcpCompleta los valores vacíos antes de ejecutarlo.
Este necesita valores en su línea de comandos, así que copia la configuración y complétalos.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"dbridge": {
"command": "npx",
"args": [
"-y",
"dbridge-mcp"
],
"env": {
"DBRIDGE_CONFIG": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este necesita valores en su línea de comandos, así que copia la configuración y complétalos.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"dbridge": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"dbridge-mcp"
],
"env": {
"DBRIDGE_CONFIG": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
DBRIDGE_CONFIG envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub ugurcl, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.7.1) llegó al registro hace 4 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Supabase, MongoDB MCP Server, Elasticsearch MCP Server
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP server for interacting with the Supabase platform
MongoDB Model Context Protocol Server
MCP server for interacting with Elasticsearch
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
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.
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.
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:
SELECT/WITH *and* every query runs inside a database-enforced READ ONLY transaction — so even a query that outsmarts the guard cannot write.a***@site.com) while keeping them queryable. Most servers expose whatever the connection can see.LIMITs, per-query timeouts, EXPLAIN-based cost rejection for expensive queries, per-minute rate limits, and a capped connection pool.node:sqlite, so npx -y dbridge-mcp works without a compiler toolchain.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.
| Tool | Purpose |
|---|---|
list_tables | List every table in the database. |
describe_table | Return a table's columns, primary key, foreign keys, and row-count estimate. |
sample_table | Preview the first rows of a table (json/csv/markdown). |
count_rows | Return the exact row count of a table. |
run_query | Run a single read-only SELECT / WITH and return rows as json, csv, or markdown. |
explain_query | Return a query's plan and estimated cost without running it. |
column_stats | Per-column distinct-value counts and null fractions — is this column selective enough to index? |
index_health | List indexes with sizes and scan counts, flagging unused, duplicate, and invalid ones. |
test_index | Simulate a CREATE INDEX without building it and report whether the planner would use it (PostgreSQL, via hypopg). |
slow_queries | The most expensive recorded statements with call counts and timings (PostgreSQL pg_stat_statements, MySQL performance_schema). |
get_limits | Report the safety limits in effect (caps, timeouts, hidden/masked columns). |
| Resource | Purpose |
|---|---|
dbridge://schema | The full schema (every table and its columns) as one JSON document. |
| Prompt | Purpose |
|---|---|
optimize | A guided optimization pass: find slow queries, inspect plans and index health, and validate every index recommendation with test_index before suggesting it. |
Node.js 22.5+ (SQLite uses the built-in node:sqlite, no native build step).
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
npxdirectly on Windows because it is a.cmdscript. Wrap it withcmd /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 thecmd /cprefix.
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?"_
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.
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.
Add the same mcpServers block to ~/.codeium/windsurf/mcp_config.json, then refresh the server list under Settings → Cascade → MCP.
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" }
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"
READ ONLY transaction, so writes are rejected by the database itself even if a query slips past the guard.SELECT and WITH statements pass; writes, DDL, and data-modifying CTEs are rejected.LIMIT (default 1000 rows).statement_timeout / max_execution_time), so a runaway or expensive query cannot pin the database.information_schema, pg_authid, sqlite_master, …) are not queryable; schema discovery goes through the tools.a***@site.com).EXPLAIN cost estimate, and callers can be rate-limited per minute.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 }
| Field | CLI flag / env var | Default | Purpose |
|---|---|---|---|
maxRows | --max-rows / DBRIDGE_MAX_ROWS | 1000 | Hard 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_CHARS | 0 | Truncate any string cell longer than this; 0 disables. |
maxResultBytes | --max-result-bytes / DBRIDGE_MAX_RESULT_BYTES | 0 | Cap 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
Solo se muestra el principio; lee el resto en el repo