零基础上手!用 Dify + DeepSeek + Doris MCP Server,实现秒级 SQL 调用

前言:为什么选择 MCP?

在智能助手与数据库打通的场景中,常常会因为接口麻烦、开发成本高,或者响应速度慢而头疼。

MCP(Message‑based Control Plane)正是为了解决这些问题而生——它在智能助手和 Doris 之间架起一条“高速公路”,让 SQL 请求能够迅速、稳定地直达数据库,帮助你更专注于业务逻辑,而不是基础设施搭建。

一、准备工作

  1. 安装依赖
    pip install mcp-doris-server
  2. 网络与权限
  • 确保 Doris 服务对外可达(检查防火墙和网络策略)。
  • 准备好具有查询权限的数据库账号和密码。

Doris的快速搭建和ssb数据集可以看看官网文档:

doris.apache.org/zh-CN/

doris.apache.org/zh-CN/


二、启动 MCP Server

在终端执行以下命令,即可启动服务:

doris-mcp-server \
  --transport http \
  --host 0.0.0.0 \
  --port 3000 \
  --db-host 127.0.0.1 \
  --db-port 9030 \
  --db-user root \
  --db-password your_password
  • --host / --port:MCP 服务监听地址及端口
  • --db-host / --db-port:Doris 实例所在地址及端口
  • --db-user / --db-password:数据库账号和密码

当控制台开始输出如下日志时,MCP Server 即已正常启动。


三、(可选)内网穿透

若 Dify 和 MCP Server 位于不同网络,需要外部调用 MCP 服务,可借助 ngrok 等工具进行内网穿透。若二者已在同一网络,则可跳过此步。


四、在 Dify 中安装 & 配置插件

  1. 可以直接使用云端dify:cloud.dify.ai/,也可以使用docker本地部署dify进行使用。登录 Dify 控制台 → 插件市场,搜索 “MCP‑SSE ”,并点击安装。
  1. 安装后,进入该插件的配置页,填入 MCP Server 地址,如果你的云端dify和你的Doris MCP Server网络不互通的话就需要用到内网穿透,否则直接用本地ip即可,例如:
    {
    “doris_mcp_server”: {
    “transport”: “streamable_http”,
    “url”: “http://<你的服务器>/mcp”
    }
    }
  2. 保存配置后,若看到绿色的 “已授权” 提示,说明 Dify 已与 MCP Server 成功连通。

五、创建 Dify 应用

  1. 在控制台右上角点击 新建空白应用 。
动图封面

  1. 选择 Agent 模板,为应用起一个易记的名字(例如:Doris ChatBI)。
  2. 应用创建完成后,即可进行下一步的指令与工具配置。

六、配置大模型与指令

选择大模型

这里使用 DeepSeek-V3;若尚未购买,可选用免费注册即送 2000 万 tokens 的硅基流动,满足日常使用需求。

cloud.siliconflow.cn/i/

填写 Instruction

在 Dify 的 Instruction 区域,粘贴以下内容:

<instruction>
请尽可能使用 MCP 工具完成任务,仔细阅读每个工具的注解与参数说明。操作步骤:

1. 分析用户需求,从工具列表中匹配最合适的工具。  
2. 调用工具时,工具名、方法名与参数须与注释完全一致,不可随意更改。  
3. 传参需严格遵循注释要求,格式示例:{"mcp_sse_call_tool": {"tool_name": "$tool_name", "arguments": "{}"}}  
4. 输出结果仅保留纯文本,不含任何 XML 标签。

<input>
用户问题:user_query
</input>

<output>
返回工具调用结果或最终答案,并附上简要分析。
</output>
</instruction>

添加 MCP 工具

在 工具 面板,点击 添加,分别添加两次 MCP 工具。

动图封面


七、实战演示:典型调用

  1. 查询数据库中有哪些表

这里回复的是英文我之前一直在用英文问大模型,可以看到agent自动调用mcp去获取工具列表并找到合适的工具来完成任务

动图封面

2. 在ssb数据库中过去十年的销售趋势如何,哪一年的增长速率最快?

可以看到,Agent 起初假设存在某个能够直接完成任务的工具,但在调用工具列表后发现并没有这样的工具。随后,它注意到有一个名为 exec-query 的工具,可以用来执行 SQL 查询,从而间接实现目标。

进一步地,它还发现,表中的数据并不涵盖完整的过去十年,仅包含了 1992年至 1998 年的记录。但即便如此,Agent 依然基于可用数据进行了合理的计算和结果输出。值得一提的是,这是在表结构中完全没有注释说明的前提下完成的,已经表现得非常出色了。

小结

MCP Server 将智能助手与数据库打通,为 SQL 查询提供了秒级响应能力。

清晰的表注释,能进一步提升 SQL 生成的准确性;随着大模型不断进化,MCP 的可用性也会日益增强。

希望本教程能帮你快速搭建起高效的数据查询通道,有任何问题,欢迎在评论区交流!