このトピックでは、Dify サーバーをセットアップし、カスタム OAuth アプリケーションを使用して認可のために OpenAPI MCP Server と統合する方法について説明します。
前提条件
-
Dify サーバーには、少なくとも 2 つの CPU コアと 4 GiB の RAM が必要です。
-
Dify バージョン 1.8.0 以降。
手順
ステップ 1:Dify サーバーのセットアップ
この例では、Elastic Compute Service (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
ステップ 2:OAuth アプリケーションの作成
Resource Access Management (RAM) コンソールの OAuth アプリケーションページでアプリケーションを作成します。次のパラメーター設定に注意してください:
|
パラメーター |
説明 |
|
OAuth プロトコルバージョン |
2.1 である必要があります。 |
|
アプリケーションタイプ |
[Web Application] または [Native Application] を選択します。 |
|
アクセストークンの有効期間 |
ビジネスニーズに応じて調整してください。 |
|
リフレッシュトークンの有効期間 |
ビジネスニーズに応じて調整してください。 |
|
コールバックアドレス |
アドレスは http://<ECS インスタンスのパブリック IP アドレスまたはドメイン名>/console/api/mcp/oauth/callback である必要があります。これは Dify の .env 設定ファイルの値と一致する必要があります。 |
|
OAuth スコープ |
/acs/mcp-server である必要があります。 |
ステップ 3:OpenAPI MCP Server の作成
Alibaba Cloud OpenAPI MCP サービスで MCP サーバーを作成する際、OAuth 設定をカスタム OAuth に設定し、作成した OAuth アプリケーションを選択します。既存の MCP サーバーを使用している場合は、その OAuth 設定をカスタム OAuth に変更し、アプリケーションを選択します。カスタム OAuth を選択すると、OpenAPI MCP Server は OAuth アプリケーションを使用して認可を行い、認可コードをセルフホストの Dify サービスにリダイレクトします。
ステップ 4:Dify への OpenAPI MCP Server の追加
-
ブラウザーで、
http://<ECS インスタンスのパブリック IP アドレス>にある Dify のホームページに移動し、画面の指示に従ってセットアップを完了してから、Dify にログインします。 -
に移動し、MCP サービスを追加します。[Server URL] には、Alibaba Cloud OpenAPI MCP Server が提供するストリーミング可能な HTTP エンドポイント を入力します。
サービスを追加した後、自動認可が完了するのを待ちます。成功すると、MCP サービスカードが緑色に変わり、オンラインステータスが表示されます。
右側の詳細パネルで、サービスステータスは [Authorized] になり、パネルには、Ecs-20140526-DescribeRegions、Ecs-20140526-DescribeAvailableResource、Ecs-20140526-RunInstances、Ecs-20140526-DescribeInstanceStatus、Ecs-20140526-DescribeInstances などの利用可能な ECS ツールが一覧表示されます (合計 7 ツール)。
ステップ 5:Dify でのモデルの設定
Dify は、Qwen、Deepseek、OpenAI の GPT シリーズなど、主要なモデルプロバイダーをサポートしています。詳細については、「大規模言語モデルへの接続」をご参照ください。
-
右上隅のプロフィール写真をクリックし、[Settings] を選択します。
-
[Model provider] セクションで、モデルをインストールします。この例では Qwen を使用します。Qwen の詳細については、「モデルの選択」をご参照ください。
-
インストール後、API キー、Dify のデフォルトの推論モデル、埋め込みモデルなど、モデル設定を設定します。
説明推論モデルは、
qwen3-max-previewやDeepSeek-R1など、ツールコールをサポートしている必要があります。[Model provider] ページでは、Qwen プロバイダーのステータスが [Unauthorized] と表示されます。その横にある [Setup] ボタンをクリックして、認可設定を完了してください。次に、ページ上部の [System model settings] ボタンをクリックして、デフォルトの推論モデルと埋め込みモデルを選択してください。
ステップ 6:MCP 機能のテスト
シンプルなエージェントアプリケーションを作成して、OpenAPI MCP Server の機能をテストします。
-
エージェントアプリケーションを作成してください。[Application Type] で、[Agent] を選択してください。
左側の [Create application] パネルで、[Create Blank App] をクリックしてください。
-
エージェントアプリケーションにツールを追加し、Dify に追加した OpenAPI MCP Server を選択してください。
[Orchestrate] ページの最下部にある [Tools] セクションで、[+ Add] をクリックしてください。ツールのポップアップで [MCP] カテゴリを選択し、mcp_demo を見つけて、そのすべてのツールを追加してください。追加後、[Tools] セクションに [7/7 Enabled] と表示されます。
-
[Debug & Preview] インターフェイスで、「China (Hangzhou) には ECS インスタンスがいくつありますか?」などの自然言語クエリを入力してください。
AI アシスタントは、パラメーター
RegionId: cn-hangzhouおよびPageSize: 1を使用してDescribeInstancesAPI を呼び出し、レスポンスからTotalCountフィールドを抽出し、「China (Hangzhou) には 1 つの ECS インスタンスがあります」という結果を返します。