Todos os produtos
Search
Central de documentação

OpenAPI Explorer:Proxy an OpenAPI MCP server using aliyun mcp-proxy

Última atualização: Sep 18, 2026

Quando um aplicativo de IA de terceiros se comunica com um servidor OpenAPI MCP por HTTP, mas não consegue gerenciar a autenticação do Alibaba Cloud nativamente, use aliyun utils mcp-proxy como um proxy de autenticação local. O proxy realiza a autorização OAuth e o gerenciamento de tokens automaticamente, para que o aplicativo chame as APIs de serviço do Alibaba Cloud sem precisar lidar com credenciais.

Visão geral do aliyun utils mcp-proxy

O aliyun utils mcp-proxy é uma ferramenta de proxy para servidores MCP fornecida pelo Alibaba Cloud CLI. Ela simplifica a interação entre aplicativos de IA de terceiros, como Dify e LangChain, e servidores OpenAPI MCP. Na primeira execução, conclua a autorização OAuth manualmente. Depois disso, o proxy gerencia a renovação de tokens automaticamente.

Como funciona: O aplicativo envia requisições de API para o mcp-proxy. O proxy adiciona as credenciais e encaminha as requisições para o servidor OpenAPI MCP.

Credenciais utilizadas: Durante a execução, o aliyun utils mcp-proxy usa dois tipos de credenciais, aplicadas em diferentes etapas:

  • Credenciais do Alibaba Cloud CLI — O par de AccessKey configurado ao executar aliyun configure. Use --profile para especificar qual configuração usar. O proxy usa essas credenciais para consultar ou criar o aplicativo OAuth durante a fase de inicialização.

  • Token OAuth — O proxy obtém o token durante a primeira autorização e o renova automaticamente nas execuções subsequentes. O proxy usa esse token para autenticação ao encaminhar requisições para o servidor OpenAPI MCP.

A identidade configurada no CLI deve ter as permissões do RAM relacionadas aos aplicativos OAuth. Para mais detalhes, consulte Etapa 1: Configurar o Alibaba Cloud CLI. O escopo de servidores MCP que o proxy pode acessar ao encaminhar requisições é determinado pela identidade que concluir a autorização OAuth.

Aviso

Após iniciar o mcp-proxy, todos os usuários no host podem acessar todos os servidores MCP no escopo de permissões do usuário do CLI responsável por iniciar o proxy, pela porta do proxy. Antes de implantar o proxy, leia Riscos de segurança e mitigações e configure o isolamento de ambiente, o controle de acesso de rede e os limites de escopo do servidor.

Configurar e executar o proxy

Etapa 1: Configurar o Alibaba Cloud CLI

  1. Instale ou atualize o Alibaba Cloud CLI para a versão 3.5.0 ou posterior. Para obter instruções, consulte Install, update, and uninstall Alibaba Cloud CLI.

  2. Configure o CLI com o par de AccessKey de uma conta do Alibaba Cloud ou de um usuário do RAM.

    aliyun configure
    # Enter the AccessKey ID, AccessKey secret, and default region as prompted.

    Caso utilize um usuário do RAM, conceda a ele as permissões listadas na tabela a seguir.

    Permissão

    Finalidade

    Cenários

    ram:ListApplications

    Consulta aplicativos OAuth por nome.

    Obrigatório. O proxy precisa dessa permissão na primeira execução ou quando as informações de autorização salvas localmente não estão disponíveis. Essa permissão também é necessária ao usar --oauth-app-name para especificar um aplicativo existente.

    ram:CreateApplication

    Cria o aplicativo OAuth padrão aliyun-cli-mcp-proxy.

    Obrigatório caso o parâmetro --oauth-app-name não seja usado para especificar um aplicativo e o aplicativo padrão não exista.

    ram:GetApplication

    Consulta aplicativos OAuth por ID.

    Recomendado. O proxy usa essa permissão para reutilizar as informações de autorização salvas localmente. Sem essa permissão, será necessário concluir uma nova autorização OAuth a cada inicialização.

Etapa 2: Executar o proxy pela primeira vez e concluir a autorização OAuth

Ao executar o mcp-proxy pela primeira vez, conclua a autorização OAuth única para obter a permissão de renovação de tokens.

  1. Inicie o proxy em primeiro plano.

    • Em um ambiente com interface gráfica, caso não adicione o parâmetro --no-browser, o CLI abrirá automaticamente um navegador para executar o fluxo de login da autorização OAuth, eliminando a necessidade de inserir o código de autorização manualmente. Após concluir a autorização, pule para a etapa 5.

      aliyun utils mcp-proxy --host 127.0.0.1 --port 8088
    • Em um servidor sem interface gráfica, adicione o parâmetro --no-browser. As etapas a seguir descrevem como obter o código de autorização manualmente.

      aliyun utils mcp-proxy --host 127.0.0.1 --port 8088 --no-browser
    Nota

    Use o parâmetro --oauth-app-name para especificar um aplicativo OAuth personalizado. O aplicativo deve atender aos seguintes requisitos:

    • Escopo OAuth: Inclui o escopo de autorização especificado pelo parâmetro --scope. O valor padrão é /acs/mcp-server.

    • URI de redirecionamento: Inclui http://<host>:<port>/callback, onde host e port são os valores dos parâmetros --host e --port usados para iniciar o proxy.

    • Tipo de aplicativo: Deve ser um aplicativo NativeApp.

  2. O terminal exibirá a URL de autorização.

    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. Abra a URL em um navegador, faça login e conclua a autorização.

  4. Após a autorização ser bem-sucedida, a página redirecionará para um endereço contendo o parâmetro code ou exibirá diretamente o código de autorização. Copie o valor de code, cole-o no terminal e pressione Enter para confirmar.

  5. Quando o terminal exibir a mensagem OAuth login successful!, a autenticação OAuth terá sido concluída com sucesso.

    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. Quando o terminal exibir a mensagem MCP Proxy Server Started, o proxy terá sido iniciado com sucesso.

    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

Etapa 3: Configurar um serviço em segundo plano do systemd (exemplo no CentOS)

Para manter o proxy em execução de forma estável, configure-o como um serviço do systemd com início automático na inicialização do sistema.

  1. Crie o arquivo de serviço do systemd: aliyun-mcp-proxy.

    Substitua os seguintes valores:

    • Substitua your-user no comando pelo nome de usuário real (diferente de root) que executará este comando. Esse usuário deve ter configurado as credenciais ao executar aliyun configure e concluído a autorização OAuth anterior sob este mesmo usuário. Quando o serviço for iniciado, ele reutilizará as credenciais de autorização salvas no diretório home desse usuário, sem acionar a autorização pelo navegador novamente.

    • O ExecStart deve conter o caminho absoluto do comando aliyun. Execute which aliyun para obter o caminho real e substitua /usr/local/bin/aliyun no exemplo. O systemd não analisa esse campo por meio de um shell; portanto, substituições de comando como $(which aliyun) não surtem efeito.

    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. Recarregue a configuração do systemd e inicie o serviço.

    # Reload the configuration
    sudo systemctl daemon-reload
    # Start the service
    sudo systemctl start aliyun-mcp-proxy
    # Enable the service to start on boot
    sudo systemctl enable aliyun-mcp-proxy

Etapa 4: Verificar o serviço de proxy

Verifique se o serviço está em execução adequada usando um dos métodos a seguir.

  • Visualizar o status do serviço

    Execute o comando a seguir para visualizar o status do serviço.

    sudo systemctl status aliyun-mcp-proxy

    Se a saída contiver active (running), o serviço foi iniciado com sucesso.

  • Fazer uma requisição para a porta do proxy

    Execute o comando a seguir para enviar uma requisição diretamente à porta do proxy.

    curl http://127.0.0.1:8088/

    Se o proxy estiver funcionando corretamente, você receberá uma resposta de erro XML do servidor MCP, indicando que a conexão entre o proxy e o serviço foi estabelecida.

    <?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>

Caso de uso: integração com o Dify

O exemplo a seguir utiliza o Dify implantado via Docker Compose na mesma instância ECS para demonstrar como configurar e usar o proxy mcp-proxy em um aplicativo.

Etapa 1: Obter o endereço IP da bridge do Docker no host e iniciar o serviço mcp-proxy

O contêiner do Dify deve acessar o serviço mcp-proxy por meio do endereço IP da bridge do Docker no host.

  1. Execute o comando a seguir para obter e registrar o endereço IP.

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

    O comando retorna um endereço IP como 172.17.0.1.

  2. Inicie o serviço mcp-proxy em primeiro plano. Como alternativa, modifique o comando de inicialização no systemd e inicie o serviço.

    aliyun utils mcp-proxy --host 172.17.0.1 --port 8088 --no-browser
    Nota

    O endereço de callback é determinado pelos parâmetros --host e --port. Após alterar o endereço de escuta de 127.0.0.1 para o endereço IP da bridge do Docker, adicione o novo endereço de callback (por exemplo, http://172.17.0.1:8088/callback) ao aplicativo OAuth correspondente em Integrations > OAuth Applications (Public Preview) no console do RAM. Caso contrário, a inicialização falhará porque o endereço de callback não passará na validação.

Etapa 2: Configurar o servidor MCP no Dify

  1. Acesse a página de configuração Tools > MCP no Dify.

  2. Clique em Add MCP Server (HTTP).

  3. No campo Server Endpoint URL, insira o endereço do proxy MCP.

    No console do OpenAPI MCP Service do Alibaba Cloud, obtenha o endereço original de Streamable HTTP Endpoint e substitua a parte do domínio (host) pelo seu endereço de proxy local ou interno.

    Exemplo de conversão:

    • Endpoint original: https://openapi-mcp.cn-hangzhou.aliyuncs.com/accounts/1234/custom/cli-proxy-test/id/1234/mcp

    • Substitua pelo endereço do proxy (considere que o proxy esteja em execução em 172.17.0.1:8088): http://172.17.0.1:8088/accounts/1234/custom/cli-proxy-test/id/1234/mcp

  4. Preencha as outras informações conforme necessário e clique em Add & Authorize. O Dify se comunica com o serviço MCP por meio desse endereço de proxy.

Riscos de segurança e mitigações

Após iniciar o mcp-proxy, todos os usuários no host podem acessar todos os servidores MCP no escopo de permissões do usuário do CLI que iniciou o proxy, pela porta do proxy. Os principais riscos incluem:

  • Abuso de privilégios internos — Outros usuários na mesma máquina podem usar a porta do proxy para executar operações além de suas permissões, o que pode levar ao abuso de privilégios ou a vazamentos de dados.

  • Risco de exposição externa — Se a porta do proxy escutar em 0.0.0.0 e nenhum firewall estiver configurado, qualquer pessoa poderá acessar os servidores MCP por essa porta.

Mitigações

  • Isolamento de ambiente — Execute o proxy apenas em um ambiente confiável de usuário único e evite usá-lo em servidores compartilhados por vários usuários.

  • Controle de acesso de rede — Vincule o endereço de escuta do proxy (--host) a 127.0.0.1 (padrão) ou a um endereço IP interno específico. Use regras de firewall ou de grupo de segurança para limitar o escopo de acesso da porta do proxy (por exemplo, permita o acesso apenas de endereços IP de servidores de aplicação específicos) e nunca exponha a porta à Internet.

  • Controle de acesso — Use o parâmetro --allowed-servers ou --blocked-servers para limitar o escopo de servidores MCP acessíveis e evitar que o proxy seja usado para acessar serviços não intencionais. Para obter instruções, consulte Configurar o controle de acesso ao servidor.

  • Princípio do menor privilégio — Configure o acesso de menor privilégio para o usuário do CLI utilizado pelo proxy e para os servidores MCP associados. Conceda permissões de somente leitura primeiro.

  • Auditoria e monitoramento — Revise os logs de acesso do serviço de proxy regularmente e monitore requisições anormais. As requisições bloqueadas pelo controle de acesso são registradas nos logs do proxy.

Configurar o controle de acesso ao servidor

O aliyun utils mcp-proxy oferece suporte a mecanismos de lista de permissões e lista de bloqueios para limitar o escopo de servidores MCP que podem ser acessados pelo proxy.

Regras de prioridade

O controle de acesso é avaliado na seguinte ordem:

  1. Lista de bloqueios primeiro — Uma requisição que corresponda à lista de bloqueios é rejeitada imediatamente, mesmo que o servidor também apareça na lista de permissões.

  2. Filtragem pela lista de permissões — Se a lista de permissões não estiver vazia, apenas os servidores presentes nela serão permitidos.

  3. Permissão padrão — Se nenhuma lista estiver configurada, todos os servidores serão permitidos.

Obter o nome do servidor e o ID do servidor

Após iniciar o aliyun utils mcp-proxy, o terminal lista os nomes de todos os servidores MCP disponíveis. Exemplo de saída:

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
  • Na saída, cloudphone e multi_account são os valores de name do servidor, localizados antes da palavra-chave id.

  • Na saída, XSkb9v4dXx000000 e OV0Qkpxh0Uodx000 são os valores de id do servidor, localizados antes da palavra-chave mcp.

Os caminhos de URL geralmente seguem estas regras:

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

Padrões de correspondência

Os parâmetros --allowed-servers e --blocked-servers aceitam os seguintes padrões de correspondência, que são identificados automaticamente pelo formato do valor:

Padrão de correspondência

Formato

Exemplo

Descrição

Correspondência de nome ou ID do servidor

Uma string que não começa com /

cloudcontrol ou OV0Qkpxh0Uodx000

Corresponde exatamente ao campo name ou id do servidor

Correspondência de prefixo de caminho

Uma string que começa com /

/accounts/0000000000000000/custom/

Corresponde ao prefixo do caminho da URL da requisição

  • A correspondência de prefixo de caminho usa comparação de prefixos. Um prefixo pode corresponder a vários servidores, bem como aos endpoints /mcp e /sse do mesmo servidor.

  • É possível misturar os dois padrões no mesmo parâmetro.

Exemplos de configuração

  • Modo de lista de permissões: permitir acesso apenas a servidores especificados

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

    Após o início do proxy, apenas ecs-basic e oss-basic ficarão acessíveis. Ao requisitar outro servidor, o proxy retornará o código de status 403 e a seguinte resposta:

    Access denied: This MCP server is not allowed
  • Modo de lista de bloqueios: negar acesso a servidores especificados

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

    Após o início do proxy, todos os servidores, exceto cms-basic, ficarão acessíveis. Ao requisitar cms-basic, o proxy retornará o código de status 403 e a seguinte resposta:

    Access denied: This MCP server is blocked
  • Usar correspondência de prefixo de caminho

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

    Apenas as requisições cujo caminho de URL comece com esse prefixo serão permitidas. Use este modo para controlar servidores por categoria, em vez de listar os nomes um por um.

Verificar a configuração de controle de acesso

Após iniciar o proxy, o terminal exibirá primeiro a configuração de controle de acesso em vigor e, em seguida, listará todos os servidores MCP na conta atual e seus respectivos status. O exemplo a seguir configura tanto uma lista de permissões quanto uma lista de bloqueios:

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

A saída será semelhante à seguinte (a lista de servidores está truncada):

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

O marcador após o nome do servidor indica o status atual do servidor:

  • Sem marcador: O servidor está acessível.

  • (blocked): O servidor corresponde à lista de bloqueios. Um servidor que aparece tanto na lista de bloqueios quanto na lista de permissões ainda carrega este marcador, refletindo a precedência da lista de bloqueios.

  • (not in whitelist): O servidor não corresponde à lista de permissões. Após configurar uma lista de permissões, os servidores que não correspondem a ela ainda são listados e marcados, mas isso não significa que estejam acessíveis.

Quando uma requisição é bloqueada, o proxy retorna o código de status 403 e registra o caminho bloqueado e o motivo específico no log. Com a configuração anterior, os logs ao requisitar oss-basic (corresponde à lista de bloqueios) e cms-basic (não corresponde à lista de permissões) são os seguintes:

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

Resposta a incidentes de segurança

Caso suspeite que o token de autenticação do proxy vazou ou foi usado indevidamente, execute imediatamente as seguintes operações:

  • Pare o serviço mcp-proxy.

  • Exclua o arquivo de configuração local: rm ~/.aliyun/.mcpproxy_config.

  • Exclua o aplicativo OAuth para invalidar permanentemente o token de renovação vazado. Faça login no console do RAM como administrador do RAM. No painel de navegação à esquerda, escolha Integrations > OAuth Applications (Public Preview). Na aba Enterprise Applications, clique em Delete Application na coluna Actions do aplicativo de destino. Você também pode usar o CLI para excluir o aplicativo. Após a exclusão, ao concluir a autorização OAuth novamente, o CLI criará automaticamente um novo aplicativo.

    aliyun ims list-applications --cli-query "Applications.Application[?AppName=='aliyun-cli-mcp-proxy'].AppId"
    aliyun ims delete-application --app-id <Application ID>
  • Verifique os logs de chamadas de API para confirmar se existem operações anormais.

  • Reinicie o proxy e conclua a autorização OAuth para obter um novo token.

Parâmetros

O comando aliyun utils mcp-proxy aceita os seguintes parâmetros para cenários específicos.

Parâmetro

Descrição

Padrão

--host

O endereço do host no qual o proxy escuta. Defina o valor como 0.0.0.0 para escutar em todas as interfaces de rede. Esse endereço também determina o endereço de callback do aplicativo OAuth. Após alterar este endereço, certifique-se de que o aplicativo OAuth já contenha o endereço de callback correspondente.

127.0.0.1

--port

A porta na qual o proxy escuta. Essa porta também determina o endereço de callback do aplicativo OAuth. Após alterar esta porta, certifique-se de que o aplicativo OAuth já contenha o endereço de callback correspondente.

8088

--no-browser

Use ao realizar a autenticação OAuth em um ambiente sem interface gráfica. Quando este parâmetro é ativado, o link de autenticação é exibido diretamente no terminal.

Não ativado

--oauth-app-name

O nome de um aplicativo OAuth existente. Ao usar este parâmetro, o CLI não tenta criar automaticamente um aplicativo. Se você não especificar este parâmetro, o proxy usa o aplicativo padrão aliyun-cli-mcp-proxy e o cria automaticamente se ele não existir.

Nenhum

--scope

O escopo de autorização do aplicativo OAuth. Ao usar --oauth-app-name para especificar um aplicativo personalizado, o escopo de autorização desse aplicativo deve incluir o valor deste parâmetro.

/acs/mcp-server

--region-type

O site de serviço do servidor OpenAPI MCP. CN indica o site da China e INTL indica o site internacional.

CN

--upstream-url

Especifica manualmente o endereço do servidor OpenAPI MCP upstream. Caso não seja especificado, o endereço é determinado por --region-type: https://openapi-mcp.cn-hangzhou.aliyuncs.com para o site da China e https://openapi-mcp.ap-southeast-1.aliyuncs.com para o site internacional. Se o endereço informado não contiver um prefixo de protocolo, será tratado como https.

Nenhum

--allowed-servers

A lista de permissões de servidores MCP que podem ser acessados. Separe vários valores com vírgulas (,). Nomes de servidores, IDs e prefixos de caminho são aceitos. Caso este parâmetro não seja especificado, todos os servidores serão permitidos. Para mais informações, consulte Configurar o controle de acesso ao servidor.

Nenhum

--blocked-servers

A lista de bloqueios de servidores MCP que não podem ser acessados. Separe vários valores com vírgulas (,). Nomes de servidores, IDs e prefixos de caminho são aceitos. A lista de bloqueios tem precedência sobre a lista de permissões. Para mais informações, consulte Configurar o controle de acesso ao servidor.

Nenhum

Perguntas frequentes

Após executar o aliyun utils mcp-proxy para autenticação OAuth, o erro "ERROR: OAuth flow returned empty RefreshToken" é exibido e o proxy falha ao iniciar. Por quê?

Esse erro indica que o aplicativo OAuth em uso não é um aplicativo NativeApp e, portanto, não pode retornar um token de renovação no fluxo de autorização. Resolva o problema de uma das seguintes maneiras:

  • Exclua o aplicativo OAuth e reinicie o proxy. O CLI criará automaticamente um aplicativo NativeApp.

  • Crie manualmente um aplicativo NativeApp e especifique-o usando --oauth-app-name ao iniciar o proxy.

O que fazer se o erro "failed to find OAuth application" aparecer com o código de erro NoPermission ao iniciar o proxy?

Exemplo de erro:

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", ...}}

Durante a fase de inicialização, o proxy precisa consultar ou criar um aplicativo OAuth, operação concluída com as credenciais do Alibaba Cloud CLI. O erro anterior indica que o usuário do RAM correspondente às credenciais atuais do CLI não possui a permissão especificada pelo campo AuthAction (ram:ListApplications neste exemplo).

Resolva o problema de uma das seguintes maneiras:

  • Conceda as permissões necessárias ao usuário do RAM. Para mais informações, consulte Etapa 1: Configurar o Alibaba Cloud CLI.

  • Execute o proxy usando credenciais que tenham as permissões necessárias, como uma conta do Alibaba Cloud ou outro usuário do RAM que tenha concluído a autorização.

O que fazer se a inicialização falhar com o erro "does not have required redirect URI" após alterar --host ou --port?

O aplicativo OAuth deve conter o endereço de callback correspondente à inicialização atual. Alterar --host ou --port modifica esse endereço. Exemplo de erro:

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]

Faça login no console do RAM como administrador do RAM. No painel de navegação à esquerda, escolha Integrations > OAuth Applications (Public Preview). Na aba Enterprise Applications, clique no nome do aplicativo de destino. Na seção Basic Information, clique em Edit e adicione o endereço indicado por required redirect URI na mensagem de erro aos endereços de callback. O mesmo aplicativo pode manter vários endereços de callback, e os endereços existentes permanecerão disponíveis após a adição de um novo.

O que fazer se "Connection Refused" ou "Timeout" aparecer após configurar o proxy no Dify?

Verifique os dois itens a seguir:

  1. Quando o serviço mcp-proxy for iniciado, verifique se o parâmetro --host está definido como o endereço IP da bridge do Docker ou o endereço IP interno do host, para que o contêiner do Docker possa acessar o serviço.

  2. Verifique se o grupo de segurança do servidor cloud ou o firewall do host permite tráfego TCP do contêiner do Docker para a porta do proxy (por exemplo, 8088).

Como visualizar os logs de execução do serviço mcp-proxy?

Se o proxy estiver configurado como um serviço do systemd, execute o comando a seguir para visualizar os logs em tempo real:

sudo journalctl -u aliyun-mcp-proxy -f