aryanduntley avatar

PWA Debug Layer

aryanduntley/pwa-debug-layer

Lets Claude inspect and debug Progressive Web Apps in your actual browser profile, not a sterile automated tab. It reads service worker lifecycle state, CacheStorage contents, installability diagnostics, IndexedDB, and framework internals (React fiber, Vue reactive state, Svelte components, Redux/Zustand stores) as structured data. Works by injecting a content script and page-world hooks into your live browser, then exposing operations like DOM inspection, network capture, interaction replay, and version skew analysis over MCP. Reach for it when debugging "why won't my service worker update" or "why is my cache stale" questions that require seeing your logged-in session state, extensions, and cookies. Complements chrome-devtools-mcp by targeting the runtime state CDP can't reach. Currently verified on Linux with Chrome.

tools
80
transport
STDIO
last updated
Nov 8, 2026

Tools

80 tools

Public tool metadata for what this MCP can expose to an agent.

pdl_helpUsage guide as data. No args: capabilities, startup workflow and the topic list. topic: a how-to. tool: that tool's description and parameters, read from the live registry.

Usage guide as data. No args: capabilities, startup workflow and the topic list. topic: a how-to. tool: that tool's description and parameters, read from the live registry.

No parameter schema in public metadata yet.

host_statusInstall/liveness state: registered IDs, manifest paths, launcher path, active connections. Cheap, idempotent. Always call first.

Install/liveness state: registered IDs, manifest paths, launcher path, active connections. Cheap, idempotent. Always call first.

No parameter schema in public metadata yet.

host_register_extensionAdd an extension ID across per-browser manifests + launcher script. Idempotent.

Add an extension ID across per-browser manifests + launcher script. Idempotent.

No parameter schema in public metadata yet.

host_unregister_extensionRemove an extension ID across per-browser manifests + launcher script. Idempotent.

Remove an extension ID across per-browser manifests + launcher script. Idempotent.

No parameter schema in public metadata yet.

host_list_registrationsRead registered IDs.

Read registered IDs.

No parameter schema in public metadata yet.

host_resetDestructive cleanup to re-bootstrap.

Destructive cleanup to re-bootstrap.

No parameter schema in public metadata yet.

session_pingFull MCP → IPC → NMH → SW → page-world round-trip with typed pageWorldError codes + self-heal.

Full MCP → IPC → NMH → SW → page-world round-trip with typed pageWorldError codes + self-heal.

No parameter schema in public metadata yet.

pdl_check_setupDiagnose setup → { ok, gaps[], recommendations[] }.

Diagnose setup → { ok, gaps[], recommendations[] }.

No parameter schema in public metadata yet.

pdl_install_extensionCopy the extension to a folder for unpacked install.

Copy the extension to a folder for unpacked install.

No parameter schema in public metadata yet.

pdl_launch_browserLaunch/attach a Chromium browser with a live debug port and return browserUrl.

Launch/attach a Chromium browser with a live debug port and return browserUrl.

No parameter schema in public metadata yet.

pdl_browser_statusManaged launches with live debug-port re-probe and extension SW heartbeat.

Managed launches with live debug-port re-probe and extension SW heartbeat.

No parameter schema in public metadata yet.

console_tailCursor-paginated, filterable tail of console capture ring buffer.

Cursor-paginated, filterable tail of console capture ring buffer.

No parameter schema in public metadata yet.

network_tailCursor-paginated, filterable tail of network capture ring buffer.

Cursor-paginated, filterable tail of network capture ring buffer.

No parameter schema in public metadata yet.

error_tailCursor-paginated, filterable tail of error capture ring buffer.

Cursor-paginated, filterable tail of error capture ring buffer.

No parameter schema in public metadata yet.

recent_eventsRecent captured events across kinds for quick verification.

Recent captured events across kinds for quick verification.

No parameter schema in public metadata yet.

evaluateEvaluate an expression in the page world.

Evaluate an expression in the page world.

No parameter schema in public metadata yet.

session_recordrrweb session recording.

rrweb session recording.

No parameter schema in public metadata yet.

session_replayCursor-paginated replay of recorded session.

Cursor-paginated replay of recorded session.

No parameter schema in public metadata yet.

source_map_resolveResolve generated stack frames to original source locations.

Resolve generated stack frames to original source locations.

No parameter schema in public metadata yet.

settings_list_schemaRead the typed settings schema.

Read the typed settings schema.

No parameter schema in public metadata yet.

settings_getGet settings values.

Get settings values.

No parameter schema in public metadata yet.

settings_setSet settings values.

Set settings values.

No parameter schema in public metadata yet.

sw_statusService-worker registrations, versions, and whether an update is stuck waiting.

Service-worker registrations, versions, and whether an update is stuck waiting.

No parameter schema in public metadata yet.

sw_lifecycle_tailCursor-paginated stream of SW lifecycle events.

Cursor-paginated stream of SW lifecycle events.

No parameter schema in public metadata yet.

cache_listList CacheStorage caches.

List CacheStorage caches.

No parameter schema in public metadata yet.

cache_inspectPer-entry details of a cache.

Per-entry details of a cache.

No parameter schema in public metadata yet.

cache_matchWhich cache serves a given URL.

Which cache serves a given URL.

No parameter schema in public metadata yet.

pwa_statusDisplay mode, controller, permissions, and live capability matrix.

Display mode, controller, permissions, and live capability matrix.

No parameter schema in public metadata yet.

pwa_installabilityDiscover and parse manifest and run installability checks with remediation.

Discover and parse manifest and run installability checks with remediation.

No parameter schema in public metadata yet.

storage_getlocalStorage / sessionStorage snapshot (capped).

localStorage / sessionStorage snapshot (capped).

No parameter schema in public metadata yet.

idb_listList IndexedDB databases and object-store schema.

List IndexedDB databases and object-store schema.

No parameter schema in public metadata yet.

idb_queryRead-only capped slice of IndexedDB records.

Read-only capped slice of IndexedDB records.

No parameter schema in public metadata yet.

pwa_update_analyzeCorrelates SW status, cache ages and 404s into an update verdict.

Correlates SW status, cache ages and 404s into an update verdict.

No parameter schema in public metadata yet.

pwa_snapshotOne capped runtime-state blob for repro / hand-off.

One capped runtime-state blob for repro / hand-off.

No parameter schema in public metadata yet.

layout_sweepStart a background responsive layout sweep across pages, viewports, schemes and states.

Start a background responsive layout sweep across pages, viewports, schemes and states.

No parameter schema in public metadata yet.

layout_sweep_statusProgress and grouped findings of a layout sweep.

Progress and grouped findings of a layout sweep.

No parameter schema in public metadata yet.

layout_sweep_cancelStop a layout sweep after the current view.

Stop a layout sweep after the current view.

No parameter schema in public metadata yet.

react_treeReact fiber-tree introspection.

React fiber-tree introspection.

No parameter schema in public metadata yet.

react_get_stateReact props/state/hooks by stable id.

React props/state/hooks by stable id.

No parameter schema in public metadata yet.

react_find_by_textFind React components by text.

Find React components by text.

No parameter schema in public metadata yet.

react_find_by_roleFind React components by role.

Find React components by role.

No parameter schema in public metadata yet.

vue_treeVue 3 component instance tree.

Vue 3 component instance tree.

No parameter schema in public metadata yet.

vue_get_stateVue reactive state.

Vue reactive state.

No parameter schema in public metadata yet.

vue_find_by_textFind Vue components by text.

Find Vue components by text.

No parameter schema in public metadata yet.

vue_find_by_roleFind Vue components by role.

Find Vue components by role.

No parameter schema in public metadata yet.

svelte_componentsSvelte component discovery with source locations.

Svelte component discovery with source locations.

No parameter schema in public metadata yet.

svelte_find_by_textFind Svelte elements by text.

Find Svelte elements by text.

No parameter schema in public metadata yet.

svelte_find_by_roleFind Svelte elements by role.

Find Svelte elements by role.

No parameter schema in public metadata yet.

solid_detectDetect Solid and find elements.

Detect Solid and find elements.

No parameter schema in public metadata yet.

solid_find_by_textFind Solid elements by text.

Find Solid elements by text.

No parameter schema in public metadata yet.

solid_find_by_roleFind Solid elements by role.

Find Solid elements by role.

No parameter schema in public metadata yet.

redux_get_stateRedux state read with JSONPath-lite slice.

Redux state read with JSONPath-lite slice.

No parameter schema in public metadata yet.

redux_subscribeSubscribe to Redux change deltas.

Subscribe to Redux change deltas.

No parameter schema in public metadata yet.

redux_tailTail Redux changes.

Tail Redux changes.

No parameter schema in public metadata yet.

redux_dispatchOpt-in Redux action dispatch.

Opt-in Redux action dispatch.

No parameter schema in public metadata yet.

store_get_stateFramework-agnostic store read (Zustand / Pinia / Jotai).

Framework-agnostic store read (Zustand / Pinia / Jotai).

No parameter schema in public metadata yet.

store_subscribeFramework-agnostic store subscribe.

Framework-agnostic store subscribe.

No parameter schema in public metadata yet.

store_tailFramework-agnostic store tail.

Framework-agnostic store tail.

No parameter schema in public metadata yet.

store_dispatchFramework-agnostic store dispatch by name.

Framework-agnostic store dispatch by name.

No parameter schema in public metadata yet.

pdl_clickClick interaction.

Click interaction.

No parameter schema in public metadata yet.

pdl_dblclickDouble-click interaction.

Double-click interaction.

No parameter schema in public metadata yet.

pdl_hoverHover interaction.

Hover interaction.

No parameter schema in public metadata yet.

pdl_fillFill form field.

Fill form field.

No parameter schema in public metadata yet.

pdl_submitSubmit form.

Submit form.

No parameter schema in public metadata yet.

pdl_select_optionSelect option.

Select option.

No parameter schema in public metadata yet.

pdl_uncheckUncheck control.

Uncheck control.

No parameter schema in public metadata yet.

pdl_focusFocus element.

Focus element.

No parameter schema in public metadata yet.

pdl_blurBlur element.

Blur element.

No parameter schema in public metadata yet.

pdl_key_pressKey press.

Key press.

No parameter schema in public metadata yet.

pdl_type_sequenceKeyboard typing sequence.

Keyboard typing sequence.

No parameter schema in public metadata yet.

pdl_dragDrag gesture.

Drag gesture.

No parameter schema in public metadata yet.

pdl_scrollScroll gesture.

Scroll gesture.

No parameter schema in public metadata yet.

pdl_swipeSwipe gesture.

Swipe gesture.

No parameter schema in public metadata yet.

pdl_tapTap gesture.

Tap gesture.

No parameter schema in public metadata yet.

pdl_double_tapDouble-tap gesture.

Double-tap gesture.

No parameter schema in public metadata yet.

pdl_long_pressLong-press gesture.

Long-press gesture.

No parameter schema in public metadata yet.

pdl_pinchPinch gesture.

Pinch gesture.

No parameter schema in public metadata yet.

pdl_android_devicesList phones over adb with authorization state and DevTools sockets.

List phones over adb with authorization state and DevTools sockets.

No parameter schema in public metadata yet.

pdl_android_attachFind phone, forward browser socket, attach or open a tab; returns connection id.

Find phone, forward browser socket, attach or open a tab; returns connection id.

No parameter schema in public metadata yet.

pdl_cdp_targetsList targets on a CDP endpoint.

List targets on a CDP endpoint.

No parameter schema in public metadata yet.

Sponsors

Readme

pwa-debug-layer

An AI-native debugging layer for PWAs and modern web apps. It lets an AI agent (e.g. Claude Code via MCP) see and act on your live, logged-in browser the way a developer with full DevTools open would — DOM, console, network, framework state, store state, service workers, caches, and direct interaction — as structured data the model consumes natively.

It's built for the questions developers actually search for and that Chrome DevTools makes you assemble by hand: why won't my service worker update? why is my cache stale? why won't my PWA install? why does this component have the wrong state? — answered by an agent reading the runtime directly, against your real browser profile (extensions, auth, and all), not a sterile automated tab.

What it answers

The PWA failures developers actually search for, read straight from your live runtime:


View the full README on GitHub

Details

Repository
github.com/aryanduntley/pwa-debug-layer
Category
Web & Browser Automation
Package
@aryanduntley/pwa-debug
Transport
STDIO
Registry
MCP registry, active

More from aryanduntley

Related Web & Browser Automation MCP servers

View all
1clauxel avatarBrowserspendguard Mcpclauxel/browser-spend-guard-mcpApproval receipts for AI browser purchases.0stars
2clauxel avatarPlaywrightselectorguard Mcpclauxel/playwright-selector-guard-mcpPlaywright selector risk checks with healing suggestions and receipts.0stars
3clauxel avatarPlaywritermcp Mcpclauxel/playwriter-session-cloud-mcpA paid remote MCP for AI agent browser MCP session, built to return verdicts, receipts, usage logs,0stars
4j0hanz avatarSuperfetchj0hanz/super-fetch-mcp-serverIntelligent web content fetcher MCP server that converts HTML to clean, AI-readable JSONL format0stars
5plasmate-labs avatarPlasmateplasmate-labs/plasmate-mcpBrowser engine for AI agents. HTML in, Semantic Object Model out. 16x fewer tokens.0stars
6noncelogic avatarMcpnoncelogic/mcpHosted Playwright API for AI agents. Returns a11y trees instead of screenshots.0stars