View a markdown version of this page

WorkSpaces Servidor MCP de aplicativos - WorkSpaces Aplicativos da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

WorkSpaces Servidor MCP de aplicativos

O servidor WorkSpaces Applications MCP é um serviço totalmente gerenciado que fornece aos agentes de IA ferramentas do Model Context Protocol (MCP) para interagir com aplicativos de desktop durante as sessões de streaming. Os agentes podem clicar em botões, inserir texto, rolar e fazer capturas de tela da área de trabalho.

Visão geral do

Quando você ativa o acesso do agente em uma pilha, os agentes podem se conectar ao servidor MCP gerenciado para interagir com os aplicativos de desktop. O servidor MCP gerencia a comunicação entre seu agente e a sessão de streaming. Seu agente envia solicitações de ferramentas MCP e o servidor as executa no desktop.

O acesso do agente oferece suporte a frotas não associadas a um domínio e a frotas associadas a um domínio. O método de conexão difere de acordo com o tipo de frota. Para frotas não associadas a um domínio, você pode se conectar de duas maneiras. No primeiro, você fornece a pilha e o ID do usuário como dois cabeçalhos: e. x-amzn-agentaccess-workspaces-applications-stack x-amzn-agentaccess-workspaces-applications-user-id Em seguida, o servidor MCP cria a sessão de streaming para você. No segundo, você mesmo gera um URL de streaming e o passa como cabeçalho. Para frotas unidas ao domínio, autentique-se por meio da federação SAML. Para o caminho que corresponde à sua frota, consulteConectando-se ao servidor MCP.

Conectando-se ao servidor MCP

Os agentes se conectam ao servidor MCP no seguinte endpoint:

https://agentaccess-mcp.region.api.aws/mcp

regionSubstitua pelo código da sua região. Para as regiões suportadas e seus endpoints, consulteWorkSpaces Endpoints MCP de aplicativos.

O servidor MCP está hospedado na AWS nuvem e usa HTTP Streamable como protocolo de transporte. Você não precisa instalar nem manter nenhum componente do servidor.

nota

Antes que um agente possa se conectar, a frota associada à sua pilha deve estar funcionando e ter capacidade disponível.

Para conectar um agente, você faz duas escolhas: como o agente autoriza suas solicitações e como ele identifica a sessão de streaming.

Solicitar autorização

Você pode autorizar solicitações de duas maneiras: assinatura SigV4 ou autorização OAuth 2.1 por meio de. AWS Sign-In

Assinatura SigV4

Para usar o SigV4, assine cada solicitação usando as credenciais do IAM com o nome do serviço. agentaccess-mcp O exemplo de Python a seguir mostra o padrão geral de conexão usando: mcp-proxy-for-aws

from mcp_proxy_for_aws import aws_iam_streamablehttp_client async with aws_iam_streamablehttp_client( endpoint="https://agentaccess-mcp.region.api.aws/mcp", aws_service="agentaccess-mcp", aws_region="region", headers={ # Fleet-type-specific headers (see the following subsections) }, metadata={ # Fleet-type-specific metadata (see the following subsections) }, ) as (read, write, _): # Use read/write streams with your MCP client ...

Para outras linguagens, escreva sua própria lógica de assinatura SigV4 para solicitações MCP enviadas ou use uma biblioteca que suporte a assinatura SigV4. Para obter mais informações sobremcp-proxy-for-aws, consulte mcp-proxy-for-aws on. GitHub

Autorização do OAuth 2.1

Como alternativa à assinatura de solicitações com credenciais do IAM, o servidor MCP oferece suporte à autorização do OAuth 2.1 AWS Sign-In, da mesma forma que o servidor MCP. AWS AWS Sign-In atua como servidor de autorização. Ele emite tokens de acesso com escopo limitado e de curta duração. O servidor MCP aceita esses tokens como tokens portadores. O OAuth usa suas identidades, permissões e controles organizacionais existentes do IAM. Quando você autoriza um agente, ele pode acessar o servidor MCP em seu nome. Ele não recebe permissões extras. AWS ainda verifica todas as solicitações em relação às suas políticas do IAM.

OAuth-compatible Clientes MCP — como Kiro, Claude Code, Cursor, Codex e Gemini — podem se conectar diretamente ao endpoint do servidor MCP sem o software proxy local. AWS Sign-In suporta dois modelos de autorização:

  • Autorização interativa — Para agentes que podem abrir um navegador. O cliente se registra por meio do registro dinâmico do cliente, redireciona você para uma AWS Sign-In página para autenticar e aprovar o acesso e, em AWS Sign-In seguida, emite e atualiza os tokens de acesso.

  • Non-interactive autorização — Para agentes que já têm AWS credenciais e funcionam sem um navegador (às vezes chamada de autorização headless). O agente usa a concessão de credenciais do cliente OAuth para trocar SigV4-signed credenciais por um token de acesso de curta duração.

A autorização OAuth para o servidor MCP funciona da mesma forma que para o servidor AWS MCP, usando o endpoint do servidor MCP (). https://agentaccess-mcp.region.api.aws/mcp Para configuração, permissões necessárias do IAM e opções de governança e monitoramento, consulte Autenticação do OAuth 2.1 para o AWS MCP Server no Guia do usuário do Agent Toolkit for AWS Sign-Ine com o OAuth 2.0 no Guia do usuário.AWS Sign-In

Identificação da sessão

A forma como você identifica a sessão de streaming depende do tipo de sua frota.

nota

A qualquer momento, somente um agente pode se conectar a uma sessão exclusiva. Usuários nomeados, especificados por meio do UserId parâmetro, podem ter somente uma sessão ativa por frota por vez. Para executar vários agentes simultaneamente, cada agente deve se conectar à sua própria sessão exclusiva.

Conexão com frotas não associadas a um domínio

Para frotas não associadas a um domínio, você pode se conectar de duas maneiras. Forneça a pilha e o ID do usuário como cabeçalhos, e o servidor MCP cria a sessão de streaming para você. Isso é adequado para clientes MCP que você configura estaticamente, porque esse cliente pode conter um par fixo de cabeçalhos, mas não pode gerar um URL de streaming ou substituí-lo quando ele expirar. Como alternativa, gere você mesmo um URL de streaming e passe-o como cabeçalho. Use essa abordagem quando precisar controlar a criação da sessão, como definir o período de validade.

Para se conectar à pilha e ao ID do usuário, passe os seguintes cabeçalhos em cada solicitação:

  • x-amzn-agentaccess-workspaces-applications-stack— o nome da pilha ou ARN.

  • x-amzn-agentaccess-workspaces-applications-user-id— o ID do usuário da sessão.

nota

O x-amzn-agentaccess-workspaces-applications-user-id cabeçalho é opcional. Se você omitir, o servidor MCP derivará a identidade do usuário da sessão autenticada. Ele usa AWS SourceIdentity quando um está presente e, caso contrário, o principal do IAM do chamador. SourceIdentitypreserva a identidade corporativa original do usuário quando ele assume uma função do IAM. Isso vale mesmo quando as funções são encadeadas por meio de um provedor de identidade externo (IdP).

from mcp_proxy_for_aws import aws_iam_streamablehttp_client # Connect to the MCP server with the stack and user ID async with aws_iam_streamablehttp_client( endpoint="https://agentaccess-mcp.region.api.aws/mcp", aws_service="agentaccess-mcp", aws_region="region", headers={ "x-amzn-agentaccess-workspaces-applications-stack": "stack-name-or-arn", "x-amzn-agentaccess-workspaces-applications-user-id": "user-id", }, ) as (read, write, _): ...

Em vez disso, para se conectar a um URL de streaming, gere um usando a CreateStreamingURL API e passe-o como x-amzn-agentaccess-streaming-session-url cabeçalho em cada solicitação. Nenhum parâmetro específico do agente é necessário. O comportamento do agente é determinado pela configuração de acesso do agente da pilha.

import boto3 from mcp_proxy_for_aws import aws_iam_streamablehttp_client # Generate streaming URL appstream = boto3.client("appstream", region_name="region") response = appstream.create_streaming_url( StackName="stack-name", FleetName="fleet-name", UserId="user-id", ) streaming_url = response["StreamingURL"] # Connect to MCP server async with aws_iam_streamablehttp_client( endpoint="https://agentaccess-mcp.region.api.aws/mcp", aws_service="agentaccess-mcp", aws_region="region", headers={ "x-amzn-agentaccess-streaming-session-url": streaming_url, }, ) as (read, write, _): ...

Para obter mais informações sobre a CreateStreamingURL API, consulte o CreateStreamingURL na Referência de API do Amazon WorkSpaces Applications 2.0.

Conectando-se com frotas unidas a um domínio

Quando os agentes acessam instâncias de streaming associadas ao domínio, a conexão deve ser federada por meio de um provedor SAML. Esse requisito se aplica tanto às sessões tradicionais quanto às de agentes. Para sessões com agentes, Certificate-Based Autentificação é obrigatório.

Como as instâncias de streaming associadas ao domínio exigem acesso por meio do SAML, seu cliente MCP deve fornecer uma declaração SAML assinada em vez de uma URL de streaming. As asserções SAML codificadas excedem os limites de tamanho do cabeçalho HTTP. Para evitar isso, use o metadata campo emmcp-proxy-for-aws:

from mcp_proxy_for_aws import aws_iam_streamablehttp_client # saml_response: your signed, base64-encoded SAML assertion # stack_arn: the ARN of the AppStream stack for the AD user async with aws_iam_streamablehttp_client( endpoint="https://agentaccess-mcp.region.api.aws/mcp", aws_service="agentaccess-mcp", aws_region="region", metadata={ "saml_response": saml_response, "stack_arn": stack_arn, }, ) as (read, write, _): ...
nota

O metadata parâmetro foi adicionado na mcp-proxy-for-aws versão 1.6.1. As versões anteriores não podem injetar o _meta campo sem desenvolvimento adicional. Para atualizar, executepip install -U mcp-proxy-for-aws.

Para obter mais informações sobre como configurar a federação SAML com WorkSpaces aplicativos, consulte Configurando o SAML no Guia de administração de WorkSpaces aplicativos da Amazon. Para obter mais informações e um exemplo prático completo, consulte o repositório sample-code-for-workspaces-agent-access em Samples on. AWS GitHub

Modos de conexão

Você pode controlar como seu agente espera que a sessão de desktop fique disponível definindo o x-amzn-agentaccess-connect-mode cabeçalho em suas solicitações de MCP.

nota

Os modos de conexão se aplicam tanto a frotas não associadas a um domínio quanto a frotas associadas a um domínio. Defina o x-amzn-agentaccess-connect-mode cabeçalho ao lado de qualquer mecanismo de autenticação que seu tipo de frota usa. Para frotas não associadas a um domínio, esses são os cabeçalhos de pilha e ID de usuário ou um cabeçalho de URL de streaming. Para frotas unidas ao domínio, são os metadados de declaração do SAML.

Os seguintes modos estão disponíveis:

  • BLOQUEIO (padrão) — O servidor MCP espera até que a conexão de desktop esteja totalmente estabelecida antes de responder. Quando tools/list devolvidas, todas as ferramentas estão imediatamente disponíveis.

  • SONDAGEM — O servidor MCP responde imediatamente sem esperar pela conexão com o desktop. Inicialmente, somente a connection_status ferramenta está disponível. Seu agente pesquisa essa ferramenta até que a conexão seja estabelecida, momento em que o conjunto completo de ferramentas fica disponível.

Use o modo POLLING quando quiser que seu agente realize outro trabalho enquanto aguarda a conexão com o desktop ou quando precisar de mais controle sobre o comportamento do tempo limite da conexão.

O exemplo a seguir mostra como usar o modo POLLING:

# Pass the header when creating the MCP connection headers = { "x-amzn-agentaccess-streaming-session-url": streaming_url, # non-domain-joined fleets "x-amzn-agentaccess-connect-mode": "POLLING", } # After initialize, tools/list returns immediately with connection_status tools = await session.list_tools() # tools = [connection_status] # Poll connection_status until the desktop is ready while True: result = await session.call_tool("connection_status", {}) status = json.loads(result.content[0].text) if status["state"] == "CONNECTED": break time.sleep(2) # Now tools/list returns the full set (screenshot, left_click, type_text, etc.) tools = await session.list_tools()

Limpeza da sessão

Você pode controlar se a sessão de streaming expira quando seu agente encerra a conexão definindo o x-amzn-agentaccess-expire-streaming-session-on-delete cabeçalho em suas solicitações de MCP. Os seguintes valores estão disponíveis:

  • true — Quando seu agente envia uma DELETE solicitação HTTP explícita, o servidor MCP expira a sessão de streaming de WorkSpaces aplicativos como parte da limpeza. A expiração da sessão encerra a instância de streaming subjacente e aciona a política de escalonamento automático configurada da frota. Para obter mais informações, consulte Fleet Auto Scaling para aplicativos da Amazon WorkSpaces.

  • false (padrão) — A sessão de streaming continua em execução até que o tempo limite de desconexão seja atingido. Para obter mais informações sobre o tempo limite de desconexão, consulte. Crie uma frota nos WorkSpaces aplicativos da Amazon

nota

Por padrão, um cliente mcp-proxy-for-aws MCP processa automaticamente a DELETE solicitação quando você encerra adequadamente o ciclo de vida do cliente.

Ferramentas disponíveis

O servidor MCP fornece as seguintes ferramentas. Os agentes os usam para interagir com o desktop durante uma sessão de streaming. Todos os nomes de ferramentas usam o agentaccess___ prefixo.

Ferramentas de mouse

left_click

Clique com o botão esquerdo nas coordenadas fornecidas.

Parâmetros: x (obrigatório), y (obrigatório), modifiers (opcional, por exemplo ctrl ouctrl+shift).

double_click

Clique duas vezes nas coordenadas fornecidas.

Parâmetros: x (obrigatório), y (obrigatório), modifiers (opcional).

triple_click

Faça um clique triplo nas coordenadas fornecidas.

Parâmetros: x (obrigatório), y (obrigatório), modifiers (opcional).

right_click

Clique com o botão direito do mouse nas coordenadas fornecidas.

Parâmetros: x (obrigatório), y (obrigatório), modifiers (opcional).

middle_click

Clique com o botão do meio nas coordenadas fornecidas.

Parâmetros: x (obrigatório), y (obrigatório), modifiers (opcional).

left_click_drag

Clique com o botão esquerdo e arraste das coordenadas iniciais para as coordenadas finais.

Parâmetros: start_x (obrigatório), start_y (obrigatório), end_x (obrigatório), end_y (obrigatório).

left_mouse_down

Pressione e segure o botão esquerdo do mouse nas coordenadas fornecidas.

Parâmetros: x (obrigatório), y (obrigatório), modifiers (opcional).

left_mouse_up

Solte o botão esquerdo do mouse nas coordenadas fornecidas.

Parâmetros: x (obrigatório), y (obrigatório), modifiers (opcional).

move_pointer

Mova o ponteiro para as coordenadas fornecidas.

Parâmetros: x (obrigatório), y (obrigatório).

scroll

Role a roda do mouse nas coordenadas fornecidas.

Parâmetros: x (obrigatório), y (obrigatório), scroll_direction (obrigatório —Up,,Down, ouRight)Left, scroll_amount (obrigatório — em tiques, onde 120 tiques é igual ao entalhe de uma roda), (opcional). modifiers

Ferramentas de teclado

type_text

Digite texto simulando eventos de teclado para cada caractere.

Parâmetros: text (obrigatório — até 10.000 caracteres).

key

Pressione uma tecla ou uma combinação de teclas.

Parâmetros: keys (obrigatório — uma única tecla ou combinação unida por +a, por exemploctrl+c, ouctrl+shift+s).

hold_key

Mantenha pressionada uma tecla ou uma combinação de teclas por um período especificado.

Parâmetros: keys (obrigatório), duration (obrigatório — 1 a 30 segundos).

Ferramentas de tela

screenshot

Faça uma captura de tela da área de trabalho. As dimensões da imagem retornada definem o espaço de coordenadas para todas as ferramentas do mouse.

Parâmetros: include_cursor (opcional — o padrão é). false

Ferramentas de aplicações

nota

Essas ferramentas de aplicativos aparecem na lista de ferramentas do agente somente quando os aplicativos são registrados no catálogo da imagem da frota. Se a imagem não tiver aplicativos registrados, essas ferramentas não estarão disponíveis.

launch_application

Inicie um aplicativo a partir dos disponíveis no catálogo de imagens da frota.

Parâmetros: id (obrigatório) — o identificador do aplicativo.

A própria descrição da ferramenta lista os identificadores dos aplicativos disponíveis. O servidor MCP preenche essa descrição do catálogo da imagem da frota (por exemplo,, firefoxnotepad++, oueclipse). Use um dos identificadores listados. E id isso não está no catálogo isError: true com quem devolveSERVER_ERROR: Invalid input. As IDs são definidas quando a imagem é criada. Você não pode descobrir um ID a partir do nome do aplicativo.

O lançamento de um aplicativo não substitui o que já está em execução. O aplicativo lançado anteriormente permanece aberto. É por isso que o alternador de aplicativos existe.

toggle_app_switcher

Abra ou feche a sobreposição do app-switcher.

Parâmetros: nenhum.

Essa ferramenta só ativa a sobreposição. Para colocar um aplicativo específico em primeiro plano, siga com um left_click em sua miniatura, usando coordenadas lidas em uma captura de tela. Nenhuma ferramenta informa qual aplicativo está atualmente em primeiro plano, portanto, um agente que precisa saber deve capturar uma captura de tela e dar uma olhada.

nota

O alternador de aplicativos está disponível somente quando a visualização de fluxo da frota está definida como Aplicativo, que exibe somente as janelas dos aplicativos que os usuários abrem. Ela não está disponível quando a visualização Stream está definida como Desktop, porque os WorkSpaces Aplicativos fornecem a área de trabalho e a barra de tarefas padrão para o sistema operacional.

Ferramentas de sessão

nota

Para assistir a um agente enquanto ele funciona, codifique o agente para abrir uma URL de streaming em um navegador. Mantenha a URL fora do contexto do modelo, pois ela concede acesso à sessão. Você pode criar o URL de duas maneiras:

  • Chame a CreateStreamingURL API com os userId valores stackfleet, e de e, em seguidaget_session_info, abra a URL retornada em um navegador.

  • Leia o streaming_url valor do _meta campo da get_session_info resposta e abra-o em um navegador.

Em ambos os casos, o próprio código do agente manipula a URL, para que nunca exponha as credenciais da sessão ao modelo.

get_session_info

Retorna informações sobre a sessão atual.

Parâmetros: nenhum.

Retorna os seguintes campos identificadores como resultado da ferramenta: mcpSessionId stackuserId,workSpacesSessionId,, fleet e.

Encaminhamento de ferramentas MCP

Com o encaminhamento de ferramentas MCP, os agentes podem trabalhar diretamente com os aplicativos e o sistema operacional. Eles fazem chamadas diretas de MCP em vez de usar ferramentas de uso do computador. Quando você ativa o encaminhamento de ferramentas, o servidor MCP envia ao agente as ferramentas configuradas na sessão do WorkSpaces aplicativo.

Configurando o encaminhamento de ferramentas

Para configurar o encaminhamento de ferramentas MCP:

  1. Ativar o encaminhamento de ferramentas — ative a ação do FORWARD_MCP_TOOLS agente por meio das configurações da API ou do console.

  2. Verifique se o arquivo de configuração do servidor MCP está presente — O serviço procura um arquivo de configuração no seguinte caminho:

    C:\ProgramData\NICE\dcv\mcp_server_redirection_config.json
  3. Configurar o servidor MCP na WorkSpace imagem — O arquivo de configuração é JSON com um único objeto de nível superiormcpServers. Cada chave é um nome exclusivo que você escolhe para um servidor. Cada valor especifica como iniciar esse servidor.

    { "mcpServers": { "filesystem": { "command": "C:/path/to/python.exe", "args": ["C:/mcpServerPath/filesystem.py", "C:/UserName/Documents"] }, "weather": { "command": "C:/Program Files/my-mcp/weather.exe" } } }
    Campo Obrigatório Tipo Description
    command Sim String Caminho absoluto para o executável a ser lançado.
    args Não Matriz de strings Argumentos passados para o executável.
  4. Verifique a disponibilidade da ferramenta — Se o arquivo estiver presente, o serviço se conectará aos servidores MCP listados no arquivo e encaminhará suas ferramentas. As ferramentas encaminhadas aparecem quando o agente lista as ferramentas disponíveis.

  5. Teste a configuração — Para confirmar se o encaminhamento de ferramentas funciona, execute o mcpforwardingtester script. Você pode encontrá-lo no repositório sample-code-for-workspaces-agent-access em. GitHub O script testa a configuração do MCP no seu WorkSpace. Ele relata quais ferramentas estão prontas e sinaliza quaisquer problemas.

nota

Tanto o acesso ao IAM quanto a configuração do serviço devem estar habilitados para que o encaminhamento de ferramentas funcione. As permissões do IAM não substituem a configuração do serviço.

Considerações sobre o encaminhamento de ferramentas MCP

Observe as seguintes considerações ao configurar o encaminhamento de ferramentas MCP:

  • O transporte é somente padrão I/O (estúdio). Cada entrada deve iniciar um processo que fala MCP sobre sua entrada e saída padrão. Não há suporte para endpoints remotos HTTP ou SSE MCP. Para usar um endpoint remoto, envolva-o em um servidor de estúdio local.

  • Somente command e args são compatíveis. Não há campo para variáveis de ambiente ou diretório de trabalho. Cada servidor herda o ambiente da sessão de streaming e é executado como usuário da sessão. Use caminhos absolutos para command e para qualquer argumento de caminho.

  • Use barras nos caminhos (por exemplo,C:/Program Files/my-mcp/server.exe). O JSON trata a barra invertida como um caractere de escape, portanto, um Windows-style caminho escrito com barras invertidas simples é inválido. O Windows aceita barras para caminhos absolutos, o que evita a necessidade de escapar de cada separador como. \\

  • Tool-call tempo limite. Cada chamada de ferramenta encaminhada deve ser concluída em 5 segundos. O servidor MCP cancela chamadas que demoram mais e retorna um erro ao agente. Projete ferramentas encaminhadas para retornar rapidamente.

Como as ferramentas encaminhadas aparecem para o agente

Para evitar colisões entre servidores, o servidor MCP renomeia cada ferramenta encaminhada na lista de ferramentas do agente usando o seguinte padrão:

forwarded___server-name___original-tool-name

Essa server-name é a chave do seu arquivo de configuração. Por exemplo, uma get_forecast ferramenta do weather servidor está listada comoforwarded___weather___get_forecast. Quando o agente chama o nome encaminhado, o servidor MCP encaminha a solicitação para a ferramenta original no servidor proprietário. O código do agente que corresponde aos nomes das ferramentas deve esperar esse prefixo.

Permissões do IAM para encaminhamento de ferramentas

A ação do IAM para chamar ferramentas encaminhadas éCallForwardedTool. Para limitar o acesso a pilhas específicas, use a chave de StackArn condição:

{ "Action": "agentaccess-mcp:*", "Resource": "*", "Condition": { "ArnLike": { "agentaccess-mcp:StackArn": "arn:aws:appstream:region:account-id:stack/stack-name" } } }

Estruturas compatíveis

Você pode se conectar ao servidor WorkSpaces Applications MCP a partir de qualquer estrutura de MCP-compatible agente que ofereça suporte à assinatura Streamable HTTP e SigV4. As seguintes estruturas foram testadas:

Monitoramento

Você pode monitorar a atividade do agente por meio dos seguintes serviços:

  • AWS CloudTrail— Os eventos da sessão do agente são registrados. CloudTrail Você pode ver quando os agentes se conectam, quais ferramentas eles usam e quando as sessões terminam. As chamadas de ferramentas são eventos de dados e exigem que você configure uma trilha para registrar eventos de dados. Para obter mais informações, consulte Registrar eventos de dados, no Guia do usuário do CloudTrail .

  • CloudWatch— As métricas operacionais para sessões de agentes estão disponíveis em CloudWatch.

  • Amazon S3 — Se você configurar o armazenamento de capturas de tela, as capturas de tela capturadas durante as sessões do agente estarão disponíveis no bucket do Amazon S3 que você especificar. As capturas de tela são armazenadas com o seguinte formato de chave:

    agentaccess/screenshots/year=YYYY/month=MM/day=DD/session-id/timestamp.png

    O UUID no caminho é o ID da sessão de streaming de WorkSpaces aplicativos.

Conceitos básicos

Para começar a usar o servidor WorkSpaces Applications MCP, consulteComece a fornecer aos agentes acesso aos WorkSpaces aplicativos.