Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
O servidor do Model Context Protocol (MCP) remoto do Espaços de trabalho para dramaturgos está em pré-visualização. As funcionalidades de pré-visualização não têm um acordo de nível de serviço e não são recomendadas para cargas de trabalho em produção. Funcionalidades, limites e disponibilidade podem mudar.
O servidor remoto MCP da Espaços de trabalho para dramaturgos oferece aos agentes de IA um navegador remoto gerido e um conjunto de ferramentas de automação de browsers. Um agente pode abrir uma sessão do navegador, navegar por páginas, encontrar e interagir com elementos, inspecionar a atividade do navegador, tirar capturas de ecrã e fechar a sessão. Não precisas de instalar o Playwright ou um navegador no ambiente do agente.
O servidor utiliza o Model Context Protocol sobre HTTP Streamable. Suporta a autenticação do Microsoft Entra ID e os tokens de acesso ao espaço de trabalho. Funciona com clientes MCP remotos, incluindo o Microsoft Foundry Agent Service e o Visual Studio Code.
Neste artigo, você aprenderá a:
- Crie o endpoint MCP para um espaço de trabalho do Playwright.
- Autentique usando o Microsoft Entra ID ou um token de acesso ao espaço de trabalho.
- Ligue o servidor ao Microsoft Foundry Agent Service ou ao Visual Studio Code.
- Execute fluxos completos de automação autónoma do navegador.
- Selecione e utilize com segurança as ferramentas de navegador disponíveis.
- Trate da expiração da sessão, tempos de espera e outros erros comuns.
Pré-requisitos
Antes de começar, certifique-se de que tem:
- Uma conta do Azure com uma assinatura ativa.
- Um espaço de trabalho Playwright com acesso à versão preliminar remota do MCP.
- O ID do espaço de trabalho e a região Azure do espaço de trabalho.
- Uma identidade com permissão para criar e usar sessões de navegador no espaço de trabalho.
- No Microsoft Foundry, um projeto do Foundry e permissão para criar ligações de projeto e configurar agentes.
- Para o Visual Studio Code, uma versão recente do Visual Studio Code com acesso ao GitHub Copilot e suporte para MCP ativado.
Escolha um método de autenticação
Use o Microsoft Entra ID quando o seu cliente MCP suporta OAuth ou identidade gerida. O servidor MCP remoto utiliza este identificador de recurso e o âmbito delegado:
Resource: https://mcp.playwright.microsoft.com
Scope: https://mcp.playwright.microsoft.com/Playwright.Mcp.Tools
O servidor publica metadados de recursos protegidos OAuth. Os clientes que suportam a deteção de OAuth, incluindo o Visual Studio Code, podem detetar o servidor de autorização e o âmbito necessário a partir do endpoint MCP associado ao espaço de trabalho. A identidade com sessão iniciada tem de ter acesso ao espaço de trabalho do Playwright através do controlo de acesso baseado em funções (RBAC) do Azure.
Warning
Use um token de acesso ao espaço de trabalho apenas quando o cliente MCP não conseguir autenticar-se com o Microsoft Entra ID. Os tokens de acesso são menos seguros e estão desativados por defeito.
Crie um token de acesso ao espaço de trabalho para compatibilidade
Evite esta secção quando usar o Microsoft Entra ID. Se a autenticação por token de acesso ainda não estiver ativada para o espaço de trabalho:
- Inicie sessão no portal Azure.
- Abra o seu espaço de trabalho de Dramaturgo.
- Em Definições, selecione Gestão de Acessos.
- Ativar o Token de Acesso ao Serviço Playwright.
- Selecione Gerar token.
- Insira um nome e uma data de validade, e depois gera o token.
- Copie o token imediatamente. Não podes recuperar o seu valor mais tarde.
Armazene o token numa loja secreta gerida ou na facilidade de credencial segura fornecida pelo seu cliente MCP. Revoque-o e substitua-o se este puder ter sido exposto. Para criar um token de acesso ao espaço de trabalho, veja Gerir tokens de acesso ao espaço de trabalho.
Caution
Trate um token de acesso ao espaço de trabalho como uma palavra-passe. Nunca o comprometas com controlo de versão, inclua-o num prompt ou escreva em logs.
Criar o endpoint remoto do MCP
O endpoint está limitado a uma área de trabalho e a uma região:
https://<region>.mcp.playwright.microsoft.com/playwrightworkspaces/<workspace-id>/mcp
Substituir:
-
<region>com a região Azure do espaço de trabalho. -
<workspace-id>com o ID do espaço de trabalho apresentado no portal do Azure.
Por exemplo:
https://eastus.mcp.playwright.microsoft.com/playwrightworkspaces/00000000-0000-0000-0000-000000000000/mcp
O valor no cabeçalho do pedido x-api-key deve ser um token de acesso criado para o mesmo espaço de trabalho que <workspace-id>. Utilize o endpoint da região da área de trabalho, e não o da região mais próxima do cliente MCP.
Compreenda o ciclo de vida das sessões do navegador
Um fluxo de automação de navegador tem três etapas:
- Ligue para o
create_browser_session. O resultado contém um opacobrowserSessionIde pode conter um URL de visualização em direto. - Passe isso
browserSessionIdpara cada ferramenta do navegador utilizada no fluxo. - Chame
close_browser_sessionnuma etapa de limpeza, mesmo quando o fluxo falhar.
O transporte HTTP MCP não preserva o estado do navegador. O browserSessionId identifica o navegador remoto em diferentes chamadas da ferramenta. Mantém-na privada e usa-a apenas com o espaço de trabalho e a identidade que a criaram.
O comportamento atual de pré-visualização inclui estas restrições:
- Uma sessão pertence ao seu criador e não pode ser partilhada com outro principal.
- As chamadas para uma sessão são processadas por ordem. Não emita ações simultâneas contra a mesma sessão.
- Uma sessão inativa é limpa após 15 minutos. É necessária uma limpeza explícita.
- Uma sessão encerrada ou expirada não pode ser reaberta.
- A perda de ligação termina a sessão. Cria uma nova sessão para continuar.
- Um resultado pode conter um
liveViewUrl. A disponibilidade da visualização ao vivo depende da sessão.
Conectar-se através do Serviço de Agentes Microsoft Foundry
Use o Microsoft Entra Agent Identity para autenticar o agente com a identidade gerida do projeto Foundry. Conceda a essa identidade acesso ao espaço de trabalho do Playwright antes de ligar a ferramenta MCP.
Criar a ligação ao projeto
- Abra o seu projeto no portal Microsoft Foundry.
- Abra a experiência de gestão do projeto e depois selecione Recursos Conectados.
- Crie uma ligação para um servidor MCP remoto.
- Insira um nome de ligação descritiva, como
playwright-mcp-connection. - Selecione Microsoft Entra Agent Identity como método de autenticação.
- Introduza
https://mcp.playwright.microsoft.comcomo público. - Guarde a ligação.
A identidade gerida do projeto tem de ter uma função que permita operações de sessão do navegador no espaço de trabalho Playwright de destino. Não uses um token de identidade de um projeto como segredo partilhado noutro projeto.
Se o Microsoft Entra Agent Identity não estiver disponível para o cliente ou ambiente, crie uma ligação de chaves personalizadas com uma chave nomeada x-api-key e um token de acesso ao espaço de trabalho como valor.
Adicionar a ferramenta MCP remota
Crie ou abra um agente no portal da Foundry.
Adicione um servidor MCP remoto ou uma ferramenta MCP.
Utilize as seguintes definições:
Setting Value Etiqueta do servidor Um rótulo único, como playwrightWorkspaceURL do servidor O endpoint remoto MCP ao nível do espaço de trabalho Ligação ao projeto A ligação Microsoft Entra Agent Identity criada anteriormente Approval Exija aprovação para cada chamada ao avaliar a integração Ferramentas permitidas Comece apenas com as ferramentas necessárias para o fluxo de trabalho Guarda a configuração do agente.
Nas instruções do agente, indique que o agente deve criar uma única sessão, reutilizar o seu
browserSessionIde fechar a sessão quando a tarefa terminar.
Uma lista mínima de ferramentas para um fluxo de navegação orientado à leitura é:
create_browser_session
browser_navigate
browser_snapshot
browser_find
browser_take_screenshot
close_browser_session
Adicione ferramentas de interação, como browser_click ou browser_type apenas quando o cenário o exigir. Não ative browser_evaluate nem browser_run_code por defeito.
Testar o escoamento da fundição
Use um prompt que indique o objetivo e a necessidade de limpeza. Por exemplo:
Create a browser session, open https://example.com, inspect the page snapshot,
report the main heading and destination URL, and close the browser session.
Always close the session, including when a browser step fails.
Quando o agente solicita aprovação:
- Verifique se o identificador do servidor corresponde ao servidor Playwright configurado.
- Revê o nome da ferramenta e todos os argumentos, especialmente URLs, seletores, texto, dados carregados e código.
- Aprove apenas a operação prevista.
- Verifica se a resposta final se baseia no resultado da página.
- Confirme que o fluxo denominado
close_browser_session.
Para campos de ligação atuais do Foundry, gestão de aprovações, exemplos de SDK e limites de clientes, consulte Conectar agentes aos endpoints do servidor MCP.
Note
Atualmente, as chamadas da ferramenta MCP da Foundry não transmitidas em fluxo têm um tempo limite do cliente de 100 segundos. Algumas operações de dramaturgos têm um tempo de descanso mais longo do lado de serviço. Mantenha as operações da Foundry focadas e divida fluxos de trabalho longos em múltiplas chamadas de ferramenta.
Liga-te a partir do Visual Studio Code
O Visual Studio Code pode descobrir a configuração OAuth do servidor remoto e iniciar sessão com o Microsoft Entra ID. A configuração necessita apenas do endpoint ao nível da área de trabalho.
- No Visual Studio Code, execute o comando MCP: Open User Configuration na Paleta de Comandos.
- Adicione a seguinte configuração e substitua os marcadores de posição dos endpoints.
{
"servers": {
"playwrightWorkspace": {
"type": "http",
"url": "https://<region>.mcp.playwright.microsoft.com/playwrightworkspaces/<workspace-id>/mcp"
}
}
}
- Inicia o servidor a partir do editor de configuração ou executa o MCP: List Servers.
- Quando solicitado, inicie sessão com a conta Microsoft Entra que tem acesso ao espaço de trabalho Playwright.
- Aprove a autorização solicitada
Playwright.Mcp.Toolsse for necessário consentimento para o seu inquilino. - Revê a URL e a configuração do servidor, e depois confirma que confias no servidor.
- Abre o Chat e seleciona Configurar Ferramentas. Ative apenas as ferramentas de dramaturgo necessárias para a tarefa.
- Execute o prompt de exemplo da secção anterior do Foundry.
- Revise as confirmações da ferramenta e verifique se a sessão está encerrada no final.
Use uma configuração de utilizador quando a ligação for pessoal. Uma configuração de espaço de trabalho contendo apenas o endpoint pode ser partilhada. O Visual Studio Code armazena em cache as credenciais OAuth de forma segura e pode reutilizá-las ao reconectar-se.
Se a autenticação Microsoft Entra não estiver disponível no ambiente do cliente, configure um cabeçalho x-api-key com um input protegido, conforme descrito em Entradas de configuração do MCP. Nunca coloque o valor do token de acesso ao workspace diretamente em mcp.json.
Para localizações de configuração, entradas secretas, confiança em servidores e diagnósticos, consulte Adicionar e gerir servidores MCP no Visual Studio Code e a referência de configuração MCP.
Projetar um fluxo de automação agential
Use um ciclo observar-agir-verificar em vez de pedir ao agente que execute uma sequência longa sem verificar o estado da página.
-
Criar: Invocar
create_browser_sessione reter o respetivobrowserSessionId. -
Navegar: Chame
browser_navigatecom um URL explícito e autorizado. -
Nota: Utilize
browser_findpara uma pesquisa direcionada oubrowser_snapshotpara uma perspetiva mais abrangente da acessibilidade. - Agir: Use uma referência de snapshot ou seletor único com uma ferramenta de interação.
-
Aguarde: Chame
browser_wait_forpara texto esperado, texto que desaparece ou um atraso delimitado. - Verifique: Tire outra captura de ecrã ou inspecione a atividade da consola e da rede.
- Lidar com ramos: Gerir um diálogo, mudar de separador ou carregar ficheiros apenas quando o estado da página o exigir.
-
Recolha provas: Chame
browser_take_screenshotse um resultado visual for útil. Não uses capturas de ecrã para selecionar alvos de ação. -
Limpar: Chame
close_browser_sessionnum caminho de limpeza do tipo finally.
Escolha alvos de ação estável
Prefira referências devolvidas por browser_snapshot ou browser_find. Descrevem elementos de página acessíveis e reduzem a dependência da marcação específica da implementação. Use um seletor único quando não houver uma referência estável de snapshot.
Atualize a captura após navegar ou depois de uma ação que altere a página. Um alvo devolvido anteriormente pode tornar-se obsoleto quando a página é rerenderizada.
Lidar com diálogos com segurança
Uma ação pode devolver um dialog-opened resultado depois de já ter alterado o estado da página. Este resultado não é uma falha normal de ação.
- Não repitas a ação original.
- Invoque
browser_handle_dialogcomacceptdefinido comotrueoufalse. - Para um diálogo de prompt, inclua
promptTextapenas quando o aceitar. - Observe a página novamente antes de continuar.
Tratar falhas ambíguas
Um tempo limite excedido ou um chamador desconectado não prova que uma ação não teve efeito. Antes de tentar novamente uma operação não idempotente, como um clique, submissão de formulário, upload ou execução de código:
- Chame
browser_snapshot,browser_find, ou outra ferramenta de observação se a sessão ainda estiver disponível. - Determinar se a mudança de estado esperada ocorreu.
- Tente novamente apenas se repetir a ação for seguro.
- Se a sessão expirar, crie uma nova sessão e reinicie a partir de um estado de aplicação conhecido.
Referência da ferramenta
Todas as ferramentas associadas ao navegador requerem browserSessionId. Os limites da cadeia e da coleção aqui mostrados são os limites atuais de pré-visualização.
Ferramentas de sessão
| Tool | Parameters | Use |
|---|---|---|
create_browser_session |
None | Cria um navegador remoto e devolve browserSessionId e um liveViewUrl opcional. |
close_browser_session |
browserSessionId |
Fecha a sessão remota do navegador. Chame-o durante a fase de limpeza. |
Ferramentas de navegação e observação
| Tool | Parameters | Utilização e comportamentos importantes |
|---|---|---|
browser_navigate |
browserSessionId, url |
Navega até uma URL. A URL pode conter até 16 KiB de caracteres. |
browser_navigate_back |
browserSessionId |
Navega até à entrada anterior no histórico da página. |
browser_snapshot |
browserSessionId; opcional target, depth, boxes |
Devolve uma captura do estado de acessibilidade. O target aceita uma referência de snapshot ou um seletor único.
Depth é de 1 a 100.
Boxes inclui dados de caixa delimitadora quando suportados. O texto do instantâneo é truncado aos 64 KiB e assinalado como truncado. |
browser_find |
browserSessionId, text |
Efetua uma procura de subcadeias sem distinção entre maiúsculas e minúsculas no instantâneo de acessibilidade e devolve os excertos correspondentes.
Text pode conter até 4.096 caracteres. |
browser_wait_for |
browserSessionId; Exatamente um de text, textGone, ou time |
Espera por texto, espera que o texto desapareça, ou espera de 0 a 180 segundos. |
browser_take_screenshot |
browserSessionId; opcional target, type, fullPage, scale |
Devolve um PNG ou JPEG em linha.
Type é png ou jpeg.
FullPage captura a página inteira em vez da janela de visualização padrão.
Scale é css ou device. Utilize um instantâneo, e não a imagem, para escolher os alvos. |
browser_console_messages |
browserSessionId |
Devolve um conjunto limitado de mensagens da consola capturadas da página ativa. |
browser_network_requests |
browserSessionId |
Devolve a informação delimitada sobre os pedidos de rede capturados da página ativa. |
Ferramentas de interação
| Tool | Parameters | Utilização e comportamentos importantes |
|---|---|---|
browser_click |
browserSessionId, target; opcional button, doubleClick, modifiers |
Clica num alvo.
Button é left, right, ou middle. Aceita até cinco modificadores de Alt, Control, ControlOrMeta, Meta, e Shift. Não tentes cegamente um clique com tempo limitado. |
browser_type |
browserSessionId, target, text; opcional submit, slowly |
Insere o texto num elemento editável.
Submit prime Enter de seguida.
Slowly tipos sequencialmente. |
browser_fill_form |
browserSessionId, fields |
Preenche de 1 a 50 campos. Cada campo contém target, uma cadeia ou booleano value, e opcionais name e type. Uma falha pode deixar campos anteriores atualizados. |
browser_press_key |
browserSessionId, key |
Prima um descritor de teclas do Playwright, como Enter, ArrowLeft ou Control+C. |
browser_select_option |
browserSessionId, target, values |
Seleciona entre 1 a 100 valores de opção. Cada valor pode conter até 4.096 caracteres. |
browser_hover |
browserSessionId, target |
Paira sobre um alvo, que pode revelar menus ou dicas de ferramentas. |
browser_handle_dialog |
browserSessionId, accept; opcional promptText |
Aceita ou rejeita o diálogo do navegador que está a bloquear atualmente. |
browser_drag |
browserSessionId, startTarget, endTarget |
Arrasta de um alvo para outro. Ambos os alvos devem resolver na página ativa. |
Abas, ficheiros e ferramentas de código
| Tool | Parameters | Utilização e comportamentos importantes |
|---|---|---|
browser_tabs |
browserSessionId, action; opcional index, url |
Lista, cria, seleciona ou fecha separadores.
action é list, new, select, ou close.
index é necessária para select; para close, omissão significa a tabulação ativa. Os índices são baseados em zero. |
browser_file_upload |
browserSessionId, files; opcional target |
Carrega de 1 a 20 ficheiros codificados base64 através de uma entrada de ficheiro alvo ou seletor de ficheiros pendente. Veja Limites de carregamento de ficheiros. |
browser_evaluate |
browserSessionId, function; opcional target |
Avalia uma função JavaScript na página ou em relação a um alvo. Pode ler ou alterar o estado da página. |
browser_run_code |
browserSessionId, code |
Executa um corpo de função JavaScript do Playwright com acesso à página. Esta ferramenta tem o maior privilégio e pode produzir efeitos secundários arbitrários. |
Após cada fluxo de automação, chama o close_browser_session com o browserSessionId ativo.
Formato do campo de formulário
Cada browser_fill_form campo tem esta forma:
{
"target": "<snapshot-reference-or-selector>",
"value": "<string-or-boolean>",
"name": "<optional-display-name>",
"type": "<optional-field-type>"
}
O valor da cadeia de caracteres para um campo pode conter, no máximo, 100 KiB de caracteres.
name pode conter no máximo 1.024 caracteres, e type pode conter no máximo 128 caracteres.
Forma de upload do ficheiro
Cada browser_file_upload ficheiro utiliza esta forma:
{
"name": "example.txt",
"data": "SGVsbG8sIHdvcmxkIQ==",
"mimeType": "text/plain"
}
mimeType é opcional e o padrão é application/octet-stream.
Limites de upload de ficheiros
- Entre 1 a 20 ficheiros por chamada de ferramenta.
- Tamanho máximo decodificado de 10 MiB para cada ficheiro.
- Tamanho máximo combinado decodificado de 50 MiB.
- Nome máximo de ficheiro de 4.096 caracteres.
- Tipo MIME com um máximo de 1.024 caracteres.
- São necessários dados base64 válidos.
Formas de ferramentas JavaScript
Para browser_evaluate, passa uma expressão de função:
() => document.title
Quando fornece target, a função recebe o elemento correspondente:
element => element.textContent
Para browser_run_code, passe instruções que formem o corpo de uma função assíncrona cujo parâmetro page é uma página do Playwright. Devolva apenas dados serializáveis em JSON e mantenha-os dentro do limite de resposta em linha.
Warning
browser_evaluate e browser_run_code pode expor dados de página, alterar o estado da aplicação e fazer pedidos de rede.
browser_run_code é equivalente à execução arbitrária de código dentro do ambiente isolado do navegador. Desative estas ferramentas a menos que um cenário revisto as exija. Nunca passe segredos no código nem devolva dados sensíveis da página a um modelo não confiável.
Limites e comportamento atual
| Limit | Valor atual | Ação recomendada |
|---|---|---|
| Sessão inativa do navegador | 15 minutos | Fecha as sessões explicitamente e cria uma nova sessão após a expiração. |
| Espera solicitada | 180 segundos | Prefira esperas em função do estado em vez de atrasos fixos. |
| Tempo limite do comando de serviço | 3 minutos e 30 segundos | Observe o estado da página antes de tentar novamente uma ação. Os tempos de espera dos clientes podem ser mais curtos. |
| Resposta em linha | 1 Mebibyte | Devolva ou peça apenas os dados necessários para o próximo passo. |
| Texto de captura de acessibilidade | 64 KiB | Utilize browser_find, uma subárvore de destino ou uma profundidade menor se a saída for truncada. |
| Captura de ecrã inline dos dados base64 | 768 KiB | Utilize JPEG, uma captura da área visível ou um elemento de destino se uma captura de ecrã for demasiado grande. |
| Parâmetro de URL | Caracteres de 16 KiB | Use uma URL de destino absoluta válida. |
| Alvo ou seletor | 4.096 caracteres | Prefira referências instantâneas concisas ou seletores únicos. |
| Função ou código JavaScript | 1 MiB de caracteres | Mantenha o código pequeno, revisto e com um âmbito restrito. |
| ID da sessão do navegador | 256 caracteres | Passe o valor retornado por create_browser_session inalterado. |
As respostas são devolvidas em linha. Esta pré-visualização não expõe recursos MCP nem armazenamento persistente de artefactos para grandes instantâneos, capturas de ecrã ou downloads. Os overrides do navegador, sistema operativo, viewport, localização e user-agent não são expostos como parâmetros de criação de sessões.
Tratamento de erros
Um erro da ferramenta inclui um código de erro estável, uma mensagem adequada para o cliente, um valor retryable e informações de correlação. Use o valor devolvido retryable como sinal principal, juntamente com os efeitos secundários da operação.
| Código de erro | Meaning | Action |
|---|---|---|
Unauthorized |
O token de acesso está em falta, inválido, expirado, desativado ou para outro espaço de trabalho. | Verificar x-api-key, acesso ao workspace - ativação do token, expiração do token e ID do workspace endpoint. Não tente novamente com a mesma credencial inválida. |
Forbidden |
O proprietário do token não tem permissão, ou o chamador não é dono da sessão. | Verifique o acesso ao espaço de trabalho e use a mesma credencial ao longo da sessão. |
SessionNotFound |
A sessão não existe. | Crie uma nova sessão. |
SessionClosed |
A sessão foi encerrada. | Crie uma nova sessão se for necessário mais trabalho. |
SessionExpired |
A sessão ou a sua ligação ao navegador já não estão disponíveis. | Crie uma nova sessão e reinicie a partir de um estado conhecido. |
BrowserUnavailable |
A capacidade do navegador ou o navegador remoto estão temporariamente indisponíveis. | Repetir a criação da sessão após um intervalo se retryable for verdadeiro. |
DependencyUnavailable |
Um serviço obrigatório está temporariamente indisponível. | Tente novamente com recuo exponencial se retryable for verdadeiro. |
InvalidArgument |
Um parâmetro está em falta, está malformado, mutuamente incompatível ou está fora dos seus limites. | Corrigir os argumentos. Não tente novamente sem alterações. |
UnsupportedOperation |
A operação solicitada não é suportada. | Use uma ferramenta ou valor argumental suportado. |
OutputTooLarge |
O resultado excede o limite de resposta em linha. | Peça um snapshot ou resultado mais pequeno. Para capturas de ecrã, usa JPEG ou um alvo mais pequeno. |
ToolTimeout |
A operação ultrapassou o prazo de serviço. | Se a sessão continuar disponível, observe a página antes de decidir se deve tentar novamente. |
NavigationFailed |
Não foi possível concluir a navegação. | Verifique a URL, a acessibilidade à rede e o comportamento da página. Observe a página atual antes de tentar novamente. |
ElementNotFound |
O alvo não correspondia a nenhum elemento. | Atualize o snapshot e use uma referência atual ou um seletor único. |
ActionFailed |
A página rejeitou ou não conseguiu completar uma ação. | Inspecionar o estado da página. O elemento pode estar oculto, desativado, destacado ou bloqueado por um diálogo. |
Busy |
O navegador está a completar outra operação ou a esgotar uma resposta anterior. | Espere brevemente e tente novamente apenas quando repetir a operação for seguro. |
QuotaExceeded |
O espaço de trabalho ou a conta atingiu o limite da quota de sessões no navegador. | Feche as sessões não utilizadas e reveja a quota de espaço de trabalho. |
RateLimited |
Os pedidos estão a chegar demasiado depressa. | Use um recuo exponencial e reduza a concorrência. |
InternalError |
O serviço deparou-se com um erro inesperado. | Tente novamente apenas quando for indicado. Inclua o ID de correlação ao contactar o suporte. |
Solucionar problemas comuns
O cliente MCP indica “Não autorizado”
- Confirme que a autenticação por token de acesso está ativada para o espaço de trabalho.
- Confirma que o token não está expirado nem revogado.
- Utilize o valor bruto do token como valor de
x-api-key. Não adiciones umBearerprefixo. - Confirme que o token e o endpoint pertencem ao mesmo espaço de trabalho.
- Se copiaste um segredo incorretamente, cria um novo token porque não consegues recuperar valores existentes do portal.
O cliente do MCP relata Forbidden
- Confirme que o utilizador associado ao token ainda tem permissão para criar sessões do navegador.
- Use a mesma ligação ao projeto ou token para todas as chamadas numa sessão de navegador.
- Não passe um
browserSessionIdentre utilizadores, agentes que utilizam credenciais diferentes ou espaços de trabalho.
As ferramentas não são detetadas
- Verifique o endpoint completo, incluindo
/playwrightworkspaces/<workspace-id>/mcp. - Verifique se a região do ponto de extremidade corresponde à da área de trabalho.
- Confirme que o cliente utiliza um transporte HTTP MCP e envia
x-api-keydurante a descoberta e chamadas à ferramenta. - No Visual Studio Code, executa MCP: List Servers, seleciona o servidor e depois seleciona Mostrar Saída.
- Reinicia a conexão MCP ou repõe as ferramentas em cache depois de alterar o endpoint.
O agente não chama uma ferramenta de navegador
- Diz explicitamente ao agente para usar o servidor MCP configurado do Playwright.
- Verifique se a ferramenta necessária aparece na lista de ferramentas habilitadas ou permitidas do cliente.
- Inclui o ciclo de vida de criar, usar e fechar nas instruções do agente.
- Use uma primeira tarefa focada com um único alvo de navegação e um resultado esperado.
Um alvo já não funciona
A página pode ter mudado ou sido renderizada novamente. Volte a ligar para browser_snapshot ou browser_find e use uma referência atual. Evite seletores ligados a classes geradas ou que alterem a estrutura do documento.
Uma ferramenta com tempo esgotado
Não assuma que a ação falhou sem que tenha havido alteração de estado. Se a sessão estiver ativa, inspecione a página atual antes de tentar novamente. Se a sessão expirar, crie uma nova sessão e devolva a aplicação a um estado conhecido.
Uma captura de ecrã é demasiado grande
Use type: "jpeg", capture apenas a área visível, ou indique um destino para uma captura de ecrã ao nível do elemento. Use browser_snapshot quando o objetivo é identificar um elemento em vez de preservar evidências visuais.
A sessão terminou durante um fluxo
Crie uma nova sessão no navegador. As sessões não se restabelecem após perda de ligação do navegador, indisponibilidade do proprietário do serviço, encerramento explícito ou limpeza por inatividade. Projete o fluxo para que possa reiniciar a partir de um URL e estado da aplicação conhecidos.
Recomendações de segurança
- Permita apenas as ferramentas exigidas pela tarefa do agente.
- Exigir aprovação humana para ferramentas de alteração de estado, ficheiros e código.
- Considere o conteúdo da página, as capturas de acessibilidade, a saída da consola e a saída da rede como não fidedignos. Uma página pode conter instruções de injeção rápida.
- Mantenha as instruções do sistema separadas do texto derivado da página. Não deixe que o conteúdo da página altere a política de segurança ou as regras de aprovação.
- Valide os URLs de destino com base numa lista de permissões ao automatizar aplicações sensíveis.
- Revise texto, seletores, conteúdos de ficheiros e código antes de aprovar uma chamada de ferramenta.
- Não uses tokens de acesso em prompts, ficheiros fonte, capturas de ecrã, ficheiros carregados ou excertos JavaScript.
- Usa tokens de curta duração, roda-os regularmente e revoga ligações não utilizadas.
- Use um espaço de trabalho dedicado e uma identidade de menor privilégio para cada limite de confiança.
- Regista aprovações e nomes de ferramentas para auditoria, mas não registas credenciais, conteúdos carregados ou dados sensíveis das páginas.
Disponibilidade regional
O Espaços de trabalho para dramaturgos está disponível nas seguintes regiões do Azure:
| Região | Available |
|---|---|
| Leste da Austrália | ✅ Sim |
| Ásia Leste | ✅ Sim |
| E.U.A. Leste | ✅ Sim |
| Leste do Japão | ✅ Sim |
| Norte da Suíça | ✅ Sim |
| Europa Ocidental | ✅ Sim |
| E.U.A. Oeste 3 | ✅ Sim |