Skip to content

Commit e8abc26

Browse files
committed
feat:优化 MCP 服务其他示例
1 parent 3ebf164 commit e8abc26

File tree

9 files changed

+214
-2
lines changed

9 files changed

+214
-2
lines changed

docs/img/coze1.png

753 KB
Loading

docs/img/coze2.png

1.07 MB
Loading

docs/img/coze3.png

442 KB
Loading

docs/img/coze4.png

1.04 MB
Loading

docs/img/n8n1.png

280 KB
Loading

docs/img/n8n2.png

363 KB
Loading

docs/img/n8n3.png

295 KB
Loading

docs/img/n8n4.png

444 KB
Loading

docs/mcp_server.md

Lines changed: 214 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@
170170
!!! Tip ""
171171
步骤⼀: 进入需要配置的工作空间,创建或进入一个 Chatflow 类型的应用。
172172

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

175175
步骤三: 添加条件判断,在开始节点后添加条件分支(IF)。判断条件:access_token 是否为空。为空:执行登录逻辑,调用 MCP 工具 mcp_start。
176176

@@ -222,4 +222,216 @@
222222

223223
![集成示例](img/dify_mcp.png)
224224

225-
![集成示例](img/dify_mcp_effect.png)
225+
![集成示例](img/dify_mcp_effect.png)
226+
227+
### 3.2 Coze 集成示例
228+
!!! Tip ""
229+
方式一:
230+
231+
步骤⼀:进入工作空间,创建一个新的应用或进入已有应用。
232+
233+
步骤二:在开始节点中设置输入变量: username(必填) 、password(必填);
234+
235+
步骤三:在开始节点后添加文本处理节点(文本处理节点用于字符串拼接),传入 username 和 password,编辑表达式如下:
236+
```
237+
{"username":"{{String1}}","password":"{{String2}}"}
238+
```
239+
步骤四:调用 MCP 工具 mcp_start。在文本处理节点后添加 MCP SSE Client 工具节点,设置如下:
240+
241+
- 输入变量:文本处理节点输出
242+
243+
- 工具名称:mcp_start
244+
245+
- SSE URL:`http://SQLBot_MCP_IP:8001/mcp`
246+
247+
步骤五:MCP 将返回包含 chat_id 和 access_token 的 JSON。添加 Python 代码节点,解析 MCP 返回的 JSON,示例代码如下:
248+
```
249+
import json
250+
251+
def main(args) -> dict:
252+
# 从args获取params字典
253+
params = args.params
254+
255+
# 从params字典获取input值(这是我们需要的JSON字符串)
256+
input_json_str = params.get('input')
257+
258+
# 解析JSON字符串
259+
json_obj = json.loads(input_json_str)
260+
261+
# 获取data部分
262+
data = json_obj.get('data')
263+
264+
# 提取所需字段
265+
chat_id = data.get('chat_id')
266+
access_token = data.get('access_token')
267+
268+
return {
269+
"chat_id": chat_id,
270+
"access_token": access_token
271+
}
272+
```
273+
设置输出:返回 access_token(String)和 chat_id(String)。
274+
275+
步骤六:添加文本处理节点,将代码节点返回的 access_token 和 chat_id 与开始节点的 question 变量进行拼接,表达式如下:
276+
```
277+
{"token":"{{String1}}","chat_id":"{{String2}}","question":"{{String3}}"}
278+
```
279+
步骤七:调用 MCP 工具 mcp_question。在文本处理节点后添加 MCP SSE Client 工具节点,设置如下:
280+
281+
- 输入变量:文本处理节点输出
282+
283+
- 工具名称:mcp_question
284+
285+
- SSE URL:http://<host>:8001/mcp
286+
287+
步骤八:在结束节点将 MCP 返回的内容回复给用户。输入有效的 username、password 以及 question,即可测试登录及 MCP 功能调用是否正常。
288+
289+
290+
![集成示例](img/coze1.png)
291+
292+
![集成示例](img/coze2.png)
293+
294+
!!! Tip ""
295+
方式二:
296+
297+
步骤⼀:进入工作空间,创建一个新的应用或进入已有应用。
298+
299+
步骤二:定义输入变量。在开始节点中设置以下必填输入变量:username、password、question。
300+
301+
步骤三:添加大模型节点,选择合适的模型。添加技能:MCP Compatible/call_tool。配置输入参数如下:
302+
```
303+
{
304+
"sqlbot_mcp": {
305+
"uri": "http://<SQLBot_MCP_IP>:8001/mcp",
306+
"transport": "sse"
307+
}
308+
}
309+
```
310+
传入开始节点的 username 、 password 以及 question 参数,添加系统提示词。提示词参考:
311+
```
312+
# 回答要求:
313+
按需调用 mcp_start 和 mcp_question 工具获取信息回答问题。
314+
315+
mcp_start 账号密码:
316+
{{username}}
317+
{{password}}
318+
319+
工具调用逻辑:
320+
首先调用 mcp_start 工具,获取 access_token 和 chat_id ,帮我记住这两个参数,之后不要重复调用 mcp_start,直接使用即可;然后再调用 mcp_question 工具,其中 token 和 chat_id 参数是调用 mcp_start 工具返回,question 是用户提问。
321+
322+
323+
# 用户提问:
324+
{{question}}
325+
326+
# 输出要求
327+
- 如果 mcp_question 中有图片,请直接返回图片
328+
- 请将 mcp_question 的执行结果中的数据、SQL以及图片内容展示
329+
- 请将 mcp_question 的执行过程在结尾进行总结
330+
331+
# 限制
332+
- 不要输出MCP详细执行过程
333+
- 生成内容不要放在 mcp_question 执行过程中
334+
- 严格按照输出要求输出内容,不要输出MCP调用过程
335+
```
336+
337+
步骤四:添加结束节点,将大模型返回的内容回复给用户。输入有效的 username 与 password 以及输入 question,测试登录及 MCP 功能调用是否正常。
338+
339+
340+
341+
342+
343+
![集成示例](img/coze3.png)
344+
345+
![集成示例](img/coze4.png)
346+
347+
348+
349+
### 3.4 n8n 集成示例
350+
351+
!!! Tip ""
352+
方式一:
353+
354+
步骤⼀:进入 My project,创建或进入一个 workflow。
355+
356+
步骤二:添加表单触发器节点,节点中定义表单元素: username(必填) 、password(必填)、question(必填)。
357+
358+
步骤三:添加 AI Agent 节点,编辑提示词,提示词参考如下:
359+
```
360+
# 回答要求:
361+
按需调用 mcp_start 和 mcp_question 工具获取信息回答问题。
362+
363+
mcp_start 账号密码:
364+
username:{{ $json.username }}
365+
password:{{ $json.password }}
366+
367+
工具调用逻辑:
368+
首先调用 mcp_start 工具,获取 access_token 和 chat_id ,帮我记住这两个参数,之后不要重复调用 mcp_start,直接使用即可;然后再调用 mcp_question 工具,其中 token 和 chat_id 参数是调用 mcp_start 工具返回,question 是用户提问。
369+
370+
371+
# 用户提问:
372+
{{ $json.question }}
373+
374+
# 输出要求
375+
- 如果 mcp_question 中有图片,请直接返回图片
376+
- 请将 mcp_question 的执行结果中的数据、SQL以及图片内容展示
377+
- 请将 mcp_question 的执行过程在结尾进行总结
378+
379+
# 限制
380+
- 不要输出MCP详细执行过程
381+
- 生成内容不要放在 mcp_question 执行过程中
382+
- 严格按照输出要求输出内容,不要输出MCP调用过程
383+
```
384+
步骤四:添加 model 节点,配置 AI 模型,填写 api key。
385+
386+
步骤五:调用 MCP Clien 工具,在 Parameters 的 Endpoint 填入 SQLBot 填入 MCP 服务地址:`http://SQLBot_MCP_IP:8001/mcp`。
387+
388+
点击【Execute workflow】输入有效的 username 与 password 以及输入 question,测试登录及 MCP 功能调用是否正常。
389+
390+
![集成示例](img/n8n1.png)
391+
392+
![集成示例](img/n8n2.png)
393+
394+
!!! Tip ""
395+
方式二:
396+
397+
步骤⼀:进入 My project,创建或进入一个 workflow。
398+
399+
步骤二:添加聊天触发器节点。
400+
401+
步骤三:添加 AI Agent 节点,编辑提示词,提示词参考如下:
402+
```
403+
# 回答要求:
404+
按需调用 mcp_start 和 mcp_question 工具获取信息回答问题。
405+
406+
mcp_start 账号密码:
407+
username:admin
408+
password:SQLBot@123456
409+
410+
工具调用逻辑:
411+
首先调用 mcp_start 工具,获取 access_token 和 chat_id ,帮我记住这两个参数,之后不要重复调用 mcp_start,直接使用即可;然后再调用 mcp_question 工具,其中 token 和 chat_id 参数是调用 mcp_start 工具返回,question 是用户提问。
412+
413+
414+
# 用户提问:
415+
{{ $json.chatInput }}
416+
417+
# 输出要求
418+
- 如果 mcp_question 中有图片,请直接返回图片
419+
- 请将 mcp_question 的执行结果中的数据、SQL以及图片内容展示
420+
- 请将 mcp_question 的执行过程在结尾进行总结
421+
422+
# 限制
423+
- 不要输出MCP详细执行过程
424+
- 生成内容不要放在 mcp_question 执行过程中
425+
- 严格按照输出要求输出内容,不要输出MCP调用过程
426+
```
427+
步骤四:添加 model 节点,配置 AI 模型,填写 api key。
428+
429+
步骤五:调用 MCP Clien 工具,在 Parameters 的 Endpoint 填入 SQLBot 填入 MCP 服务地址:`http://SQLBot_MCP_IP:8001/mcp`。
430+
431+
点击【Execute workflow】,测试登录及 MCP 功能调用是否正常。
432+
433+
434+
![集成示例](img/n8n3.png)
435+
436+
![集成示例](img/n8n4.png)
437+

0 commit comments

Comments
 (0)