- Le serveur MCP Safari connecte un agent de code à une véritable fenêtre Safari, afin qu’il puisse vérifier directement ce qui s’affiche dans le navigateur pendant le développement et le débogage web
- L’agent peut accéder au DOM, aux requêtes réseau, aux captures d’écran et à la sortie de la console pour vérifier le rendu réel et l’expérience utilisateur, difficiles à déduire à partir du seul code
- Pour des tâches où les différences entre navigateurs sont importantes, comme la compatibilité Safari, les performances, l’accessibilité ou la validation de l’état de formulaires et de checkout, cela réduit les allers-retours entre fenêtres et le besoin d’écrire des prompts détaillés
- Il fournit des outils de contrôle des onglets, de navigation par URL, d’exécution de JavaScript, d’inspection des requêtes réseau, d’extraction du contenu de la page, d’interaction avec le DOM, de capture d’écran et d’émulation du viewport et des médias
- Le serveur s’exécute uniquement sur la machine locale et n’effectue aucun appel réseau de son côté, mais les données capturées depuis la page sont transmises directement à l’agent utilisé par l’utilisateur, ce qui impose d’utiliser un agent de confiance
Rôle du serveur MCP Safari
- Le serveur MCP Safari a été ajouté à Safari Technology Preview 247
- Il s’agit d’un serveur Model Context Protocol pour les développeurs web, qui relie un agent à une fenêtre du navigateur Safari
- Il permet à l’agent de voir comment le code est réellement rendu dans le navigateur, ce qui réduit l’écart entre l’analyse du code et l’observation de l’état du navigateur
- Tout client compatible MCP peut se connecter au serveur MCP Safari
- Un agent connecté peut reproduire plus fidèlement ce que l’utilisateur voit dans le navigateur
- accès au DOM
- accès aux requêtes réseau
- accès aux captures d’écran
- accès à la sortie de la console
Comment il réduit les cycles de débogage
- Le débogage web classique consiste à repérer un problème dans le navigateur, vérifier la console et l’onglet des styles, puis revenir au code pour corriger, dans une boucle répétitive
- Même avec un agent, il faut souvent prendre une capture d’écran, expliquer le problème, puis revenir au navigateur, au prompt et à l’agent si la correction est incomplète
- Le serveur MCP Safari permet à l’agent de vérifier directement l’état du navigateur, ce qui réduit les changements de contexte et la charge liée à la rédaction de prompts détaillés
- Même si l’utilisateur ne décrit pas parfaitement la situation dans son prompt, l’agent peut poursuivre la tâche à partir des informations observables dans Safari
Principaux cas d’usage
-
Développement web dans Safari
- L’agent peut vérifier non seulement le code, mais aussi le rendu réel dans Safari
-
Amélioration de la compatibilité Safari
- Tester dans un seul navigateur peut faire passer à côté de bugs potentiels dans les autres
- L’agent peut ouvrir le site dans Safari et examiner les computed styles, la mise en page et les écarts par rapport au comportement attendu
-
Analyse des performances
- En évaluant du JavaScript dans la page, il peut faire remonter des indicateurs de performance comme le navigation timing ou le resource load time
- Une fois les points de ralentissement identifiés, il devient plus simple de cibler les correctifs
-
Vérification de l’accessibilité
- Il peut repérer des problèmes d’accessibilité courants comme des labels manquants, des attributs ARIA inadaptés ou un contraste insuffisant
-
Validation de l’état utilisateur
- Il peut vérifier l’état d’un formulaire, rechercher des éléments via des sélecteurs, confirmer des interactions spécifiques ou afficher différents états d’un parcours de checkout
Outils fournis
browser_console_messages : renvoie les logs de console mis en mémoire tampon pour l’onglet courant ou un onglet donné
browser_dialogs : permet de consulter la liste des boîtes de dialogue du navigateur et de traiter les réponses
- prend en charge accept, dismiss et la saisie de texte pour les prompts JavaScript
create_tab, close_tab, switch_tab, list_tabs : permettent de créer, fermer, changer et lister les onglets du navigateur
navigate_to_url : ouvre une URL et renvoie le contenu de la page chargée
page_info : permet de vérifier l’URL, le title et l’état de chargement de la page courante
evaluate_javascript : exécute du code JavaScript dans la page et renvoie le résultat
list_network_requests : affiche un résumé des requêtes réseau de l’onglet courant
- avec URL, method, status et timing
get_network_request : récupère les informations détaillées d’une requête réseau donnée
- avec headers, body et timing
get_page_content : extrait le contenu textuel de la page dans plusieurs formats, comme markdown, HTML ou JSON
page_interactions : enchaîne des interactions DOM comme click, type, scroll, hover ou keyPress
screenshot : capture la page courante sous forme de capture d’écran PNG
set_emulated_media : émule un type de média CSS comme print pour les tests de responsive design
set_viewport_size : définit la taille du viewport du navigateur en pixels CSS
wait_for_navigation : attend la fin du chargement de la page courante et renvoie l’URL finale et le title
Comment démarrer
- Il faut d’abord installer Safari Technology Preview
- Après l’installation, il faut activer les options suivantes dans les réglages de Safari
- Safari Settings > Advanced > Show features for web developers
- Safari Settings > Developer > Enable remote automation and external agents
- Si vous utilisez Claude, vous pouvez lancer la commande suivante dans le terminal
claude mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp
- Si vous utilisez Codex, vous pouvez utiliser la commande suivante
codex mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp
- Pour d’autres agents, vous pouvez ajouter la configuration suivante dans
mcp.json ou config.json
"safari-mcp-stp": {
"command": "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver",
"args": ["--mcp"]
}
- Dans cet exemple, le nom du serveur est
safari-mcp-stp, mais vous pouvez utiliser le nom de votre choix, comme safari
Prompts et comportement de l’agent
- Après l’installation, vous pouvez commencer avec des prompts simples comme ceux-ci
Find bugs on my site in Safari
How accessible is my site in Safari?
See how my website performs in Safari
- Le comportement varie légèrement selon les agents, mais ils peuvent utiliser le serveur MCP Safari d’eux-mêmes, même sans instruction explicite
- Dans le flux d’exemple, lorsqu’un utilisateur interroge l’agent sur un bug d’une flight page dans Safari, l’agent trouve deux bugs et vérifie en plus d’autres points susceptibles de poser problème aux utilisateurs de Safari
- Même à partir de la seule requête initiale, il peut poursuivre les vérifications et l’identification des problèmes avec l’aide du serveur MCP Safari
Exécution locale et traitement des données
- Le serveur MCP Safari s’exécute entièrement sur la machine locale
- Il n’effectue aucun appel réseau par lui-même
- Il n’accède pas aux informations privées de Safari
- AutoFill
- autres activités du navigateur
- Lorsque le contenu d’une page, une capture d’écran ou des logs de console sont capturés, ces données sont transmises directement à l’agent exécuté par l’utilisateur, et non à Apple
- La manière dont ces données sont ensuite traitées dépend de l’agent et du modèle utilisés
- Comme pour tout autre agent à qui l’on accorde un accès au navigateur, il faut n’utiliser que des agents de confiance
Ce que WebKit attend de son usage
- Le développement web peut se faire avec ou sans IA
- Si l’IA fait partie du flux de développement, le serveur MCP Safari peut contribuer à améliorer la productivité
- Son objectif est d’aider les agents à comprendre l’affichage et le comportement dans le navigateur Safari, afin de faciliter les tests et le débogage dans Safari
- En cas de problème, vous pouvez soumettre une issue via le rapport de bug WebKit
2 commentaires
Safari MCP… ça fait quelque chose, haha
Avis de Hacker News
J’utilise le serveur MCP DevTools officiel de Chrome depuis novembre 2025
https://github.com/ChromeDevTools/chrome-devtools-mcp
Avant cela, j’utilisais le WebDriver de Chrome, mais MCP était plus rapide et offrait davantage de fonctionnalités
Pour vérifier si cela fonctionne aussi avec Firefox, j’ai demandé au LLM de tester la page avec le MCP officiel de Firefox
https://github.com/mozilla/firefox-devtools-mcp
Je vais désormais ajouter Safari aux tests de compatibilité
J’ai créé un MCP pour couvrir ce cas d’usage
Federico Viticci a expliqué un peu plus en détail ce que cela signifie dans MacStories, sur Mastodon et dans le dernier épisode du podcast Connected, d’une manière plus accessible au grand public
Il vaut aussi vraiment la peine de consulter les liens présents dans l’article original
https://www.macstories.net/linked/safaris-new-mcp-server-is-...
https://mastodon.macstories.net/@viticci/116847167023618099
https://relay.fm/connected/610
Je suis particulièrement enthousiaste non seulement pour les tests, mais aussi pour les tâches du quotidien
Si un agent peut effectuer naturellement de l’automatisation de navigateur à ma place dans un navigateur où je suis déjà connecté, le passage de relais entre moi et l’agent devrait sembler beaucoup plus fluide
C’est aussi parce que j’utilise Safari comme navigateur principal, Chrome consommant beaucoup de batterie
J’utilise aussi un orchestrateur de conteneurs d’agents, avec un outil MCP qui expose les ports des conteneurs afin d’afficher le résultat des tâches dans le panneau web : https://github.com/DeepBlueDynamics/nemesis8
Je prévois d’ajouter aujourd’hui la connexion Safari MCP à n8, et une nouvelle version avec davantage de fonctionnalités devrait sortir ce soir
Parce que, du point de vue du service de l’autre côté du navigateur, il n’y a aucun moyen de savoir qui fait quoi
Je ne sais pas comment l’agent est limité, ni comment on suit ce que j’ai fait et ce que l’agent a fait
Je me demande si je rate quelque chose, ou si je suis simplement dépassé par mon époque
Personnellement, je recommande Playwright-CLI : https://github.com/microsoft/playwright-cli
Il a fonctionné beaucoup plus vite que les serveurs MCP que j’ai essayés
Il prend en charge les moteurs Chromium, Firefox et WebKit via un démon
Cela dit, j’utilise Playwright MCP
Il y a un navigateur complet, un protocole de débogage, un dump du DOM à chaque lecture ; plus que la question MCP ou CLI, ce qui compte, c’est ce qu’il y a en dessous
J’ai donc créé un petit binaire Rust qui pilote directement la webview du système et renvoie des jetons d’état et des deltas au lieu du DOM
Même en chargeant la page d’accueil de HN, cela ne coûte qu’environ 50 tokens à l’agent
Il prend en charge à la fois MCP et CLI, donc l’agent peut choisir ce qu’il préfère
https://github.com/frane/vibesurfer
safaridriver, fourni par Apple, existe depuis plusieurs années
Il utilise le WebDriver W3C et peut servir à interagir avec une instance de Safari
Je ne sais pas si Apple se soucie vraiment des développeurs web
Comment tester dans Safari si on n’a pas d’appareil Apple ?
Ce serait si difficile pour Apple de créer une machine virtuelle minimale avec seulement Safari ?
C’est le même problème que de se demander comment tester le firmware d’un matériel sans le matériel, ou comment exécuter un programme sans le matériel nécessaire quand il n’existe ni émulateur ni simulateur
Si quelque chose ne tourne que sur un matériel spécifique et qu’il n’y a ni virtualisation ni émulation, on ne peut pas le tester en dehors de ce matériel, et c’est comme ça depuis des décennies, depuis les débuts de l’informatique
Les décisions d’Apple relèvent souvent davantage de la stratégie que de la difficulté ou de la facilité, et il est assez clair qu’ils construisent un jardin clos
Si ça ne te plaît pas, tu peux simplement ne pas y jouer, comme tout le monde
De la même façon, ce n’est pas parfait, mais on peut tester WebKit, et même sous Linux ou Windows si on veut :
https://orionbrowser.com/platforms/linux
Je ne pense pas qu’Apple se lance dans une activité de machines virtuelles Safari, mais si tu as besoin d’une VM macOS, regarde du côté des fournisseurs de services cloud : https://aws.amazon.com/ec2/instance-types/mac/
Beaucoup ont déjà pré-intégré l’orchestration des tests logiciels
Ces derniers temps, je demande à l’agent de lancer Chrome et de communiquer directement via CDP, et ça fonctionne plutôt bien
Je me demande ce que ça donne par rapport à Playwright
Du point de vue du développement web, l’avantage de Playwright semble être de pouvoir l’utiliser avec plusieurs navigateurs
Si les outils propres à chaque navigateur sont plus rapides ou plus efficaces en tokens, ce sera sans doute un meilleur choix pour l’automatisation des tâches et pour Claws
« Il existe de nombreuses façons de créer pour le web, avec ou sans IA. Si l’IA fait partie de votre workflow, je pense que cet outil vous aidera à gagner en productivité. Sinon, c’est très bien aussi. »
C’est étrange de dire ça en 2026
Parce qu’on vit à une époque où, si on écrit le code soi-même et qu’on ne délègue pas tout à un agent, certains vous traitent de débutant
C’est bien que les personnes qui utilisent l’IA n’aient plus à le cacher
Est-ce le fait d’avoir dû ajouter ce genre de clause de non-responsabilité pour apaiser le camp anti-IA fanatique ?
C’est clairement un outil destiné au développement assisté par IA, et le fait d’avoir dû ajouter une phrase du genre « toutes nos pensées aux personnes qui n’utilisent pas l’IA » est en réalité très étrange
Mais c’est étrange dans un sens différent de celui que tu imagines
Ce qui rend un MCP pour l’automatisation de navigateur intéressant, c’est que le moteur WebKit de Safari est généralement difficile à manipuler facilement pour la plupart des agents IA
Playwright et Puppeteer sont centrés sur Chromium, donc un serveur MCP pour Safari pourrait combler une vraie lacune dans les tests cross-browser des workflows d’agents