本文將介紹如何搭建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執行個體。