1 pontos por GN⁺ 5 시간 전 | 2 comentários | Compartilhar no WhatsApp
  • O Servidor MCP do Safari conecta agentes de programação a uma janela real do Safari, permitindo verificar diretamente no navegador o que está sendo exibido durante o desenvolvimento e a depuração web
  • O agente pode acessar o DOM, solicitações de rede, capturas de tela e saída do console, o que permite verificar resultados de renderização e experiência do usuário que são difíceis de entender apenas pelo código
  • Em tarefas nas quais diferenças entre navegadores são importantes, como compatibilidade com o Safari, desempenho, acessibilidade e validação de estados de formulários e checkout, ele reduz a troca repetitiva entre janelas e o esforço de explicar tudo em prompts
  • Ele oferece ferramentas para controle de abas, navegação por URL, execução de JavaScript, consulta de solicitações de rede, extração de conteúdo da página, interação com o DOM, capturas de tela e emulação de viewport e mídia
  • O servidor é executado apenas na máquina local e não faz chamadas de rede por conta própria, mas os dados capturados da página são enviados diretamente ao agente que o usuário estiver executando, então é necessário usar um agente confiável

O papel do Servidor MCP do Safari

  • O Servidor MCP do Safari foi adicionado ao Safari Technology Preview 247
  • É um servidor Model Context Protocol para desenvolvedores web, que conecta agentes à janela do navegador Safari
  • Como o agente pode verificar como o código é realmente renderizado no navegador, ele reduz a lacuna entre a análise do código e a verificação do estado do navegador
  • Qualquer cliente compatível com MCP pode se conectar ao Servidor MCP do Safari
  • O agente conectado pode reproduzir com mais fidelidade o estado que o usuário vê no navegador
    • acesso ao DOM
    • acesso a solicitações de rede
    • acesso a capturas de tela
    • acesso à saída do console

Como ele reduz a repetição na depuração

  • Na depuração web tradicional, o fluxo se repete entre ver o problema no navegador, verificar o console e a aba de estilos, e depois voltar ao código para corrigir
  • Mesmo usando um agente, é preciso tirar capturas de tela, descrever o problema e, se a correção não for suficiente, voltar a alternar entre navegador, prompt e agente
  • O Servidor MCP do Safari permite que o agente verifique diretamente o estado do navegador, reduzindo a troca de janelas e o esforço de escrever prompts detalhados
  • Mesmo que o usuário não descreva perfeitamente a situação no prompt, o agente pode continuar o trabalho com base nas informações que consegue verificar no Safari

Principais casos de uso

  • Desenvolvimento web no Safari

    • O agente pode verificar não só o código, mas também o resultado real da renderização no Safari
  • Melhoria de compatibilidade com o Safari

    • Se você testar apenas em um navegador, pode deixar passar bugs potenciais de outros navegadores
    • O agente pode abrir o site no Safari e verificar computed style, layout e diferenças em relação ao comportamento esperado
  • Análise de desempenho

    • É possível avaliar JavaScript na página para expor métricas de desempenho como navigation timing e resource load time
    • Ao encontrar os pontos que deixam o site lento, fica mais fácil restringir o alvo das correções
  • Verificação de acessibilidade

    • É possível identificar problemas comuns de acessibilidade, como label ausente, atributos ARIA inadequados e baixo contraste
  • Validação do estado do usuário

    • É possível verificar o estado de formulários, localizar elementos com seletores, confirmar interações específicas e exibir vários estados do fluxo de checkout

Ferramentas oferecidas

  • browser_console_messages: retorna os logs de console em buffer da aba atual ou de uma aba especificada
  • browser_dialogs: consulta a lista de dialogs do navegador e processa respostas
    • oferece suporte a accept, dismiss e entrada de texto em JavaScript prompt
  • create_tab, close_tab, switch_tab, list_tabs: criam, fecham, alternam e listam abas do navegador
  • navigate_to_url: navega até uma URL e retorna o conteúdo da página carregada
  • page_info: verifica a URL, o title e o estado de carregamento da página atual
  • evaluate_javascript: executa código JavaScript na página e retorna o resultado
  • list_network_requests: consulta um resumo das solicitações de rede da aba atual
    • inclui URL, method, status e timing
  • get_network_request: consulta informações detalhadas de uma única solicitação de rede
    • inclui headers, body e timing
  • get_page_content: extrai o conteúdo de texto da página em vários formatos, como markdown, HTML e JSON
  • page_interactions: executa em sequência interações com o DOM, como click, type, scroll, hover e keyPress
  • screenshot: captura a página atual como uma imagem PNG
  • set_emulated_media: emula um tipo de mídia CSS como print para testes de responsive design
  • set_viewport_size: define o tamanho do viewport do navegador em pixels CSS
  • wait_for_navigation: aguarda o carregamento da página atual terminar e retorna a URL final e o title

Como começar

  • Primeiro, é preciso instalar o Safari Technology Preview
  • Depois da instalação, ative os itens abaixo nos ajustes do Safari
    • Safari Settings > Advanced > Show features for web developers
    • Safari Settings > Developer > Enable remote automation and external agents
  • Se você usa Claude, pode executar o seguinte comando no terminal
claude mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp  
  • Se você usa Codex, pode executar o seguinte comando
codex mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp  
  • Em outros agentes, você pode inserir a configuração abaixo em mcp.json ou config.json
"safari-mcp-stp": {  
  "command": "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver",  
  "args": ["--mcp"]  
}  
  • O exemplo acima usa safari-mcp-stp como nome do servidor, mas você pode usar o nome que quiser, como safari

Prompts e comportamento do agente

  • Após a instalação, você pode começar com prompts simples como os abaixo
Find bugs on my site in Safari  
How accessible is my site in Safari?  
See how my website performs in Safari  
  • O comportamento varia um pouco entre os agentes, mas eles podem usar o Servidor MCP do Safari por conta própria mesmo sem você pedir isso explicitamente
  • No fluxo de exemplo, quando o usuário pergunta sobre um bug na flight page no Safari, o agente encontra dois bugs e verifica adicionalmente pontos que podem causar problemas para usuários do Safari
  • Mesmo com a solicitação inicial, ele pode usar a ajuda do Servidor MCP do Safari para continuar as verificações e identificar problemas depois disso

Execução local e tratamento de dados

  • O Servidor MCP do Safari é executado inteiramente na máquina local
  • Ele não faz chamadas de rede por conta própria
  • Ele não acessa informações privadas do Safari
    • AutoFill
    • outras atividades do navegador
  • Quando captura conteúdo de página, capturas de tela e logs do console, esses dados são enviados diretamente não para a Apple, mas para o agente que o usuário estiver executando
  • A forma de processamento desses dados depois depende do agente e do modelo utilizados
  • Assim como com outros agentes aos quais se concede acesso ao navegador, é preciso usar apenas agentes confiáveis

Como o WebKit espera que isso seja usado

  • No desenvolvimento web, há tanto quem use IA quanto quem não use
  • Se a IA fizer parte do seu fluxo de desenvolvimento, o Servidor MCP do Safari pode ajudar a aumentar a produtividade
  • O objetivo é ajudar agentes a entender a tela e o comportamento dentro do navegador Safari, facilitando testes e depuração no Safari
  • Se houver problemas, você pode enviar um issue em WebKit bug report

2 comentários

 
shakespeares 1 시간 전

Safari MCP... que nostalgia, haha

 
GN⁺ 5 시간 전
Opiniões no Hacker News
  • Desde novembro de 2025, venho usando o servidor MCP DevTools oficial do Chrome
    https://github.com/ChromeDevTools/chrome-devtools-mcp
    Antes disso, eu usava o WebDriver do Chrome, mas o MCP era mais rápido e tinha mais recursos
    Para verificar se também funcionava no Firefox, instruí o LLM a testar a página com o MCP oficial do Firefox
    https://github.com/mozilla/firefox-devtools-mcp
    Agora pretendo adicionar também o Safari aos testes de compatibilidade

    • Fico curioso para saber se há diferença entre isso e usar o Playwright MCP com configurações de Chrome/Firefox
    • Às vezes, pelo contrário, em vez de fazer o LLM controlar o navegador, quero que o LLM consiga ver as ações que eu fiz manualmente no navegador
      Criei um MCP para cobrir esse caso de uso
  • Federico Viticci abordou com um pouco mais de detalhe o que isso significa no MacStories, no Mastodon e no episódio mais recente do podcast Connected, de uma forma mais acessível ao público geral
    Também vale muito a pena conferir os links do texto original
    https://www.macstories.net/linked/safaris-new-mcp-server-is-...
    https://mastodon.macstories.net/@viticci/116847167023618099
    https://relay.fm/connected/610

  • Estou especialmente animado não só para testes, mas também para tarefas do dia a dia
    Se um agente puder executar automação de navegador de forma natural por mim no navegador em que já estou logado, a passagem de controle entre mim e o agente deve parecer muito mais fluida
    Também porque venho usando o Safari como navegador principal, já que o Chrome consome muita bateria

    • Estou criando o Hyperia, em que o agente consegue controlar totalmente painéis web baseados em Electron e realizar tarefas bastante agressivas: https://github.com/deepbluedynamics/hyperia
      Também uso um orquestrador de contêineres de agentes, e há uma ferramenta MCP que expõe as portas dos contêineres, permitindo exibir os resultados do trabalho no painel web: https://github.com/DeepBlueDynamics/nemesis8
      Hoje pretendo adicionar a conexão do Safari MCP ao n8, e uma nova versão com mais recursos deve sair hoje à noite
    • Ao ler a frase “não acessa informações pessoais do Safari, como preenchimento automático, nem outras atividades do navegador”, isso soa como se a instância com a qual o agente interage não estivesse logada
    • A parte sobre “a passagem de controle entre mim e o agente ser mais fluida” assusta
      Porque, do ponto de vista dos serviços do outro lado do navegador, não há como saber quem está fazendo o quê
      Não sei como o agente é limitado nem como rastrear o que eu fiz e o que o agente fez
      Fico me perguntando se estou deixando algo passar ou se estou atrasado em relação aos tempos
  • Pessoalmente, recomendo o Playwright-CLI: https://github.com/microsoft/playwright-cli
    Ele funcionou muito mais rápido do que os servidores MCP que testei

    • Se você precisa de sessões persistentes de navegador, também existe o spel (https://github.com/Blockether/spel)
      Ele oferece suporte aos mecanismos Chromium, Firefox e WebKit por meio de um daemon
    • O Playwright é excelente para testes de ponta a ponta e também se integra bem ao Electron
      Dito isso, eu uso o Playwright MCP
    • Para mim, tudo isso pareceu pesado
      Envolve um navegador inteiro, protocolo de depuração e dumps do DOM a cada leitura; mais importante do que ser MCP ou CLI é o que há por baixo
      Por isso criei um pequeno binário em Rust que aciona diretamente o webview do sistema e retorna tokens de estado e deltas em vez do DOM
      Mesmo carregando a página inicial do HN, isso custa só cerca de 50 tokens para o agente
      Ele oferece suporte tanto a MCP quanto a CLI, então o agente pode escolher o que preferir
      https://github.com/frane/vibesurfer
  • O safaridriver fornecido pela Apple já existe há alguns anos
    Ele usa o WebDriver W3C e pode ser usado para interagir com instâncias do Safari

  • Não sei se a Apple realmente se importa com desenvolvedores web
    Se você não tem um dispositivo Apple, como testa no Safari?
    Seria tão difícil assim para a Apple criar uma máquina virtual mínima só com o Safari?

    • Perguntar como testar o Safari sem um dispositivo Apple é parecido com perguntar como testar jogos de PlayStation sem um PlayStation
      É o mesmo problema de como testar firmware de hardware sem o hardware, ou como executar um programa sem o hardware necessário quando não há emulador nem simulador
      Se algo só roda em um hardware específico e não há virtualização nem emulação, não dá para testar fora desse hardware, e isso tem sido assim há décadas, desde os primórdios da computação
      As decisões da Apple muitas vezes são determinadas por estratégia, mais do que por ser difícil ou fácil, e é bem claro que eles estão criando um jardim murado
      Se não gosta, é só não brincar lá, como o resto das pessoas
    • Mesmo com o domínio do Chrome, testamos no Chromium porque não queremos deixar passar vários navegadores, como o Edge
      Da mesma forma, embora não seja perfeito, dá para testar o WebKit e, se quiser, até no Linux ou no Windows:
      https://orionbrowser.com/platforms/linux
      Não acho que a Apple vá entrar no negócio de máquinas virtuais do Safari, mas, se você precisa de uma máquina virtual com macOS, vale olhar provedores de serviços em nuvem: https://aws.amazon.com/ec2/instance-types/mac/
      Muitos já deixam a orquestração de testes de software previamente integrada
    • Como a Apple acabou de lançar essa nova ferramenta, dá para dizer que ela se importa com desenvolvedores web
    • É igual à forma como testávamos o IE no Linux ou no OS X
  • Ultimamente tenho mandado o agente executar o Chrome e se comunicar diretamente via CDP, e funciona muito bem

    • Também vou ter que experimentar esse método
      Fico curioso para saber como ele se compara ao Playwright
      Do ponto de vista de desenvolvimento web, a vantagem do Playwright parece ser poder usá-lo em vários navegadores
      Se ferramentas específicas de cada navegador forem mais rápidas ou mais eficientes em tokens, então para automação de tarefas e para o Claws essa parece ser a melhor escolha
    • Sim. Esse método funciona muito melhor do que o caminho via MCP e é mais rápido
  • “Há muitas maneiras de criar para a web, usando IA ou não. Se IA faz parte do seu fluxo de trabalho, acho que esta ferramenta vai ajudar a aumentar sua produtividade. Se não faz, tudo bem também.”
    É estranho dizer algo assim em 2026
    Porque estamos numa época em que, se você escreve código diretamente e não delega tudo a um agente, algumas pessoas tratam você como iniciante

    • Há 2 anos, o contrário era tratado como um absurdo
      Agora é bom que as pessoas que usam IA não precisem esconder esse fato
    • Não sei qual parte é estranha
      O estranho é terem que incluir esse aviso para apaziguar o campo anti-IA fanático?
      Esta é claramente uma ferramenta para desenvolvimento assistido por IA, então o fato de terem que acrescentar uma frase como “também deixamos nosso consolo para quem não usa IA” é que é muito estranho
      Só que é estranho de um jeito diferente do que você está pensando
  • O motivo pelo qual um MCP para automação de navegador é interessante é que o motor WebKit do Safari é algo que a maioria dos agentes de IA não consegue manipular facilmente
    Playwright e Puppeteer são centrados no Chromium, então um servidor MCP para Safari poderia preencher uma lacuna real em testes cross-browser nos fluxos de trabalho de agentes