{"id":"web-agent-protocol","name":"Web Agent Protocol","homepage":"https://github.com/OTA-Tech-AI/web-agent-protocol","repo_url":"https://github.com/OTA-Tech-AI/web-agent-protocol","category":"browser-automation","subcategories":["record-replay","web-automation","mcp-server-generator"],"tags":["browser","record-replay","chrome-extension","playwright","mcp","web-automation","rpa","openai","deepseek"],"what_it_does":"A standardized framework for recording browser user interactions via a Chrome extension and replaying them either exactly or as AI-condensed smart sequences, with the ability to convert recordings into reusable MCP servers for AI agent consumption.","use_cases":["Recording repetitive browser workflows once and replaying them via AI agents","Generating MCP servers from recorded browser sessions for reuse across teams","Automating web tasks that require navigating sites without public APIs","Building RPA-style automation that AI agents can invoke through a standard protocol"],"not_for":["Sites with heavy anti-bot measures or dynamic DOM structures that change between sessions","Users who need zero-code setup — Python 3.11 + Conda + API keys required","Real-time or event-driven automation (record-replay model is batch-oriented)"],"best_when":"You have a stable, repeatable browser workflow you want to encode once and expose to AI agents as an MCP tool, especially for sites without APIs.","avoid_when":"The target website changes its DOM structure frequently, or you need to handle branching logic and dynamic content — use Browser-Use or Playwright directly instead.","alternatives":["browser-use","playwright-mcp","puppeteer","selenium-mcp","vibetest-use"],"af_score":59.5,"security_score":55.0,"reliability_score":null,"package_type":"mcp_server","discovery_source":["github"],"priority":"low","status":"evaluated","version_evaluated":"latest","last_evaluated":"2026-03-01T09:50:06.399369+00:00","performance":{"latency_p50_ms":null,"latency_p99_ms":null,"uptime_sla_percent":null,"rate_limits":null,"data_source":"llm_estimated","measured_on":null}}