
使用MCP用自然语言查询数据库,告别SQL烦恼
在日常工作中,如果你是产品经理经常需要拉取各种数据来做分析,但这类需求通常琐碎、个性化,找研发呢有时间沟通成本高,而且还不会写SQL,或者写起来费劲。 如果你是研发人员,有时候呢写sql突然会卡壳,然后各种搜,问题搜的还可能不太是自己想要的 你是不是也曾遇到这样的困扰? 心里想,如果有能通过自然语言搞定查询或者直接出报表那就太好了
+------------------+ +--------------+ +------------------+
| | | | | |
| Claude Desktop +--->+ +--->+ PostgreSQL |
| | | | | |
| Cursor +--->+ DBHub +--->+ SQL Server |
| | | | | |
| Other MCP +--->+ +--->+ SQLite |
| Clients | | | | |
| | | +--->+ MySQL |
| | | | | |
| | | +--->+ MariaDB |
| | | | | |
+------------------+ +--------------+ +------------------+
MCP Clients MCP Server Databases
好消息!MCP(Model Context Protocol)+ DBHub 让这一切变得简单!
DBHub 是一个通用数据库网关,支持 MCP 协议,能够让你用自然语言查询数据库,生成 SQL 并返回结果,无需懂代码,轻松出报表。
如何安装和使用?
1. 快速安装 DBHub
你可以选择 Docker 或 NPM 安装(示例以 Mysql 为例):
Docker 安装:
docker run --rm --init \
--name dbhub \
--publish 8080:8080 \
bytebase/dbhub \
--transport sse \
--port 8080 \
--dsn "mysql://user:password@localhost:3306/dbname?sslmode=disable"
NPM 安装:
npx @bytebase/dbhub --transport sse --port 8080 --dsn "mysql://user:password@localhost:3306/dbname"
⚠️ 注意: user:数据库的账号 password:密码 localhost:数据地址 3306:端口号 dbname:数据库名 如果你是产品经理可以找你们公司的研发人员要到这些
如果只是想体验,可以运行 Demo 模式:
npx @bytebase/dbhub --transport sse --port 8080 --demo
这将自动加载一个示例员工数据库,你可以直接进行查询和测试,等你测试有感觉可以直接。 例如:你可以说,帮我查一下有多个表,分别是什么
2. 配置数据库连接
如果要连接自己的数据库,你需要提供 Database Source Name (DSN),方式如下:
- 命令行直接指定(优先级最高):
npx @bytebase/dbhub --dsn "mysql://user:password@localhost:3306/dbname"
- 环境变量指定(优先级次之):
export DSN="mysql://user:password@localhost:3306/dbname" npx @bytebase/dbhub
- 环境文件方式(适用于开发和生产环境):
- 开发环境:创建
.env.local
文件 - 生产环境:创建
.env
文件
DSN=mysql://user:password@localhost:3306/dbname
- 开发环境:创建
⚠️ 注意:如果数据库运行在 Docker 内部,连接地址需要改成 host.docker.internal
,比如:
mysql://user:password@host.docker.internal:3306/dbname
3. 如何用自然语言查询数据?
DBHub 兼容 MCP 客户端,比如 Cursor、Claude Desktop 等工具。你可以在这些工具中输入问题,DBHub 会自动生成 SQL 语句并执行。例如:
mcp配置:
windows:
{
"mcpServers": {
"dbhub-mysql-npx": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@bytebase/dbhub",
"--transport",
"stdio",
"--dsn",
"mysql://user:password@localhost:3306/demo"
]
}
}
}
mac or liunx:
{
"mcpServers": {
"dbhub-mysql-npx": {
"command": "npx",
"args": [
"-y",
"@bytebase/dbhub",
"--transport",
"stdio",
"--dsn",
"mysql://user:password@localhost:3306/demo"
]
}
}
}
sse:
{
"mcpServers":{
"dbhub-mysql-npx":{
"url":"http://localhost:8080/sse"
}
}
}
🔹 查询过去一周的新增用户
”How many new users signed up in the past week?”
自动生成 SQL并由DBHub 自动执行然后返回结果:
SELECT COUNT(*) FROM users WHERE created_at >= NOW() - INTERVAL '7 days';
🔹 获取某个产品的销售数据
”Show me the total sales for Product X in the last month.”
DBHub 自动执行查询并返回结果,无需手写 SQL!
4. 适用于哪些数据库?
DBHub 目前支持 PostgreSQL、MySQL、SQL Server 和 SQLite,基本覆盖了大部分企业的数据库需求。
结语:产品经理必备的神器,研发的超级助手!
如果你经常需要拉数据分析,但又不想被 SQL 绑架,DBHub + MCP 绝对是你的福音。你可以用自然语言直接查询数据库,实时获取数据结果,减少沟通成本,提高工作效率!
赶快试试吧!