本文将介绍如何搭建Dify服务器,以及在Dify中集成基于自定义 OAuth 应用授权的OpenAPI MCP Server。
前提条件
-
Dify服务器规格要求CPU >= 2 Core且RAM >= 4 GiB。
-
Dify版本 >= 1.8.0。
操作步骤
一. 搭建Dify服务器
本示例以在ECS实例中搭建Dify服务器为例。
-
在ECS实例中安装Docker。
-
下载Dify代码:
git clone https://github.com/langgenius/dify.git -
修改Dify配置文件:
cd dify/docker cp .env.example .env vim .env请在
.env配置文件中找到以下配置项,并补充对应的值:说明这里的值需与OAuth应用中的回调地址保持一致。
配置项
值
CONSOLE_API_URL
http://<ECS实例公网IP或域名>。若是在本地部署,则为http://127.0.0.1。
CONSOLE_WEB_URL
http://<ECS实例公网IP或域名>。若是在本地部署,则为http://127.0.0.1。
SERVICE_API_URL
http://<ECS实例公网IP或域名>。若是在本地部署,则为http://127.0.0.1。
APP_API_URL
http://<ECS实例公网IP或域名>。若是在本地部署,则为http://127.0.0.1。
APP_WEB_URL
http://<ECS实例公网IP或域名>。若是在本地部署,则为http://127.0.0.1。
FILES_URL
http://<ECS实例公网IP或域名>。若是在本地部署,则为http://127.0.0.1。
-
启动Dify服务器:
# 停止Dify # docker compose down # 启动Dify docker compose up -d当出现以下信息时,表示Dify服务器已成功启动。若出现报错,请重新执行docker compose up -d,直至出现以下信息。
[+] Running 13/13 ✔ Network docker_ssrf_proxy_network Created ✔ Network docker_default Created ✔ Container docker-ssrf_proxy-1 Started ✔ Container docker-redis-1 Started ✔ Container docker-db-1 Healthy ✔ Container docker-web-1 Started ✔ Container docker-weaviate-1 Started ✔ Container docker-sandbox-1 Started ✔ Container docker-worker_beat-1 Started ✔ Container docker-api-1 Started ✔ Container docker-plugin_daemon-1 Started ✔ Container docker-worker-1 Started ✔ Container docker-nginx-1 Started
二. 创建OAuth应用
在访问控制RAM控制台-OAuth应用中创建应用,在填入以下内容时需注意:
|
配置项 |
说明 |
|
OAuth 协议版本 |
固定选择 2.1。 |
|
应用类型 |
从Web 应用或Native 应用中选择一个。 |
|
访问令牌有效期 |
请根据业务需要进行调整。 |
|
刷新令牌有效期 |
请根据业务需要进行调整。 |
|
回调地址 |
固定地址:http://<ECS实例公网IP或域名>/console/api/mcp/oauth/callback,与Dify .env配置文件中的值保持一致。 |
|
OAuth 范围 |
必须选择/acs/mcp-server。 |
三. 创建OpenAPI MCP Server
在Alibaba Cloud OpenAPI MCP service中创建MCP Server时,OAuth配置请选择自定义OAuth,并选取此前创建的OAuth应用。如果您使用的是已存在的MCP Server,请将OAuth配置修改为自定义OAuth,并选择此前创建的OAuth应用。 选择自定义OAuth后,OpenAPI MCP Server将以该OAuth应用配置完成授权(将授权码回调至自部署的 Dify 服务)。
四. 在Dify中添加OpenAPI MCP Server
-
在浏览器中输入Dify首页地址
http://<ECS实例公网IP>,并根据指引完成配置后登录Dify。 -
在中添加MCP服务,其中Server URL填写阿里云OpenAPI MCP Server所提供的Streamable HTTP Endpoint。
添加后等待自动授权完成。如出现以下信息,表示在Dify中已成功添加阿里云OpenAPI MCP Server。
添加成功后,MCP 服务卡片显示为绿色在线状态,右侧详情面板中服务状态显示为已授权,并列出可用的 ECS 工具(如 Ecs-20140526-DescribeRegions、Ecs-20140526-DescribeAvailableResource、Ecs-20140526-RunInstances、Ecs-20140526-DescribeInstanceStatus、Ecs-20140526-DescribeInstances 等共 7 个工具)。
五. 在Dify中配置模型
Dify目前已支持主流的模型供应商,例如千问、Deepseek、OpenAI的GPT系列等,更多信息,请参见接入大模型。
-
点击右上角头像,选择设置。
-
在模型供应商中安装模型,本示例选择安装千问,关于千问的相关介绍,请参见选择模型。
-
安装完成之后,完成模型的相关配置。包括API KEY、Dify默认使用系统推理模型、Embedding模型等。
说明系统推理模型需要选择能够支持工具调用的模型,例如qwen3-max-preview、DeepSeek-R1等。
在模型供应商页面,通义千问供应商显示为未授权状态,单击其右侧的设置按钮完成授权配置。完成后,单击页面上方的系统模型设置按钮,选择默认的推理模型和 Embedding 模型。
六. 测试MCP功能
通过搭建一个简单的Agent应用测试OpenAPI MCP Server的能力。
-
创建一个Agent应用,请注意应用类型选择Agent。
在左侧创建应用面板中,单击创建空白应用。
-
在Agent应用中添加工具,选择已添加到Dify的OpenAPI MCP server。
在编排页面底部的工具区域,单击+ 添加,在弹出的工具浮层中选择MCP分类,找到mcp_demo并添加全部工具。添加完成后,工具区域显示7/7 启用。
-
在调试与预览界面输入自然语言,例如“查询杭州地域的ECS数量”。
AI助手通过调用
DescribeInstancesAPI(参数RegionId: cn-hangzhou、PageSize: 1),从响应中提取TotalCount字段,返回结果:杭州地域共有1个ECS实例。