Deputydocs

Overview

What Deputy is, how it differs from an agent driving the browser itself, and what it needs.

Deputy is an agent that lives in your browser. Your MCP client (Claude Code, Codex, Cursor or your own agent) stops driving the browser itself and asks Deputy instead. Deputy hands back a typed API for the page you're on, then makes the call in your real, logged-in session.

The page never enters the calling agent's context: no screenshot, no DOM, no accessibility tree.

$claude mcp add deputy -- npx -y deputy-mcp

How it works

You install two things: the Deputy extension in Chrome, and deputy-mcp, the small program your MCP client starts with npx -y deputy-mcp. They talk to each other over 127.0.0.1:7331, which never leaves your computer.

Everything happens in your browser, as you. Deputy works in the page's own security context and copies no cookies.

Driving the browser, or asking Deputy

An agent that drives the browser itself has to look at the page: a screenshot or an accessibility snapshot, then one click or keystroke at a time, looking again between steps. Every look costs thousands of tokens, and the agent re-reads all of them on every turn.

A form already knows everything about itself. It knows a field is a required date, that a dropdown has exactly three options, that a number must fall between 1 and 12. Deputy hands that to your agent as a typed tool instead of a picture:

Driving the browserAsking Deputy
What the agent readsScreenshots or accessibility snapshotsEach form's JSON Schema, what its fields hold, and the page's buttons and links
Filling a seven-field formOne action per fieldOne browser_invoke call
Finding one fact on a pageThe page itselfAn answer from browser_ask

On one observation of a page, a trimmed accessibility snapshot (what Playwright MCP sends) came to 14,170 tokens and a screenshot to 57,134. Deputy's whole view of a form page was 611. See Measurements for the method.

Where the tools come from

Deputy uses the cheapest source that works on the page:

  1. Tools the app already declared. Apps built with CopilotKit publish their frontend tools to the browser's WebMCP registry. Deputy hands them to your agent, fully executable.
  2. Real forms. Deputy writes attributes from the W3C WebMCP standard onto the page's own <form>, and Chromium generates the JSON Schema and runs the submission. If Chromium's WebMCP flag is off, Deputy builds the same schema from the form itself.
  3. Everything else. Where there's no <form>, Deputy builds the tool from the inputs and ARIA widgets: radio groups and listboxes become enums, checkboxes booleans, editable text strings.

Either way, your agent makes one typed call. See Forms as typed tools.

What it needs

  • Chrome, or another Chromium browser, on a desktop computer. The extension needs Chrome 116 or later. Your agent runs on the same computer.
  • A Deputy Pro license key. The extension from the Chrome Web Store needs one for everything. The free version is the open-source one on GitHub: see Open source and Pro.
  • Node.js 20 or later, for npx -y deputy-mcp.
  • An MCP client: Claude Code, Codex, Copilot CLI, Cursor, Gemini CLI, VS Code, OpenCode, Claude Desktop or any other that runs a stdio server.

Where to start

What it can't do

Deputy doesn't use chrome.debugger, so there's no "started debugging this browser" banner and no relaunching Chrome with flags. What that costs: clicks and keys are synthetic events, so heavy editors such as Google Docs may ignore them, and there's no CSS :hover, no device or dark-mode emulation, and no PDF export. PDFs are read from their text layer, so a scanned PDF has nothing to read.

On this page