Db Gateway

io.github.sijunkimPublished by GitHub account sijunkimv1.0.4Updated Oct 25, 2026

145+ tools across 8 databases: MySQL, PostgreSQL, Redshift, MongoDB, Redis, Kafka, and more

VerifiedSTDIODesktop onlyDatabasesData & Analytics

Overview

AI-generated overview

A local MCP server that gives an AI assistant 145+ tools to inspect schemas and run queries across eight database and streaming engines from one config.

What you can do
Read schemas and table relationships, then run queries against MySQL, PostgreSQL and Redshift (relational engines). Work with documents, keys and caches in MongoDB, Redis and DynamoDB (NoSQL engines). Search and manage indices in Elasticsearch. Inspect and work with topics and messages in Kafka. Address multiple instances of one engine by alias, with a default instance when none is given.
When to use it
Useful when an assistant should explore a database itself instead of being fed DDL, or when a stack spans several engines (for example MySQL for the app, Redshift for analytics, Redis for cache, Kafka for events) and you want one server and one config block rather than several.
Requirements
Runs locally via npx and needs Node.js 18 or newer. DBS is required and lists the engines to enable. Each enabled engine needs its connection string variable (MYSQL, POSTGRESQL, REDSHIFT, MONGODB, REDIS, ELASTICSEARCH, KAFKA), each with a required alias; DynamoDB instead uses DYNAMODB_REGION, DYNAMODB_ACCESS_KEY_ID and DYNAMODB_SECRET_ACCESS_KEY. Network access to the target databases.
Before you install
Connection strings carry database credentials in the MYSQL, POSTGRESQL, REDSHIFT, MONGODB, REDIS, ELASTICSEARCH and KAFKA variables, and AWS keys in DYNAMODB_ACCESS_KEY_ID and DYNAMODB_SECRET_ACCESS_KEY. Write tools can change data unless READ_ONLY=true is set, which hides them and limits queries to SELECT-style statements; the README recommends it for production. The assistant can read schemas and data from every configured instance.

Installation

In SourceWeft

  1. Open Db Gateway in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

DB Gateway MCP Server

[npm] [MCP Registry] [8 databases] [license]

English | 한국어

An MCP server that gives AI agents direct access to your databases — 145+ tools across 8 engines.

The point is that the agent reads your schema itself instead of you pasting DDL into a prompt:

You: "Find users who signed up last month and never placed an order"
  1. mysql_get_all_schemas          → reads every table definition  2. mysql_get_table_relationships  → finds the users ↔ orders foreign key  3. mysql_execute_query            → runs the LEFT JOIN

Why db-gateway?

Most database MCP servers cover one engine, or a handful of relational ones. If your stack is MySQL for the app, Redshift for analytics, Redis for cache, and Kafka for events, that means four servers with four different config styles.

This is one server, one config block:

EnginesTools
RelationalMySQL, PostgreSQL, Redshift59
NoSQLMongoDB, Redis, DynamoDB48
SearchElasticsearch19
StreamingKafka19

DBS decides which of them are enabled — only those tools get registered, so a MySQL-only setup stays a MySQL-only tool list.

See It Work

Every screenshot below is one real session against a development MySQL database holding 249 rows — unedited output, not mock data. The agent calls a single tool, mysql_execute_query, and never sees a host, port, or password: those stay in the client config, and the agent only ever names the alias.

[Step 1 — READ: query the most recently added item]

[Step 2 — CREATE: insert a new item, and MySQL returns its insertId]

[Step 3 — UPDATE: move it to the freezer, matching exactly one row by primary key]

[Step 4 — DELETE: remove that row by primary key]

[Step 5 — VERIFY: the table is back to its original 249 rows]

Point the same server at production with READ_ONLY=true and steps 2 through 4 simply do not exist — the write tools are never registered, so the agent cannot see them to call them.

Quick Start

Requires Node.js 18+. Register it with your MCP client — no install step:

json
{  "mcpServers": {    "db-gateway": {      "command": "npx",      "args": ["-y", "db-gateway"],      "env": {        "DBS": "mysql,redis",        "MYSQL": "mysql://<user>:<password>@<host>:3306/<database>?alias=dev&default=true",        "REDIS": "redis://:@<host>:6379/0?alias=dev&default=true"      }    }  }}

DBS decides which engines are enabled — only those tools get registered.

Connection strings

One string per engine. Semicolons separate multiple instances.

VariableFormat
MYSQLmysql://<user>:<password>@<host>:<port>/<db>?alias=name
POSTGRESQLpostgresql://<user>:<password>@<host>:<port>/<db>?alias=name&ssl=true
REDISredis://:<password>@<host>:<port>/<db-index>?alias=name
MONGODBmongodb://<user>:<password>@<host>:<port>/<db>?alias=name
REDSHIFTredshift://<user>:<password>@<host>:<port>/<db>?alias=name&ssl=true
ELASTICSEARCHelasticsearch://<user>:<password>@<host>:<port>?alias=name, or http(s)://<host>:<port>?alias=name
KAFKAkafka://<user>:<password>@<broker>:<port>,<broker2>:<port>?alias=name&mechanism=plain

alias is required. It is how tools address a specific instance — omit it and that engine fails to connect.

Several instances of the same engine — separate their connection strings with a semicolon. The agent picks one by passing an alias argument to any tool; default=true marks the one used when no alias is given:

env
MYSQL="mysql://<user>:<password>@<dev-host>:3306/<db>?alias=dev&default=true;mysql://<user>:<password>@<prod-host>:3306/<db>?alias=prod"

DynamoDB is the exception — it takes DYNAMODB_REGION, DYNAMODB_ACCESS_KEY_ID, and DYNAMODB_SECRET_ACCESS_KEY instead. See .env.example for every option.

Read-Only Mode

READ_ONLY=true hides write tools from the tool list entirely and restricts *_execute_query to SELECT-style statements.

Register production as a second MCP server with this flag on. The agent then cannot modify production data — the write tools do not exist as far as it can see.

json
"db-gateway-prod": {  "command": "npx",  "args": ["-y", "db-gateway"],  "env": { "READ_ONLY": "true", "DBS": "mysql", "MYSQL": "..." }}

Documentation

License

MIT

Source: README.md at commit 895c500

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.4LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts