写在前面
本文执行的流程参考了
MCP Client实现
实现MCP Client主要有两个操作:构建镜像以及安装MCP Client插件
1.构建镜像并应用
因为官方镜像不带相关环境,所以需要构建有Node.js环境和npm包管理器的Docker镜像
首先创建Dockerfile:
# 使用指定的基础镜像
FROM langgenius/dify-plugin-daemon:0.0.7-local
# 安装 Node.js 环境(这里选择 Node.js 22 版本)
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
RUN apt-get install nodejs -y
# 安装 npm 包管理器
RUN curl -qL https://www.npmjs.com/install.sh | sh
在终端中执行命令进行构建:
docker build -t dify-plugin .
修改docker-compose.yaml
文件:
修改plugin_daemon
服务的配置部分的镜像为刚刚构建的新镜像
plugin_daemon:
image: dify-plugin:latest
2.安装MCP Client插件
插件下载地址:
然后在Dify里安装就行,如果报了未签名错误就修改Dify项目根目录下的 .env
文件,并修改 FORCE_VERIFYING_SIGNATURE
参数为 false
。
编辑Chatflow
像图片里这样设置就可以了。Agent策略选择mcpReAct(支持所有模型的一种调用方式)
mcpserver的代码如下:
{
"mcpServers": {
"amap-maps": {
"command": "npx",
"args": [
"-y",
"@amap/amap-maps-mcp-server"
],
"env": {
"AMAP_MAPS_API_KEY": "你在高德官网上申请的key"
}
},
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
当然你也可以添加别的MCP Server我这里添加的是高德地图和Github的MCP Server