
让大模型直接"读懂"数据库,是 AI Agent 落地的关键一步。但真实环境往往是:MySQL、PostgreSQL、Oracle各有一套连接方式,数据库还躲在内网里,公网访问不到。
apisql-mcp 用一个 MCP Server 解决了这两个问题:一个 MCP 连接多种数据库,并借助 apiSQL 网关,让大模型隔着互联网也能安全地操作内网数据库。它是数据库MCP Server 的"瑞士军刀"。
一、它解决了什么
- 一个 MCP,连接多种数据库——MySQL、PostgreSQL、SQL Server、Oracle、SQLite、StarRocks、达梦、DuckDB、OceanBase、Trino/Presto,以及任何兼容 JDBC 的数据库。
- 动态数据源切换——无需重启 MCP 服务器,运行时即可在不同数据库之间切换。
- 随时随地可访问——通过 apiSQL 网关,从互联网轻松访问到内网数据库,无需内网穿透、公网 IP 或端口映射等繁杂配置。
- 完整 SQL 支持——支持 DDL 与 DML 操作,执行存储过程和函数 UDF。
- 安全与可观测——通过 apiSQL 平台提供 API Key 授权、内置日志记录与审计。
- 多种传输模式——支持 STDIO 与 Streamable HTTP 两种传输方式。
二、整体架构
apisql-mcp 本身是一个轻量的"翻译层":把 MCP 协议的调用转成对 apiSQL 平台 SUDB 接口的 HTTPS 请求;平台再经由 MQTT 把指令下发给部署在你内网的 apiSQL 网关,最终由网关连接数据库执行。
🤖 MCP 客户端(Claude 等) ⇄ MCP 协议 ⇄ 🔌 apisql-mcp(本工具)
⇄ HTTPS ⇄ ☁️ apiSQL 平台 ⇄ MQTT ⇄ 🛡️ apiSQL 网关(内网) ⇄ TCP ⇄ 🗄️ 数据库(内网)
这条链路的关键在于:数据库无需暴露到公网,网关主动向平台建立连接,因此"从互联网访问内网数据库"这件事,不再需要内网穿透或公网IP。
三、一分钟上手(以 ChatBox 为例)
下面用公开演示环境走一遍完整流程,无需自己的数据库即可体验。
1、打开 ChatBox 设置 → MCP:


2、复制以下配置:
{
"mcpServers": {
"apisql-mcp": {
"command": "npx",
"args": ["-y", "apisql-mcp"],
"env": {
"APISQL_MCP_API_URL": "https://open.apisql.cn/api/mytest/$sudb",
"APISQL_MCP_API_KEY": "Bearer sk-7dd9b66d38f8aff81f091ecfcf259f70",
"APISQL_MCP_DS": "mysql"
}
}
}
}
这里的 API URL 与 Key 均为公开演示环境,可直接使用。注意 APISQL_MCP_API_URL
必须以 /$sudb 结尾——这是 SUDB 功能的固定地址,而非变量。
3、选择"从剪贴板中的 JSON 导入",即可完成配置:

4、启用刚配置的 MCP:

四、让大模型直接操作数据库
配置完成后,就可以用自然语言与数据库对话了。
5、问一句表结构:
你帮看一下有没有 DW 开头的表?

6、让它写一份数据分析报告:
你是数据分析师,你来分析一下这 3 张表,写一个简单的数据分析报告。

大模型会自行发起若干次 SQL 查询、汇总结果,再组织成一份可读的报告——整个过程你只说了一句话。
五、一个 MCP,切换多个数据库
apisql-mcp 最实用的能力,是在同一个会话里动态切换数据源,无需重启服务。
7、切换到 Oracle 11g 操作:

说明:这里的 oracle 数据源是一个临时内网数据库;后续公开演示只保留 mysql 和 postgresql 两个数据源。

8、再切到 PostgreSQL:
再切换到 postgresql 数据库,看一下都有什么表?


一个 MCP Server,就这样把 MySQL、Oracle、PostgreSQL 串了起来。实践中一般会把数据源名称写进提示词,让大模型明确知道该操作哪个库。
六、可观测:后台日志与审计
每一次经由 apisql-mcp 的数据库操作,都会在 apiSQL 后台留下记录,便于排查与审计:

七、更多客户端接入
除了 ChatBox,apisql-mcp 同样适配主流 MCP 客户端,配置结构基本一致。
Claude Desktop / Claude
Code,编辑配置文件(macOS:~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"apisql-mcp": {
"command": "npx",
"args": ["-y", "apisql-mcp"],
"env": {
"APISQL_MCP_API_URL": "https://open.apisql.cn/api/mytest/$sudb",
"APISQL_MCP_API_KEY": "Bearer sk-7dd9b66d38f8aff81f091ecfcf259f70",
"APISQL_MCP_DS": "mysql"
}
}
}
}
用 Claude Code CLI 也可一行接入:
claude mcp add apisql-mcp --scope user -- npx apisql-mcp
Cursor、VS Code / Copilot、Cline、Windsurf 的配置同理,均为同一套 command +
args +
env,只是写入各自的配置位置。对于基于 HTTP 的客户端,还可用 Streamable
HTTP 模式启动:
APISQL_MCP_API_URL=https://open.apisql.cn/api/mytest/$sudb \
APISQL_MCP_API_KEY="Bearer sk-7dd9b66d38f8aff81f091ecfcf259f70" \
APISQL_MCP_DS=mysql \
npx apisql-mcp --transport streamable-http --port 9090 --host 0.0.0.0
八、接入自己的数据库
演示环境之外,把 apisql-mcp 指向你自己的数据库只需几步:
- 在 open.apisql.cn 注册账号;
- 创建项目并安装 apiSQL 网关 连接数据库;
- 将你的数据库添加为数据源;
- 在项目设置中启用 SUDB 功能;
- 创建访问控制策略,为 API Key 分配可访问 SUDB 的权限;
- 从策略页面复制 API URL 与 Key,替换到上面的配置里即可。
前提条件很轻量:Node.js >= 18.0.0,加上一个 apiSQL 账号与一个已连接数据库的网关。
九、安全提醒
apisql-mcp 提供的是完整的数据库访问能力,包括结构修改与数据操作。生产环境请遵循最小权限原则:
- 为 MCP 创建专用数据库用户,只授予所需的最小权限;
- 生产环境优先使用只读账号,或通过视图限制可访问的表;
- 在 apiSQL 平台启用访问控制策略(IP 白名单、API Key),先从测试环境开始验证。
正如我们在《把数据库交给 AI 之前,我先替你撞了三次“安全墙”》中反复强调的:把授权交给数据库本身,MCP能做什么,由你为它配置的数据库账号权限决定。
结语
apisql-mcp 把"让大模型访问数据库"这件事收敛成了一次简单的 MCP 配置:一个 Server 连接多种数据库,动态切换数据源,还能隔着互联网安全地操作内网数据。对于正在搭建 AI Agent、内部数据助手或自动化报表的团队,它是一块值得一试的拼图。
项目地址:github.com/apisql-dev/apisql-mcp · npm:apisql-mcp