すべてのプロダクト
Search
ドキュメントセンター

OpenAPI Explorer:aliyun mcp-proxy による OpenAPI MCP サーバーのプロキシ設定

最終更新日:Sep 18, 2026

サードパーティの AI アプリケーションが HTTP 経由で OpenAPI MCP サーバーと通信するものの、Alibaba Cloud の認証を自身で処理できない場合、ローカル認証プロキシとして aliyun utils mcp-proxy を使用します。このプロキシが OAuth 認可とトークン管理を自動的に処理するため、アプリケーションは認証情報を扱うことなく Alibaba Cloud のサービス API を呼び出すことができます。

aliyun utils mcp-proxy の概要

aliyun utils mcp-proxy は、Alibaba Cloud CLI が提供する MCP サーバーのプロキシツールです。Dify や LangChain などのサードパーティ AI アプリケーションと OpenAPI MCP サーバー間の連携を簡素化します。初回起動時には手動で OAuth 認可を行う必要があります。その後、プロキシはトークンの更新を自動的に処理します。

仕組み:アプリケーションは API リクエストを mcp-proxy に送信します。プロキシは認証情報を追加し、リクエストを OpenAPI MCP サーバーに転送します。

認証情報の役割:実行時、aliyun utils mcp-proxy は 2 種類の認証情報を使用します。これらは異なる段階で使用されます。

  • Alibaba Cloud CLI 認証情報 — aliyun configure を実行して設定する AccessKey ペアです。--profile を使用して、使用する設定を指定できます。プロキシは、起動段階で OAuth アプリケーションを照会または作成するためにこれらの認証情報を使用します。

  • OAuth トークン — プロキシは初回認可時にトークンを取得し、その後の実行では自動的に更新します。プロキシはこのトークンを、リクエストを OpenAPI MCP サーバーに転送する際の認証に使用します。

CLI に設定する認証情報のアイデンティティは、OAuth アプリケーションに関連する RAM 権限を持っている必要があります。詳細については、「ステップ1:Alibaba Cloud CLI の設定」をご参照ください。プロキシがリクエストを転送する際にアクセスできる MCP サーバーの範囲は、OAuth 認可を行ったアイデンティティによって決まります。

警告

mcp-proxy を起動すると、ホスト上のすべてのユーザーが、プロキシポートを通じて、プロキシを起動した CLI ユーザーの権限範囲内にあるすべての MCP サーバーにアクセスできるようになります。プロキシをデプロイする前に、「セキュリティリスクと軽減策」を読み、環境分離、ネットワークアクセス制御、およびサーバー範囲の制限に関する設定を行ってください。

プロキシの設定と実行

ステップ1:Alibaba Cloud CLI の設定

  1. Alibaba Cloud CLI をバージョン 3.5.0 以降にインストールまたはアップグレードします。手順については、「Alibaba Cloud CLI のインストール、更新、アンインストール」をご参照ください。

  2. Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアで CLI を設定します。

    aliyun configure
    # プロンプトに従って AccessKey ID、AccessKey シークレット、デフォルトリージョンを入力します。

    RAM ユーザーを使用する場合は、次の表の権限を RAM ユーザーに付与します。

    権限

    目的

    シナリオ

    ram:ListApplications

    名前による OAuth アプリケーションの照会

    必須。プロキシは初回起動時、またはローカルに保存された認可情報が利用できない場合にこの権限を必要とします。この権限は、--oauth-app-name を使用して既存のアプリケーションを指定する場合にも必要です。

    ram:CreateApplication

    デフォルトの OAuth アプリケーション aliyun-cli-mcp-proxy の作成

    --oauth-app-name を使用してアプリケーションを指定せず、かつデフォルトのアプリケーションが存在しない場合に必須です。

    ram:GetApplication

    ID による OAuth アプリケーションの照会

    推奨します。プロキシはこの権限を使用して、ローカルに保存された認可情報を再利用します。この権限がない場合、プロキシは起動のたびに新しい OAuth 認可を行う必要があります。

ステップ2:プロキシの初回実行と OAuth 認可

mcp-proxy を初めて実行するときは、トークンを更新する権限を取得するために、1 回限りの OAuth 認可を行う必要があります。

  1. プロキシをフォアグラウンドで起動します。

    • GUI のある環境では、--no-browser パラメーターを追加しない場合、CLI は自動的にブラウザを開いて OAuth 認可のサインインフローを実行するため、手動で認可コードを入力する必要はありません。認可が完了したら、ステップ 5 に進みます。

      aliyun utils mcp-proxy --host 127.0.0.1 --port 8088
    • GUI のないサーバーでは、--no-browser パラメーターを追加します。以下の手順では、手動で認可コードを取得する方法を説明します。

      aliyun utils mcp-proxy --host 127.0.0.1 --port 8088 --no-browser
    説明

    --oauth-app-name パラメーターを使用して、カスタム OAuth アプリケーションを指定できます。アプリケーションは、次の要件を満たす必要があります:

    • OAuth スコープ:--scope パラメーターで指定された認可スコープを含んでいる必要があります。デフォルト値は /acs/mcp-server です。

    • リダイレクト URI:http://<host>:<port>/callback を含んでいる必要があります。ここで、host と port は、プロキシを起動するために使用する --host および --port パラメーターの値です。

    • アプリケーションタイプ:NativeApp アプリケーションである必要があります。

  2. ターミナルに認可 URL が表示されます。

    Setting up MCPOAuth profile 'default-mcp'...
    Opening browser for OAuth login...
    URL: https://signin.alibabacloud.com/oauth2/v1/auth?client_id=XXXX&response_type=code&scope=%2Facs%2Fmcp-server&redirect_uri=http://127.0.0.1:8088/callback&code_challenge=XXX&code_challenge_method=S256
    Please open the authorization URL on a machine with a browser and complete the sign-in.
    After authorization, the browser will redirect to a callback URL.
    Even if the page fails to load (connection error), the authorization code is in the URL.
    Please copy the value of the `code` parameter from the browser's address bar.
    Example: If the URL is:
      http://127.0.0.1:8088/callback?code=abc123xyz&state=...
      Then copy only: abc123xyz
    Enter authorization code: <YOUR CODE>
  3. ブラウザで URL を開き、サインインして認可を行います。

  4. 認可が成功すると、ページは code パラメーターを含むアドレスにリダイレクトされるか、認可コードが直接表示されます。code の値をコピーしてターミナルに貼り付け、Enter キーを押して確定します。

  5. ターミナルに OAuth login successful! メッセージが表示されたら、認可サインインが成功しました。

    2025/12/04 19:11:49 OAuth authorization code received successfully
    2025/12/04 19:11:49 Start to exchange code for token with PKCE
    2025/12/04 19:11:49 Exchange code for token with PKCE successfully
    OAuth login successful!
  6. ターミナルに MCP Proxy Server Started メッセージが表示されたら、プロキシは正常に起動しました。

    MCP Profile 'default-mcp' configured for oauth app 'aliyun-cli-mcp-proxy' successfully!
    
    MCP Proxy Server Started
    Listen: 127.0.0.1:8088
    Region: CN

ステップ3:systemd バックグラウンドサービスの設定 (CentOS の例)

プロキシを安定して実行させるために、ブート時に起動する systemd サービスとして設定します。

  1. systemd サービスファイル aliyun-mcp-proxy.service を作成します。

    次の内容を置き換えます:

    • コマンド内の your-user を、このコマンドを実行する実際の非 root ユーザー名に置き換えます。このユーザーは aliyun configure を実行して認証情報を設定済みであり、かつこのユーザーで前述の OAuth 認可を行っている必要があります。サービスが起動すると、このユーザーのホームディレクトリに保存されている認可情報を再利用し、再度ブラウザでの認可を求めることはありません。

    • ExecStart には aliyun コマンドの絶対パスを含める必要があります。which aliyun を実行して実際のパスを取得し、例の /usr/local/bin/aliyun を置き換えます。systemd はこのフィールドをシェル経由で解析しないため、$(which aliyun) のようなコマンド置換は機能しません。

    sudo tee /etc/systemd/system/aliyun-mcp-proxy.service << 'EOF'
    [Unit]
    Description=Aliyun CLI MCP Proxy
    After=network.target
    [Service]
    Type=simple
    User=your-user
    ExecStart=/usr/local/bin/aliyun utils mcp-proxy --host 127.0.0.1 --port 8088 --no-browser
    Restart=always
    RestartSec=10
    Environment=HOME=/home/your-user
    [Install]
    WantedBy=multi-user.target
    EOF
  2. systemd 設定をリロードし、サービスを開始します。

    # 設定をリロード
    sudo systemctl daemon-reload
    # サービスを開始
    sudo systemctl start aliyun-mcp-proxy
    # サービスのブート時起動を有効化
    sudo systemctl enable aliyun-mcp-proxy

ステップ4:プロキシサービスの検証

以下のいずれかの方法で、サービスが正常に実行されていることを確認します。

  • サービスステータスの表示

    次のコマンドを実行して、サービスステータスを表示します。

    sudo systemctl status aliyun-mcp-proxy

    出力に active (running) が含まれている場合、サービスは正常に起動しました。

  • プロキシポートへのリクエスト

    次のコマンドを実行して、プロキシポートに直接リクエストを送信します。

    curl http://127.0.0.1:8088/

    プロキシが正常に機能している場合、MCP サーバーから XML エラーレスポンスが返されます。これは、プロキシとサービス間の接続が確立されたことを示します。

    <?xml version='1.0' encoding='UTF-8'?><Error><RequestId>B3311876-XXXXX</RequestId><HostId>openapi-mcp.cn-hangzhou.aliyuncs.com</HostId><Code>InvalidAction.NotFound</Code><Message>Specified api is not found, please check your url and method.</Message><Recommend><![CDATA[https://api.alibabacloud.com/troubleshoot?q=InvalidAction.NotFound&product=OpenAPIExplorer&requestId=B3311876-XXX]]></Recommend></Error>

ユースケース:Dify との統合

次の例では、同じ ECS インスタンスに Docker Compose を介してデプロイされた Dify を使用して、アプリケーションで mcp-proxy プロキシを設定および使用する方法について説明します。

ステップ1:ホストの Docker ブリッジ IP アドレスの取得と mcp-proxy サービスの開始

Dify コンテナは、ホストの Docker ブリッジ IP アドレスを介して mcp-proxy サービスにアクセスする必要があります。

  1. 次のコマンドを実行して、IP アドレスを取得し、記録します。

    ip addr show docker0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1

    このコマンドは 172.17.0.1 のような IP アドレスを返します。

  2. mcp-proxy サービスをフォアグラウンドで起動します。または、systemd の起動コマンドを変更してからサービスを開始します。

    aliyun utils mcp-proxy --host 172.17.0.1 --port 8088 --no-browser
    説明

    コールバックアドレスは --host と --port の両方のパラメーターによって決まります。リッスンアドレスを 127.0.0.1 から Docker ブリッジ IP アドレスに変更した後、RAM コンソールの [連携] > [OAuth アプリケーション (パブリックプレビュー)] にある対応する OAuth アプリケーションに、新しいコールバックアドレス (例:http://172.17.0.1:8088/callback) をリダイレクト URI として追加します。そうしないと、リダイレクト URI の検証に失敗するため、起動に失敗します。

ステップ2:Dify での MCP サーバーの設定

  1. Dify の [ツール] > [MCP] 設定ページに移動します。

  2. [Add MCP Server (HTTP)] をクリックします。

  3. [Server Endpoint URL] フィールドに、MCP プロキシアドレスを入力します。

    Alibaba Cloud の OpenAPI MCP Service コンソールで、元の [Streamable HTTP Endpoint] アドレスを取得し、アドレスのドメイン部分 (ホスト) をローカルまたは内部のプロキシアドレスに置き換えます。

    変換例:

    • 元のエンドポイント:https://openapi-mcp.cn-hangzhou.aliyuncs.com/accounts/1234/custom/cli-proxy-test/id/1234/mcp

    • プロキシアドレスに置換 (プロキシが 172.17.0.1:8088 で実行されていると仮定):http://172.17.0.1:8088/accounts/1234/custom/cli-proxy-test/id/1234/mcp

  4. 必要に応じて他の情報を入力し、[Add & Authorize] をクリックします。Dify はこのプロキシアドレスを介して MCP サービスと通信します。

セキュリティリスクと軽減策

mcp-proxy を起動すると、ホスト上のすべてのユーザーが、プロキシポートを通じて、プロキシを起動した CLI ユーザーの権限範囲内にあるすべての MCP サーバーにアクセスできるようになります。主なリスクは次のとおりです。

  • 内部の権限乱用 — 同じマシン上の他のユーザーがプロキシポートを使用して自分の権限を超える操作を実行し、権限の乱用やデータ漏洩につながる可能性があります。

  • 外部公開リスク — プロキシポートが 0.0.0.0 でリッスンしており、ファイアウォールが設定されていない場合、誰でもこのポートを介して MCP サーバーにアクセスできてしまいます。

軽減策

  • 環境分離 — プロキシは信頼できるシングルユーザー環境でのみ実行し、マルチユーザー共有サーバーでの使用は避けてください。

  • ネットワークアクセス制御 — プロキシのリッスンアドレス (--host) を 127.0.0.1 (デフォルト) または特定の内部 IP アドレスにバインドしてください。ファイアウォールまたはセキュリティグループのルールを使用して、プロキシポートのアクセス範囲を制限し (たとえば、特定のアプリケーションサーバーの IP アドレスからのアクセスのみを許可する)、ポートをインターネットに公開しないでください。

  • アクセス制御 — --allowed-servers または --blocked-servers パラメーターを使用して、アクセス可能な MCP サーバーの範囲を制限し、プロキシが意図しないサービスへのアクセスに使用されるのを防いでください。手順については、「サーバーアクセス制御の設定」をご参照ください。

  • 最小権限の原則 — プロキシが使用する CLI ユーザーと関連する MCP サーバーに対して、最小権限のアクセスを設定してください。まずは読み取り専用の権限を付与してください。

  • 監査とモニタリング — プロキシサービスのアクセスログを定期的に確認し、異常なリクエストをモニタリングしてください。アクセス制御によってブロックされたリクエストはプロキシログに記録されます。

サーバーアクセス制御の設定

aliyun utils mcp-proxy は、プロキシを介してアクセスできる MCP サーバーの範囲を制限するためのホワイトリストおよびブラックリストメカニズムをサポートしています。

優先度ルール

アクセス制御は次の順序で評価されます。

  1. ブラックリスト優先 — ブラックリストに一致するリクエストは、同じサーバーがホワイトリストにも含まれている場合でも、即座に拒否されます。

  2. ホワイトリストによるフィルタリング — ホワイトリストが空でない場合、ホワイトリスト内のサーバーのみが許可されます。

  3. デフォルトで許可 — リストが設定されていない場合、すべてのサーバーが許可されます。

サーバー名とサーバー ID の取得

aliyun utils mcp-proxy を起動すると、ターミナルに利用可能なすべての MCP サーバーの名前が一覧表示されます。出力例:

Available Servers:
  - cloudphone
    MCP: http://127.0.0.1:8088/accounts/0000000000000000/system/eds-aic/cloudphone/id/XSkb9v4dXx000000/mcp
    SSE: http://127.0.0.1:8088/accounts/0000000000000000/system/eds-aic/cloudphone/id/XSkb9v4dXx000000/sse
  - multi_account
    MCP: http://127.0.0.1:8088/accounts/0000000000000000/custom/multi_account/id/OV0Qkpxh0Uodx000/mcp
    SSE: http://127.0.0.1:8088/accounts/0000000000000000/custom/multi_account/id/OV0Qkpxh0Uodx000/sse
  • 出力では、cloudphone と multi_account は、id キーワードの前にあるサーバーの name の値です。

  • 出力では、XSkb9v4dXx000000 と OV0Qkpxh0Uodx000 は、mcp キーワードの前にあるサーバーの id の値です。

URL パスは通常、次のルールに従います。

......./system/eds-aic/$server_name/id/$server_id/mcp
......./custom/$server_name/id/$server_id/mcp

照合パターン

--allowed-servers と --blocked-servers パラメーターは、値の形式によって自動的に識別される次の照合パターンをサポートしています。

照合パターン

フォーマット

例

説明

サーバー名または ID による照合

/ で始まらない文字列

cloudcontrol または OV0Qkpxh0Uodx000

サーバーの name または id フィールドと完全一致します

パスプレフィックス照合

/ で始まる文字列

/accounts/0000000000000000/custom/

リクエスト URL のパスプレフィックスに一致します

  • パスプレフィックス照合は前方一致比較を使用します。1 つのプレフィックスで複数のサーバー、および同じサーバーの /mcp と /sse の両方のエンドポイントに一致させることができます。

  • 同じパラメーター内で 2 つのパターンを混在させることができます。

設定例

  • ホワイトリストモード:指定されたサーバーへのアクセスのみを許可

    aliyun utils mcp-proxy --allowed-servers "ecs-basic,oss-basic"

    プロキシが起動すると、ecs-basic と oss-basic のみがアクセス可能になります。別のサーバーをリクエストすると、プロキシは 403 ステータスコードと次のレスポンスを返します。

    Access denied: This MCP server is not allowed
  • ブラックリストモード:指定されたサーバーへのアクセスを拒否

    aliyun utils mcp-proxy --blocked-servers "cms-basic"

    プロキシが起動すると、cms-basic を除くすべてのサーバーがアクセス可能になります。cms-basic をリクエストすると、プロキシは 403 ステータスコードと次のレスポンスを返します。

    Access denied: This MCP server is blocked
  • パスプレフィックス照合を使用

    aliyun utils mcp-proxy --allowed-servers "/accounts/0000000000000000/custom/"

    URL パスがこのプレフィックスで始まるリクエストのみが許可されます。このモードを使用して、サーバー名を 1 つずつ指定する代わりに、カテゴリ別にサーバーを制御します。

アクセス制御設定の検証

プロキシを起動すると、ターミナルはまず有効なアクセス制御設定を表示し、次に現在のアカウント配下のすべての MCP サーバーとそのステータスを 1 つずつ一覧表示します。次の例では、ホワイトリストとブラックリストの両方を設定しています。

aliyun utils mcp-proxy --allowed-servers "ecs-basic,oss-basic" --blocked-servers "oss-basic"

出力は次のようになります (サーバーリストは省略されています)。

MCP Proxy Server Started
Listen: 127.0.0.1:8088
Region: CN

Access Control:
  Blacklist (blocked servers):
    - oss-basic
  Whitelist (allowed servers):
    - ecs-basic
    - oss-basic

Available Servers:
  - ecs-basic
    MCP: http://127.0.0.1:8088/accounts/0000000000000000/system/Ecs/ecs-basic/id/daRi22dx71iX0000/mcp
    SSE: http://127.0.0.1:8088/accounts/0000000000000000/system/Ecs/ecs-basic/id/daRi22dx71iX0000/sse
  - oss-basic (blocked)
    MCP: http://127.0.0.1:8088/accounts/0000000000000000/system/Oss/oss-basic/id/vP5TovGrt2jm0000/mcp
    SSE: http://127.0.0.1:8088/accounts/0000000000000000/system/Oss/oss-basic/id/vP5TovGrt2jm0000/sse
  - cms-basic (not in whitelist)
    MCP: http://127.0.0.1:8088/accounts/0000000000000000/system/Cms/cms-basic/id/6PHbBzr8Bg6b0000/mcp
    SSE: http://127.0.0.1:8088/accounts/0000000000000000/system/Cms/cms-basic/id/6PHbBzr8Bg6b0000/sse

Press Ctrl+C to stop

サーバー名の後のマーカーは、サーバーの現在のステータスを示します。

  • マーカーなし:サーバーはアクセス可能です。

  • (blocked):サーバーはブラックリストに一致します。ブラックリストとホワイトリストの両方に表示されるサーバーもこのマーカーが付き、ブラックリストが優先されることを示します。

  • (not in whitelist):サーバーはホワイトリストに一致しません。ホワイトリストを設定した後、それに一致しないサーバーも一覧表示され、マークが付きますが、これはアクセス可能であることを意味するものではありません。

リクエストがブロックされると、プロキシは 403 ステータスコードを返し、ブロックされたパスと具体的な理由をログに記録します。上記の設定では、oss-basic (ブラックリストに一致) と cms-basic (ホワイトリストに一致しない) をリクエストした場合のログは次のようになります。

MCP Proxy access denied: path /accounts/0000000000000000/system/Oss/oss-basic/id/vP5TovGrt2jm0000/mcp is in blocked servers list
MCP Proxy access denied: path /accounts/0000000000000000/system/Cms/cms-basic/id/6PHbBzr8Bg6b0000/mcp is not in allowed servers list

セキュリティインシデント対応

プロキシの認証トークンが漏洩または乱用された疑いがある場合は、直ちに次の操作を実行してください。

  • mcp-proxy サービスを停止します。

  • ローカル設定ファイルを削除します:rm ~/.aliyun/.mcpproxy_config。

  • OAuth アプリケーションを削除して、漏洩したリフレッシュトークンを永久に無効化してください。RAM 管理者として RAM コンソールにログインします。左側メニューで、[連携] > [OAuth アプリケーション (パブリックプレビュー)] を選択します。[エンタープライズアプリケーション] タブで、対象アプリケーションの [操作] 列にある [アプリケーションの削除] をクリックします。CLI を使用してアプリケーションを削除することもできます。削除後、再度 OAuth 認可を行うと、CLI は自動的に新しいアプリケーションを作成します。

    aliyun ims list-applications --cli-query "Applications.Application[?AppName=='aliyun-cli-mcp-proxy'].AppId"
    aliyun ims delete-application --app-id <Application ID>
  • API 呼び出しログを確認し、異常な操作がないか確認してください。

  • プロキシを再起動し、OAuth 認可を行って新しいトークンを取得してください。

パラメーター

aliyun utils mcp-proxy コマンドは、特定のシナリオ向けに次のパラメーターをサポートしています。

パラメーター

説明

デフォルト

--host

プロキシがリッスンするホストアドレス。すべてのネットワークインターフェイスでリッスンするには、値を 0.0.0.0 に設定します。このアドレスは OAuth アプリケーションのリダイレクト URI も決定します。このアドレスを変更した後は、OAuth アプリケーションに対応するリダイレクト URI が既に追加されていることを確認してください。

127.0.0.1

--port

プロキシがリッスンするポート。このポートは OAuth アプリケーションのリダイレクト URI も決定します。このポートを変更した後は、OAuth アプリケーションに対応するリダイレクト URI が既に追加されていることを確認してください。

8088

--no-browser

GUI のない環境で OAuth 認証を実行する場合に使用します。このパラメーターを有効にすると、認証リンクがターミナルに直接表示されます。

無効

--oauth-app-name

既存の OAuth アプリケーションの名前。このパラメーターを使用すると、CLI はアプリケーションの自動作成を試みません。このパラメーターを指定しない場合、プロキシはデフォルトのアプリケーション aliyun-cli-mcp-proxy を使用し、存在しない場合は自動的に作成します。

なし

--scope

OAuth アプリケーションの認可スコープ。--oauth-app-name を使用してカスタムアプリケーションを指定する場合、そのアプリケーションの認可スコープにはこのパラメーターの値が含まれている必要があります。

/acs/mcp-server

--region-type

OpenAPI MCP サーバーのサービスサイト。CN は中国サイト、INTL は国際サイトを示します。

CN

--upstream-url

アップストリームの OpenAPI MCP サーバーのアドレスを手動で指定します。このパラメーターを指定しない場合、アドレスは --region-type によって決定されます:中国サイトの場合は https://openapi-mcp.cn-hangzhou.aliyuncs.com、国際サイトの場合は https://openapi-mcp.ap-southeast-1.aliyuncs.com です。指定したアドレスにプロトコルプレフィックスが含まれていない場合、アドレスは https として扱われます。

なし

--allowed-servers

アクセス可能な MCP サーバーのホワイトリスト。複数の値はカンマ (,) で区切ります。サーバー名、ID、パスプレフィックスがサポートされています。このパラメーターを指定しない場合、すべてのサーバーが許可されます。詳細については、「サーバーアクセス制御の設定」をご参照ください。

なし

--blocked-servers

アクセスできない MCP サーバーのブラックリスト。複数の値はカンマ (,) で区切ります。サーバー名、ID、パスプレフィックスがサポートされています。ブラックリストはホワイトリストよりも優先されます。詳細については、「サーバーアクセス制御の設定」をご参照ください。

なし

よくある質問

aliyun utils mcp-proxy を実行して OAuth 認証を行うと、"ERROR: OAuth flow returned empty RefreshToken" エラーが表示され、プロキシが起動に失敗するのはなぜですか?

このエラーは、現在使用されている OAuth アプリケーションが NativeApp アプリケーションではないため、認可フローでリフレッシュトークンを返せないことを示しています。次のいずれかの方法で問題に対処してください。

  • OAuth アプリケーションを削除してからプロキシを再起動します。CLI は自動的に NativeApp アプリケーションを作成します。

  • 手動で NativeApp アプリケーションを作成し、プロキシ起動時に --oauth-app-name を使用してそのアプリケーションを指定します。

プロキシ起動時に "failed to find OAuth application" エラーと NoPermission エラーコードが表示された場合はどうすればよいですか?

エラー例:

ERROR: failed to find OAuth application 'aliyun-cli-mcp-proxy': SDKError:
   StatusCode: 401
   Code: NoPermission
   Message: code: 401, The user has no permission
   Data: {"AccessDeniedDetail":{"AuthAction":"ram:ListApplications","AuthPrincipalType":"SubUser", ...}}

起動段階で、プロキシは OAuth アプリケーションを照会または作成する必要があり、この操作は Alibaba Cloud CLI 認証情報を使用して実行されます。上記のエラーは、現在の CLI 認証情報に対応する RAM ユーザーに、AuthAction フィールドで指定された権限 (この例では ram:ListApplications) が付与されていないことを示しています。

次のいずれかの方法で問題に対処してください。

  • 必要な権限を RAM ユーザーに付与します。詳細については、「ステップ1:Alibaba Cloud CLI の設定」をご参照ください。

  • Alibaba Cloud アカウントや認可済みの別の RAM ユーザーなど、必要な権限を持つ認証情報を使用してプロキシを実行します。

--host または --port を変更した後に、"does not have required redirect URI" というエラーで起動に失敗した場合はどうすればよいですか?

OAuth アプリケーションには、現在の起動に対応するリダイレクト URI が含まれている必要があります。--host または --port を変更すると、このアドレスが変わります。エラー例:

ERROR: OAuth application validation failed: OAuth application 'aliyun-cli-mcp-proxy' does not have required redirect URI 'http://172.17.0.1:8088/callback'. Available redirect URIs: [http://127.0.0.1:8088/callback]

RAM 管理者として RAM コンソールにログインします。左側メニューで、[連携] > [OAuth アプリケーション (パブリックプレビュー)] を選択します。[エンタープライズアプリケーション] タブで、対象アプリケーションの名前をクリックします。[基本情報] セクションで [編集] をクリックし、エラーメッセージで required redirect URI によって示されたアドレスをリダイレクト URI に追加します。同じアプリケーションで複数のリダイレクト URI を保持でき、新しいアドレスを追加しても既存のアドレスは引き続き利用可能です。

Dify でプロキシを設定した後に "Connection Refused" または "Timeout" が表示された場合はどうすればよいですか?

次の 2 つの項目を確認してください。

  1. mcp-proxy サービスが起動する際、Docker コンテナがサービスにアクセスできるように、--host パラメーターがホストの Docker ブリッジ IP アドレスまたは内部 IP アドレスに設定されているかどうかを確認してください。

  2. クラウドサーバーのセキュリティグループまたはホストのファイアウォールが、Docker コンテナからプロキシポート (例:8088) への TCP トラフィックを許可しているかどうかを確認してください。

mcp-proxy サービスの実行ログを表示するにはどうすればよいですか?

プロキシが systemd サービスとして設定されている場合、次のコマンドを実行してログをリアルタイムで表示できます。

sudo journalctl -u aliyun-mcp-proxy -f