MCP Server

Debug any web app
with AI. From inside.

Feedthrough injects a lightweight bridge into any running page and exposes DOM state, console logs, and network requests as MCP tools — so any AI agent can inspect and drive your app in real time.

See it in action

Describe a bug in plain language. The agent reproduces it in the running page, finds the cause, and fixes it — over MCP, without ever leaving the chat.

“Clicking ticks the wrong box.”
“The text on this button doesn’t fit.”
“The dialog buttons don’t respond to clicks.”

What's a feedthrough?

Many physics and chemistry experiments run inside a sealed vacuum chamber, with all the air pumped out so nothing contaminates the experiment. The catch: you still need to control instruments inside the chamber and read their measurements, and the smallest air leak ruins the run. A feedthrough is the part that solves this — a specially engineered connector that carries electrical signals through the chamber wall while keeping the vacuum perfectly intact. You can't reach inside, but the feedthrough lets you observe and control what's happening in there anyway.

The parallel is exact. Feedthrough extracts runtime debug data from inside a running web app without disturbing it, and sends control signals back in — clicks, keystrokes, DOM queries — without breaking the execution environment.

Vacuum Chamber
  • experiment running
  • signals generated
feedthrough
instruments outside
Your Web App
  • app state changing
  • network requests firing
@feedthrough/core
your AI agent

How it works

Three components, one WebSocket, zero changes to your production build.

In your browser
@feedthrough/core
  • console intercept
  • fetch / XHR intercept
  • DOM inspector
  • command handler
WebSocket
:8765
Local server
@feedthrough/mcp
  • 16 MCP tools
  • request routing
  • timeout handling
  • stdio transport
MCP / stdio
Your AI client
Claude Code · Cursor · …
  • inspect elements
  • read logs
  • click & fill
  • debug freely

Embedded, not external

Every other browser MCP tool controls the browser from the outside via Puppeteer or CDP. That means Chrome only, a separate controlled browser, and no access to your app's internals.

✗  External tools (Puppeteer / CDP)

Observer from the outside

Launch a separate browser, drive it remotely, hope the public-facing DOM tells the whole story.

  • Chrome only
  • No access to framework internals
  • Separate browser process required
  • Doesn't work inside Cypress
✓  Feedthrough

Agent from the inside

Runs in the same JavaScript context as your app, with full access to everything the page knows.

  • Any browser
  • React trees, Redux store, custom globals
  • Your existing dev server — no extra process
  • Works inside Cypress test runs

Up in four steps

No config files, no separate browser to launch.

1

Add to your MCP client config

// .claude/settings.json (Claude Code example)
{
  "mcpServers": {
    "feedthrough": {
      "command": "npx",
      "args": ["@feedthrough/mcp"]
    }
  }
}
2

Inject the bridge into your app

Eight first-party adapters — Vite, Next.js, Nuxt, SvelteKit, Remix, webpack, Cypress, Playwright. Pick yours, drop in one line. Dev only, zero cost in production.

Install: npm ↗

// vite.config.ts
import { feedthrough } from "@feedthrough/vite";
defineConfig({ plugins: [feedthrough()] });
3

Open your app in the browser

Once the bridge connects you'll see:

[feedthrough] browser connected
4

Ask your AI agent what's wrong

> Why is the counter showing the wrong number?

Agent: I'll check the console logs and inspect the element.

  get_console_logs()         → total: 1, 2, 3
  inspect_element("#count")  → textContent: "2, 4, 6"

  State increments by 2 but logs show +1.
  Bug on line 47: setViews(views + 2)

Sixteen tools, everything you need

Observe, interact, and preview live fixes — all the moment a browser connects.

Eight first-party adapters

One adapter per framework — mechanism shown on each card. All published under @feedthrough on npm.

Don't see yours? Open an issue to suggest an adapter for an additional framework.