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.
La forma de autenticar la sesión de streaming depende del tipo de flota:
-
Non-domain-joined flotas: pasa una URL de streaming como encabezado. Consulte Conectarse con flotas que no estén unidas a un dominio.
-
Domain-joined flotas: pasa una aserción SAML firmada como metadatos. Consulte Conectarse con flotas unidas a un dominio.
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
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/listdevuelve, 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_statusherramienta. 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
DELETEsolicitud 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 ejemploctrloctrl+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:
-
Habilite el reenvío de herramientas: active la acción del
FORWARD_MCP_TOOLSagente a través de la API o la configuración de la consola. -
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 -
Configure el servidor MCP en la WorkSpace imagen: el archivo de configuración es JSON con un único objeto de nivel superior
mcpServers. 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) commandSí Cadena Ruta absoluta al ejecutable que se va a iniciar. argsNo Matriz de cadenas Los argumentos se han pasado al ejecutable. -
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
commandyargsson 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 paracommandy 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.pngEl 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