Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
WorkSpaces Serveur MCP d'applications
Le serveur WorkSpaces Applications MCP est un service entièrement géré qui fournit aux agents IA des outils MCP (Model Context Protocol) pour interagir avec les applications de bureau pendant les sessions de streaming. Les agents peuvent cliquer sur des boutons, saisir du texte, faire défiler l'écran et prendre des captures d'écran du bureau.
Présentation de
Lorsque vous activez l'accès des agents sur une pile, les agents peuvent se connecter au serveur MCP géré pour interagir avec les applications de bureau. Le serveur MCP gère la communication entre votre agent et la session de streaming. Votre agent envoie des demandes d'outils MCP et le serveur les exécute sur le bureau.
Le serveur MCP est hébergé dans le AWS cloud. Vous n'avez pas besoin d'installer ou de gérer les composants du serveur. Le serveur utilise Streamable HTTP comme protocole de transport.
L'accès aux agents prend en charge les flottes ne faisant pas partie d'un domaine ou appartenant à un domaine. La méthode de connexion varie selon le type de parc. Non-domain-joined les flottes authentifient la session à l'aide d'une URL de streaming, tandis que les flottes jointes à un domaine s'authentifient via la fédération SAML. Pour la trajectoire qui correspond à votre flotte, consultezConnexion au serveur MCP.
Connexion au serveur MCP
Les agents se connectent au serveur MCP au point de terminaison suivant :
https://agentaccess-mcp.region.api.aws/mcp
Le serveur MCP est hébergé dans le AWS cloud et utilise Streamable HTTP comme protocole de transport. Vous n'avez pas besoin d'installer ou de gérer les composants du serveur.
Chaque demande doit SigV4-signed utiliser des informations d'identification IAM avec le nom agentaccess-mcp du service. L'exemple Python suivant montre le modèle de connexion général en utilisant 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 ...
Pour les autres langages, écrivez votre propre logique de signature SIGv4 pour les requêtes MCP sortantes ou utilisez une bibliothèque qui prend en charge la signature SIGv4. Pour plus d'informations surmcp-proxy-for-aws, consultez https://github.com/aws/mcp-proxy-for-aws
La manière dont vous authentifiez la session de streaming dépend du type de votre flotte :
-
Non-domain-joined flottes : transmettez une URL de diffusion en tant qu'en-tête. Consultez Connexion à des flottes n'appartenant pas à un domaine.
-
Domain-joined floets : transmettez une assertion SAML signée en tant que métadonnées. Consultez Connexion à des flottes appartenant à des domaines.
Note
À tout moment, un seul agent peut se connecter à une session unique. Les utilisateurs nommés, spécifiés par le biais du UserId paramètre, ne peuvent avoir qu'une seule session active par parc à la fois. Pour exécuter plusieurs agents simultanément, chaque agent doit se connecter à sa propre session.
Connexion à des flottes n'appartenant pas à un domaine
Pour les flottes n'appartenant pas à un domaine, générez une URL de streaming à l'aide de l'CreateStreamingURLAPI et transmettez-la comme X-Amzn-AgentAccess-Streaming-Session-Url en-tête de chaque demande. Aucun paramètre spécifique à l'agent n'est requis. Le comportement de l'agent est déterminé par la configuration d'accès à l'agent de la pile.
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, _): ...
Pour plus d'informations sur l'CreateStreamingURLAPI, consultez CreateStreaming l'URL dans le manuel Amazon WorkSpaces Applications 2.0 API Reference.
Connexion à des flottes appartenant à des domaines
Lorsque les agents accèdent à des instances de streaming jointes à un domaine, la connexion doit être fédérée via un fournisseur SAML. Cette exigence s'applique à la fois aux sessions traditionnelles et aux sessions d'agent. Pour les sessions avec les agents, Certificate-Based Authentification c'est obligatoire.
Étant donné que les instances de streaming jointes à un domaine nécessitent un accès via SAML, votre client MCP doit fournir une assertion SAML signée au lieu d'une URL de diffusion. Les assertions SAML codées dépassent les limites de taille d'en-tête HTTP. Pour éviter cela, utilisez le metadata champ dans 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, _): ...
Note
Le metadata paramètre a été ajouté dans la mcp-proxy-for-aws version 1.6.1. Les versions précédentes ne peuvent pas injecter le _meta champ sans développement supplémentaire. Pour effectuer la mise à niveau, exécutezpip install -U mcp-proxy-for-aws.
Pour plus d'informations sur la configuration de la fédération SAML avec WorkSpaces les applications, consultez la section Configuration de SAML dans le guide d'administration d'Amazon WorkSpaces Applications. Pour plus d'informations et un exemple fonctionnel complet, consultez le référentiel sample-code-for-workspaces-agent-access dans
Modes de connexion
Vous pouvez contrôler la façon dont votre agent attend que la session de bureau soit disponible en définissant l'X-Amzn-AgentAccess-Connect-Modeen-tête de vos requêtes MCP.
Note
Les modes de connexion s'appliquent à la fois aux flottes ne faisant pas partie d'un domaine et à celles appartenant à un domaine. Définissez l'X-Amzn-AgentAccess-Connect-Modeen-tête à côté du mécanisme d'authentification utilisé par votre type de flotte (l'en-tête Streaming-URL pour les flottes ne faisant pas partie d'un domaine, ou les métadonnées d'assertion SAML pour les flottes jointes à un domaine).
Les modes suivants sont disponibles :
-
BLOCAGE (par défaut) — Le serveur MCP attend que la connexion au poste de travail soit complètement établie avant de répondre. En cas de
tools/listretour, tous les outils sont immédiatement disponibles. -
SONDAGE — Le serveur MCP répond immédiatement sans attendre la connexion au poste de travail. Dans un premier temps, seul l'
connection_statusoutil est disponible. Votre agent interroge cet outil jusqu'à ce que la connexion soit établie, date à laquelle l'ensemble d'outils complet devient disponible.
Utilisez le mode POLLING lorsque vous souhaitez que votre agent effectue d'autres tâches en attendant la connexion au bureau, ou lorsque vous avez besoin de mieux contrôler le comportement du délai d'expiration de la connexion.
L'exemple suivant montre comment utiliser le mode 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()
Nettoyage de session
Vous pouvez contrôler si la session de streaming est expirée lorsque votre agent met fin à sa connexion en définissant l'X-Amzn-AgentAccess-Expire-Streaming-Session-On-Deleteen-tête de vos requêtes MCP. Les valeurs disponibles sont les suivantes :
-
true : lorsque votre agent envoie une
DELETErequête HTTP explicite, le serveur MCP fait expirer la session de streaming WorkSpaces des applications dans le cadre du nettoyage. L'expiration de la session met fin à l'instance de streaming sous-jacente et déclenche la politique de dimensionnement automatique configurée pour la flotte. Pour de plus amples informations, veuillez consulter Fleet Auto Scaling pour les WorkSpaces applications Amazon. -
false (par défaut) — La session de streaming continue de fonctionner jusqu'à ce que le délai de déconnexion soit atteint. Pour plus d'informations sur le délai de déconnexion, consultezCréez une flotte dans Amazon WorkSpaces Applications.
Note
Par défaut, un client mcp-proxy-for-aws MCP gère automatiquement la DELETE demande lorsque vous terminez correctement le cycle de vie du client.
Outils disponibles
Le serveur MCP fournit les outils suivants permettant aux agents d'interagir avec le poste de travail pendant une session de streaming. Le agentaccess___ préfixe est utilisé pour tous les noms d'outils.
Outils de souris
left_click-
Effectuez un clic gauche sur les coordonnées données.
Paramètres :
x(obligatoire),y(obligatoire),modifiers(facultatif, par exemplectrlouctrl+shift). double_click-
Effectuez un double clic sur les coordonnées données.
Paramètres :
x(obligatoire),y(obligatoire),modifiers(facultatif). triple_click-
Effectuez un triple clic aux coordonnées données.
Paramètres :
x(obligatoire),y(obligatoire),modifiers(facultatif). right_click-
Effectuez un clic droit sur les coordonnées données.
Paramètres :
x(obligatoire),y(obligatoire),modifiers(facultatif). middle_click-
Effectuez un clic central aux coordonnées données.
Paramètres :
x(obligatoire),y(obligatoire),modifiers(facultatif). left_click_drag-
Effectuez un clic gauche pour faire glisser les coordonnées de début vers les coordonnées de fin.
Paramètres :
start_x(obligatoire),start_yend_x(obligatoire),end_y(obligatoire). left_mouse_down-
Appuyez sur le bouton gauche de la souris et maintenez-le enfoncé aux coordonnées données.
Paramètres :
x(obligatoire),y(obligatoire),modifiers(facultatif). left_mouse_up-
Relâchez le bouton gauche de la souris aux coordonnées indiquées.
Paramètres :
x(obligatoire),y(obligatoire),modifiers(facultatif). move_pointer-
Déplace le pointeur vers les coordonnées données.
Paramètres :
x(obligatoire),y(obligatoire). scroll-
Faites défiler la molette de la souris aux coordonnées indiquées.
Paramètres :
x(obligatoire),y(obligatoire),scroll_direction(obligatoire —Up,Down, ouRight)Left,scroll_amount(obligatoire — en ticks, où 120 ticks équivalent à un cran de roue),modifiers(facultatif).
Outils pour clavier
type_text-
Tapez du texte en simulant les événements du clavier pour chaque caractère.
Paramètres :
text(obligatoire — jusqu'à 10 000 caractères). key-
Appuyez sur une touche ou une combinaison de touches.
Paramètres :
keys(obligatoire : une touche ou une combinaison unique jointe par+, par exempleactrl+c, ouctrl+shift+s). hold_key-
Maintenez une touche ou une combinaison de touches enfoncée pendant une durée spécifiée.
Paramètres :
keys(obligatoire),duration(obligatoire — 1 à 30 secondes).
Outils d'écran
screenshot-
Capturez une capture d'écran du bureau. Les dimensions de l'image renvoyée définissent l'espace de coordonnées pour tous les outils de la souris.
Paramètres :
include_cursor(facultatif, la valeur par défaut estfalse).
Transfert d'outils MCP
Le transfert d'outils MCP permet aux agents d'interagir avec les applications et le système d'exploitation de bureau par le biais d'appels MCP directs plutôt que d'utiliser des outils informatiques. Lorsque vous activez le transfert d'outils, le serveur MCP transmet les outils configurés lors de la session WorkSpaces d'application à votre agent.
Configuration de la redirection d'outils
Pour configurer le transfert d'outils MCP :
-
Activer le transfert d'outils : activez l'action de l'
FORWARD_MCP_TOOLSagent via les paramètres de l'API ou de la console. -
Vérifiez que le fichier de configuration du serveur MCP est présent : le service recherche un fichier de configuration au chemin suivant :
C:\ProgramData\NICE\dcv\mcp_server_redirection_config.json -
Configurez le serveur MCP sur l' WorkSpaceimage — Le fichier de configuration est JSON avec un seul objet de niveau supérieur
mcpServers. Chaque clé est un nom unique que vous choisissez pour un serveur. Chaque valeur indique comment lancer ce serveur.{ "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" } } }Champ Obligatoire Type Description commandOui Chaîne Chemin absolu vers l'exécutable à lancer. argsNon Tableau de chaînes Arguments transmis à l'exécutable. -
Vérifier la disponibilité des outils : si le fichier de configuration est présent, le service se connecte aux serveurs MCP configurés dans le fichier et transmet les outils. Les outils transférés apparaissent lorsque l'agent répertorie ses outils disponibles.
Note
L'accès IAM et le paramètre de service doivent être activés pour que le transfert d'outils fonctionne. Les autorisations IAM ne remplacent pas le paramètre de service.
Considérations relatives à la transmission des outils MCP
Prenez en compte les points suivants lorsque vous configurez la redirection d'outils MCP :
-
Le transport est standard I/O (studio) uniquement. Chaque entrée doit lancer un processus qui parle MCP via ses entrées et sorties standard. Les points de terminaison distants HTTP ou SSE MCP ne sont pas pris en charge. Pour utiliser un point de terminaison distant, intégrez-le à un serveur stdio local.
-
Uniquement
commandetargssont pris en charge. Il n'existe aucun champ pour les variables d'environnement ou le répertoire de travail. Chaque serveur hérite de l'environnement de la session de streaming et s'exécute en tant qu'utilisateur de la session. Utilisez des chemins absolus pourcommandet pour tous les arguments de chemin. -
Utilisez des barres obliques dans les tracés (par exemple,
C:/Program Files/my-mcp/server.exe). JSON traite la barre oblique inverse comme un caractère d'échappement, de sorte qu'un Windows-style chemin écrit avec des barres obliques inverses simples n'est pas valide. Windows accepte les barres obliques pour les chemins absolus, ce qui évite d'avoir à échapper à chaque séparateur en tant que.\\ -
Tool-call délai d'attente. Chaque appel d'outil transféré doit être terminé dans les 5 secondes. Le serveur MCP annule les appels qui prennent plus de temps et renvoie une erreur à l'agent. Concevez des outils de transfert pour un retour rapide.
Comment les outils transférés apparaissent à l'agent
Pour éviter les collisions entre serveurs, le serveur MCP renomme chaque outil transféré dans la liste d'outils de l'agent selon le schéma suivant :
forwarded___server-name___original-tool-name
server-nameIl s'agit de la clé de votre fichier de configuration. Par exemple, un get_forecast outil du weather serveur est répertorié commeforwarded___weather___get_forecast. Lorsque l'agent appelle le nom transféré, le serveur MCP achemine la demande vers l'outil d'origine sur le serveur propriétaire. Le code d'agent qui correspond aux noms des outils doit s'attendre à ce préfixe.
Autorisations IAM pour le transfert d'outils
L'action IAM pour appeler les outils transférés estCallForwardedTool. Vous pouvez définir l'accès à des piles spécifiques à l'aide de la clé de StackArn condition :
{ "Action": "agentaccess-mcp:*", "Resource": "*", "Condition": { "ArnLike": { "agentaccess-mcp:StackArn": "arn:aws:appstream:region:account-id:stack/stack-name" } } }
Frameworks compatibles
Vous pouvez vous connecter au serveur WorkSpaces Applications MCP à partir de n'importe quel framework d' MCP-compatible agent prenant en charge la signature HTTP et Sigv4 Streamable. Les frameworks suivants ont été testés :
-
SDK Strands Agents
: fournit un support client MCP natif. -
mcp-proxy-for-aws
— Transport léger qui gère la signature SIGv4 pour les requêtes MCP en Python.
Contrôle
Vous pouvez surveiller l'activité des agents via les services suivants :
-
AWS CloudTrail— Les événements de session de l'agent sont enregistrés CloudTrail. Vous pouvez voir quand les agents se connectent, quels outils ils utilisent et quand les sessions se terminent. Les appels d'outils sont des événements liés aux données qui nécessitent la création d'un journal pour enregistrer les événements liés aux données. Pour plus d’informations, consultez Journalisation des événements de données dans le Guide de l’utilisateur CloudTrail .
-
CloudWatch— Les mesures opérationnelles pour les sessions des agents sont disponibles dans CloudWatch.
-
Amazon S3 — Si vous configurez le stockage des captures d'écran, les captures d'écran capturées pendant les sessions des agents sont disponibles dans le compartiment Amazon S3 que vous spécifiez. Les captures d'écran sont stockées dans le format de clé suivant :
agentaccess/screenshots/year=YYYY/month=MM/day=DD/session-id/timestamp.pngL'UUID indiqué dans le chemin est l'ID de session de streaming WorkSpaces des applications.
Prise en main
Pour commencer à utiliser le serveur WorkSpaces Applications MCP, consultezCommencez à fournir aux agents un accès aux WorkSpaces applications.