Windows 365 for Agents MCP-Serverreferenz (Vorschau)

Important

  • Dies ist eine Vorschaufunktion.
  • Funktionen in der Vorschauversion sind nicht für den Produktionseinsatz gedacht und können eine eingeschränkte Funktionalität aufweisen. Für diese Features gelten ergänzende Nutzungsbedingungen. Die Features werden vor einer offiziellen Veröffentlichung zur Verfügung gestellt, sodass die Kundschaft frühzeitig Zugriff erhält und Feedback geben kann.

Windows 365 für Agents ist ein MCP-Server für die vollständige Betriebssteuerung eines Windows 365 Cloud-PCs. Nutzen Sie diesen MCP-Server, um eine echte Windows Umgebung durch Desktop-Interaktion (Maus, Tastatur, Screenshot, Befehlsausführung), Browser-Automatisierung über Microsoft Edge und semantische UI-Inspektion über Windows Benutzeroberflächenautomatisierung zu steuern.

Note

  • Bestehende Verbindungen, die frühere Versionen der Microsoft MCP-Server nutzen, werden weiterhin unterstützt.
  • Für alle neuen Verbindungen verwenden Sie den neuesten Windows 365 Agents MCP-Server, der Werkzeuge über Desktop-, Browser- und Barrierefreiheitsfunktionen hinweg bereitstellt.
  • Die Browserautomatisierung läuft auf Microsoft Edge. Edge startet automatisch beim ersten Browser-Toolaufruf. focus_browser kann auch Chrome oder Firefox anvisieren, aber DOM-Level-Browser-Tools funktionieren nur auf der Edge-Instanz.

Um mehr über Windows 365 für Agenten zu erfahren, siehe Windows 365 für Agentendokumentation.

Overview

Server ID Display name Description
mcp_W365AServer Windows 365 für Agents MCP-Server Volle operative Kontrolle über einen Windows 365 Cloud-PC, einschließlich Desktop-Interaktion, Browser-Automatisierung und UI-Inspektion.

Available tools

mcp_desktop_move_mouse

Bewegen Sie den Cursor in eine Bildschirmposition. Verwenden mcp_desktop_click Sie stattdessen, wenn Sie auf das Ziel klicken möchten.  Required parameters:

  • x: X-Koordinate in Bildschirmpixeln
  • y: Y-Koordinate in Bildschirmpixeln

mcp_desktop_click

Klicken Sie auf eine Position oder auf die aktuelle Cursorposition, wenn Koordinaten fehlen. Unterstützt Einklick, Doppelklick und alle fünf Maustasten. 

Optional parameters:

  • x: X-Koordinate in den Bildschirmpixeln (für die aktuelle Position weglassen)

  • y: Y-Koordinate in den Bildschirmpixeln (für die aktuelle Position weglassen)

  • button: Links, Rechts, Mitte, Vorwärts oder Rückwärts (standardmäßig Links)

  • clickCount: 1 = Einzelklick, 2 = Doppelklick (standardmäßig 1)

mcp_desktop_get_cursor_position

Gib die aktuellen Cursorkoordinaten zurück. No parameters. Gibt {cursorX, cursorY} zurück.

mcp_desktop_drag_mouse

Ziehe von einer Position zur nächsten. Nützlich zum Verschieben von Objekten, zur Größenänderung von Fenstern oder pixelpräzisem Scrollen. Required parameters:

  • startX: Start X-Koordinate.
  • startY: Start Y-Koordinate.
  • endX: Ende X-Koordinate.
  • endY: Ende Y-Koordinate. Optional parameters:
  • button: Links, Rechts oder Mitte (standardmäßig ist Links)

mcp_desktop_scroll

Scrolle an einer Position mit Notch-Einheiten (nicht Pixeln). Drei Kerben sind ungefähr eine Seite. 

Required parameters:

  • x: Scrollposition X

  • y: Scrollposition Y

Optional parameters:

  • deltaX: Horizontale Kerben, positiv = rechts (Standard 0)
  • deltaY: Vertikale Kerben, positiv = unten (Standard 0)

Note

Die Werte sind auf den Bereich [-20, 20] festgelegt. 

mcp_desktop_type_text

Tippe Text über die Tastatursimulation. Für Tastenkombinationen verwenden mcp_desktop_press_keysSie . Für Webformularfelder verwenden mcp_browser_typeSie . 

Required parameters:

  • text: Text zum Tippen

mcp_desktop_press_keys

Drücken Sie gleichzeitig eine Tastenkombination. Unterstützt Modifikatortasten, Funktionstasten und Standardtasten. 

Required parameters:

  • keys: Array von Schlüsselnamen, die zusammen gedrückt werden (zum Beispiel \["ctrl","c"\], \["alt","tab"\], ) \["ctrl","shift","s"\]

mcp_desktop_take_screenshot

Erfassen Sie den Vollbild- oder einen zugeschnittenen Bereich als PNG-Bild (base64-codiert). 

Optional parameters:

  • x: Linke Kante des Crop-Bereichs
  • y: Crop-Region oberer Rand
  • width: Flächenbreite des Crop-Bereichs
  • height: Höhe der Anbauregion

Note

Geben Sie alle vier Crop-Parameter zusammen an oder lassen Sie alle vier weg, um eine Vollbildaufnahme zu ermöglichen. 

mcp_desktop_analyze_screen

Führe OCR auf dem gesamten Bildschirm durch. No parameters. Gibt {fullText, averageConfidence, boxes[{text, confidence, x, y, width, height}], width, height} zurück.

mcp_desktop_get_screen_size

Stelle die Bildschirmauflösung zurück. No parameters. Gibt {width, height} zurück.

mcp_desktop_list_windows

Listen Sie alle sichtbaren Fenster mit ihren Titeln, Positionen und Maßen auf. No parameters. Gibt ein Array von {title, processName, handle, x, y, width, height}zurück.

mcp_desktop_activate_window

Bring ein Fenster in den Vordergrund mit einem unscharfen Titelkampf.

Required parameters:

  • titlePattern: Teilweisen Fenstertitel (kleinschreibungsunempfindliche Teilzeichenkette)

mcp_desktop_focus_browser

Fokussiere ein Browserfenster (Edge, Chrome oder Firefox), optional nach URL oder Titel gefiltert.

Optional parameters:

  • pattern: URL oder Titel-Substring zum Übereinstimmen (für jedes Browserfenster weggelassen)

mcp_desktop_close_window

Schließen Sie elegant ein Fenster durch einen unscharfen Titelkampf. Systemkritische Prozesse sind geschützt und können nicht geschlossen werden.

Required parameters:

  • titlePattern: Teilweiser Fenstertitel (80% Match-Schwelle). Gibt {matchedTitle, processName, closed} zurück.

mcp_desktop_execute_shell_command

Führe einen Shell-Befehl in einer Sandbox-Umgebung aus. Befehle werden anhand einer Erlaubnisliste validiert und gefährliche Muster werden blockiert.

Required parameters:

  • command: Befehl zur Ausführung

Optional parameters:

  • cwd: Arbeitsverzeichnis
  • timeoutMs: Auszeit in Millisekunden (Standard 30000, maximal 30000)

Note

  • Erlaubte Befehle: git, npm, dotnet, python, cargo, node, pip, dir, mkdir, del, copy, move, robocopy, findstr, where, und type.
  • Blockierte Muster umfassen Shell-Metacharaktere (|, ;, &, <, ), >Erweiterung (%VAR%)von Umweltvariablen, Interpreter-Eval-Flags (python -c oder node -e), git config --global, , npm -gpfadpräfixierte ausführbare Dateien, rm -rf, , sudosowie Festplatten-/Systembefehle.
  • stdout und stderr jeweils mit 32 KB abgeschnitten. Verwendung mcp_desktop_execute_python_code für beliebige Berechnungen. Gibt {stdout, stderr, exitCode, success, timedOut, resourceLimitsApplied} zurück.

mcp_desktop_execute_python_code

Führe Python-Code in einer Sandbox-Umgebung mit begrenzten Ressourcen aus. Ideal für Datenverarbeitung, Berechnungen, Datei-I/O und jede Berechnung, die über einfache Shell-Befehle hinausgeht.

Required parameters:

  • code: Python Code (maximal 262.144 Zeichen).

Optional parameters:

  • cwd: Arbeitsverzeichnis
  • timeoutMs: Auszeit in Millisekunden (Standard 30000, maximal 30000).

Gibt dasselbe Schema zurück wie mcp_desktop_execute_shell_command

mcp_desktop_wait_milliseconds

Pausieren Sie die Ausführung, damit Animationen oder Übergänge abgeschlossen werden können. Nicht in Umfrageschleifen verwenden – für mcp_browser_wait_for DOM-Abfragen. 

Required parameters:

  • ms: Wartezeit in Millisekunden (auf [0, 5000] geklemmt)

mcp_browser_navigate

Navigiere zu einer URL und warte, bis die Seite geladen ist. 

Required parameters:

  • url: Vollständige URL einschließlich Protokoll (zum Beispiel, https://example.com)

mcp_browser_back

Navigiere zurück im Browserverlauf. No parameters.

mcp_browser_forward

Navigieren Sie im Browserverlauf vorwärts. No parameters.

mcp_browser_reload

Laden Sie die aktuelle Seite neu. No parameters.

mcp_browser_get_url

Gib die URL der aktuellen Seite als einfache Zeichenkette zurück. No parameters.

mcp_browser_get_title

Gib den aktuellen Seitentitel als einfache Zeichenkette zurück. No parameters.

mcp_browser_get_text

Geben Sie den sichtbaren Seitentext als einfache Zeichenkette zurück. No parameters. Abgekürzt auf 512 KB.

mcp_browser_get_html

Geben Sie die vollständige Seite des HTML-Quellcodes als einfache Zeichenkette zurück. No parameters. Abgekürzt auf 512 KB.

mcp_browser_click

Klicken Sie mit dem CSS-Selektor auf ein DOM-Element. Zuverlässiger als koordinatenbasiertes Klicken für Webinhalte.

Required parameters:

  • Selektor: CSS-Selektor (zum Beispiel #submit-btn oder a.nav-link)

mcp_browser_type

Geben Sie Text mit einem CSS-Selektor in ein Formularelement ein.

Required parameters:

  • selector: CSS Selektor des Eingabeelements.
  • text: Text zum Tippen

mcp_browser_query_text

Holen Sie sich den Textinhalt des ersten Elements, das mit einem CSS-Selektor übereinstimmt.

Required parameters:

  • selector: CSS Selektor

mcp_browser_wait_for

Warte, bis ein DOM-Element erscheint. Nützlich für dynamische Inhalte, die asynchron laden.

Required parameters:

  • selector: Selektor CSS zum Warten

Optional parameters:

  • timeoutMs: Auszeit in Millisekunden (Standard 5000, maximal 30000)

mcp_browser_eval_js

Bewerten Sie einen JavaScript Ausdruck im Seitenkontext und geben Sie das Ergebnis als Zeichenkette zurück.

Required parameters:

  • expression: JavaScript Ausdruck, der eine Zeichenkette zurückgibt

Note

Wenn dein Ausdruck ein Objekt oder eine Zahl zurückgibt, konvertiere es explizit in eine Zeichenkette (zum Beispiel JSON.stringify(obj) oder .toString()).

mcp_browser_list_tabs

Liste alle offenen Tabs mit ihrer index, title, und URL auf. No parameters. Gibt ein Array von {index, title, url}zurück.

mcp_browser_switch_tab

Wechsle zu einem Tab über Index.

Required parameters:

  • tabIndex: 0-basierter Tab-Index

mcp_browser_new_tab

Öffne einen neuen Tab und navigiere optional zu einer URL.

Optional parameters:

  • url: URL zum Öffnen (leerer Tab, falls weggelassen)

Gibt {index, title, url} zurück.

mcp_browser_close_tab

Schließen Sie einen Tab nach Index.

Required parameters:

  • tabIndex: 0-basierter Tab-Index

mcp_browser_screenshot

Mach einen PNG-Screenshot nur vom Browser-Viewport (nicht vom Vollbild). No parameters. Gibt eine base64-kodierte PNG zurück.

mcp_accessibility_get_accessibility_tree

Holen Sie den UI-Elementbaum für das Vordergrundfenster ab. Jedes Element enthält Rolle, Name, Wert und Bildschirmkoordinaten.

Optional parameters:

  • maxDepth: Maximale Baumdurchquerungstiefe, 1-10 (Standard 3)
  • maxElements: Maximale Elemente zurückzugeben, 1-2000 (standardmäßig 500)

Gibt einen hierarchischen Baum von {Rolle, Name, Wert, x, y, Breite, Höhe, Kinder[...]} zurück.

mcp_accessibility_find_ui_element

Suchen Sie nach UI-Elementen nach Textinhalt, Barrierefreiheitsrolle oder Namen (kleinschreibungsunempfindliche Teilzeichenkette). Gibt Elemente zurück, die mit ihren klickbaren Bildschirmkoordinaten übereinstimmen.

Optional parameters:

  • text: Text zum Suchen (als Name verwendet, wenn Name weggelassen wird)
  • role: UI-Rollenfilter — Button, , TextBox, CheckBox, MenuItem, ComboBox, und mehr
  • name: Zugänglicher Name (hat Vorrang vor Text, wenn beide angegeben sind)
  • windowHandle: Zielfenster-Handle (null = Vordergrundfenster)

Note

Mindestens eine Bezeichnung mit Text, Rolle oder Namen muss angegeben werden. Gibt ein Array von {role, name, value, x, y, width, height}zurück.

Key features

Desktop interaction

  • Klick, Doppelklick, Rechtsklick und Fünf-Tasten-Maussteuerung.
  • Pixelpräzises Drag & Drop.
  • Notch-basiertes Scrollen (drei Kerben ≈ einer Seite).
  • Tastaturtippen und Mehrtasten-Kombinationen.
  • Cursor-Positionsverfolgung.
  • Bildschirmauflösungserkennung.

Bildschirmaufnahme und Analyse

  • Vollbild- oder beschnittene PNG-Screenshots.
  • OCR des Vollbildschirms mit pro-Region Vertrauenswerten und Begrenzungsboxen.
  • Bildschirme nur im Browser-Viewport für Webinhalte.

Window management

  • Zähle alle sichtbaren Fenster mit Positionen und Maßen auf.
  • Aktiviere Windows durch unscharfes Titelmatch.
  • Fokus-Browser-Fenster (Edge, Chrome, Firefox) können optional nach URL oder Titel gefiltert werden.
  • Elegantes Fensterschließen mit Schutz für systemkritische Prozesse.

Command execution

  • Sandbox-Shell-Befehle mit einer Erlaubnisliste (git, npm, dotnet, python, cargo, node, pip, dir, mkdir, del, copy, move, robocopy, findstr, where, type).
  • Sandbox-Python Ausführung bis zu 262.144 Zeichen Code.
  • Arbeitsverzeichnis und Timeout-Steuerung pro Anruf (maximal 30 Sekunden).
  • Ressourcenlimits und gehärtete Blocklisten gegen Shell-Metacharaktere, Eval-Flags, Evil-Eskalation und destruktive Operationen.

Browser automation

  • Navigieren, zurück, vorwärts, nachladen.
  • Lesen, SeitenURL, Titel, sichtbarer Text (512 KB Kappe) und vollständiges HTML (512 KB Kopf).
  • DOM-Level-Klick-, Tipp- und Textabfrage mittels CSS-Selektor.
  • Warte auf dynamische Elemente mit konfigurierbarem Timeout.
  • Bewerten Sie JavaScript Ausdrücke im Seitenkontext.
  • Multi-Tab-Verwaltung: Liste, Wechsel, Öffnen, Schließen.
  • Läuft auf Microsoft Edge, startet automatisch bei der ersten Benutzung.

UI accessibility

  • Holen Sie das Windows Benutzeroberflächenautomatisierung tree für das Vordergrundfenster mit konfigurierbarer Tiefe und Elementanzahl ab.
  • Finde UI-Elemente nach Text, Rolle oder zugänglichem Namen.
  • Gibt klickbare Bildschirmkoordinaten für präzise Zielerfassung von Buttons, Textfeldern, Kontrollkästchen, Menüpunkten und Kombinationsfeldern zurück.

Zeitsteuerung und Synchronisation

  • Kurze One-Shot-Pausen ( mcp_desktop_wait_milliseconds maximal fünf Sekunden).
  • DOM-Level-Abfrage ( mcp_browser_wait_for maximal 30 Sekunden).

Notes

  • Alle Koordinaten befinden sich in Bildschirmpixeln mit (0,0) in der oberen linken Ecke. Koordinaten aus mcp_desktop_take_screenshot, mcp_desktop_analyze_screen, , mcp_accessibility_find_ui_elementund mcp_desktop_list_windows alle teilen denselben Koordinatenraum.
  • Eine Cursor-Notfallsicherung ist aktiv: Bewegt sich der Cursor innerhalb von fünf Pixeln um eine Bildschirmecke, werden die Mausoperationen abgebrochen. Vermeiden Sie es, die äußersten Ränder des Bildschirms anzuvisieren.
  • Shell-Pipe-Operatoren (|), Semikolons (;)), Ampersands (&) und Ausgangsumleitung (>, <) werden blockiert. Um die Befehlsausgabe zu transformieren, erfassen Sie sie und verarbeiten sie mit mcp_desktop_execute_python_code.
  • Wenn Interpreter-Eval-Flags blockiert sind oder wenn python -c "..." und node -e "..." abgelehnt werden, kannst du mcp_desktop_execute_python_code für Python Code verwenden oder zuerst Code in eine Datei schreiben.
  • Der Befehl stdout/stderr ist jeweils um 32 KB verkürzt. Verwenden Sie Flags, um die ausführliche Ausgabe zu begrenzen (zum Beispiel ), git log --oneline -20oder leiten Sie zu einer Datei um und lesen sie separat.
  • Die maximale Auszeit beträgt mcp_desktop_execute_shell_commandmcp_desktop_execute_python_code 30 Sekunden. Für längere Aufgaben unterteilen Sie sie in kleinere Schritte oder starten Sie einen Hintergrundprozess aus Python und Poll.
  • Es gibt kein dediziertes Lese-/Schreibtool für Dateien. Dateien mit mcp_desktop_execute_shell_command mit dem Befehl type lesen; Dateien mit mcp_desktop_execute_python_code mit der eingebauten Datei-I/O von Python schreiben. Die Shell-Ausgangsumleitung (>, >>) wird blockiert.
  • mcp_browser_eval_js gibt immer eine Zeichenkette zurück. Konvertiere Objekte oder Zahlen explizit, bevor du zurückgibst.
  • Browser-DOM-Tools (mcp_browser_click, mcp_browser_type, mcp_browser_eval_js usw.) funktionieren nur auf der Microsoft Edge Instanz.  mcp_desktop_focus_browser kann Chrome- oder Firefox-Fenster fokussieren, aber DOM-Tools zielen diese nicht an.
  • mcp_desktop_take_screenshot Für eine Vollbildaufnahme benötigt man alle vier Crop-Parameter (x, y, Breite, Höhe) zusammen oder gar keine.
  • mcp_desktop_scroll Verwendet Notch-Einheiten (geklemmt auf [-20, 20]), keine Pixel. Drei Kerben sind ungefähr eine Seite.
  • mcp_accessibility_find_ui_element erfordert mindestens einen Text mit Text, Rolle oder Namen. Wenn sowohl Text als auch Name angegeben werden, hat Name Vorrang.

Häufige Anwendungsfälle

Füllen Sie ein Webformular aus

  • Rufen Sie auf, mcp_browser_navigate um die Zielseite zu öffnen.
  • Rufen Sie an mcp_browser_wait_for , um auf das Laden des Formulars zu warten.
  • Rufen Sie mcp_browser_type auf, um jedes Feld per CSS-Selektor auszufüllen.
  • Rufen Sie mcp_browser_click an, um das Formular einzureichen.
  • Rufen Sie an mcp_browser_wait_for , um auf das Bestätigungselement zu warten.
  • Rufen Sie an mcp_browser_get_text , um das Ergebnis zu lesen und zu bestätigen.

Automatisieren Sie eine Desktop-Anwendung

  • Rufen Sie mcp_desktop_activate_window an, um die Anwendung in den Vordergrund zu rücken.
  • Rufen Sie mcp_desktop_take_screenshot an, um den aktuellen Zustand zu erfassen.
  • Rufen Sie mcp_accessibility_find_ui_element an, um einen Button oder ein Feld mit Namen zu finden.
  • Rufen Sie die gemeldeten Koordinaten des Elements an mcp_desktop_click .
  • Rufen Sie mcp_desktop_type_text an, um Daten einzugeben.
  • Rufen Sie mcp_desktop_press_keys nach Verknüpfungen (zum Beispiel ["strg", "s"] zum Speichern).
  • Rufen Sie an mcp_desktop_take_screenshot , um das Ergebnis zu überprüfen.

Daten von einer Webseite extrahieren

  • Rufen Sie mcp_browser_navigate an, um die Seite zu öffnen.
  • Rufen Sie mcp_browser_get_text auf, um sichtbaren Textinhalte zu extrahieren.
  • Ruf auf, mcp_desktop_execute_python_code um die extrahierten Daten zu parsen und zu verarbeiten.
  • Aufruf mcp_browser_eval_js zur Abfrage bestimmter Werte über JavaScript, wenn Textextraktion nicht ausreicht.

Ausführen von Entwicklungsaufgaben

  • Rufen Sie mcp_desktop_execute_shell_command , npm installgit pull, und dotnet build.
  • Aufruf mcp_desktop_take_screenshot zum Erfassen des Build-Outputs.
  • Rufen Sie an mcp_desktop_execute_python_code , um Protokolle oder Testergebnisse zu analysieren.
  • Rufe auf, mcp_browser_navigate um einen lokalen Entwicklerserver im Browser zu öffnen.
  • Rufen Sie mcp_browser_screenshot auf, um die gerenderte Seite zu erfassen.

Lese- und Schreibdateien

  • Lies eine Datei mit mcp_desktop_execute_shell_command .type C:\path\to\file.txt
  • Schreibe eine Datei mit mcp_desktop_execute_python_code mit Python open(...) und write(...).
  • Überprüfen Sie dies mit mcp_desktop_execute_shell_commanddir C:\path\to\output.txt.
  • Ruf an, mcp_accessibility_get_accessibility_tree um die vollständige UI-Struktur zu verstehen.
  • Ruf auf, mcp_accessibility_find_ui_element um eine bestimmte Steuerung zu finden (zum Beispiel Rolle: "MenuItem", Name: "Einstellungen").
  • Rufen Sie mit den angegebenen Koordinaten des Elements an mcp_desktop_click .
  • Ruf erneut an mcp_accessibility_find_ui_element , um die nächste Steuerung im Dialog zu finden.
  • Rufen mcp_desktop_type_text Sie an oder mcp_desktop_click interagieren Sie mit ihm.

Halten Sie eine langanhaltende Sitzung am Leben

  • Senden Sie jeden MCP-Antrag mindestens alle 30 Minuten, um eine Leerlauf-Räumung zu verhindern.
  • mcp_desktop_get_screen_size ist leicht und funktioniert gut als Heartbeat.