View a markdown version of this page

WorkSpaces Servidor MCP de aplicaciones - WorkSpaces Aplicaciones de Amazon

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

WorkSpaces Servidor MCP de aplicaciones

El servidor WorkSpaces Applications MCP es un servicio totalmente gestionado que proporciona a los agentes de IA las herramientas del Model Context Protocol (MCP) para interactuar con las aplicaciones de escritorio durante las sesiones de streaming. Los agentes pueden hacer clic en los botones, introducir texto, desplazarse y tomar capturas de pantalla del escritorio.

Descripción general de

Cuando se habilita el acceso de los agentes en una pila, los agentes pueden conectarse al servidor MCP administrado para interactuar con las aplicaciones de escritorio. El servidor MCP gestiona la comunicación entre el agente y la sesión de streaming. Su agente envía las solicitudes de herramientas MCP y el servidor las ejecuta en el escritorio.

El servidor MCP está alojado en la nube. AWS No es necesario instalar ni mantener ningún componente del servidor. El servidor usa HTTP Streamable como protocolo de transporte.

El acceso de los agentes admite tanto las flotas que no están unidas a un dominio como las que están unidas a un dominio. El método de conexión difiere según el tipo de flota. Non-domain-joined las flotas autentican la sesión con una URL de transmisión, mientras que las flotas unidas a un dominio se autentican mediante la federación SAML. Para ver la ruta que coincide con su flota, consulte. Conexión al servidor MCP

Conexión al servidor MCP

Los agentes se conectan al servidor MCP en el siguiente punto final:

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

El servidor MCP está alojado en la AWS nube y utiliza el protocolo Streamable HTTP como protocolo de transporte. No es necesario instalar ni mantener ningún componente del servidor.

Todas las solicitudes deben SigV4-signed utilizar credenciales de IAM con el nombre agentaccess-mcp del servicio. El siguiente ejemplo de Python muestra el patrón de conexión general conmcp-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 otros lenguajes, escribe tu propia lógica de firma de SigV4 para las solicitudes MCP salientes o usa una biblioteca que admita la firma de SigV4. Para obtener más información al respectomcp-proxy-for-aws, consulte mcp-proxy-for-aws en. GitHub

La forma de autenticar la sesión de streaming depende del tipo de flota:

nota

En un momento dado, solo un agente puede conectarse a una sesión única. Los usuarios nominales, especificados mediante el UserId parámetro, solo pueden tener una sesión activa por flota a la vez. Para ejecutar varios agentes al mismo tiempo, cada agente debe conectarse a su propia sesión única.

Conectarse con flotas que no estén unidas a un dominio

En el caso de las flotas que no están unidas a un dominio, genera una URL de streaming mediante la CreateStreamingURL API y pásala como encabezado en cada solicitud. X-Amzn-AgentAccess-Streaming-Session-Url No se requieren parámetros específicos del agente. El comportamiento de los agentes viene determinado por la configuración de acceso de los agentes de la pila.

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 obtener más información sobre la CreateStreamingURL API, consulte la CreateStreaming URL en la referencia de la API de Amazon WorkSpaces Applications 2.0.

Conectarse con flotas unidas a un dominio

Cuando los agentes acceden a instancias de streaming unidas a un dominio, la conexión debe federarse a través de un proveedor de SAML. Este requisito se aplica tanto a las sesiones tradicionales como a las de agente. Para las sesiones de agentes, Certificate-Based Autentic es obligatorio.

Como las instancias de streaming unidas a un dominio requieren acceso mediante SAML, su cliente MCP debe proporcionar una aserción SAML firmada en lugar de una URL de streaming. Las aserciones SAML codificadas superan los límites de tamaño de los encabezados HTTP. Para evitarlo, usa el metadata campo en: mcp-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

El metadata parámetro se añadió en la mcp-proxy-for-aws versión 1.6.1. Las versiones anteriores no podían inyectar el _meta campo sin un desarrollo adicional. Para actualizar, ejecutepip install -U mcp-proxy-for-aws.

Para obtener más información sobre la configuración de la federación de SAML con WorkSpaces aplicaciones, consulte la sección Configuración de SAML en la Guía de administración de WorkSpaces aplicaciones de Amazon. Para obtener más información y un ejemplo práctico completo, consulte el repositorio sample-code-for-workspaces-agent-access en Samples on. AWS GitHub

Modos de conexión

Puede controlar el tiempo en que su agente espera a que la sesión de escritorio esté disponible configurando el X-Amzn-AgentAccess-Connect-Mode encabezado de sus solicitudes de MCP.

nota

Los modos de conexión se aplican tanto a las flotas que no están unidas a un dominio como a las que están unidas a un dominio. Configure el X-Amzn-AgentAccess-Connect-Mode encabezado junto con el mecanismo de autenticación que utilice su tipo de flota (el encabezado Streaming-URL para las flotas que no están unidas a un dominio o los metadatos de aserción de SAML para las flotas unidas a un dominio).

Están disponibles los siguientes modos:

  • BLOQUEO (predeterminado): el servidor MCP espera hasta que la conexión al escritorio esté completamente establecida antes de responder. Cuando se tools/list devuelve, todas las herramientas están disponibles de inmediato.

  • SONDEO: el servidor MCP responde inmediatamente sin esperar a que se conecte al escritorio. Inicialmente, solo está disponible la connection_status herramienta. Su agente sondea esta herramienta hasta que se establezca la conexión, momento en el que todo el conjunto de herramientas estará disponible.

Utilice el modo POLLING cuando desee que su agente realice otras tareas mientras espera la conexión al escritorio o cuando necesite controlar mejor el comportamiento del tiempo de espera de la conexión.

El siguiente ejemplo muestra cómo usar el 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()

Limpieza de sesión

Puedes controlar si la sesión de streaming ha caducado cuando tu agente termina su conexión configurando el X-Amzn-AgentAccess-Expire-Streaming-Session-On-Delete encabezado de tus solicitudes de MCP. Están disponibles los siguientes valores:

  • verdadero: cuando el agente envía una DELETE solicitud HTTP explícita, el servidor MCP hace que finalice la sesión de streaming de las WorkSpaces aplicaciones como parte de la limpieza. Al caducar la sesión, se termina la instancia de streaming subyacente y se activa la política de escalado automático configurada por la flota. Para obtener más información, consulte Fleet Auto Scaling para WorkSpaces aplicaciones de Amazon.

  • false (predeterminado): la sesión de streaming continúa ejecutándose hasta que se agote el tiempo de espera de desconexión. Para obtener más información sobre el tiempo de espera de la desconexión, consulte. Cree una flota en Amazon WorkSpaces Applications

nota

De forma predeterminada, un cliente mcp-proxy-for-aws MCP gestiona automáticamente la DELETE solicitud cuando finaliza correctamente el ciclo de vida del cliente.

Herramientas disponibles

El servidor MCP proporciona las siguientes herramientas para que los agentes interactúen con el escritorio durante una sesión de streaming. Todos los nombres de las herramientas utilizan el agentaccess___ prefijo.

Herramientas de ratón

left_click

Haga clic con el botón izquierdo en las coordenadas indicadas.

Parámetros: x (obligatorio), y (obligatorio), modifiers (opcional, por ejemplo ctrl octrl+shift).

double_click

Haga doble clic en las coordenadas indicadas.

Parámetros: x (obligatorio), y (obligatorio), modifiers (opcional).

triple_click

Realice un triple clic en las coordenadas indicadas.

Parámetros: x (obligatorio), y (obligatorio), modifiers (opcional).

right_click

Haga clic con el botón derecho en las coordenadas indicadas.

Parámetros: x (obligatorio), y (obligatorio), modifiers (opcional).

middle_click

Haga clic con el botón central en las coordenadas indicadas.

Parámetros: x (obligatorio), y (obligatorio), modifiers (opcional).

left_click_drag

Haga clic con el botón izquierdo y arrastre desde las coordenadas iniciales hasta las coordenadas finales.

Parámetros: start_x (obligatorio), start_y (obligatorio), end_x (obligatorio), end_y (obligatorio).

left_mouse_down

Mantenga pulsado el botón izquierdo del ratón en las coordenadas indicadas.

Parámetros: x (obligatorio), y (obligatorio), modifiers (opcional).

left_mouse_up

Suelte el botón izquierdo del ratón en las coordenadas indicadas.

Parámetros: x (obligatorio), y (obligatorio), modifiers (opcional).

move_pointer

Mueva el puntero a las coordenadas indicadas.

Parámetros: x (obligatorio), y (obligatorio).

scroll

Desplace la rueda del ratón hasta las coordenadas indicadas.

Parámetros: x (obligatorio), y (obligatorio), scroll_direction (obligatorio —Up,Down, oRight)Left, scroll_amount (obligatorio: en marcas, donde 120 marcas equivalen a una muesca de rueda), modifiers (opcional).

Herramientas de teclado

type_text

Escriba texto simulando eventos de teclado para cada carácter.

Parámetros: text (obligatorio, hasta 10 000 caracteres).

key

Pulse una tecla o una combinación de teclas.

Parámetros: keys (obligatorio: una sola tecla o combinación unida+, por ejemploa, porctrl+c, octrl+shift+s).

hold_key

Mantenga pulsada una tecla o una combinación de teclas durante un tiempo determinado.

Parámetros: keys (obligatorio), duration (obligatorio: de 1 a 30 segundos).

Herramientas de pantalla

screenshot

Haz una captura de pantalla del escritorio. Las dimensiones de la imagen devuelta definen el espacio de coordenadas para todas las herramientas del ratón.

Parámetros: include_cursor (opcional; el valor predeterminado esfalse).

Reenvío de herramientas MCP

El reenvío de herramientas MCP permite a los agentes interactuar con las aplicaciones y el sistema operativo de escritorio mediante llamadas MCP directas, en lugar de utilizar herramientas informáticas. Cuando habilita el reenvío de herramientas, el servidor MCP reenvía las herramientas configuradas en la sesión de la WorkSpaces aplicación a su agente.

Configurar el reenvío de herramientas

Para configurar el reenvío de herramientas MCP:

  1. Habilite el reenvío de herramientas: active la acción del FORWARD_MCP_TOOLS agente a través de la API o la configuración de la consola.

  2. Verifique que el archivo de configuración del servidor MCP esté presente: el servicio busca un archivo de configuración en la siguiente ruta:

    C:\ProgramData\NICE\dcv\mcp_server_redirection_config.json
  3. Configure el servidor MCP en la WorkSpace imagen: el archivo de configuración es JSON con un único objeto de nivel superiormcpServers. Cada clave es un nombre único que se elige para un servidor. Cada valor especifica cómo lanzar ese 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 Obligatorio Tipo Description (Descripción)
    command Cadena Ruta absoluta al ejecutable que se va a iniciar.
    args No Matriz de cadenas Los argumentos se han pasado al ejecutable.
  4. Verifique la disponibilidad de la herramienta: si el archivo de configuración está presente, el servicio se conecta a los servidores MCP configurados en el archivo y reenvía las herramientas. Las herramientas reenviadas aparecen cuando el agente muestra las herramientas disponibles.

nota

Tanto el acceso a IAM como la configuración del servicio deben estar habilitados para que funcione el reenvío de herramientas. Los permisos de IAM no anulan la configuración del servicio.

Consideraciones sobre el reenvío de herramientas MCP

Tenga en cuenta las siguientes consideraciones al configurar el reenvío de herramientas MCP:

  • El transporte es solo estándar I/O (stdio). Cada entrada debe iniciar un proceso que diga MCP por encima de su entrada y salida estándar. No se admiten los puntos finales HTTP o SSE MCP remotos. Para usar un punto final remoto, envuélvalo en un servidor de estudio local.

  • Solo command y args son compatibles. No hay ningún campo para las variables de entorno o el directorio de trabajo. Cada servidor hereda el entorno de la sesión de streaming y se ejecuta como usuario de la sesión. Utilice rutas absolutas para command y para cualquier argumento de ruta.

  • Utilice barras diagonales en las rutas (por ejemplo,C:/Program Files/my-mcp/server.exe). JSON trata la barra invertida como un carácter de escape, por lo que una Windows-style ruta escrita con barras invertidas simples no es válida. Windows acepta barras diagonales para las rutas absolutas, lo que evita la necesidad de eliminar todos los separadores. \\

  • Tool-call tiempo de espera. Cada llamada a la herramienta reenviada debe completarse en 5 segundos. El servidor MCP cancela las llamadas que tardan más y devuelve un error al agente. Diseñe herramientas de reenvío para que regresen rápidamente.

Cómo ve el agente las herramientas reenviadas

Para evitar colisiones entre servidores, el servidor MCP cambia el nombre de cada herramienta reenviada de la lista de herramientas del agente siguiendo el siguiente patrón:

forwarded___server-name___original-tool-name

server-nameEs la clave de su archivo de configuración. Por ejemplo, una get_forecast herramienta del weather servidor aparece comoforwarded___weather___get_forecast. Cuando el agente llama al nombre reenviado, el servidor MCP dirige la solicitud a la herramienta original del servidor propietario. El código de agente que coincida con los nombres de las herramientas debe incluir este prefijo.

Permisos de IAM para el reenvío de herramientas

La acción de IAM para las herramientas de reenvío de llamadas es. CallForwardedTool Puedes determinar el acceso a pilas específicas con la clave de StackArn condición:

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

Marcos compatibles

Puede conectarse al servidor MCP de WorkSpaces Applications desde cualquier marco de MCP-compatible agentes que admita la firma HTTP y SIGv4 en Streamable. Se han probado los siguientes marcos:

  • Strands Agents SDK: proporciona soporte nativo para clientes MCP.

  • mcp-proxy-for-aws: un transporte ligero que gestiona la firma de SigV4 para las solicitudes de MCP en Python.

Supervisión

Puede supervisar la actividad de los agentes a través de los siguientes servicios:

  • AWS CloudTrail— Los eventos de sesión del agente están registrados CloudTrail. Puede ver cuándo se conectan los agentes, qué herramientas utilizan y cuándo finalizan las sesiones. Las llamadas a herramientas son eventos de datos y requieren que configure un registro para registrar los eventos de datos. Para obtener más información, consulte Registro de eventos de datos en la Guía del usuario de CloudTrail .

  • CloudWatch— Las métricas operativas de las sesiones de los agentes están disponibles en CloudWatch.

  • Amazon S3: si configura el almacenamiento de capturas de pantalla, las capturas de pantalla capturadas durante las sesiones de los agentes estarán disponibles en el bucket de Amazon S3 que especifique. Las capturas de pantalla se almacenan con el siguiente formato de clave:

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

    El UUID de la ruta es el ID de la sesión de streaming de la WorkSpaces aplicación.

Introducción

Para empezar a usar el servidor MCP de WorkSpaces Applications, consulte. Comience a proporcionar a los agentes acceso a las aplicaciones WorkSpaces