Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
WorkSpaces Anwendungen — MCP-Server
Der WorkSpaces Applications MCP-Server ist ein vollständig verwalteter Dienst, der KI-Agenten MCP-Tools (Model Context Protocol) zur Verfügung stellt, mit denen sie während Streaming-Sitzungen mit Desktop-Anwendungen interagieren können. Agenten können auf Schaltflächen klicken, Text eingeben, scrollen und Screenshots vom Desktop machen.
-Übersicht
Wenn Sie den Agentenzugriff auf einem Stack aktivieren, können Agenten eine Verbindung zum verwalteten MCP-Server herstellen, um mit Desktop-Anwendungen zu interagieren. Der MCP-Server wickelt die Kommunikation zwischen Ihrem Agenten und der Streaming-Sitzung ab. Ihr Agent sendet MCP-Tool-Anfragen, und der Server führt sie auf dem Desktop aus.
Der MCP-Server wird in der Cloud gehostet. AWS Sie müssen keine Serverkomponenten installieren oder warten. Der Server verwendet Streamable HTTP als Transportprotokoll.
Der Agentenzugriff unterstützt sowohl nicht domänengebundene als auch domänengebundene Flotten. Die Verbindungsmethode unterscheidet sich je nach Flottentyp. Non-domain-joined Flotten authentifizieren die Sitzung mit einer Streaming-URL, während domänengebundene Flotten sich über den SAML-Verbund authentifizieren. Den Pfad, der zu Ihrer Flotte passt, finden Sie unter. Verbindung zum MCP-Server herstellen
Verbindung zum MCP-Server herstellen
Agenten stellen am folgenden Endpunkt eine Verbindung zum MCP-Server her:
https://agentaccess-mcp.region.api.aws/mcp
Der MCP-Server wird in der AWS Cloud gehostet und verwendet Streamable HTTP als Transportprotokoll. Sie müssen keine Serverkomponenten installieren oder warten.
Für jede Anfrage müssen IAM-Anmeldeinformationen mit dem Dienstnamen SigV4-signed agentaccess-mcp verwendet werden. Das folgende Python-Beispiel zeigt das allgemeine Verbindungsmuster mitmcp-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 ...
Schreiben Sie für andere Sprachen Ihre eigene SigV4-Signaturlogik für ausgehende MCP-Anfragen oder verwenden Sie eine Bibliothek, die SigV4-Signaturen unterstützt. Weitere Informationen dazu finden Sie unter mcp-proxy-for-aws mcp-proxy-for-aws auf. https://github.com/aws/mcp-proxy-for-aws
Wie Sie die Streaming-Sitzung authentifizieren, hängt von Ihrem Flotten-Typ ab:
-
Non-domain-joined Flotten — Übergeben Sie eine Streaming-URL als Header. Siehe Verbindung mit Flotten herstellen, die nicht in eine Domäne eingebunden sind.
-
Domain-joined Flotten — Übergeben Sie eine signierte SAML-Assertion als Metadaten. Siehe Verbindung mit Flotten herstellen, die einer Domäne angehören.
Anmerkung
Zu einem bestimmten Zeitpunkt kann nur ein Agent eine Verbindung zu einer bestimmten Sitzung herstellen. Benannte Benutzer, die durch den UserId Parameter angegeben werden, können jeweils nur eine aktive Sitzung pro Flotte haben. Um mehrere Agenten gleichzeitig ausführen zu können, muss jeder Agent eine Verbindung zu seiner eigenen Sitzung herstellen.
Verbindung mit Flotten herstellen, die nicht in eine Domäne eingebunden sind
Generieren Sie für nicht domänengebundene Flotten mithilfe der CreateStreamingURL API eine Streaming-URL und übergeben Sie sie bei jeder Anfrage als Header. X-Amzn-AgentAccess-Streaming-Session-Url Es sind keine agentenspezifischen Parameter erforderlich. Das Agentenverhalten wird durch die Agentenzugriffskonfiguration des Stacks bestimmt.
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, _): ...
Weitere Informationen zur CreateStreamingURL API finden Sie unter CreateStreaming URL in der Amazon WorkSpaces Applications 2.0 API-Referenz.
Verbindung mit Flotten herstellen, die einer Domäne angehören
Wenn Agenten auf in eine Domäne eingebundene Streaming-Instances zugreifen, muss die Verbindung über einen SAML-Anbieter verbunden werden. Diese Anforderung gilt sowohl für herkömmliche als auch für Agentensitzungen. Für Agentensitzungen Certificate-Based Authentifizierung ist erforderlich.
Da in eine Domäne eingebundene Streaming-Instances Zugriff über SAML benötigen, muss Ihr MCP-Client eine signierte SAML-Assertion anstelle einer Streaming-URL bereitstellen. Kodierte SAML-Assertionen überschreiten die Größenbeschränkungen für HTTP-Header. Um dies zu vermeiden, verwenden Sie das Feld inmetadata: 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, _): ...
Anmerkung
Der metadata Parameter wurde in mcp-proxy-for-aws Version 1.6.1 hinzugefügt. Frühere Versionen können das _meta Feld nicht ohne zusätzliche Entwicklung einfügen. Um ein Upgrade durchzuführen, führen Sie es auspip install -U mcp-proxy-for-aws.
Weitere Informationen zum Einrichten des SAML-Verbundes mit WorkSpaces Anwendungen finden Sie unter Einrichten von SAML im Amazon WorkSpaces Applications Administration Guide. Weitere Informationen und ein vollständiges Arbeitsbeispiel finden Sie im Repository https://github.com/aws-samples/sample-code-for-workspaces-agent-access/tree/main
Verbindungsmodi
Sie können steuern, wie Ihr Agent darauf wartet, dass die Desktop-Sitzung verfügbar wird, indem Sie den X-Amzn-AgentAccess-Connect-Mode Header für Ihre MCP-Anfragen festlegen.
Anmerkung
Die Verbindungsmodi gelten sowohl für nicht domänengebundene als auch für domänengebundene Flotten. Platzieren Sie den X-Amzn-AgentAccess-Connect-Mode Header neben dem Authentifizierungsmechanismus, den Ihr Flotten-Typ verwendet (den Streaming-URL-Header für nicht domänengebundene Flotten oder die SAML-Assertions-Metadaten für domänengebundene Flotten).
Die folgenden Modi sind verfügbar:
-
BLOCKIEREN (Standard) — Der MCP-Server wartet, bis die Desktop-Verbindung vollständig hergestellt ist, bevor er reagiert. Bei
tools/listRückgabe sind alle Tools sofort verfügbar. -
UMFRAGE — Der MCP-Server reagiert sofort, ohne auf die Desktop-Verbindung zu warten. Anfänglich ist nur das
connection_statusTool verfügbar. Ihr Agent fragt dieses Tool ab, bis die Verbindung hergestellt ist. Ab diesem Zeitpunkt ist das gesamte Toolset verfügbar.
Verwenden Sie den POLLING-Modus, wenn Ihr Agent andere Arbeiten ausführen soll, während er auf die Desktop-Verbindung wartet, oder wenn Sie mehr Kontrolle über das Timeout-Verhalten der Verbindung benötigen.
Das folgende Beispiel zeigt, wie der POLLING-Modus verwendet wird:
# 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()
Bereinigung der Sitzung
Sie können steuern, ob die Streaming-Sitzung abgelaufen ist, wenn Ihr Agent seine Verbindung beendet, indem Sie den X-Amzn-AgentAccess-Expire-Streaming-Session-On-Delete Header für Ihre MCP-Anfragen festlegen. Die folgenden Werte sind verfügbar:
-
true — Wenn Ihr Agent eine explizite
DELETEHTTP-Anfrage sendet, läuft die WorkSpaces Anwendungs-Streaming-Sitzung auf dem MCP-Server im Rahmen der Bereinigung ab. Nach Ablauf der Sitzung wird die zugrunde liegende Streaming-Instance beendet und die konfigurierte Autoscaling-Richtlinie der Flotte ausgelöst. Weitere Informationen finden Sie unter Fleet Auto Scaling für WorkSpaces Amazon-Anwendungen. -
false (Standard) — Die Streaming-Sitzung läuft weiter, bis der Timeout für die Trennung erreicht ist. Weitere Hinweise zum Timeout beim Trennen der Verbindung finden Sie unter. Erstellen Sie eine Flotte in Amazon WorkSpaces Applications
Anmerkung
Standardmäßig bearbeitet ein mcp-proxy-for-aws MCP-Client die DELETE Anfrage automatisch, wenn Sie den Client-Lebenszyklus ordnungsgemäß beenden.
Verfügbare Tools
Der MCP-Server bietet die folgenden Tools, mit denen Agenten während einer Streaming-Sitzung mit dem Desktop interagieren können. Alle Toolnamen verwenden das agentaccess___ Präfix.
Werkzeuge mit der Maus
left_click-
Führen Sie einen Linksklick auf die angegebenen Koordinaten durch.
Parameter:
x(erforderlich),y(erforderlich),modifiers(optional, zum Beispielctrloderctrl+shift). double_click-
Doppelklicken Sie auf die angegebenen Koordinaten.
Parameter:
x(erforderlich),y(erforderlich),modifiers(optional). triple_click-
Führen Sie einen Dreifachklick auf die angegebenen Koordinaten durch.
Parameter:
x(erforderlich),y(erforderlich),modifiers(optional). right_click-
Klicken Sie mit der rechten Maustaste auf die angegebenen Koordinaten.
Parameter:
x(erforderlich),y(erforderlich),modifiers(optional). middle_click-
Klicken Sie mit der mittleren Maustaste auf die angegebenen Koordinaten.
Parameter:
x(erforderlich),y(erforderlich),modifiers(optional). left_click_drag-
Ziehen Sie mit der linken Maustaste von den Startkoordinaten zu den Endkoordinaten.
Parameter:
start_x(erforderlich),start_y(erforderlich),end_x(erforderlich),end_y(erforderlich). left_mouse_down-
Drücken und halten Sie die linke Maustaste an den angegebenen Koordinaten.
Parameter:
x(erforderlich),y(erforderlich),modifiers(optional). left_mouse_up-
Lassen Sie die linke Maustaste an den angegebenen Koordinaten los.
Parameter:
x(erforderlich),y(erforderlich),modifiers(optional). move_pointer-
Bewegen Sie den Zeiger auf die angegebenen Koordinaten.
Parameter:
x(erforderlich),y(erforderlich). scroll-
Scrollen Sie mit dem Mausrad an den angegebenen Koordinaten.
Parameter:
x(erforderlich),y(erforderlich),scroll_direction(erforderlich —Up,Down, oderRight)Left,scroll_amount(erforderlich — in Ticks, wobei 120 Ticks einer Radkerbe entsprechen),modifiers(optional).
Werkzeuge auf der Tastatur
type_text-
Geben Sie Text ein, indem Sie Tastaturereignisse für jedes Zeichen simulieren.
Parameter:
text(erforderlich — bis zu 10.000 Zeichen). key-
Drücken Sie eine Taste oder Tastenkombination.
Parameter:
keys(erforderlich — eine einzelne Taste oder Kombination+, verbunden durch beispielsweiseactrl+c, oderctrl+shift+s). hold_key-
Halten Sie eine Taste oder Tastenkombination für eine bestimmte Dauer gedrückt.
Parameter:
keys(erforderlich),duration(erforderlich — 1 bis 30 Sekunden).
Werkzeuge für den Bildschirm
screenshot-
Nehmen Sie einen Screenshot des Desktops auf. Die zurückgegebenen Bildabmessungen definieren den Koordinatenraum für alle Mauswerkzeuge.
Parameter:
include_cursor(optional — standardmäßigfalse).
Weiterleitung von MCP-Tools
Die MCP-Tool-Weiterleitung ermöglicht es Agenten, über direkte MCP-Aufrufe mit Anwendungen und dem Desktop-Betriebssystem zu interagieren, anstatt Computertools zu verwenden. Wenn Sie die Tool-Weiterleitung aktivieren, leitet der MCP-Server die in der WorkSpaces Anwendungssitzung konfigurierten Tools an Ihren Agenten weiter.
Einrichtung der Tool-Weiterleitung
So richten Sie die MCP-Tool-Weiterleitung ein:
-
Tool-Weiterleitung aktivieren — Aktivieren Sie die
FORWARD_MCP_TOOLSAgentenaktion über die API- oder Konsoleneinstellungen. -
Stellen Sie sicher, dass die MCP-Server-Konfigurationsdatei vorhanden ist — Der Service sucht unter dem folgenden Pfad nach einer Konfigurationsdatei:
C:\ProgramData\NICE\dcv\mcp_server_redirection_config.json -
Konfigurieren Sie den MCP-Server auf dem WorkSpace Image — Die Konfigurationsdatei ist JSON mit einem einzigen Objekt der obersten
mcpServersEbene. Jeder Schlüssel ist ein eindeutiger Name, den Sie für einen Server wählen. Jeder Wert gibt an, wie dieser Server gestartet wird.{ "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" } } }Feld Erforderlich Typ Description commandJa Zeichenfolge Absoluter Pfad zur ausführbaren Datei, die gestartet werden soll. argsNein Zeichenfolgen-Array Argumente, die an die ausführbare Datei übergeben wurden. -
Verfügbarkeit der Tools überprüfen — Wenn die Konfigurationsdatei vorhanden ist, stellt der Service eine Verbindung zu den in der Datei konfigurierten MCP-Servern her und leitet die Tools weiter. Die weitergeleiteten Tools werden angezeigt, wenn der Agent seine verfügbaren Tools auflistet.
Anmerkung
Sowohl der IAM-Zugriff als auch die Serviceeinstellung müssen aktiviert sein, damit die Tool-Weiterleitung funktioniert. IAM-Berechtigungen haben keinen Vorrang vor der Diensteinstellung.
Überlegungen zur Weiterleitung von MCP-Tools
Beachten Sie bei der Konfiguration der MCP-Tool-Weiterleitung die folgenden Überlegungen:
-
Der Transport erfolgt nur standardmäßig I/O (stdio). Jeder Eintrag muss einen Prozess starten, der MCP über seine Standardeingabe und -ausgabe spricht. Remote-HTTP- oder SSE-MCP-Endpunkte werden nicht unterstützt. Um einen Remote-Endpunkt zu verwenden, binden Sie ihn in einen lokalen Stdio-Server ein.
-
Nur
commandundargswerden unterstützt. Es gibt kein Feld für Umgebungsvariablen oder Arbeitsverzeichnis. Jeder Server erbt die Umgebung der Streaming-Sitzung und wird als Sitzungsbenutzer ausgeführt. Verwenden Sie absolute Pfade fürcommandund für alle Pfadargumente. -
Verwenden Sie Schrägstriche in Pfaden (z. B.
C:/Program Files/my-mcp/server.exe). JSON behandelt den umgekehrten Schrägstrich als Escapezeichen, sodass ein Windows-style Pfad, der mit einzelnen umgekehrten Schrägstrichen geschrieben wird, ungültig ist. Windows akzeptiert Schrägstriche für absolute Pfade, wodurch vermieden wird, dass jedes Trennzeichen als maskiert werden muss.\\ -
Tool-call Zeitlimit. Jeder weitergeleitete Toolaufruf muss innerhalb von 5 Sekunden abgeschlossen sein. Der MCP-Server storniert Anrufe, die länger dauern, und gibt einen Fehler an den Agenten zurück. Entwickeln Sie weitergeleitete Tools, die schnell zurückkehren.
Wie werden weitergeleitete Tools dem Agenten angezeigt
Um Kollisionen zwischen Servern zu vermeiden, benennt der MCP-Server jedes weitergeleitete Tool in der Toolliste des Agenten nach dem folgenden Muster um:
forwarded___server-name___original-tool-name
Das server-name ist der Schlüssel aus Ihrer Konfigurationsdatei. Ein get_forecast Tool vom weather Server wird beispielsweise als aufgeführtforwarded___weather___get_forecast. Wenn der Agent den weitergeleiteten Namen aufruft, leitet der MCP-Server die Anfrage an das ursprüngliche Tool auf dem eigenen Server weiter. Agentencode, der mit den Toolnamen übereinstimmt, muss mit diesem Präfix rechnen.
IAM-Berechtigungen für die Tool-Weiterleitung
Die IAM-Aktion für den Aufruf weitergeleiteter Tools lautet. CallForwardedTool Sie können den Zugriff auf bestimmte Stacks mithilfe des StackArn Bedingungsschlüssels einschränken:
{ "Action": "agentaccess-mcp:*", "Resource": "*", "Condition": { "ArnLike": { "agentaccess-mcp:StackArn": "arn:aws:appstream:region:account-id:stack/stack-name" } } }
Kompatible Frameworks
Sie können von jedem MCP-compatible Agent-Framework aus, das Streamable HTTP- und SigV4-Signaturen unterstützt, eine Verbindung zum WorkSpaces Applications MCP-Server herstellen. Die folgenden Frameworks wurden getestet:
-
Strands Agents SDK
— Bietet native MCP-Client-Unterstützung. -
mcp-proxy-for-aws
— Ein leichter Transport, der die SigV4-Signatur für MCP-Anfragen in Python verarbeitet.
Überwachen
Sie können die Agentenaktivität über die folgenden Dienste überwachen:
-
AWS CloudTrail— Agentensitzungsereignisse werden protokolliert CloudTrail. Sie können sehen, wann Agenten eine Verbindung herstellen, welche Tools sie verwenden und wann Sitzungen enden. Tool-Aufrufe sind Datenereignisse und erfordern, dass Sie einen Trail einrichten, um Datenereignisse zu protokollieren. Weitere Informationen finden Sie unter Protokollieren von Datenereignissen im Benutzerhandbuch für CloudTrail .
-
CloudWatch— Betriebsmetriken für Agentensitzungen sind unter verfügbar CloudWatch.
-
Amazon S3 — Wenn Sie den Screenshot-Speicher konfigurieren, sind Screenshots, die während Agentensitzungen aufgenommen wurden, in dem von Ihnen angegebenen Amazon S3-Bucket verfügbar. Screenshots werden im folgenden Schlüsselformat gespeichert:
agentaccess/screenshots/year=YYYY/month=MM/day=DD/session-id/timestamp.pngDie UUID im Pfad ist die ID der Streaming-Sitzung der WorkSpaces Anwendung.
Erste Schritte
Informationen zu den ersten Schritten mit dem MCP-Server WorkSpaces für Anwendungen finden Sie unter. Beginnen Sie damit, Agenten Zugriff auf Anwendungen zu WorkSpaces gewähren