View a markdown version of this page

WorkSpaces Applicazioni: server MCP - WorkSpaces Applicazioni Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

WorkSpaces Applicazioni: server MCP

Il server WorkSpaces Applications MCP è un servizio completamente gestito che fornisce agli agenti di intelligenza artificiale strumenti Model Context Protocol (MCP) per interagire con le applicazioni desktop durante le sessioni di streaming. Gli agenti possono fare clic sui pulsanti, inserire testo, scorrere e acquisire schermate del desktop.

Panoramica di

Quando si abilita l'accesso degli agenti su uno stack, gli agenti possono connettersi al server MCP gestito per interagire con le applicazioni desktop. Il server MCP gestisce la comunicazione tra l'agente e la sessione di streaming. L'agente invia le richieste degli strumenti MCP e il server le esegue sul desktop.

Il server MCP è ospitato nel cloud. AWS Non è necessario installare o mantenere alcun componente del server. Il server utilizza Streamable HTTP come protocollo di trasporto.

L'accesso degli agenti supporta sia flotte non aggiunte a un dominio che unite a un dominio. Il metodo di connessione varia in base al tipo di parco veicoli. Non-domain-joined le flotte autenticano la sessione con un URL di streaming, mentre le flotte aggiunte a un dominio si autenticano tramite la federazione SAML. Per il percorso che corrisponde alla tua flotta, consulta. Connessione al server MCP

Connessione al server MCP

Gli agenti si connettono al server MCP al seguente endpoint:

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

Il server MCP è ospitato nel AWS cloud e utilizza Streamable HTTP come protocollo di trasporto. Non è necessario installare o mantenere alcun componente del server.

Ogni richiesta deve SigV4-signed utilizzare le credenziali IAM con il nome agentaccess-mcp del servizio. Il seguente esempio in Python mostra lo schema di connessione generale utilizzando: 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 ...

Per altri linguaggi, scrivi la tua logica di firma SIGv4 per le richieste MCP in uscita o usa una libreria che supporti la firma SIGv4. Per ulteriori informazioni, consulta mcp-proxy-for-aws on. mcp-proxy-for-aws https://github.com/aws/mcp-proxy-for-aws GitHub

Il modo in cui autentichi la sessione di streaming dipende dal tipo di parco veicoli:

Nota

In qualsiasi momento, solo un agente può connettersi a una sessione unica. Gli utenti nominativi, specificati tramite il UserId parametro, possono avere una sola sessione attiva per flotta alla volta. Per eseguire più agenti contemporaneamente, ogni agente deve connettersi alla propria sessione univoca.

Connessione con flotte non appartenenti a un dominio

Per le flotte non appartenenti a un dominio, genera un URL di streaming utilizzando l'CreateStreamingURLAPI e passalo come intestazione a ogni richiesta. X-Amzn-AgentAccess-Streaming-Session-Url Non sono richiesti parametri specifici dell'agente. Il comportamento dell'agente è determinato dalla configurazione di accesso dell'agente dello stack.

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, _): ...

Per ulteriori informazioni sull'CreateStreamingURLAPI, consulta CreateStreaming l'URL nell'API Reference di Amazon WorkSpaces Applications 2.0.

Connessione con flotte appartenenti a un dominio

Quando gli agenti accedono alle istanze di streaming aggiunte a un dominio, la connessione deve essere federata tramite un provider SAML. Questo requisito si applica sia alle sessioni tradizionali che a quelle degli agenti. Per le sessioni con gli agenti, Certificate-Based Autenticazione è obbligatorio.

Poiché le istanze di streaming aggiunte a un dominio richiedono l'accesso tramite SAML, il client MCP deve fornire un'asserzione SAML firmata anziché un URL di streaming. Le asserzioni SAML codificate superano i limiti di dimensione dell'intestazione HTTP. Per evitare ciò, utilizza il campo in: metadata 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

Il metadata parametro è stato aggiunto nella mcp-proxy-for-aws versione 1.6.1. Le versioni precedenti non possono inserire il _meta campo senza uno sviluppo aggiuntivo. Per eseguire l'aggiornamento, eseguipip install -U mcp-proxy-for-aws.

Per ulteriori informazioni sulla configurazione della federazione SAML con WorkSpaces le applicazioni, consulta Configurare SAML nella Amazon WorkSpaces Applications Administration Guide. Per ulteriori informazioni e un esempio funzionante completo, consulta il repository sample-code-for-workspaces-agent-access in Samples on. AWS GitHub

Modalità di connessione

Puoi controllare il modo in cui il tuo agente attende che la sessione desktop diventi disponibile impostando l'X-Amzn-AgentAccess-Connect-Modeintestazione delle tue richieste MCP.

Nota

Le modalità di connessione si applicano sia alle flotte non appartenenti a un dominio che a quelle aggiunte a un dominio. Imposta l'X-Amzn-AgentAccess-Connect-Modeintestazione insieme al meccanismo di autenticazione utilizzato dal tuo tipo di flotta (l'intestazione Streaming-URL per le flotte non appartenenti a un dominio o i metadati dell'asserzione SAML per le flotte aggiunte a un dominio).

Sono disponibili le seguenti modalità:

  • BLOCCO (impostazione predefinita): il server MCP attende che la connessione desktop sia completamente stabilita prima di rispondere. Al tools/list ritorno, tutti gli strumenti sono immediatamente disponibili.

  • POLLING: il server MCP risponde immediatamente senza attendere la connessione al desktop. Inizialmente, è disponibile solo lo connection_status strumento. L'agente esegue il polling di questo strumento fino a quando non viene stabilita la connessione, dopodiché diventa disponibile il set completo di strumenti.

Utilizzate la modalità POLLING quando desiderate che il vostro agente esegua altre operazioni in attesa della connessione al desktop o quando avete bisogno di un maggiore controllo sul comportamento di timeout della connessione.

L'esempio seguente mostra come utilizzare la modalità 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()

Pulizia della sessione

Puoi controllare se la sessione di streaming è scaduta quando l'agente termina la connessione impostando l'X-Amzn-AgentAccess-Expire-Streaming-Session-On-Deleteintestazione sulle richieste MCP. Sono disponibili i seguenti valori:

  • true: quando l'agente invia una DELETE richiesta HTTP esplicita, il server MCP fa scadere la sessione di streaming delle WorkSpaces Applicazioni come parte della pulizia. La scadenza della sessione interrompe l'istanza di streaming sottostante e attiva la politica di scalabilità automatica configurata della flotta. Per ulteriori informazioni, consulta Auto Scaling della flotta per applicazioni Amazon WorkSpaces.

  • false (impostazione predefinita): la sessione di streaming continua a funzionare fino al raggiungimento del timeout di disconnessione. Per ulteriori informazioni sul timeout di disconnessione, vedere. Crea una flotta in Amazon WorkSpaces Applications

Nota

Per impostazione predefinita, un client mcp-proxy-for-aws MCP gestisce automaticamente la DELETE richiesta quando si termina correttamente il ciclo di vita del client.

Strumenti disponibili

Il server MCP fornisce i seguenti strumenti per consentire agli agenti di interagire con il desktop durante una sessione di streaming. Tutti i nomi degli strumenti utilizzano il agentaccess___ prefisso.

Strumenti del mouse

left_click

Fai clic con il pulsante sinistro del mouse sulle coordinate indicate.

Parametri: x (obbligatorio), y (obbligatorio), modifiers (opzionale, ad esempio ctrl octrl+shift).

double_click

Fai un doppio clic sulle coordinate indicate.

Parametri: x (obbligatorio), y (obbligatorio), modifiers (opzionale).

triple_click

Fai un triplo clic sulle coordinate indicate.

Parametri: x (obbligatorio), y (obbligatorio), modifiers (opzionale).

right_click

Fai clic con il pulsante destro del mouse sulle coordinate indicate.

Parametri: x (obbligatorio), y (obbligatorio), modifiers (opzionale).

middle_click

Fai clic con il pulsante centrale del mouse sulle coordinate indicate.

Parametri: x (obbligatorio), y (obbligatorio), modifiers (opzionale).

left_click_drag

Fate clic con il pulsante sinistro del mouse e trascinate dalle coordinate iniziali alle coordinate finali.

Parametri: start_x start_y (obbligatorio), end_x (obbligatorio), end_y (obbligatorio).

left_mouse_down

Tieni premuto il pulsante sinistro del mouse sulle coordinate indicate.

Parametri: x (obbligatorio), y (obbligatorio), modifiers (opzionale).

left_mouse_up

Rilasciate il pulsante sinistro del mouse sulle coordinate indicate.

Parametri: x (obbligatorio), y (obbligatorio), modifiers (opzionale).

move_pointer

Sposta il puntatore sulle coordinate date.

Parametri: x (obbligatorio), y (obbligatorio).

scroll

Scorri la rotellina del mouse sulle coordinate indicate.

Parametri: x (obbligatorio), y scroll_direction (obbligatorio —,, oRight) Up DownLeft, scroll_amount (obbligatorio: in tick, dove 120 tick equivalgono a una tacca della ruota), modifiers (opzionale).

Strumenti da tastiera

type_text

Digita il testo simulando gli eventi della tastiera per ogni carattere.

Parametri: text (obbligatorio: fino a 10.000 caratteri).

key

Premi un tasto o una combinazione di tasti.

Parametri: keys (obbligatorio: un singolo tasto o una combinazione unita+, ad esempio actrl+c, octrl+shift+s).

hold_key

Tieni premuto un tasto o una combinazione di tasti per una durata specificata.

Parametri: keys (obbligatorio), duration (obbligatorio: da 1 a 30 secondi).

Strumenti sullo schermo

screenshot

Cattura uno screenshot del desktop. Le dimensioni dell'immagine restituita definiscono lo spazio delle coordinate per tutti gli strumenti del mouse.

Parametri: include_cursor (opzionale, il valore predefinito è). false

Inoltro degli strumenti MCP

L'inoltro degli strumenti MCP consente agli agenti di interagire con le applicazioni e il sistema operativo desktop tramite chiamate MCP dirette anziché utilizzare strumenti informatici. Quando si abilita l'inoltro degli strumenti, il server MCP inoltra gli strumenti configurati nella sessione dell'applicazione all'agente. WorkSpaces

Configurazione dell'inoltro degli strumenti

Per configurare l'inoltro degli strumenti MCP:

  1. Abilita l'inoltro degli strumenti: attiva l'azione FORWARD_MCP_TOOLS dell'agente tramite l'API o le impostazioni della console.

  2. Verifica che il file di configurazione del server MCP sia presente: il servizio cerca un file di configurazione nel seguente percorso:

    C:\ProgramData\NICE\dcv\mcp_server_redirection_config.json
  3. Configura il server MCP sull' WorkSpaceimmagine: il file di configurazione è JSON con un singolo oggetto di primo livello. mcpServers Ogni chiave è un nome univoco che scegli per un server. Ogni valore specifica come avviare il server.

    { "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 Richiesto Tipo Description
    command Stringa Percorso assoluto dell'eseguibile da avviare.
    args No Gamma di stringhe Argomenti passati all'eseguibile.
  4. Verifica la disponibilità degli strumenti: se il file di configurazione è presente, il servizio si connette ai server MCP configurati nel file e inoltra gli strumenti. Gli strumenti inoltrati vengono visualizzati quando l'agente elenca gli strumenti disponibili.

Nota

Sia l'accesso IAM che l'impostazione del servizio devono essere abilitati affinché l'inoltro degli strumenti funzioni. Le autorizzazioni IAM non sovrascrivono l'impostazione del servizio.

Considerazioni sull'inoltro degli strumenti MCP

Quando configurate l'inoltro degli strumenti MCP, tenete presente le seguenti considerazioni:

  • Il trasporto è solo standard I/O (stdio). Ogni voce deve avviare un processo che parli MCP dei suoi input e output standard. Gli endpoint HTTP o SSE MCP remoti non sono supportati. Per utilizzare un endpoint remoto, inseriscilo in un server stdio locale.

  • Solo command e args sono supportati. Non esiste un campo per le variabili di ambiente o la directory di lavoro. Ogni server eredita l'ambiente della sessione di streaming e viene eseguito come utente della sessione. Usa percorsi assoluti per command e per qualsiasi argomento del percorso.

  • Usa barre in avanti nei percorsi (ad esempio,C:/Program Files/my-mcp/server.exe). JSON considera la barra rovesciata come un carattere di escape, quindi un Windows-style percorso scritto con barre rovesciate singole non è valido. Windows accetta barre in avanti per i percorsi assoluti, il che evita la necessità di sfuggire a ogni separatore. \\

  • Tool-call timeout. Ogni chiamata all'utensile inoltrata deve essere completata entro 5 secondi. Il server MCP annulla le chiamate che richiedono più tempo e restituisce un errore all'agente. Progetta strumenti inoltrati per restituirli rapidamente.

In che modo gli strumenti inoltrati appaiono all'agente

Per evitare collisioni tra server, il server MCP rinomina ogni strumento inoltrato nell'elenco degli strumenti dell'agente utilizzando il seguente schema:

forwarded___server-name___original-tool-name

server-nameÈ la chiave contenuta nel file di configurazione. Ad esempio, uno get_forecast strumento del weather server è elencato comeforwarded___weather___get_forecast. Quando l'agente chiama il nome inoltrato, il server MCP indirizza la richiesta allo strumento originale sul server proprietario. Il codice dell'agente che corrisponde ai nomi degli strumenti deve prevedere questo prefisso.

Autorizzazioni IAM per l'inoltro degli strumenti

L'azione IAM per chiamare gli strumenti inoltrati è. CallForwardedTool Puoi definire l'ambito dell'accesso a stack specifici utilizzando la StackArn chiave di condizione:

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

Framework compatibili

È possibile connettersi al server WorkSpaces Applications MCP da qualsiasi framework di MCP-compatible agenti che supporti la firma Streamable HTTP e Sigv4. Sono stati testati i seguenti framework:

Monitoraggio

È possibile monitorare l'attività degli agenti tramite i seguenti servizi:

  • AWS CloudTrail— Gli eventi della sessione dell'agente vengono registrati. CloudTrail È possibile visualizzare quando gli agenti si connettono, quali strumenti utilizzano e quando terminano le sessioni. Le chiamate agli strumenti sono eventi relativi ai dati e richiedono l'impostazione di un percorso per la registrazione degli eventi relativi ai dati. Per ulteriori informazioni, consultare Registrazione di eventi di dati nella Guida per l'utente di CloudTrail .

  • CloudWatch— Le metriche operative per le sessioni degli agenti sono disponibili in CloudWatch.

  • Amazon S3 — Se configuri l'archiviazione degli screenshot, gli screenshot acquisiti durante le sessioni degli agenti sono disponibili nel bucket Amazon S3 specificato. Le schermate vengono archiviate con il seguente formato chiave:

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

    L'UUID nel percorso è l'ID della sessione di streaming delle WorkSpaces applicazioni.

Nozioni di base

Per iniziare a utilizzare il server MCP WorkSpaces delle applicazioni, vedere. Inizia a fornire agli agenti l'accesso alle applicazioni WorkSpaces