本文將介紹如何搭建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,直至出現以下資訊。

二. 建立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。

五. 在Dify中配置模型
Dify目前已支援主流的模型供應商,例如通義千問、Deepseek、OpenAI的GPT系列等,更多資訊,請參見接入大模型。
點擊右上方頭像,選擇設定。

在模型供應商中安裝模型,本樣本選擇安裝通義千問,關於通義千問的相關介紹,請參見模型總覽。

安裝完成之後,完成模型的相關配置。包括API KEY、Dify預設使用系統推理模型、Embedding模型等。
說明系統推理模型需要選擇能夠支援工具調用的模型,例如qwen3-max-preview、DeepSeek-R1等。

六. 測試MCP功能
通過搭建一個簡單的Agent應用測試OpenAPI MCP Server的能力。
建立一個Agent應用,請注意應用類型選擇Agent。

在Agent應用中添加工具,選擇已添加到Dify的OpenAPI MCP server。

在調試與預覽介面輸入自然語言,例如“查詢杭州地區的ECS數量”。
