Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/vitexsoftware/mcp-server-webdriver/agents-mdgit clone --depth 1 https://github.com/VitexSoftware/mcp-server-webdriverWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.01494 | $0.01494 |
| Opus 5 | $0.00747 | $0.00747 |
| Sonnet 5 | $0.00299 | $0.00299 |
| Haiku 4.5 | $0.00149 | $0.00149 |
Grade B, and why
mcp-server-webdriver AGENTS.md scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
sudo curl -fsSL http://repo.vitexsoftware.com/KEY.gpg -o /usr/share/keyrings/vitexsoftware-archive-keyring.gpg Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
sudo curl -fsSL http://repo.vitexsoftware.com/KEY.gpg -o /usr/share/keyrings/vitexsoftware-archive-keyring.gpg How it starts
The opening of the file, as written. The whole thing — 90 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Commands
# Unit tests only (no browser required — used by Debian build):
pytest tests/ -m "not integration"
# All tests including browser integration (requires geckodriver on PATH):
pytest tests/
# Run a single test class or function:
pytest tests/test_server.py::TestNormaliseUrl
pytest tests/test_server.py::TestBrowserIntegration::test_navigate_and_title
# Install dev dependencies:
pip install -e ".[dev]"
# Run the server (normally launched by MCP client, not by hand):
mcp-server-webdriver --help
Installation (VitexSoftware APT repository)
sudo curl -fsSL http://repo.vitexsoftware.com/KEY.gpg -o /usr/share/keyrings/vitexsoftware-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/vitexsoftware-archive-keyring.gpg] http://repo.vitexsoftware.com trixie main" \
| sudo tee /etc/apt/sources.list.d/vitexsoftware.list
sudo apt update && sudo apt install python3-mcp-server-webdriver
Architecture
The entire server is a single file: server.py. There are no submodules.
Core components
BrowserState dataclass — owns the Firefox session and all captured DevTools data. It holds:
- The
webdriver.Firefoxdriver instance - Three in-memory buffers (protected by
threading.Lock):_console,_js_errors,_network - A
_pendingdict tracking in-flight network requests by request ID, used to calculateduration_mswhen a response arrives - BiDi handler IDs for cleanup on re-attach
BiDi event capture — _attach_bidi() registers four async callbacks on the Selenium BiDi API (driver.script for console/JS errors, driver.network for request/response/fail events). Handlers write to the shared buffers under the lock. Network timing is derived from (response.timestamp - request.timestamp) * 1000. If the Selenium version doesn't support network BiDi, the network handlers are silently skipped.
FastMCP server — mcp = FastMCP(...) at module level. Tools are decorated with @mcp.tool(). State is passed to every tool via Context using the lifespan pattern: ctx.lifespan_context["browser"] returns the BrowserState. The helper _st(ctx) wraps this lookup.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 90 lines · 1,494 tokens per session scan B 26898d2af4b9
mcp-server-webdriver AGENTS.md is an instructions file published in the GitHub repository VitexSoftware/mcp-server-webdriver (4 stars, last pushed 4d ago), licensed MIT. It adds 1,494 tokens to every session, about $0.0075 per session on Opus 5. A static security scan graded it B with 2 findings (asks for root, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
setup-chromedriver CLAUDE.md
Instructions for nanasess/setup-chromedriver, covering claude.md, commands, build and development, running a single test and or.
Browser4 CLAUDE.md
Instructions for platonai/Browser4, covering browser4 — project context for claude, architecture, key dispatch chain (cli → browser), batch commands and e2e test structure.
agentic-playwright selectors.instructions.md
Instructions for idavidov13/agentic-playwright, covering selector strategy, critical, instructions, phase 1: open and authenticate and phase 2: explore like a user.
scrapai-cli CLAUDE.md
Instructions for discourselab/scrapai-cli, covering claude.md, 1. who you are, 2. hard rules, 3. tools and 4. before you start: confirm the project.
chromeboost CLAUDE.md
Instructions for lordamdal/chromeboost, covering chromeboost — repo-developer guide, what chromeboost is, repository layout, development commands and tests/antibot/ (run locally; not in ci).
skills CLAUDE.md
Instructions for aemcoder/skills, covering claude.md, repository structure, slicc browser automation conventions, stateless tab targeting (since slicc pr #188) and tab-new returns a targetid.