View a markdown version of this page

WorkSpaces MCP-Server für Anwendungen - WorkSpaces Amazon-Anwendungen

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 MCP-Server für Anwendungen

Der WorkSpaces Applications MCP-Server ist ein vollständig verwalteter Service, der KI-Agenten MCP-Tools (Model Context Protocol) zur Interaktion mit Desktop-Anwendungen während Streaming-Sitzungen zur Verfügung stellt. 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 kümmert sich um die Kommunikation zwischen Ihrem Agenten und der Streaming-Sitzung. Ihr Agent sendet MCP-Tool-Anfragen, und der Server führt sie auf dem Desktop aus.

Der Agentenzugriff unterstützt sowohl nicht domänengebundene als auch domänengebundene Flotten. Die Verbindungsmethode unterscheidet sich je nach Flottenart. Für Flotten, die nicht in eine Domäne eingebunden sind, können Sie auf zwei Arten eine Verbindung herstellen. Bei der ersten Methode geben Sie den Stack und die Benutzer-ID als zwei Header an: und. x-amzn-agentaccess-workspaces-applications-stack x-amzn-agentaccess-workspaces-applications-user-id Der MCP-Server erstellt dann die Streaming-Sitzung für Sie. Im zweiten Fall generieren Sie selbst eine Streaming-URL und übergeben sie als Header. Authentifizieren Sie sich für Flotten, die in eine Domäne eingebunden sind, über den SAML-Verbund. 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

Ersetzen Sie es region durch Ihren Regionalcode. Informationen zu den unterstützten Regionen und ihren Endpunkten finden Sie unterWorkSpaces Anwendungen (MCP-Endpunkte).

Der MCP-Server wird in der AWS Cloud gehostet und verwendet Streamable HTTP als Transportprotokoll. Sie müssen keine Serverkomponenten installieren oder warten.

Anmerkung

Bevor ein Agent eine Verbindung herstellen kann, muss die mit Ihrem Stack verknüpfte Flotte laufen und über verfügbare Kapazität verfügen.

Um einen Agenten zu verbinden, treffen Sie zwei Möglichkeiten: wie der Agent seine Anfragen autorisiert und wie er die Streaming-Sitzung identifiziert.

Autorisierung beantragen

Sie können Anfragen auf zwei Arten autorisieren: durch SigV4-Signatur oder durch OAuth 2.1-Autorisierung. AWS Sign-In

SigV4-Signatur

Um SigV4 zu verwenden, signieren Sie jede Anfrage mit IAM-Anmeldeinformationen mit dem Dienstnamen. agentaccess-mcp 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 zu finden Sie unter mcp-proxy-for-aws mcp-proxy-for-aws unter. GitHub

OAuth 2.1-Autorisierung

Als Alternative zum Signieren von Anfragen mit IAM-Anmeldeinformationen unterstützt der MCP-Server die OAuth 2.1-Autorisierung auf die gleiche Weise wie der MCP-Server AWS Sign-In. AWS AWS Sign-In fungiert als Autorisierungsserver. Er gibt kurzlebige Zugriffstoken mit begrenztem Gültigkeitsbereich aus. Der MCP-Server akzeptiert diese Token als Inhabertoken. OAuth verwendet Ihre vorhandenen IAM-Identitäten, Berechtigungen und Organisationskontrollen. Wenn Sie einen Agenten autorisieren, kann er in Ihrem Namen auf den MCP-Server zugreifen. Es erhält keine zusätzlichen Berechtigungen. AWS überprüft immer noch jede Anfrage anhand Ihrer IAM-Richtlinien.

OAuth-compatible MCP-Clients — wie Kiro, Claude Code, Cursor, Codex und Gemini — können sich ohne lokale Proxysoftware direkt mit dem MCP-Serverendpunkt verbinden. AWS Sign-In unterstützt zwei Autorisierungsmodelle:

  • Interaktive Autorisierung — Für Agenten, die einen Browser öffnen können. Der Client registriert sich über die dynamische Client-Registrierung, leitet Sie zu einer AWS Sign-In Seite weiter, auf der Sie den Zugriff authentifizieren und genehmigen können, und gibt AWS Sign-In dann die Zugriffstoken aus und aktualisiert sie.

  • Non-interactive Autorisierung — Für Agenten, die bereits über AWS Anmeldeinformationen verfügen und ohne Browser arbeiten (manchmal auch Headless-Autorisierung genannt). Der Agent verwendet die OAuth-Client-Anmeldedaten, um Anmeldeinformationen gegen ein kurzlebiges SigV4-signed Zugriffstoken auszutauschen.

Die OAuth-Autorisierung für den MCP-Server funktioniert genauso wie für den MCP-Server, wobei der AWS MCP-Serverendpunkt () verwendet wird. https://agentaccess-mcp.region.api.aws/mcp Informationen zur Einrichtung, den erforderlichen IAM-Berechtigungen sowie zu den Governance- und Überwachungsoptionen finden Sie unter OAuth 2.1-Authentifizierung für AWS MCP Server im Agent Toolkit for AWS-Benutzerhandbuch und Sign-Inmit OAuth 2.0 im Benutzerhandbuch.AWS Sign-In

Identifizierung der Sitzung

Wie Sie die Streaming-Sitzung identifizieren, hängt von Ihrem Flottentyp ab.

Anmerkung

Zu einem bestimmten Zeitpunkt kann nur ein Agent eine Verbindung zu einer bestimmten Sitzung herstellen. Benannte Benutzer, die über den UserId Parameter angegeben werden, können jeweils nur eine aktive Sitzung pro Flotte haben. Um mehrere Agenten gleichzeitig auszuführen, muss jeder Agent eine Verbindung zu seiner eigenen Sitzung herstellen.

Verbindung zu Flotten herstellen, die nicht in eine Domäne eingebunden sind

Für Flotten, die nicht in eine Domäne eingebunden sind, können Sie auf zwei Arten eine Verbindung herstellen. Geben Sie den Stack und die Benutzer-ID als Header an, und der MCP-Server erstellt die Streaming-Sitzung für Sie. Dies eignet sich für MCP-Clients, die Sie statisch konfigurieren, da ein solcher Client ein festes Headerpaar enthalten kann, aber keine Streaming-URL generieren oder eine ersetzen kann, wenn sie abläuft. Alternativ können Sie selbst eine Streaming-URL generieren und sie als Header übergeben. Verwenden Sie diesen Ansatz, wenn Sie die Kontrolle über die Sitzungserstellung benötigen, z. B. die Festlegung der Gültigkeitsdauer.

Um eine Verbindung mit dem Stack und der Benutzer-ID herzustellen, übergeben Sie bei jeder Anfrage die folgenden Header:

  • x-amzn-agentaccess-workspaces-applications-stack— der Stackname oder ARN.

  • x-amzn-agentaccess-workspaces-applications-user-id— die Benutzer-ID für die Sitzung.

Anmerkung

Der x-amzn-agentaccess-workspaces-applications-user-id Header ist optional. Wenn Sie ihn weglassen, leitet der MCP-Server die Benutzeridentität aus der authentifizierten Sitzung ab. Er verwendet den, AWS SourceIdentity wenn einer vorhanden ist, und andernfalls den IAM-Principal des Aufrufers. SourceIdentitybehält die ursprüngliche Unternehmensidentität eines Benutzers bei, wenn er eine IAM-Rolle übernimmt. Dies gilt auch dann, wenn Rollen über einen externen Identitätsanbieter (IdP) verkettet sind.

from mcp_proxy_for_aws import aws_iam_streamablehttp_client # Connect to the MCP server with the stack and user ID 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-workspaces-applications-stack": "stack-name-or-arn", "x-amzn-agentaccess-workspaces-applications-user-id": "user-id", }, ) as (read, write, _): ...

Um stattdessen eine Verbindung mit einer Streaming-URL herzustellen, generieren Sie eine mithilfe der CreateStreamingURL API und übergeben Sie sie bei jeder Anfrage als x-amzn-agentaccess-streaming-session-url Header. 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 CreateStreamingURL 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 gebündelt werden. Diese Anforderung gilt sowohl für herkömmliche Sitzungen als auch für Agentensitzungen. Für Agentensitzungen Certificate-Based Authentifizierung ist dies erforderlich.

Da in eine Domäne eingebundene Streaming-Instances Zugriff über SAML erfordern, muss Ihr MCP-Client anstelle einer Streaming-URL eine signierte SAML-Assertion 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. Führen Sie den Befehl aus, um ein Upgrade durchzuführenpip install -U mcp-proxy-for-aws.

Weitere Informationen zur Einrichtung eines SAML-Verbunds mit WorkSpaces Anwendungen finden Sie unter Setting up SAML im Amazon WorkSpaces Applications Administration Guide. Weitere Informationen und ein vollständiges funktionierendes Beispiel finden Sie im Repository sample-code-for-workspaces-agent-access unter Samples on. AWS GitHub

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

Verbindungsmodi gelten sowohl für nicht domänengebundene als auch für domänengebundene Flotten. Stellen Sie den x-amzn-agentaccess-connect-mode Header zusammen mit dem Authentifizierungsmechanismus ein, den Ihr Flottentyp verwendet. Bei Flotten, die nicht in eine Domäne eingebunden sind, sind das entweder die Stack- und Benutzer-ID-Header oder ein Streaming-URL-Header. Bei Flotten, die in eine Domäne eingebunden sind, handelt es sich um die SAML-Assertion-Metadaten.

Die folgenden Modi sind verfügbar:

  • BLOCKIEREN (Standard) — Der MCP-Server wartet, bis die Desktop-Verbindung vollständig hergestellt ist, bevor er reagiert. Nach der tools/list Rückkehr sind alle Tools sofort verfügbar.

  • ABFRAGE — Der MCP-Server reagiert sofort, ohne auf die Desktop-Verbindung zu warten. Anfänglich ist nur das connection_status Tool 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 Sie möchten, dass Ihr Agent andere Aufgaben ausführt, während er auf die Desktop-Verbindung wartet, oder wenn Sie mehr Kontrolle über das Verhalten bei Verbindungstimeouts 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 die 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 DELETE HTTP-Anfrage sendet, lässt der MCP-Server die WorkSpaces Anwendungs-Streaming-Sitzung im Rahmen der Bereinigung ablaufen. Wenn die Sitzung abläuft, 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 das Verbindungs-Timeout erreicht ist. Weitere Informationen zum Timeout beim Trennen der Verbindung finden Sie unter. Erstellen Sie eine Flotte in Amazon WorkSpaces Applications

Anmerkung

Standardmäßig verarbeitet 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. Agenten verwenden sie, um während einer Streaming-Sitzung mit dem Desktop zu interagieren. Alle Toolnamen verwenden das agentaccess___ Präfix.

Werkzeuge für die Maus

left_click

Führen Sie einen Linksklick auf die angegebenen Koordinaten aus.

Parameter: x (erforderlich), y (erforderlich), modifiers (optional, zum Beispiel ctrl oderctrl+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

Führen Sie einen Rechtsklick auf die angegebenen Koordinaten aus.

Parameter: x (erforderlich), y (erforderlich), modifiers (optional).

middle_click

Führen Sie einen Mittelklick auf die angegebenen Koordinaten aus.

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

Halten Sie die linke Maustaste an den angegebenen Koordinaten gedrückt.

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

Bewegt 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 für die 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+, die beispielsweise durch actrl+c, oder verbunden istctrl+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).

Tools für den Bildschirm

screenshot

Erfassen Sie einen Screenshot des Desktops. Die zurückgegebenen Bildabmessungen definieren den Koordinatenraum für alle Mauswerkzeuge.

Parameter: include_cursor (optional — standardmäßigfalse).

Anwendungstools

Anmerkung

Diese Anwendungstools werden nur dann in der Werkzeugliste des Agenten angezeigt, wenn Anwendungen im Fleet-Image-Katalog registriert sind. Wenn für das Image keine registrierten Anwendungen vorhanden sind, sind diese Tools nicht verfügbar.

launch_application

Starten Sie eine Anwendung aus den Anwendungen, die im Katalog des Fleet-Images verfügbar sind.

Parameter: id (erforderlich) — die Anwendungs-ID.

In der Beschreibung des Tools sind die Identifikatoren der verfügbaren Anwendungen aufgeführt. Der MCP-Server füllt diese Beschreibung aus dem Katalog des Fleet-Images aus (z. B., firefoxnotepad++, oder). eclipse Verwenden Sie einen der aufgelisteten Identifikatoren. Ein Wertid, der nicht im Katalog enthalten ist, wird isError: true mit SERVER_ERROR: Invalid input zurückgegeben. IDs werden bei der Erstellung des Images festgelegt. Sie können aus dem Namen der Anwendung keine ID ermitteln.

Das Starten einer Anwendung ersetzt nicht das, was bereits läuft. Die zuvor gestartete Anwendung bleibt geöffnet. Aus diesem Grund gibt es den App Switcher.

toggle_app_switcher

Öffnen oder schließen Sie das App-Switcher-Overlay.

Parameter: keine.

Dieses Tool schaltet nur das Overlay um. Um eine bestimmte Anwendung in den Vordergrund zu bringen, folgen Sie mit einem left_click auf dem Vorschaubild und verwenden dabei Koordinaten, die aus einem Screenshot gelesen wurden. Kein Tool meldet, welche Anwendung sich gerade im Vordergrund befindet. Daher muss ein Agent, der das wissen muss, einen Screenshot machen und sich das ansehen.

Anmerkung

Der App Switcher ist nur verfügbar, wenn die Stream-Ansicht der Flotte auf Anwendung eingestellt ist. Dadurch werden nur die Fenster der Anwendungen angezeigt, die Benutzer öffnen. Er ist nicht verfügbar, wenn die Stream-Ansicht auf Desktop eingestellt ist, weil WorkSpaces Applications dann den Standard-Desktop und die Standard-Taskleiste für das Betriebssystem bereitstellt.

Tools für Sitzungen

Anmerkung

Um einem Agenten zuzusehen, während er arbeitet, codieren Sie den Agenten so, dass er eine Streaming-URL in einem Browser öffnet. Halten Sie die URL außerhalb des Modellkontextes, da sie Sitzungszugriff gewährt. Sie können die URL auf zwei Arten erstellen:

  • Rufen Sie die CreateStreamingURL API mit den userId Werten von stack fleetget_session_info, und auf und öffnen Sie dann die zurückgegebene URL in einem Browser.

  • Lesen Sie den streaming_url Wert aus dem _meta Feld der get_session_info Antwort und öffnen Sie ihn dann in einem Browser.

In beiden Fällen verarbeitet der eigene Code des Agenten die URL, sodass die Sitzungsanmeldedaten dem Modell niemals zur Verfügung gestellt werden.

get_session_info

Gibt Informationen über die aktuelle Sitzung zurück.

Parameter: keine.

Gibt die folgenden Kennungsfelder als Werkzeugergebnis zurück: mcpSessionIdstack,userId,workSpacesSessionId, undfleet.

Weiterleitung von MCP-Tools

Mit der MCP-Tool-Weiterleitung können Agenten direkt mit Anwendungen und dem Betriebssystem arbeiten. Sie tätigen direkte MCP-Anrufe, anstatt Computertools zu verwenden. Wenn Sie die Tool-Weiterleitung aktivieren, sendet der MCP-Server Ihrem Agenten die in der WorkSpaces Anwendungssitzung eingerichteten Tools.

Tool-Weiterleitung einrichten

So richten Sie die MCP-Tool-Weiterleitung ein:

  1. Tool-Weiterleitung aktivieren — Aktivieren Sie die FORWARD_MCP_TOOLS Agentenaktion über die API- oder Konsoleneinstellungen.

  2. Stellen Sie sicher, dass die MCP-Serverkonfigurationsdatei vorhanden ist — Der Dienst sucht im folgenden Pfad nach einer Konfigurationsdatei:

    C:\ProgramData\NICE\dcv\mcp_server_redirection_config.json
  3. Konfigurieren Sie den MCP-Server auf dem WorkSpace Image — Die Konfigurationsdatei ist JSON mit einem einzigen Objekt der obersten mcpServers Ebene. Jeder Schlüssel ist ein eindeutiger Name, den Sie für einen Server wählen. Jeder Wert gibt an, wie dieser Server gestartet werden soll.

    { "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
    command Ja Zeichenfolge Absoluter Pfad zu der ausführbaren Datei, die gestartet werden soll.
    args Nein Zeichenfolgen-Array Argumente, die an die ausführbare Datei übergeben wurden.
  4. Überprüfen Sie die Verfügbarkeit des Tools — Wenn die Datei vorhanden ist, stellt der Dienst eine Verbindung zu den in der Datei aufgelisteten MCP-Servern her und leitet deren Tools weiter. Die weitergeleiteten Tools werden angezeigt, wenn der Agent die verfügbaren Tools auflistet.

  5. Konfiguration testen — Um zu überprüfen, ob die Tool-Weiterleitung funktioniert, führen Sie das mcpforwardingtester Skript aus. Sie finden es im Sample-Code-For-Workspaces-Agent-Access-Repository unter. GitHub Das Skript testet das MCP-Setup WorkSpace auf Ihrem. Es meldet, welche Tools bereit sind, und weist auf Probleme hin.

Anmerkung

Sowohl der IAM-Zugriff als auch die Serviceeinstellung müssen aktiviert sein, damit die Tool-Weiterleitung funktioniert. IAM-Berechtigungen setzen die Diensteinstellung nicht außer Kraft.

Überlegungen zur Weiterleitung von MCP-Tools

Beachten Sie bei der Konfiguration der MCP-Tool-Weiterleitung die folgenden Überlegungen:

  • Der Transport ist nur Standard 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 command und args werden unterstützt. Es gibt kein Feld für Umgebungsvariablen oder ein Arbeitsverzeichnis. Jeder Server erbt die Umgebung der Streaming-Sitzung und wird als Sitzungsbenutzer ausgeführt. Verwenden Sie absolute Pfade für command und für alle Pfadargumente.

  • Verwenden Sie Schrägstriche in Pfaden (z. B.C:/Program Files/my-mcp/server.exe). JSON behandelt den Backslash als Escape-Zeichen, sodass ein Windows-style Pfad, der mit einzelnen Backslashes geschrieben wurde, ungültig ist. Windows akzeptiert Schrägstriche für absolute Pfade, sodass nicht jedes Trennzeichen als maskiert werden muss. \\

  • Tool-call Auszeit. Jeder weitergeleitete Tool-Aufruf muss innerhalb von 5 Sekunden abgeschlossen sein. Der MCP-Server storniert Anrufe, die länger dauern, und gibt eine Fehlermeldung an den Agenten zurück. Entwickeln Sie weitergeleitete Tools so, dass sie schnell zurückkehren.

Wie weitergeleitete Tools dem Agenten angezeigt werden

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 Server weiter, der Eigentümer ist. Agentencode, der mit den Namen der Tools übereinstimmt, muss dieses Präfix erwarten.

IAM-Berechtigungen für die Weiterleitung von Tools

Die IAM-Aktion zum Aufrufen weitergeleiteter Tools ist. CallForwardedTool Um den Zugriff auf bestimmte Stacks zu beschränken, verwenden Sie den StackArn Bedingungsschlüssel:

{ "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-Signierung für MCP-Anfragen in Python verarbeitet.

Überwachen

Sie können die Agentenaktivität mithilfe der folgenden Dienste überwachen:

  • AWS CloudTrail— Ereignisse der Agentensitzungen 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— Betriebskennzahlen für Agentensitzungen sind unter verfügbar CloudWatch.

  • Amazon S3 — Wenn Sie den Screenshot-Speicher konfigurieren, sind Screenshots, die während der Agentensitzungen aufgenommen wurden, in dem von Ihnen angegebenen Amazon S3 S3-Bucket verfügbar. Screenshots werden mit dem folgenden Schlüsselformat gespeichert:

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

    Die UUID im Pfad ist die ID der WorkSpaces Anwendungs-Streaming-Sitzung.

Erste Schritte

Informationen zu den ersten Schritten mit dem WorkSpaces Applications MCP-Server finden Sie unter. Beginnen Sie damit, Agenten Zugriff auf Anwendungen zu WorkSpaces gewähren