{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github_mcp-refreshdotdev-web-eval-agent","slug":"mcp-refreshdotdev-web-eval-agent","name":"web-eval-agent","type":"mcp","url":"https://github.com/refreshdotdev/web-eval-agent","page_url":"https://unfragile.ai/mcp-refreshdotdev-web-eval-agent","categories":["mcp-servers","observability"],"tags":["debugging","debugging-tool","mcp","mcp-server","modelcontextprotocol","playwright","qa","vibe-coding","vibe-testing"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_0","uri":"capability://planning.reasoning.autonomous.web.application.evaluation.with.browser.agent","name":"autonomous-web-application-evaluation-with-browser-agent","description":"Launches a Playwright-controlled Chromium browser running a browser-use AI agent that autonomously navigates a web application based on natural language task instructions. The agent executes multi-step interactions (clicks, form fills, navigation) and returns a structured Web Evaluation Report containing agent action steps, console logs, network requests, screenshots, and a chronological timeline—all captured within a single MCP tool call without developer manual verification.","intents":["I want my coding agent to automatically test that generated code works end-to-end in a real browser without me manually clicking through the app","I need to capture detailed diagnostics (console logs, network requests, screenshots) from a web app evaluation in a single structured report","I want to verify that a web application behaves correctly under specific user workflows before deploying","I need to integrate automated web testing directly into my IDE's AI coding workflow without context switching"],"best_for":["AI-assisted developers using Cursor, Cline, Windsurf, or Claude Code who need automated end-to-end verification","Teams building LLM-powered coding agents that require real-world browser feedback loops","QA engineers integrating browser-based testing into AI development workflows"],"limitations":["Requires a running web application accessible via HTTP/HTTPS—cannot test offline or static-only apps","Browser-use agent execution time scales with task complexity; complex multi-step workflows may exceed IDE timeout windows","Screenshots and network logs are captured but not analyzed for performance regressions—requires manual interpretation or post-processing","Single-browser session per evaluation; no parallel test execution or cross-browser testing in one call","Headless mode (default) may miss rendering issues visible only in headed mode; headed mode requires manual intervention"],"requires":["Python 3.9+","Playwright browser binaries (Chromium) installed via `playwright install`","Running web application with accessible URL (http://localhost:3000 or similar)","OPERATIVE_API_KEY environment variable set for MCP authentication","IDE with MCP client support (Cursor, Cline, Windsurf, Claude Code, or compatible)","Node.js 18+ (if running web app locally)"],"input_types":["url (string, required): target web application URL","task (string, required): natural language instruction for agent (e.g., 'Log in with email test@example.com and verify dashboard loads')","headless_browser (boolean, optional): whether to run browser in headless mode (default: false)"],"output_types":["structured JSON report containing: agent_steps (array of actions), console_logs (array), network_requests (array), screenshots (base64-encoded images), timeline (chronological events), evaluation_summary (text)"],"categories":["planning-reasoning","automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_1","uri":"capability://memory.knowledge.interactive.browser.state.persistence.with.authentication.setup","name":"interactive-browser-state-persistence-with-authentication-setup","description":"Opens an interactive Chromium browser window controlled by the developer (not an AI agent) for manual login and session establishment. The tool persists browser state (cookies, local storage, session storage) to ~/.operative/browser_state/ as a reusable artifact that subsequent web_eval_agent calls can load, eliminating the need to re-authenticate for each evaluation and enabling testing of authenticated user workflows.","intents":["I need to log into a web app manually once and reuse that authenticated session for multiple automated evaluations","I want to set up complex authentication (OAuth, 2FA, SAML) that an AI agent cannot handle, then test authenticated features","I need to establish a specific browser state (cookies, local storage) before running automated tests against protected pages"],"best_for":["Developers testing authenticated web applications (SaaS, dashboards, admin panels)","Teams with complex authentication flows (OAuth, SAML, multi-factor) that require manual setup","QA workflows where session persistence across multiple test runs is critical"],"limitations":["Requires manual developer interaction—cannot be fully automated or run in CI/CD pipelines without human intervention","Persisted cookies and tokens may expire; no automatic refresh or token rotation mechanism","Browser state stored locally in ~/.operative/browser_state/; no encryption or secure credential storage—sensitive tokens are stored in plaintext","Single browser profile per setup; no multi-user or multi-role session management","State persistence is file-based; no synchronization across machines or team members"],"requires":["Python 3.9+","Playwright browser binaries (Chromium) installed","Write access to ~/.operative/browser_state/ directory","OPERATIVE_API_KEY environment variable set","IDE with MCP client support","Manual developer availability to interact with browser window"],"input_types":["url (string, optional): initial URL to load in interactive browser (default: about:blank)"],"output_types":["confirmation message (text) indicating browser state saved to ~/.operative/browser_state/; no structured data returned"],"categories":["memory-knowledge","automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_10","uri":"capability://automation.workflow.headless.and.headed.browser.mode.selection","name":"headless-and-headed-browser-mode-selection","description":"Allows users to choose between headless mode (no visible browser window, faster execution) and headed mode (visible browser window, useful for debugging). Headless mode is the default for CI/CD and automated workflows; headed mode is useful for interactive debugging where the developer wants to see the browser in real-time. Mode selection is passed as a parameter to the web_eval_agent tool.","intents":["I want to run evaluations in headless mode for CI/CD pipelines and automated workflows","I want to run evaluations in headed mode to see the browser window and debug visually","I want to toggle between headless and headed modes without changing my code"],"best_for":["CI/CD pipelines that require headless execution for automation","Developers debugging agent behavior and wanting visual feedback","Teams running both automated and interactive evaluations"],"limitations":["Headed mode requires a display server (X11, Wayland, or macOS window manager); not available in headless environments (Docker without display, SSH without X forwarding)","Headed mode is slower than headless mode due to rendering overhead (~20-30% slower)","Headed mode may reveal rendering issues not visible in headless mode, but these are not automatically captured or reported","Mode selection is per-evaluation; cannot switch modes mid-evaluation"],"requires":["headless_browser parameter (boolean, default: false)","For headed mode: display server (X11, Wayland, or macOS window manager)","For headless mode: no display server required"],"input_types":["headless_browser (boolean): true for headless mode, false for headed mode"],"output_types":["browser_process (Playwright browser): launched browser in selected mode"],"categories":["automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_2","uri":"capability://tool.use.integration.mcp.protocol.server.with.api.key.validation","name":"mcp-protocol-server-with-api-key-validation","description":"Implements a FastMCP-based Model Context Protocol server that exposes web_eval_agent and setup_browser_state as callable tools to IDE clients (Cursor, Cline, Windsurf, Claude Code). The server validates OPERATIVE_API_KEY on every tool invocation, generates unique tool_call_ids for request tracking, and marshals parameters/responses between the IDE and internal tool handlers using MCP's standardized schema.","intents":["I want to make web evaluation capabilities available as a native tool in my IDE's AI agent without custom integrations","I need to secure tool access with API key validation to prevent unauthorized web app testing","I want to track and audit which tool calls were made and when, using unique call IDs"],"best_for":["IDE developers integrating web-eval-agent into Cursor, Cline, Windsurf, or Claude Code","Teams deploying web-eval-agent as a shared MCP server across multiple developers","Organizations requiring API key-based access control for automated testing tools"],"limitations":["MCP protocol overhead adds ~50-100ms per tool invocation for serialization/deserialization","API key validation is synchronous; no rate limiting or quota enforcement built-in","Tool schema is fixed at server startup; dynamic tool registration not supported","No built-in logging or audit trail beyond tool_call_id generation—requires external observability"],"requires":["Python 3.9+","FastMCP library installed (dependency in pyproject.toml)","OPERATIVE_API_KEY environment variable set (any non-empty string)","IDE with MCP client support and configured MCP server endpoint","Network connectivity between IDE and MCP server (local or remote)"],"input_types":["MCP tool call with tool name (web_eval_agent or setup_browser_state) and parameters"],"output_types":["MCP tool result with structured response (JSON) or error message"],"categories":["tool-use-integration","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_3","uri":"capability://automation.workflow.browser.automation.with.playwright.and.cdp.screencast","name":"browser-automation-with-playwright-and-cdp-screencast","description":"Manages Playwright browser lifecycle (launch, context creation, page navigation) and establishes a Chrome DevTools Protocol (CDP) session to stream real-time page frames via Page.startScreencast. Frames are transmitted to a local log server (Flask/SocketIO on port 5009) for live visualization in the Operative Control Center UI, enabling real-time observation of agent actions without polling or screenshot intervals.","intents":["I want to see a live screencast of the browser as the agent executes tasks, not just final screenshots","I need to capture every frame of browser interaction for detailed debugging and timeline reconstruction","I want to stream browser state to a dashboard in real-time while the agent is running"],"best_for":["Developers debugging complex agent behaviors and needing frame-by-frame visibility","Teams running web-eval-agent with the Operative Control Center UI for live monitoring","QA engineers analyzing agent interaction patterns in detail"],"limitations":["CDP screencast adds ~100-200ms latency per frame; high frame rates (30+ fps) may cause performance degradation","Screencast frames are transmitted over WebSocket to local log server; network latency affects real-time visualization","Frame capture is memory-intensive; long-running evaluations (>5 minutes) may consume significant RAM","Screencast only works with Chromium-based browsers; Firefox and Safari not supported","CDP session requires direct browser process access; cannot work with remote browsers or browser pools"],"requires":["Playwright Python library (version 1.40+)","Chromium browser binary installed via `playwright install chromium`","Flask and python-socketio libraries for log server","Local port 5009 available (configurable but hardcoded in current implementation)","Browser process running on same machine as MCP server (no remote browser support)"],"input_types":["url (string): target page URL","task (string): agent task instruction","headless_browser (boolean): whether to run headless"],"output_types":["screencast frames (base64-encoded images) streamed to log server; final screenshots in evaluation report"],"categories":["automation-workflow","image-visual"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_4","uri":"capability://planning.reasoning.browser.use.ai.agent.task.execution","name":"browser-use-ai-agent-task-execution","description":"Instantiates a browser-use AI agent (powered by Claude or another LLM) with a natural language task instruction and a Playwright browser context. The agent autonomously decides which DOM elements to interact with, executes multi-step workflows (navigation, form submission, data extraction), and reports back with action steps and outcomes. The agent uses vision-based element detection (via screenshots) and reasoning to handle dynamic or unfamiliar UI patterns without pre-scripted selectors.","intents":["I want an AI agent to navigate a web app and complete a task without me writing Selenium/Cypress scripts","I need the agent to handle dynamic or unfamiliar UI patterns by reasoning about the page visually","I want to extract the agent's reasoning and action steps for debugging and audit purposes"],"best_for":["Developers testing web apps with dynamic or frequently-changing UIs","Teams without QA automation expertise who want AI-driven testing","Scenarios where traditional selector-based automation is brittle or unmaintainable"],"limitations":["Agent reasoning time scales with task complexity; simple tasks ~5-10 seconds, complex workflows ~30-60 seconds","Agent may fail on CAPTCHAs, image-based authentication, or non-standard UI patterns not well-represented in training data","Vision-based element detection is probabilistic; agent may click wrong elements on cluttered or ambiguous pages","Agent has no persistent memory across evaluations; cannot learn from previous failures or adapt strategies","LLM API calls add latency and cost; each agent step requires a round-trip to the LLM provider (OpenAI, Anthropic, etc.)"],"requires":["LLM API key (OpenAI, Anthropic, or compatible provider) set in environment","browser-use Python library installed","Playwright browser context with active page","Task instruction written in natural language (no formal syntax required)","Network connectivity to LLM provider"],"input_types":["task (string): natural language instruction (e.g., 'Fill out the contact form with name=John, email=john@example.com, and submit')","browser_context (Playwright context): active browser session"],"output_types":["agent_steps (array): list of actions taken with reasoning and outcomes","final_state (text): summary of task completion or failure reason"],"categories":["planning-reasoning","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_5","uri":"capability://data.processing.analysis.structured.evaluation.report.generation.with.diagnostics","name":"structured-evaluation-report-generation-with-diagnostics","description":"Aggregates browser events (console logs, network requests, page errors), screenshots, and agent action steps into a structured JSON evaluation report with a chronological timeline. The report includes metadata (URL, task, execution time), diagnostic data (console output, network activity), visual artifacts (base64-encoded screenshots), and a summary of agent actions—all formatted for programmatic consumption by IDE tools or CI/CD systems.","intents":["I want a structured, machine-readable report of the evaluation that I can parse and analyze programmatically","I need to extract console logs, network requests, and errors from the evaluation for debugging","I want to include screenshots and a timeline in the report for manual review and documentation"],"best_for":["CI/CD pipelines that need to parse evaluation results and make pass/fail decisions","Developers analyzing evaluation failures and needing detailed diagnostic data","Teams documenting test results with screenshots and timelines for stakeholders"],"limitations":["Report size scales with evaluation duration; long-running tests generate large JSON files (10+ MB with screenshots)","Screenshots are base64-encoded, increasing report size by ~30% compared to external image references","Console logs and network requests are captured but not filtered; noisy apps may produce verbose reports","Timeline is event-based, not frame-accurate; timing precision depends on event emission frequency","No built-in report validation or schema enforcement; consumers must handle malformed data gracefully"],"requires":["Browser event listeners configured (console, network, page errors)","Screenshot capture mechanism (Playwright page.screenshot())","Agent action step logging from browser-use library","JSON serialization library (built-in Python json module)"],"input_types":["console_logs (array): captured console output","network_requests (array): captured network activity","screenshots (array): base64-encoded images","agent_steps (array): action steps from browser-use agent","page_errors (array): JavaScript errors from page"],"output_types":["evaluation_report (JSON): structured report with metadata, diagnostics, screenshots, timeline, summary"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_6","uri":"capability://automation.workflow.log.server.with.websocket.streaming.and.dashboard","name":"log-server-with-websocket-streaming-and-dashboard","description":"Launches a Flask/SocketIO server on port 5009 that receives real-time browser events (screencast frames, console logs, network requests) via WebSocket and serves an Operative Control Center UI dashboard. The dashboard displays live browser screencast, agent action steps, console output, and network activity as the evaluation runs, enabling real-time monitoring without polling or manual log inspection.","intents":["I want to watch the browser evaluation happen in real-time without waiting for the report to complete","I need to see console logs and network requests as they occur during the evaluation","I want a visual dashboard showing agent progress and any errors or warnings in real-time"],"best_for":["Developers debugging complex agent behaviors and needing live visibility","Teams running long-running evaluations and wanting to monitor progress","QA engineers analyzing agent interactions in real-time for pattern detection"],"limitations":["Log server adds ~50-100ms latency per event due to WebSocket serialization and network transmission","Dashboard is browser-based and requires a separate browser window; cannot be embedded in IDE directly","WebSocket connection is not persistent across IDE restarts; dashboard must be manually refreshed","No authentication or access control on log server; any process with network access can view evaluation data","Dashboard UI is hardcoded; customization requires modifying HTML/CSS/JavaScript in the repository","Port 5009 is hardcoded; conflicts with other services on the same port will cause failures"],"requires":["Flask library installed","python-socketio library installed","python-engineio library installed (dependency of socketio)","Local port 5009 available and not blocked by firewall","Modern web browser (Chrome, Firefox, Safari) to view dashboard","Network connectivity between MCP server and dashboard browser"],"input_types":["screencast frames (base64-encoded images): streamed from CDP session","console_logs (text): captured from page console","network_requests (JSON): captured from page network activity","agent_steps (JSON): action steps from browser-use agent"],"output_types":["HTML dashboard: live visualization of screencast, logs, network activity, agent steps"],"categories":["automation-workflow","image-visual"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_7","uri":"capability://text.generation.language.prompt.engineering.for.agent.task.instructions","name":"prompt-engineering-for-agent-task-instructions","description":"Generates a structured prompt instruction for the browser-use agent that includes the target URL, user task, system context (browser capabilities, interaction patterns), and behavioral guidelines. The prompt is crafted to guide the agent toward successful task completion while avoiding common failure modes (clicking wrong elements, infinite loops, misinterpreting UI patterns). Prompt generation is deterministic and customizable based on task complexity and domain.","intents":["I want the agent to understand the task clearly and avoid common mistakes like clicking wrong elements","I need to provide domain-specific context or constraints to the agent (e.g., 'do not submit forms without confirmation')","I want to customize the agent's behavior based on the application type (e.g., SaaS dashboard vs. e-commerce site)"],"best_for":["Teams fine-tuning agent behavior for specific application types or domains","Developers debugging agent failures and wanting to adjust task instructions","Scenarios where generic prompts are insufficient and domain-specific guidance is needed"],"limitations":["Prompt quality directly impacts agent success; poorly-written prompts lead to agent failures","No automatic prompt optimization; prompt engineering is manual and iterative","Prompts are not versioned or tracked; changes to prompt templates are not audited","Prompt length is limited by LLM context window; very complex tasks may not fit in a single prompt","No feedback loop from agent failures back to prompt generation; prompts are static per evaluation"],"requires":["Task instruction provided by user (natural language string)","Target URL (string)","Prompt template (hardcoded in src/prompts.py or customizable)"],"input_types":["url (string): target web application URL","task (string): user-provided task instruction"],"output_types":["prompt (string): formatted instruction for browser-use agent"],"categories":["text-generation-language","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_8","uri":"capability://automation.workflow.browser.context.isolation.and.state.management","name":"browser-context-isolation-and-state-management","description":"Creates isolated Playwright browser contexts for each evaluation, ensuring that cookies, local storage, and session state from one evaluation do not leak into subsequent evaluations. Optionally loads persisted browser state from ~/.operative/browser_state/ (set up via setup_browser_state tool) to enable authenticated workflows. Context isolation is enforced at the Playwright API level, preventing cross-contamination of browser state.","intents":["I want each evaluation to start with a clean browser state unless I explicitly load a saved session","I need to test authenticated workflows by loading a persisted session from a previous setup_browser_state call","I want to ensure that one evaluation's cookies or local storage do not affect another evaluation"],"best_for":["Teams running multiple evaluations in sequence and needing isolation guarantees","Scenarios where authenticated sessions must be reused across evaluations","QA workflows where test isolation is critical for reproducibility"],"limitations":["Context isolation adds ~200-500ms overhead per evaluation (context creation and teardown)","Persisted state loading is manual; no automatic detection or validation of saved state freshness","State files are stored in plaintext; no encryption or access control on ~/.operative/browser_state/","No built-in state versioning or rollback; overwriting state is permanent","Cross-context communication is not supported; contexts are completely isolated"],"requires":["Playwright browser context API","File system access to ~/.operative/browser_state/ (if loading persisted state)","Sufficient disk space for state files (typically <10MB per context)"],"input_types":["load_persisted_state (boolean): whether to load state from ~/.operative/browser_state/"],"output_types":["browser_context (Playwright context): isolated context ready for evaluation"],"categories":["automation-workflow","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-refreshdotdev-web-eval-agent__cap_9","uri":"capability://data.processing.analysis.event.capture.and.timeline.reconstruction","name":"event-capture-and-timeline-reconstruction","description":"Attaches listeners to Playwright page events (console messages, network requests, page errors, navigation events) and timestamps each event for chronological reconstruction. Events are aggregated into a timeline that maps agent actions to browser state changes, enabling correlation of agent steps with console output, network activity, and page errors. Timeline is included in the evaluation report for post-hoc analysis and debugging.","intents":["I want to see a chronological timeline of what happened during the evaluation, including agent actions and browser events","I need to correlate agent steps with console logs and network requests to debug failures","I want to identify performance bottlenecks or unexpected network activity during the evaluation"],"best_for":["Developers debugging complex evaluation failures and needing event correlation","Teams analyzing performance issues during web app testing","QA engineers investigating unexpected behavior or errors during evaluations"],"limitations":["Event capture adds ~10-20ms overhead per event due to listener callbacks and timestamp recording","Timeline is event-based, not frame-accurate; timing precision depends on event emission frequency","Some events (e.g., silent failures, network timeouts) may not be captured if not explicitly listened for","Timeline can become very large for long-running evaluations; filtering or sampling may be needed","Event ordering is based on JavaScript event loop timing; may not reflect actual causality in complex async scenarios"],"requires":["Playwright page object with event listener support","Event types to listen for (console, network, page errors, navigation)","Timestamp mechanism (Python time.time() or similar)"],"input_types":["page (Playwright page): active page object to attach listeners to"],"output_types":["timeline (array): chronological list of events with timestamps, types, and details"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":42,"verified":false,"data_access_risk":"high","permissions":["Python 3.9+","Playwright browser binaries (Chromium) installed via `playwright install`","Running web application with accessible URL (http://localhost:3000 or similar)","OPERATIVE_API_KEY environment variable set for MCP authentication","IDE with MCP client support (Cursor, Cline, Windsurf, Claude Code, or compatible)","Node.js 18+ (if running web app locally)","Playwright browser binaries (Chromium) installed","Write access to ~/.operative/browser_state/ directory","OPERATIVE_API_KEY environment variable set","IDE with MCP client support"],"failure_modes":["Requires a running web application accessible via HTTP/HTTPS—cannot test offline or static-only apps","Browser-use agent execution time scales with task complexity; complex multi-step workflows may exceed IDE timeout windows","Screenshots and network logs are captured but not analyzed for performance regressions—requires manual interpretation or post-processing","Single-browser session per evaluation; no parallel test execution or cross-browser testing in one call","Headless mode (default) may miss rendering issues visible only in headed mode; headed mode requires manual intervention","Requires manual developer interaction—cannot be fully automated or run in CI/CD pipelines without human intervention","Persisted cookies and tokens may expire; no automatic refresh or token rotation mechanism","Browser state stored locally in ~/.operative/browser_state/; no encryption or secure credential storage—sensitive tokens are stored in plaintext","Single browser profile per setup; no multi-user or multi-role session management","State persistence is file-based; no synchronization across machines or team members","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.44067790135249985,"quality":0.32,"ecosystem":0.7000000000000001,"match_graph":0.25,"freshness":0.6,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:22.065Z","last_scraped_at":"2026-05-03T14:23:38.364Z","last_commit":"2026-02-11T14:55:42Z"},"community":{"stars":1238,"forks":108,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=mcp-refreshdotdev-web-eval-agent","compare_url":"https://unfragile.ai/compare?artifact=mcp-refreshdotdev-web-eval-agent"}},"signature":"7o85FhPzmClLKZJx5w55Y7OFKC9hbqSPRIezl4Y6xWeoOMWCvk+Vgh3doO56caXQTrRNCcChc+NwhGhQWS8kCg==","signedAt":"2026-06-21T06:58:48.260Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/mcp-refreshdotdev-web-eval-agent","artifact":"https://unfragile.ai/mcp-refreshdotdev-web-eval-agent","verify":"https://unfragile.ai/api/v1/verify?slug=mcp-refreshdotdev-web-eval-agent","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}