Pydoll MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pydoll MCP Servergo to example.com and take a screenshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pydoll MCP Server
Servidor MCP de automação de navegador baseado na biblioteca Pydoll.
O objetivo é oferecer uma alternativa local ao Playwright MCP Server, com API própria orientada a agentes e implementação sobre Pydoll. O projeto não copia a API do Playwright. Ele busca entregar uma camada previsível para agentes: observar página, escolher elementos, agir por element_id, navegar, capturar screenshots, executar JavaScript com limites e lidar com iframes e shadow DOM.
Status
Alpha local em estabilização.
Neste ciclo, o transporte principal é HTTP local em 127.0.0.1. O wrapper stdio está planejado para P2. O servidor já expõe endpoints MCP HTTP e exige bearer token por padrão.
Related MCP server: LCBro
Requisitos
Python
>=3.10.Chrome ou Chromium instalado.
Pydoll
>=2.23.0.Em desenvolvimento local nesta máquina, use:
C:\Users\Yuri\anaconda3\python.exeInstalação local
C:\Users\Yuri\anaconda3\python.exe -m pip install -e ".[dev]"Quando distribuído por release, o pacote será instalável via pip.
Execução local
Defina um token antes de iniciar:
$env:PYDOLL_MCP_AUTH_TOKEN = "troque-este-token"Inicie o servidor:
C:\Users\Yuri\anaconda3\python.exe -m pydoll_mcp_server.cli --host 127.0.0.1 --port 8765Endpoints:
GET http://127.0.0.1:8765/health: health público, sem token.POST http://127.0.0.1:8765/mcp/: Streamable HTTP MCP, com bearer token.GET http://127.0.0.1:8765/sse/: SSE MCP, com bearer token quando suportado pelo SDK instalado.
Clientes MCP devem enviar:
Authorization: Bearer <PYDOLL_MCP_AUTH_TOKEN>PYDOLL_MCP_ALLOW_NO_AUTH=true só deve ser usado em desenvolvimento isolado.
Ferramentas MCP
Health e diagnóstico:
health_checkserver_status
Lifecycle:
browser_launchbrowser_listbrowser_closetab_listtab_activatetab_closetab_recover
Navegação:
page_gotopage_reloadpage_backpage_forwardpage_wait
Observação:
page_get_textpage_get_treepage_get_tree_deeppage_screenshot
Elementos:
element_findelement_find_deepelement_clickelement_typeelement_fillelement_get_textelement_get_attributeelement_screenshot
JavaScript e helpers avançados:
js_evaluate_readonlyjs_evaluateuser_agent_setviewport_setcookies_getcookies_setstorage_getstorage_setdownload_expectupload_files
Modelo agent-friendly
page_get_tree retorna uma árvore compacta e limitada por padrão. Os nós interativos recebem element_id, selector_hint, xpath_hint, actionable e resolution_confidence. Um agente pode observar a árvore e chamar element_click ou element_fill diretamente com o element_id, sem chamar element_find antes.
page_get_tree_deep é a opção recomendada quando a página usa iframes ou shadow DOM. Ela é mais cara, tem timeout próprio e retorna:
frame_pathshadow_pathpartialerrorsmetadados de visibilidade e interação quando disponíveis
O alpha cobre iframe simples, nested iframe same-origin e shadow DOM aberto. Closed shadow root e casos cross-origin complexos ainda exigem validação adicional.
Segurança
Padrões importantes:
Bearer token é obrigatório por padrão.
O bind padrão deve permanecer em
127.0.0.1.execute_cdp_cmdlivre não é exposto.Comandos do sistema operacional não são expostos.
Leitura ou escrita arbitrária de filesystem não é exposta.
Screenshots, downloads e uploads usam diretórios controlados ou allowlist.
Cookies e storage são redigidos por padrão em leitura.
Atributos sensíveis, como tokens, senhas e cookies, são redigidos.
Logs devem redigir bearer tokens, cookies, authorization headers e campos sensíveis.
js_evaluate é tool sensível:
exige
tab_idexplícito;usa timeout curto por padrão;
limita tamanho de código e resultado;
registra auditoria resumida com hash, duração e tamanho;
não deve registrar código completo nem resultado completo em logs;
alerta ou bloqueia padrões perigosos, conforme o modo;
pode ser desabilitada futuramente por configuração de modo seguro.
js_evaluate_readonly é preferível para inspeção, mas também deve ser tratada como sensível.
Diretórios runtime
Dados runtime ficam fora do repositório por padrão:
Windows:
%LOCALAPPDATA%\pydoll-mcp-servermacOS:
~/Library/Application Support/pydoll-mcp-serverLinux:
~/.local/share/pydoll-mcp-server
Subdiretórios esperados:
profiles/tmp/downloads/artifacts/logs/
Use PYDOLL_MCP_RUNTIME_DIR para sobrescrever em testes ou ambientes isolados.
Documentação local da Pydoll
A documentação vendorizada da Pydoll fica em:
references/pydoll-docs/Consulte também o repositório local da Pydoll quando estiver trabalhando nesta máquina:
C:\Users\Yuri\Documents\Git\pydollNão misture documentação vendorizada com código do servidor MCP.
Testes
Gates principais:
C:\Users\Yuri\anaconda3\python.exe -m pytest -q
C:\Users\Yuri\anaconda3\python.exe -m ruff check .
C:\Users\Yuri\anaconda3\python.exe -m mypy src
C:\Users\Yuri\anaconda3\python.exe -m pytest -m browser_smoke -qTestes úteis por área:
C:\Users\Yuri\anaconda3\python.exe -m pytest tests\contract -q
C:\Users\Yuri\anaconda3\python.exe -m pytest tests\unit\test_concurrency.py -q
C:\Users\Yuri\anaconda3\python.exe -m pytest tests\unit\test_security.py tests\unit\test_files_security.py -qbrowser_smoke abre Chrome/Chromium headless e valida fluxos reais com fixtures locais.
Limitações conhecidas do alpha
Transporte
stdioainda é P2.Inspeção completa de network e console ainda é P2.
Closed shadow root e OOPIFs complexos ainda precisam de validação dedicada.
Deep traversal é mais caro que
page_get_treee deve ser usado de forma explícita.Downloads dependem do fluxo
expect_downloadda Pydoll e devem permanecer no runtime dir controlado.Uploads só devem usar caminhos permitidos pela allowlist.
Planos e progresso
Visão geral:
PLAN.mdP1 atual:
plans/PLAN_P1.mdP2:
plans/PLAN_P2.md, quando existir ou for atualizadoProgresso dos agentes:
progress/
Agentes devem registrar progresso curto em:
progress/YYYY-MM-DD_AGENT_PLAN_XX.mdLicença
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/yurilopes/pydoll-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server