Skip to content

Commit ed1cc0d

Browse files
author
Ya yanpei
committed
Merge remote-tracking branch 'origin/v1' into v1
2 parents 60d69e0 + cb1c78f commit ed1cc0d

7 files changed

Lines changed: 171 additions & 91 deletions

File tree

docs/image.png

46.6 KB
Loading

docs/img/mcp/sqlbot_dify_mcp.png

362 KB
Loading

docs/img/mcp/sqlbot_mcp_1panel.png

194 KB
Loading

docs/img/mcp/sqlbot_mcp_conf.png

48.7 KB
Loading

docs/img/mcp/sqlbot_mcp_env.png

46 KB
Loading

docs/img/mcp/sqlbot_mk_mcp.png

448 KB
Loading

docs/mcp_server.md

Lines changed: 171 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,81 @@
1515
```
1616

1717
!!! Tip ""
18-
修改 SQLBot 的 .env 配置文件:
18+
SQLBot 运行方式不同,对应的 MCP 参数 SERVER_IMAGE_HOST 的配置方式不同,注意该参数中的 IP 是 SQLBot 服务器的 IP 地址,端口是 MCP 服务的端口,默认情况下,服务端口是 8001(切记不是 3000 端口)。另外,注意跨域 、https 、http协议安全等可能导致图片无法加载。
19+
20+
- 安装包安装方式
21+
- 确认 SQLBot 的 .env 配置文件(默认位置 /opt/sqlbot/.env)中的 SQLBOT_SERVER_IMAGE_HOST:
22+
![示例](img/mcp/sqlbot_mcp_env.png)
23+
- 确认 SQLBot 运行配置文件(默认位置 /opt/sqlbot/conf/sqlbot.conf)中的 SERVER_IMAGE_HOST:
24+
![示例](img/mcp/sqlbot_mcp_conf.png)
25+
26+
若参数并非实际的 IP 和端口,请修改完上述两个配置参数后,重启一下 SQLBot 服务:
27+
```shell
28+
sctl restart
29+
```
30+
- 1Panel 运行方式
31+
- 确认相关参数是否正确,若与实际情况部分,请修改后重启 SQLBot 服务:
32+
![示例](img/mcp/sqlbot_mcp_1panel.png)
33+
- docker 一键运行方式
34+
- 若之前运行方式没有加上 SERVER_IMAGE_HOST 参数,或者参数值不对,则停止 SQLBot 服务并删除容器
35+
- 修改 MCP 运行参数 SERVER_IMAGE_HOST,注意将 IP 和端口替换成自己的实际 IP 和端口:
36+
```shell
37+
docker run -d \
38+
--name sqlbot \
39+
--restart unless-stopped \
40+
-p 8000:8000 \
41+
-p 8001:8001 \
42+
-e SERVER_IMAGE_HOST=http://47.92.75.231:8001/images/
43+
-v data/sqlbot/excel:/opt/sqlbot/data/excel \
44+
-v data/sqlbot/images:/opt/sqlbot/images \
45+
-v data/sqlbot/logs:/opt/sqlbot/logs \
46+
-v data/postgresql:/var/lib/postgresql/data \
47+
--privileged=true \
48+
dataease/sqlbot
49+
```
50+
- docker-compose 一键运行方式
51+
- 若之前运行方式没有加上 SERVER_IMAGE_HOST 参数,或者参数值不对,则停止 SQLBot 服务并删除容器
52+
- 修改 docker-compose.yml 文件中的 MCP 参数 SERVER_IMAGE_HOST,注意将 IP 和端口替换成自己的实际 IP 和端口:
53+
```yml
54+
services:
55+
sqlbot:
56+
image: dataease/sqlbot:v1.1.0
57+
container_name: sqlbot
58+
restart: always
59+
networks:
60+
- sqlbot-network
61+
ports:
62+
- 8000:8000
63+
- 8001:8001
64+
environment:
65+
# Database configuration
66+
POSTGRES_SERVER: localhost
67+
POSTGRES_PORT: 5432
68+
POSTGRES_DB: sqlbot
69+
POSTGRES_USER: root
70+
POSTGRES_PASSWORD: Password123@pg
71+
# Project basic settings
72+
PROJECT_NAME: "SQLBot"
73+
DEFAULT_PWD: "SQLBot@123456"
74+
# MCP settings
75+
SERVER_IMAGE_HOST: http://47.92.75.231:8001/images/
76+
# Auth & Security
77+
SECRET_KEY: y5txe1mRmS_JpOrUzFzHEu-kIQn3lf7ll0AOv9DQh0s
78+
# CORS settings
79+
BACKEND_CORS_ORIGINS: "http://localhost,http://localhost:5173,https://localhost,https://localhost:5173"
80+
# Logging
81+
LOG_LEVEL: "INFO"
82+
SQL_DEBUG: False
83+
volumes:
84+
- data/sqlbot/excel:/opt/sqlbot/data/excel
85+
- data/sqlbot/images:/opt/sqlbot/images
86+
- data/sqlbot/logs:/opt/sqlbot/logs
87+
- data/postgresql:/var/lib/postgresql/data
88+
89+
networks:
90+
sqlbot-network:
91+
```
1992

20-
```
21-
# MCP 服务图片路径,默认路径
22-
MCP_IMAGE_PATH=/opt/sqlbot/images
23-
24-
# MCP 后端渲染服务地址,默认路径
25-
MCP_IMAGE_HOST=http://localhost:3000
26-
27-
# 图片访问路径, {sqlbot mcp 服务ip/域名}[: {sqlbot mcp 服务端⼝}]/images/
28-
# 注意跨域 、https 、http协议安全等可能导致图片无法加载的问题
29-
SERVER_IMAGE_HOST=https://<your-server-ip>/images/
30-
31-
```
3293
## 2 MCP 工具说明
3394
!!! Tip ""
3495
SQLBot 的 MCP Server 提供两个内置工具:mcp_start 和 mcp_question,分别用于初始化对话和提交问题。
@@ -91,108 +152,111 @@
91152
## 3 使用示例
92153

93154
### 3.1 MaxKB 集成示例
94-
!!! Tip ""
95-
方式一:
96155

97-
步骤⼀: 创建⼀个高级编排 ,添加用户输⼊用于在问数开始时输⼊ SQLBot 用户名和密码 。
156+
!!! Tip ""
157+
[下载完整示例文件](https://resource-fit2cloud-com.oss-cn-hangzhou.aliyuncs.com/sqlbot/SQLBot.mk)
98158

99-
步骤⼆: 添加⼀个 AI 对话 ,启用⼯具中的 MCP 功能 ,填⼊ MCP Sever 配置 。
159+
!!! Tip ""
100160

101-
步骤三: 选择 AI 模型和编辑提示词 ,提示词参考如下:
102-
103-
```
104-
# 回答要求:
105-
按需调用 mcp_start 和 mcp_question ⼯具获取信息回答问题 。
106-
mcp_start 账号密码:
107-
username:{{global.username}} password:{{global.password}}
108-
⼯具调用逻辑:
109-
首先调用 mcp_start ⼯具, 获取 access_token 和 chat_id , 帮我记住这两个参数, 之后不要重复调用 mcp_start ,直接使用 即可; 然后再调用 mcp_question ⼯具, 其中 token 和 chat_id 参数是调用 mcp_start ⼯具返回, question 是用户提问 。
110-
# 用户提问:
111-
{{开始.question}}
112-
# 输出要求:
113-
mcp_question 的返回 ,请直接输出展示 。
161+
步骤⼀: 创建或进入一个高级编排类型的应用。
114162

115-
```
163+
步骤二: 在「基本信息」里添加两个用户输入,分别是 username 和 password,添加两个会话变量,分别是 sqlbot_token 和 sqlbot_chat_id
116164

117-
![集成示例](img/mcp/maxkb_ai_effect.png)
118-
!!! Tip ""
119-
方式二:
165+
步骤三: 添加条件判断,在开始节点后添加条件分支(IF)。判断条件:会话变量>access_token 是否为空。为空:执行登录逻辑,添加 MCP 调用,调用 MCP 工具 mcp_start。
120166

121-
步骤⼀: 创建或进入一个高级编排类型的应用。
167+
步骤四: 配置 MCP 登录配置:
122168

123-
步骤二: 添加输入节点在,节点中定义输入变量: username(必填) 、password(必填)
169+
添加 MCP 调用节点
124170

125-
步骤三: 添加条件判断,在开始节点后添加条件分支(IF)。判断条件:access_token 是否为空。为空:执行登录逻辑,调用 MCP 工具 mcp_start。
171+
- MCP Server Config 服务配置:
172+
```
173+
{
174+
"sqlbot_mcp": {
175+
"uri": "http://<SQLBot_MCP_IP>:8001/mcp",
176+
"transport": "sse"
177+
}
178+
}
179+
```
180+
- 工具配置:
181+
点击「获取工具」,选择 mcp_start
182+
- 工具参数配置:
183+
username 从全局变量里选择 username;password 从全局变量里选择 password。
126184

127-
配置 MCP 工具
185+
步骤五: 配置自定义工具
128186

129-
- 输入全局变量:
130-
```
131-
{
132-
"username": "{{username}}",
133-
"password": "{{password}}"
134-
}
135-
136-
```
137-
- MCP Server Config 服务配置:
138-
```
139-
{
140-
"sqlbot_mcp": {
141-
"uri": "http://<SQLBot_MCP_IP>:8001/mcp",
142-
"transport": "sse"
143-
}
144-
}
145-
```
146-
- MCP 工具返回包含 chat_id 和 access_token 的 JSON。解析返回值,添加工具节点(Python)来解析 JSON:
187+
- MCP 调用后添加「自定义工具」。
188+
MCP 工具返回包含 chat_id 和 access_token 的 JSON。添加输入参数,将 MCP 调用结果赋值给参数“arg1”。此外,再添加工具节点(Python)来解析 JSON,工具内容:
147189
```
148190
import json
149-
def main1(data):
191+
def main1(arg1):
150192
json_obj = json.loads(data[0])
151193
return {"token":json_obj["data"]["access_token"], "chat_id":json_obj["data"]["chat_id"]}
152194
```
153-
添加变量赋值节点,将 chat_id 和 access_token 存储为会话变量,供后续 MCP 调用使用。
195+
196+
步骤六: 变量赋值
197+
添加变量赋值节点,将 chat_id 和 access_token 存储为会话变量,供后续 MCP 调用使用。
198+
199+
步骤七: 问数 MCP 调用配置
200+
添加 MCP 调用节点,配置问数调用
154201

155-
- 执行后续 MCP 业务调用,MCP Server Config 配置:
202+
- MCP Server Config 服务配置:
203+
```
204+
{
205+
"sqlbot_mcp": {
206+
"uri": "http://<SQLBot_MCP_IP>:8001/mcp",
207+
"transport": "sse"
208+
}
209+
}
210+
```
211+
- 工具配置:
212+
点击「获取工具」,选择 mcp_question
213+
- 工具参数配置:
214+
question 选择「开始>用户问题」,chat_id 选择「会话变量>sqlbot_chat_id」,token 选择「会话变量>sqlbot_token」。
156215

157-
```
158-
{
159-
"sqlbot_mcp": {
160-
"uri": "http://<SQLBot_MCP_IP>:8001/mcp",
161-
"transport": "sse"
162-
}
163-
}
164-
```
165-
步骤四:在流程末尾添加指定回复节点,将 MCP 的输出结果作为回复内容。输入有效的 username 与 password 测试登录及 MCP 功能调用是否正常。
216+
步骤八:在流程末尾添加指定回复节点,将 MCP 的输出结果作为回复内容。输入有效的 username 与 password 测试登录及 MCP 功能调用是否正常。
166217

167-
![集成示例](img/mcp/maxkb_effect.png)
218+
![集成示例](img/mcp/sqlbot_mk_mcp.png)
168219

169220
### 3.2 Dify 集成示例
221+
222+
!!! Tip ""
223+
[下载完整示例文件](https://resource-fit2cloud-com.oss-cn-hangzhou.aliyuncs.com/sqlbot/dify.yml)
224+
170225
!!! Tip ""
171-
步骤⼀: 进入需要配置的工作空间,创建或进入一个 Chatflow 类型的应用
226+
步骤⼀: 进入需要配置的工作空间,创建一个 Chatflow 类型的应用
172227

173-
步骤二: 添加输入节点,在节点中定义输入变量: username(必填) 、password(必填);
228+
步骤二: 在开始节点中定义输入变量: username(必填) 、password(必填);
174229

175-
步骤三: 添加条件判断,在开始节点后添加条件分支(IF)。判断条件:access_token 是否为空。为空:执行登录逻辑,调用 MCP 工具 mcp_start。
230+
步骤三: 添加会话变量 chat_id(Number)和 access_token(String);
231+
232+
步骤四: 添加条件分支,在开始节点后添加条件分支(IF)。判断条件:access_token 是否为空。为空:执行登录逻辑,调用 MCP 工具 mcp_start;
233+
234+
步骤五: 在 marketplace 中搜索 “MCP”,添加工具 “MCP SSE / StreamableHTTP”,添加 MCP 调用。工具名称为 mcp_start
176235

177236
配置 MCP 工具参数(以 mcp_start 为例):
178237

179238
- 输入参数:
180239
```
181240
{
182-
"username": "{{username}}",
183-
"password": "{{password}}"
241+
"username": "{{开始节点的username}}",
242+
"password": "{{开始节点的password}}"
184243
}
185244

186245
```
187-
- MCP 服务配置:
246+
- MCP 服务配置:
188247
```
189248
{
190-
"sqlbot_mcp": {
191-
"uri": "http://<SQLBot_MCP_IP>:8001/mcp",
192-
"transport": "sse"
193-
}
249+
"sqlbot_mcp": {
250+
"uri": "http://<SQLBot_MCP_IP>:8001/mcp",
251+
"transport": "sse"
252+
}
194253
}
195254
```
255+
256+
步骤六:解析 chat_id 和 access_token
257+
258+
- 添加输入变量 “arg1”,选择 “mcp_start 的 text”
259+
196260
- MCP 工具返回包含 chat_id 和 access_token 的 JSON。解析返回值,添加 代码执行 节点(Python)来解析 JSON:
197261
```
198262
import json
@@ -205,24 +269,40 @@
205269
}
206270

207271
```
208-
添加变量赋值节点,将 chat_id 和 access_token 存储为全局变量,供后续 MCP 调用使用。
209272

273+
- 添加输出变量 access_token(String)和 chat_id(Number)
274+
275+
步骤七: 变量赋值
276+
277+
添加变量赋值节点,将 chat_id 和 access_token 存储为全局变量,供后续 MCP 调用使用。
278+
279+
步骤八: 执行 MCP 调用
280+
281+
调用 MCP 工具 mcp_question,工具名称为 mcp_question
282+
283+
- 参数设置
284+
```
285+
{
286+
"chat_id":{{#conversation.chat_id#}},
287+
"question":"{{#sys.query#}}",
288+
"token":"{{#conversation.access_token#}}"
289+
}
290+
```
210291
- 执行后续 MCP 业务调用
211292

212-
```
213-
{
214-
"sqlbot_mcp": {
215-
"uri": "http://<SQLBot_MCP_IP>:8001/mcp",
216-
"transport": "sse"
217-
}
218-
}
219-
```
220-
步骤四:在流程末尾添加回答节点,将 MCP 返回的内容回复给用户。输入有效的 username 与 password 测试登录及 MCP 功能调用是否正常。
293+
```
294+
{
295+
"sqlbot_mcp": {
296+
"uri": "http://<SQLBot_MCP_IP>:8001/mcp",
297+
"transport": "sse"
298+
}
299+
}
300+
```
221301

302+
步骤九:在流程末尾添加回答节点,将 MCP 返回的内容回复给用户。输入有效的 username 与 password 测试登录及 MCP 功能调用是否正常。
222303

223-
![集成示例](img/mcp/dify_mcp.png)
224304

225-
![集成示例](img/mcp/dify_mcp_effect.png)
305+
![集成示例](img/mcp/sqlbot_dify_mcp.png)
226306

227307
### 3.3 Coze 集成示例
228308
!!! Tip ""

0 commit comments

Comments
 (0)