Référence serveur MCP de Windows 365 pour agents (aperçu)

Important

  • Il s’agit d’une fonctionnalité en version préliminaire.
  • Les fonctionnalités en version préliminaire ne sont pas destinées à une utilisation en production et peuvent être restreintes. Ces fonctionnalités sont soumises à des conditions d’utilisation supplémentaires, et sont disponibles avant publication officielle afin que les clients puissent y accéder de façon anticipée et fournir des commentaires.

Windows 365 for Agents est un serveur MCP pour le contrôle opérationnel total d’un PC cloud Windows 365. Utilisez ce serveur MCP pour piloter un environnement Windows réel via l’interaction sur le bureau (souris, clavier, capture d’écran, exécution de commandes), l’automatisation du navigateur via Microsoft Edge, et l’inspection sémantique de l’interface utilisateur via Windows UI Automation.

Note

  • Les connexions existantes utilisant les versions précédentes des serveurs MCP de Microsoft restent prises en charge.
  • Pour toutes les nouvelles connexions, utilisez le dernier serveur MCP des agents Windows 365, qui expose les outils à travers les capacités de bureau, navigateur et accessibilité.
  • L’automatisation des navigateurs fonctionne sur Microsoft Edge. Edge se lance automatiquement dès le premier appel à l’outil du navigateur. focus_browser peuvent aussi cibler Chrome ou Firefox, mais les outils de navigateur au niveau DOM ne fonctionnent que sur l’instance Edge.

Pour en savoir plus sur Windows 365 pour les agents, voir Windows 365 pour la documentation des agents.

Overview

Server ID Display name Description
mcp_W365AServer Windows 365 pour agents serveur MCP Contrôle opérationnel complet d’un PC cloud Windows 365, incluant l’interaction sur le bureau, l’automatisation du navigateur et l’inspection de l’interface utilisateur.

Available tools

mcp_desktop_move_mouse

Déplacez le curseur à une position d’écran. Utilisez-les mcp_desktop_click plutôt si vous comptez cliquer sur la destination.  Required parameters:

  • x: Coordonnée X dans les pixels de l’écran
  • y: Coordonnée Y dans les pixels de l’écran

mcp_desktop_click

Cliquez sur une position, ou sur la position actuelle du curseur si les coordonnées sont omises. Prend en charge le simple clic, le double-clic et les cinq boutons de la souris. 

Optional parameters:

  • x: coordonnée X dans les pixels de l’écran (omettre la position actuelle)

  • y: Coordonnée Y dans les pixels de l’écran (omettre la position actuelle)

  • button: Gauche, Droite, Milieu, Avant ou Arrière (par défaut Gauche)

  • clickCount: 1 = clic simple, 2 = clic double (par défaut 1)

mcp_desktop_get_cursor_position

Retournez les coordonnées du curseur courantes. No parameters. Returns {cursorX, cursorY}.

mcp_desktop_drag_mouse

Faites glisser d’une position à l’autre. Utile pour déplacer des objets, redimensionner des fenêtres ou faire défiler avec une précision de pixels. Required parameters:

  • startX: Coordonnée de départ X.
  • startY: Coordonnée Y de départ.
  • endX: Fin de la coordonnée X.
  • endY: Fin de la coordonnée Y. Optional parameters:
  • button: Gauche, Droite ou Milieu (par défaut est Gauche)

mcp_desktop_scroll

Faites défiler à une position en utilisant des unités d’encoche (pas des pixels). Trois encoches correspondent à environ une page. 

Required parameters:

  • x: Position de défilement X

  • y: Position de défilement Y

Optional parameters:

  • deltaX: Encoches horizontales, positif = droite (par défaut 0)
  • deltaY: Encoches verticales, positif = bas (par défaut 0)

Note

Les valeurs sont fixées à la plage [-20, 20]. 

mcp_desktop_type_text

Tapez du texte via une simulation au clavier. Pour les raccourcis clavier, utilisez mcp_desktop_press_keys. Pour les champs de formulaire web, utilisez mcp_browser_type

Required parameters:

  • text: Texte à taper

mcp_desktop_press_keys

Appuyez simultanément sur une combinaison de touches. Prend en compte les touches modificatrices, les touches de fonction et les touches standards. 

Required parameters:

  • keys: Tableau de noms de clés à presser ensemble (par exemple, \["ctrl","c"\], \["alt","tab"\], \["ctrl","shift","s"\])

mcp_desktop_take_screenshot

Capturez l’écran complet ou une région recadrée sous forme d’image PNG (encodée base64). 

Optional parameters:

  • x: Bord gauche de la région de culture
  • y: Bord supérieur de la région de culture
  • width: Largeur de la région de culture
  • height: Hauteur de la région des cultures

Note

Indiquez les quatre paramètres de recadrage ensemble, ou omettez les quatre pour une capture en plein écran. 

mcp_desktop_analyze_screen

Effectuez un OCR sur tout l’écran. No parameters. Retourne {fullText, averageConfidence, boxes[{text, confidence, x, y, width, height}], width, height}.

mcp_desktop_get_screen_size

Retournez la résolution de l’écran. No parameters. Retourne {width, height}.

mcp_desktop_list_windows

Listez toutes les fenêtres visibles avec leurs titres, positions et dimensions. No parameters. Retourne un tableau de {title, processName, handle, x, y, width, height}.

mcp_desktop_activate_window

Mettez une fenêtre au premier plan avec un match de titre flou.

Required parameters:

  • titlePattern: Titre partiel de fenêtre (sous-chaîne insensible à la majuscule)

mcp_desktop_focus_browser

Concentrez une fenêtre de navigateur (Edge, Chrome ou Firefox), filtrée éventuellement par URL ou titre.

Optional parameters:

  • pattern: URL ou sous-chaîne de titre correspondante (à omettre dans toute fenêtre de navigateur)

mcp_desktop_close_window

Fermer gracieusement une fenêtre par un match de championnat flou. Les processus critiques pour le système sont protégés et ne peuvent pas être fermés.

Required parameters:

  • titlePattern: Titre partiel de la fenêtre (80% seuil de correspondance). Retourne {matchedTitle, processName, closed}.

mcp_desktop_execute_shell_command

Lance une commande shell dans un environnement en bac à sable. Les commandes sont validées par rapport à une liste de permis et les motifs dangereux sont bloqués.

Required parameters:

  • command: Commande d’exécuter

Optional parameters:

  • cwd: Annuaire de travail
  • timeoutMs: Temps d’attente en millisecondes (par défaut 30000, maximum 30000)

Note

  • Commandes autorisées : git, npm, dotnet, python, cargo, node, pip, dir, mkdir, del, copy, move, robocopy, findstr, where, et type.
  • Les motifs bloqués incluent les métacaractères de shell (|, ;, &, <, ), >l’expansion (%VAR%)des variables d’environnement, les drapeaux d’évaluation de l’interpréteur (python -c ou node -e), git config --global, , npm -gles exécutables avec préfixe de chemin, rm -rf, sudo, et les commandes disque/système.
  • stdout et stderr sont chacune tronquées à 32 Ko. À utiliser mcp_desktop_execute_python_code pour des calculs arbitraires. Retourne {stdout, stderr, exitCode, success, timedOut, resourceLimitsApplied}.

mcp_desktop_execute_python_code

Exécutez du code Python dans un environnement bac à sable avec des limites de ressources. Idéal pour le traitement de données, les calculs, les entrées/sorties de fichiers et tout calcul dépassant les simples commandes shell.

Required parameters:

  • code : code Python (max 262 144 caractères).

Optional parameters:

  • cwd: Annuaire de travail
  • timeoutMsTemps d’attente en millisecondes (par défaut 30 000, maximum 30 000).

Retourne le même schéma que mcp_desktop_execute_shell_command

mcp_desktop_wait_milliseconds

Mettez l’exécution en pause pour permettre la réalisation des animations ou transitions. Ne pas utiliser dans les boucles de sondage — utiliser mcp_browser_wait_for pour le sondage DOM. 

Required parameters:

  • ms: Durée d’attente en millisecondes (serrée à [0, 5000])

mcp_browser_navigate

Naviguez vers une URL et attendez que la page se charge. 

Required parameters:

  • url: URL complète incluant le protocole (par exemple, https://example.com)

mcp_browser_back

Retournez dans l’historique du navigateur. No parameters.

mcp_browser_forward

Avancez dans l’historique du navigateur. No parameters.

mcp_browser_reload

Rechargez la page actuelle. No parameters.

mcp_browser_get_url

Retournez l’URL de la page actuelle sous forme de chaîne simple. No parameters.

mcp_browser_get_title

Retournez le titre de la page courant sous forme de chaîne simple. No parameters.

mcp_browser_get_text

Retournez le texte visible de la page sous forme de chaîne de caractères simples. No parameters. Tronqué à 512 Ko.

mcp_browser_get_html

Retournez la source HTML de la page entière sous forme de chaîne simple. No parameters. Tronqué à 512 Ko.

mcp_browser_click

Cliquez sur un élément DOM à côté du sélecteur CSS. Plus fiable que le clic basé sur des coordonnées pour le contenu web.

Required parameters:

  • sélecteur : sélecteur CSS (par exemple, #submit-btn ou a.nav-link)

mcp_browser_type

Tape du texte dans un élément de formulaire avec un sélecteur CSS.

Required parameters:

  • selector: CSS sélecteur de l’élément d’entrée.
  • text: Texte à taper

mcp_browser_query_text

Faites correspondre le contenu du texte du premier élément à un sélecteur CSS.

Required parameters:

  • selector: CSS sélecteur

mcp_browser_wait_for

Attendez qu’un élément DOM apparaisse. Utile pour le contenu dynamique qui se charge de façon asynchrone.

Required parameters:

  • selector: CSS sélectionneur à attendre

Optional parameters:

  • timeoutMs: Temps d’attente en millisecondes (par défaut 5000, maximum 30000)

mcp_browser_eval_js

Évaluer une JavaScript expression dans le contexte de la page et retourner le résultat sous forme de chaîne.

Required parameters:

  • expression: JavaScript expression qui retourne une chaîne

Note

Si votre expression retourne un objet ou un nombre, convertissez-le explicitement en une chaîne (par exemple, JSON.stringify(obj) ou .toString()).

mcp_browser_list_tabs

Listez tous les onglets ouverts avec leur index, title, URL et . No parameters. Retourne un tableau de {index, title, url}.

mcp_browser_switch_tab

Passez à un onglet par index.

Required parameters:

  • tabIndex: index de tabulation basé sur 0

mcp_browser_new_tab

Ouvrez un nouvel onglet, en naviguant éventuellement vers une URL.

Optional parameters:

  • url: URL à ouvrir (onglet vide si omis)

Retourne {index, title, url}.

mcp_browser_close_tab

Fermez un onglet par index.

Required parameters:

  • tabIndex: index de tabulation basé sur 0

mcp_browser_screenshot

Capturez une capture d’écran PNG uniquement de la fenêtre du navigateur (pas en plein écran). No parameters. Retourne un PNG codé en base64.

mcp_accessibility_get_accessibility_tree

Récupérez l’arbre d’éléments de l’interface utilisateur pour la fenêtre au premier plan. Chaque élément inclut son rôle, son nom, sa valeur et ses coordonnées d’écran.

Optional parameters:

  • maxDepth: Profondeur maximale de traversée de l’arbre, 1-10 (par défaut 3)
  • maxElements: Nombre maximal d’éléments à revenir, 1-2000 (par défaut 500)

Retourne un arbre hiérarchique de {rôle, nom, valeur, x, y, largeur, hauteur, enfants[...]}.

mcp_accessibility_find_ui_element

Recherchez les éléments de l’interface utilisateur par contenu textuel, rôle d’accessibilité ou nom (sous-chaîne insensible aux majuscules). Retourne des éléments correspondants avec leurs coordonnées d’écran cliquables.

Optional parameters:

  • text: Texte à rechercher (utilisé comme nom si nom omis du nom)
  • role: filtre de rôle UI — Button, TextBox, CheckBox, MenuItem, ComboBox, et plus encore
  • name: Nom accessible (prévaut sur le texte si les deux sont fournis)
  • windowHandle: Poignée de fenêtre cible (nul = fenêtre au premier plan)

Note

Au moins un texte, un rôle ou un nom doit être fourni. Retourne un tableau de {role, name, value, x, y, width, height}.

Key features

Desktop interaction

  • Clic rapide, double-clic, clic droit et contrôle de souris à cinq boutons.
  • Glisser-déposer avec une précision pixelisée.
  • Défilement par encoches (trois encoches ≈ une page).
  • Clavier clavier et raccourcis multi-touches.
  • Suivi de la position du curseur.
  • Détection de la résolution d’écran.

Capture d’écran et analyse

  • Captures d’écran en plein écran ou recadrées en PNG.
  • OCR de l’écran plein écran avec les scores de confiance par région et les boîtes englobantes.
  • Captures d’écran uniquement pour le contenu web dans la fenêtre du navigateur.

Window management

  • Énumérez toutes les fenêtres visibles avec leurs positions et dimensions.
  • Activez Windows par correspondance de titre floue.
  • Concentrez-vous sur les fenêtres du navigateur (Edge, Chrome, Firefox) filtrées en option par URL ou titre.
  • Fermeture élégante de fenêtre avec protection contre les processus critiques pour le système.

Command execution

  • Commandes de shell en mode sandbox avec une liste de permis (git, npm, dotnet, python, cargo, node, pip, dir, mkdir, del, copy, move, robocopy, findstr, where, type).
  • En mode Python en mode bac à sable, l’exécution jusqu’à 262 144 caractères de code.
  • Répertoire de travail et contrôle du délai par appel (maximum 30 secondes).
  • Limites de ressources et liste de blocage renforcée contre les métacaractères de shell, flags d’évaluation, escalade de privilèges et opérations destructrices.

Browser automation

  • Naviguer, reculer, recharger, recharger.
  • Lisez l’URL de la page, le titre, le texte visible (limite de 512 Ko) et le HTML complet (limite de 512 Ko).
  • Requête de clic, de saisie et de texte au niveau DOM par sélecteur CSS.
  • Attendez les éléments dynamiques avec un délai d’expiration configurable.
  • Évaluer JavaScript les expressions dans le contexte de la page.
  • Gestion multi-onglets : liste, switch, ouverture, fermeture.
  • Tourne sur Microsoft Edge, se lance automatiquement dès la première utilisation.

UI accessibility

  • Récupérer le Windows UI Automation tree pour la fenêtre au premier plan avec la profondeur et le nombre d’éléments configurables.
  • Trouvez les éléments de l’interface utilisateur par texte, rôle ou nom accessible.
  • Retourne des coordonnées cliquables à l’écran pour un ciblage précis des boutons, des boîtes de texte, des cases à cocher, des éléments de menu et des combos.

Synchronisation et chronométrage

  • Courtes pauses d’un coup ( mcp_desktop_wait_milliseconds max cinq secondes).
  • Polling au niveau DOM via mcp_browser_wait_for (maximum 30 secondes).

Notes

  • Toutes les coordonnées sont dans des pixels d’écran avec (0,0) en haut à gauche. Les coordonnées de mcp_desktop_take_screenshot, mcp_desktop_analyze_screen, mcp_accessibility_find_ui_element, et mcp_desktop_list_windows partagent toutes le même espace de coordonnées.
  • Un système de sécurité du curseur est actif : si le curseur se déplace à moins de cinq pixels d’un coin d’écran, les opérations à la souris sont annulées. Évitez de cibler les bords extrêmes de l’écran.
  • Les opérateurs de pipe à coquille (|), les points-virgules (;), les esperluettes (&) et la redirection de sortie (>, <) sont bloqués. Pour transformer la sortie de commande, capturez-la et traitez-la avec mcp_desktop_execute_python_code.
  • Si les indicateurs d’évaluation de l’interpréteur sont bloqués ou si python -c "..." et node -e "..." sont rejetés, vous pouvez utiliser mcp_desktop_execute_python_code pour Python code, ou écrire du code dans un fichier en premier.
  • La commande stdout/stderr est tronquée à 32 Ko chacune. Utilisez des drapeaux pour limiter la quantité de mots de sortie (par exemple, git log --oneline -20) ou redirigez vers un fichier et lisez-le séparément.
  • Le temps d’attente maximum pour mcp_desktop_execute_shell_command et mcp_desktop_execute_python_code est de 30 secondes. Pour un travail plus long, divisez en étapes plus petites ou lancez un processus en arrière-plan depuis Python et faites un sondage.
  • Il n’existe pas d’outil dédié à la lecture/écriture de fichiers. Lire les fichiers avec mcp_desktop_execute_shell_command en utilisant la commande type ; écrire des fichiers avec mcp_desktop_execute_python_code en utilisant l'E/S intégrée de Python. La redirection de sortie de la coque (>, >>) est bloquée.
  • mcp_browser_eval_js On retourne toujours une corde. Convertir explicitement les objets ou les nombres avant de revenir.
  • Les outils DOM du navigateur (mcp_browser_click, mcp_browser_type, mcp_browser_eval_js, etc.) fonctionnent uniquement sur l’instance Microsoft Edge.  mcp_desktop_focus_browser peut focaliser les fenêtres Chrome ou Firefox, mais les outils DOM ne les ciblent pas.
  • mcp_desktop_take_screenshot nécessite les quatre paramètres de recadrage (x, y, largeur, hauteur) ensemble, ou aucun pour une capture en plein écran.
  • mcp_desktop_scroll Utilise des unités d’encoche (serrées à [-20, 20]), pas des pixels. Trois encoches correspondent à environ une page.
  • mcp_accessibility_find_ui_element nécessite au moins un texte, un rôle ou un nom. Lorsque le texte et le nom sont fournis, le nom a priorité.

Cas d’utilisation courants

Remplissez un formulaire web

  • Appelez mcp_browser_navigate pour ouvrir la page cible.
  • Appelez mcp_browser_wait_for pour attendre le chargement du formulaire.
  • Appelez mcp_browser_type pour remplir chaque champ par le sélecteur CSS.
  • Appelez mcp_browser_click pour soumettre le formulaire.
  • Appelez mcp_browser_wait_for pour attendre l’élément de confirmation.
  • Appelez mcp_browser_get_text pour lire et vérifier le résultat.

Automatiser une application de bureau

  • Appelez mcp_desktop_activate_window pour mettre la candidature au premier plan.
  • Appelez mcp_desktop_take_screenshot pour capturer l’état actuel.
  • Appelez mcp_accessibility_find_ui_element pour localiser un bouton ou un champ par nom.
  • Appelez mcp_desktop_click les coordonnées rapportées de l’élément.
  • Appelez mcp_desktop_type_text pour saisir des données.
  • Demandez mcp_desktop_press_keys des raccourcis (par exemple, ["ctrl », « s"] pour sauvegarder).
  • Appelez mcp_desktop_take_screenshot pour vérifier le résultat.

Extraire des données d’une page web

  • Appelez mcp_browser_navigate pour ouvrir la page.
  • Appel mcp_browser_get_text pour extraire le contenu textuel visible.
  • Appel mcp_desktop_execute_python_code pour analyser et traiter les données extraites.
  • Appel mcp_browser_eval_js pour interroger des valeurs spécifiques via JavaScript lorsque l’extraction de texte ne suffit pas.

Exécuter des tâches de développement

  • Appel mcp_desktop_execute_shell_command pour git pull, npm install, et dotnet build.
  • Appel mcp_desktop_take_screenshot pour capturer la sortie de la compilation.
  • Appelez mcp_desktop_execute_python_code pour analyser des journaux ou des résultats de tests.
  • Appel mcp_browser_navigate pour ouvrir un serveur de développement local dans le navigateur.
  • Appelez mcp_browser_screenshot pour capturer la page rendue.

Lire et écrire des fichiers

  • Lis un fichier avec mcp_desktop_execute_shell_command en utilisant type C:\path\to\file.txt.
  • Écrivez un fichier avec mcp_desktop_execute_python_code en utilisant les Python open(...) et write(...).
  • Vérifiez en mcp_desktop_execute_shell_command utilisant dir C:\path\to\output.txt.
  • Appelez mcp_accessibility_get_accessibility_tree pour comprendre toute la structure de l’interface utilisateur.
  • Appel mcp_accessibility_find_ui_element pour trouver un contrôle spécifique (par exemple, rôle : « MenuItem », nom : « Paramètres »).
  • Appelez mcp_desktop_click en utilisant les coordonnées rapportées par l’élément.
  • Rappelle mcp_accessibility_find_ui_element pour trouver la commande suivante dans la conversation.
  • Appeler mcp_desktop_type_text ou mcp_desktop_click interagir avec.

Gardez une session longue en vie

  • Envoyez toute demande MCP au moins une fois toutes les 30 minutes pour éviter l’expulsion inactive.
  • mcp_desktop_get_screen_size est léger et fonctionne bien comme battement de cœur.