{"name":"seleniumbase-website-scraper","description":"SeleniumBase-style browser agent that turns observed website traffic into OpenAPI specs, coverage reports, samples, and a replay client.","version":"0.3.0","skills":[{"id":"discover_api_from_browser","name":"discover_api_from_browser","description":"Open a website in a browser, capture observable HTTP traffic, infer an OpenAPI 3.1 spec, and write a browsable API discovery report.","tags":["browser","seleniumbase","openapi","api-discovery"],"scopes":[],"stream":false,"policy":{"timeout_seconds":600.0,"idempotent":false,"max_retries":0,"cost_class":null,"allow_scope_expansion":false,"grant_mode":null,"grant_allow_patterns":[],"grant_deny_patterns":[],"grant_outputs_prefix":null,"grant_write_prefixes":[],"grant_ttl_seconds":null,"grant_run_timeout_seconds":null,"grant_approval_timeout_seconds":null,"grant_scope_approval_timeout_seconds":null},"input_schema":{"type":"object","properties":{"url":{"type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"origins":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"include":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"exclude":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"wait_seconds":{"type":"integer"},"max_clicks":{"type":"integer"},"search_term":{"anyOf":[{"type":"string"},{"type":"null"}]},"min_samples":{"type":"integer"},"redact":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"browser_mode":{"type":"string"},"captcha_policy":{"type":"string"},"ai_explore":{"type":"boolean"},"ai_steps":{"type":"integer"},"ai_goal":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["url"],"additionalProperties":false},"output_schema":{"additionalProperties":true,"type":"object"}},{"id":"discover_api_from_trace","name":"discover_api_from_trace","description":"Replay request/response JSONL traffic into the same OpenAPI 3.1 discovery pipeline used by live browser capture.","tags":["trace","openapi","api-discovery"],"scopes":[],"stream":false,"policy":{"timeout_seconds":240.0,"idempotent":false,"max_retries":0,"cost_class":null,"allow_scope_expansion":false,"grant_mode":null,"grant_allow_patterns":[],"grant_deny_patterns":[],"grant_outputs_prefix":null,"grant_write_prefixes":[],"grant_ttl_seconds":null,"grant_run_timeout_seconds":null,"grant_approval_timeout_seconds":null,"grant_scope_approval_timeout_seconds":null},"input_schema":{"type":"object","properties":{"requests_jsonl":{"type":"string"},"responses_jsonl":{"type":"string"},"title":{"type":"string"},"origins":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"include":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"exclude":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"min_samples":{"type":"integer"},"redact":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}},"required":["requests_jsonl"],"additionalProperties":false},"output_schema":{"additionalProperties":true,"type":"object"}}],"capabilities":{"browser_to_api":{"capture":"Launches a browser, records XHR/fetch/document traffic with response bodies, then infers OpenAPI.","offline":"Can replay JSONL request/response captures into the same OpenAPI emitter.","outputs":["openapi.json","openapi.yaml","report.md","index.html","client.mjs","confidence.json","samples/*.json"],"noise_filtering":"Drops analytics, static assets, service workers, and obvious bot-defense plumbing by default.","schema_inference":"Infers request/response JSON schemas, query params, path params, GraphQL dispatches, and auth-shaped headers.","target_scope":"Public browser capture is restricted to a2acloud.io and subdomains.","captcha_policy":"SeleniumBase solve_captcha is fixed to a2acloud.io and subdomains.","llm_exploration":"Uses ctx.llm to choose bounded, non-destructive page actions after the page loads."},"a2a_pack":{"package":"a2a-pack","version":"0.1.102"},"mcp":{"standard":{"path":"/mcp","intended_for":"code_sdk_clients"},"connector":{"path":"/connector-mcp","intended_for":["chatgpt","claude","hosted_connectors"],"supports_async_jobs":true,"supports_structured_interrupts":true,"poll_tool":"job_result","resume_tool":"submit_interaction","instructions":"Use this URL for hosted connector UIs. Use /mcp for normal code or SDK MCP clients."}}},"input_modes":["application/json"],"output_modes":["application/json"],"required_secrets":[],"required_env":[],"consumer_setup":{"fields":[]},"runtime":{"lifecycle":"ephemeral","availability":"on_demand","state":"none","sandbox":"microsandbox","resources":{"cpu":"2000m","memory":"4Gi","gpu":0,"max_runtime_seconds":900},"concurrency":1,"egress":{"allow_hosts":["a2acloud.io","www.a2acloud.io","blog.a2acloud.io","docs.a2acloud.io","api.a2acloud.io"],"allow_internal_services":[],"deny_internet_by_default":true},"tools_used":["seleniumbase","playwright","browser-to-api","openapi"],"llm_provisioning":"platform","pricing":{"price_per_call_usd":0.0,"caller_pays_llm":false,"notes":""},"wants_cp_jwt":false,"platform_resources":{"memory":null,"databases":[]},"endpoints":[],"apt_packages":[]},"state_schema":null,"workspace_access":{"enabled":false,"max_files":0,"allowed_modes":[],"require_reason":true,"deny_patterns":[],"require_human_approval":false,"max_total_size_bytes":104857600},"mcp_endpoint":"/mcp","connector_mcp_endpoint":"/connector-mcp","mcp_endpoints":{"standard":{"path":"/mcp","intended_for":"code_sdk_clients"},"connector":{"path":"/connector-mcp","intended_for":["chatgpt","claude","hosted_connectors"],"supports_async_jobs":true,"supports_structured_interrupts":true,"poll_tool":"job_result","resume_tool":"submit_interaction","instructions":"Use this URL for hosted connector UIs. Use /mcp for normal code or SDK MCP clients."}}}