MetaDock ships a built-in Model Context Protocol (MCP) server, so AI assistants like Claude Desktop, Claude Code, and Cursor can drive your real, logged-in browsers, layouts, and profiles in plain English. It exposes 198 tools covering navigation, interaction, capture, and multi-browser orchestration.
The Model Context Protocol is an open standard that lets AI assistants call external tools through one consistent interface. MetaDock registers itself as an MCP server, and any MCP-compatible client can then act on your browsers on your behalf.
Open Settings → API, Automation & AI and click Install to desktop tools. MetaDock detects the MCP clients you have installed, writes the connection into each one's config for you, and turns on the matching connection. No hand-editing JSON, and no need to find the install path yourself.
It can install into:
The dialog offers two connection types. Local CLI (recommended) wires up the stdio command below and needs no API key. HTTP server uses the local endpoint with a generated key. Install a single tool, or install into all detected tools at once.
metadock.exe in your install folder. mdk.exe, the console front end that ships beside it, works just as well if you would rather name that one.Your client launches MetaDock's stdio MCP server and talks to it over standard input/output, so there is no port, URL, or API key to manage. The command must be the full path to metadock.exe in your MetaDock install folder (a bare metadock.exe only works if that folder is on your PATH).
| Field | Value |
|---|---|
| Command | Full path to metadock.exe. The installer is per-user, so the default is %LOCALAPPDATA%\MetaDock\bin\metadock.exe |
| Args | ["mcp"] |
| Transport | stdio |
| Auth | Local. The client launches the process, no key needed |
{
"mcpServers": {
"metadock": {
"command": "C:\\Users\\YOU\\AppData\\Local\\MetaDock\\bin\\metadock.exe",
"args": ["mcp"]
}
}
}YOU above. Most MCP clients do not expand %LOCALAPPDATA%, which is why the path is written out in full. Codex uses TOML rather than JSON, but the same command and args apply. The Install to desktop tools button fills the correct path in automatically.Connect over HTTP when your client prefers a URL. First enable MCP under Settings → API, Automation & AI and create an API key there, then point your client at the local endpoint.
| Field | Value |
|---|---|
| Protocol | MCP 2025-11-25, negotiating down to 2025-06-18 |
| Endpoint | http://localhost:8080/mcp |
| Transport | Streamable HTTP |
| Auth | Bearer API key |
MCP-Protocol-Version request header MetaDock also accepts 2025-03-26 and 2024-11-05, so older clients are not turned away.{
"mcpServers": {
"metadock": {
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}YOUR_API_KEYwith a key from the API, Automation & AI settings. Treat it like a password: anything holding it can drive your logged-in browsers.MetaDock exposes 198 tools, grouped by area. The full list ships with the app and is advertised to your client on connect.
| Group | What it covers |
|---|---|
| Navigation | Go to URL, back/forward, reload, stop |
| Page info & source | URL, title, HTML source, full browser state |
| Interaction | Click, type, set values, submit forms, scroll |
| JavaScript & injection | Execute JS, inject CSS/JS, read & clear console |
| Capture | Screenshots and print-to-PDF |
| Cookies | Set, get, list, delete, and clear cookies |
| Settings & DevTools | User agent, viewport, zoom, open/close DevTools |
| Device emulation | Emulate devices, geolocation, offline, headless |
| Wait & batch | Wait for element or load, batch many operations |
| Browser management & bulk | Create/list browsers, act on all at once |
| Anti-fingerprint | Read and set the spoofed identity, canvas, WebGL, and audio |
| Layouts | List, create, delete, rename, inspect layouts |
| Profiles | List, create, delete, temporary profiles, proxies |
| Workspaces | List, switch, create, rename, set homepage & startup |
| Native apps | List running processes, mount and dismount, lock, set title |
| Bookmarks | List, create, update, delete, open, plus categories and tags |
| History | List visits, delete a visit, remove a URL, clear |
| Downloads | Start, list, pause, resume, cancel, remove, clear |
| Search & aliases | Run a search, manage engines, set and resolve aliases |
| Ad & tracker blocking | Filter lists, updates, per-site overrides, whitelist |
| Site permissions | List, set, remove, and clear remembered decisions |
| App settings & themes | Read and write application settings, list themes |
Alongside tools, MetaDock publishes 11 read-only resources: browser state, HTML source, console messages, and cookies per browser, plus the layout list and active layout, the workspace and profile lists, system status, app info, and API server status. It also ships 10 prompts your client can pull in as ready-made instructions for common jobs: navigation, page interaction, browser testing, scraping, layout setup, workspace configuration, profile management, end-to-end web automation, data extraction, and browser monitoring.
Yes, and the sensitive groups are already off. You choose which tools MetaDock exposes, and that choice applies to every automation surface at once, so a tool you switch off is not reachable over MCP, REST, WebSocket, CDP or WebDriver either. Turning a group on is a deliberate act in Settings → API, Automation & AI, not something a client can ask for at runtime.
Browsing history is the clearest example. An assistant that can read where you have been knows a great deal about you, and almost no automation task needs it, so history tools stay off until you decide otherwise. The same reasoning applies to anything else that reads your own data rather than the page in front of it.
That switch governs the whole app. A key can be narrowed on its own, which is what you want when one assistant should be allowed less than another. Each key carries a set of capabilities, an optional deny list of individual tools, an optional allowlist of profiles and layouts, and an optional allowlist of domains. The last one is the useful one for an agent: a key holding a domain allowlist can navigate only to hosts you named, matched exactly or as a *.example.com wildcard, and anything else answers 403. Batches are resolved to their sub-tools before they run, so a batch cannot smuggle a denied call through. Presets set a whole key by risk tier in one click: read-only, interact, or submit.
file:// URL, so an assistant cannot read local files back through the page-reading tools.Hand a model raw HTML and most of what you pay for is script, style and markup it cannot use. So the tools that return page content are built to hand back the smallest thing that still answers the question, and the catalog says so: the raw source tool is labelled token-heavy and points you at the reader instead.
browser_read converts the live page to markdown with a built-in readability pass. It has three modes. Article, the default, keeps the main content and drops navigation, sidebars and footers. Full cleans the whole page without deciding what the main content is. Text returns plain readable text, the lightest of the three. Links are kept by default because an agent usually needs somewhere to go next, images are dropped by default because it usually does not, and both are switches. A CSS selector scopes it to one subtree, and max_chars with offset pages through a long document instead of dumping it.
The same instinct runs through the rest of the read side. Tables come back as markdown, CSV or JSON rows rather than as cells to be parsed. Links come back as a deduplicated list of text and target. Forms come back as named fields with their labels and selectors, so an assistant fills them by name instead of guessing, and password values are never returned. Structured extraction takes a map of fields and selectors and gives you JSON. For driving a page rather than reading it, the interactive snapshot returns visible controls with their role, accessible name and a usable selector, plus a heading outline, which is a fraction of the cost of a screenshot.
By default your client is advertised every tool you have enabled, so each one is directly callable. That is a lot of tool definitions for a client to hold. If yours struggles with a catalog that size, turn on Use Simple MCP Mode in Settings → API, Automation & AI.
In that mode MetaDock advertises five compact tools instead: search the catalog, list it, describe one tool, get help, and call a tool by name. Your assistant finds what it needs and then invokes it, rather than being handed everything up front.
The server is built into the app, part of MetaDock Pro, and has no monthly or daily request quota. Any client implementing the spec can connect, stdio and HTTP can run at once for different clients, and every call drives a real browser, so review consequential actions before running them.