Db Gateway

io.github.sijunkim由 GitHub 账号 sijunkim 发布v1.0.4更新于 Oct 25, 2026

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

已验证STDIO仅桌面数据库数据与分析

概览

AI 生成的概览

本地运行的 MCP 服务器,用一套配置为 AI 助手提供 145+ 个工具,可检查八种数据库与流式引擎的结构并执行查询。

可以做什么
读取表结构与表间关系,并对 MySQL、PostgreSQL、Redshift 等关系型引擎执行查询。操作 MongoDB、Redis、DynamoDB 等 NoSQL 引擎中的文档、键与缓存。在 Elasticsearch 中搜索和管理索引。查看并操作 Kafka 的主题与消息。通过 alias 指定同一引擎的多个实例,未指定时使用默认实例。
适用场景
适合希望助手自行探索数据库结构、而不是由你粘贴 DDL 的场景;也适合技术栈横跨多个引擎(例如应用用 MySQL、分析用 Redshift、缓存用 Redis、事件用 Kafka),希望只用一个服务器和一份配置的情况。
运行要求
通过 npx 在本地运行,需要 Node.js 18 或更高版本。必须设置 DBS 列出要启用的引擎。每个启用的引擎需要对应的连接字符串变量(MYSQL、POSTGRESQL、REDSHIFT、MONGODB、REDIS、ELASTICSEARCH、KAFKA),且都必须带 alias;DynamoDB 改用 DYNAMODB_REGION、DYNAMODB_ACCESS_KEY_ID 和 DYNAMODB_SECRET_ACCESS_KEY。需要能访问目标数据库的网络。
安装前请注意
MYSQL、POSTGRESQL、REDSHIFT、MONGODB、REDIS、ELASTICSEARCH 和 KAFKA 变量中的连接字符串包含数据库凭据,DYNAMODB_ACCESS_KEY_ID 和 DYNAMODB_SECRET_ACCESS_KEY 包含 AWS 密钥。除非设置 READ_ONLY=true,否则写工具可以修改数据;该设置会隐藏写工具并把查询限制为 SELECT 类语句,README 建议对生产环境启用。助手可读取所有已配置实例的结构和数据。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Db Gateway,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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

来源:README.md,提交 895c500

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.0.4最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分