MCP server for interactive Chrome extension testing via Playwright — load, interact, assert, inspect storage, network, badges, messaging, tabs, and more.
17 tools with mixed quality. Strengths: most tools have descriptions (14/17 visible); clear naming conventions (verb_noun pattern); comprehensive parameter schemas with enums where appropriate. Weaknesses: 3 tools (reload_extension, interact_with_popup, open_options_page) lack visible descriptions in source; output schemas undocumented across all tools; error handling guidance minimal; no tool annotations (readOnlyHint/destructiveHint); some parameter descriptions are sparse. Average tool score: 62/100.
Read or assert the extension icon badge text and background color from chrome.action.
DEFAULT/PREFERRED way to test an extension — connect to your real Brave/Chrome/Chromium browser with your actual logged-in sessions, cookies, and tabs preserved. Use this whenever testing requires navigating a real website as a logged-in user (job boards, email, social platforms, anything gated behind an account) — most extensions that interact with live sites need this. Only skip it in favor of load_extension's throwaway browser if the extension is fully self-contained (on-device/offline models, local-only tools, no real-account dependency). Use action 'scan' first to see what's available, then 'connect' to attach to a running browser or 'launch' to start one with debugging enabled.
Fetch console logs captured from the extension's background service worker.
Inspect DOM elements or run JavaScript in a page context. Optionally navigate to a URL first.
9 of 17 tools lack visible descriptions in source code (reload_extension, interact_with_popup, take_screenshot, extension_storage, monitor_network, open_options_page, send_message_to_background, simulate_tab_events, test_account_login).
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure. Baseline: 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Launch a fresh, isolated Chromium with an unpacked extension loaded — no real logins, cookies, or site sessions. Use this ONLY when the extension doesn't depend on being logged into a real website or account (e.g. on-device/offline models, local-only tools, extensions that work on arbitrary/synthetic pages). If testing requires navigating a real site as a logged-in user (job boards, email, social platforms, anything gated behind login) use connect_browser instead — that's the default/preferred way to test. Call load_extension again to restart this throwaway browser.
Inspect, edit, delete, and assert browser cookies at the Playwright context layer. Works regardless of the extension's declared permissions and can read httpOnly cookies. Restrictions in connect_browser (CDP) mode, where cookies belong to the user's real profile: 'clear' is disabled, 'delete' requires a cookie 'name', 'get' requires a 'url' or 'name' scope, 'set' won't replace an existing cookie unless overwrite is true, and cookie values are redacted unless include_values is true.
Run a test assertion against the current page. Checks a condition and reports PASS or FAIL.
Test context menus registered by the extension. Can verify the contextMenus API is available and simulate right-click events on page elements.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. Tools like delete_cookies, test_account_login, and simulate_tab_events modify state but lack destructiveHint. Agents cannot distinguish safe from risky operations.
Error handling lacks recovery guidance. Tools return generic error messages without actionable next steps. E.g., 'Error in load_extension: ...' tells agent nothing about retry eligibility or alternatives.
Parameter descriptions sparse or missing for 9 tools. E.g., reload_extension has no visible schema; extension_storage, monitor_network lack parameter docs. Baseline: 100% of A+ tools have param descriptions.