Skip to main content
Glama
metadockapp

MetaDock

Official

MetaDock MCP

Control the MetaDock desktop workspace over the Model Context Protocol.

MetaDock is a Windows power-user workspace that docks browsers and native apps side by side. Its built-in MCP server exposes everything you can do by hand as tools, so Claude — or any MCP client — can open and drive browsers, arrange layouts, manage bookmarks and downloads, search, and more.

Listed in the official MCP registry as app.metadock/metadock.

What you can do

The server exposes 178 tools across 11 groups — the full surface of what you can do in MetaDock by hand:

Group

Tools

Examples

Browser

93

navigate, execute JavaScript, click, type, screenshot, cookies, zoom, device emulation, fingerprint

Layout & Profiles

25

arrange/save/switch multi-browser layouts, per-profile proxy & settings

Workspace

11

manage and switch whole workspaces

Native Apps

7

mount/dismount and control docked native apps

Ad-block

9

toggle lists and per-site overrides

Bookmarks

6

read/write bookmarks and categories

History

5

query and manage browsing history

Downloads

9

start and manage downloads

Search & Aliases

5

search + custom aliases

Permissions

4

site permission control

Settings

4

app settings

Full tool list

  • browser_batch — Execute multiple browser operations in sequence on one or multiple browsers (100 operations per browser max)

  • browser_clear_cache — Clear this browser's HTTP cache (CDP Network.clearBrowserCache)

  • browser_clear_console — Clear console messages for the browser

  • browser_clear_cookies — Clear all cookies for the browser

  • browser_clear_device_emulation — Clear device emulation for the browser

  • browser_clear_fingerprint — Disable all fingerprint spoofing for a browser

  • browser_clear_geolocation — Clear geolocation override for the browser

  • browser_clear_input — Clear an input field

  • browser_clear_storage — Clear the page's localStorage or sessionStorage

  • browser_click — Click an element by CSS selector

  • browser_click_at — Click at raw viewport pixel coordinates using a real (trusted) mouse event

  • browser_close — Close a browser instance

  • browser_close_devtools — Close developer tools for the browser

  • browser_create — Create a new browser instance

  • browser_delete_cookie — Delete a specific cookie from the browser

  • browser_drag — Drag from one element to another using real (trusted) mouse events: press at the source center, move in steps to the tar…

  • browser_emulate_device — Enable device emulation for the browser

  • browser_enable_devtools — Enable or disable developer tools for the browser

  • browser_execute_js — Execute JavaScript code in browser

  • browser_extract — Structured, schema-driven extraction

  • browser_find — Find visible interactive elements whose role or accessible name matches a text query

  • browser_get_all_cookies — Get all cookies for the browser

  • browser_get_console — Get console messages from the browser

  • browser_get_cookie — Get a cookie value from the browser

  • browser_get_element_attribute — Get an attribute value of an element by CSS selector

  • browser_get_element_box — Get an element's bounding box (x/y/width/height/top/left/bottom/right) and key computed styles (display, visibility, opa…

  • browser_get_element_text — Get the text content of an element by CSS selector

  • browser_get_fingerprint — Get current fingerprint spoofing configuration for a browser

  • browser_get_forms — Enumerate forms and their fields {name, id, type, label, placeholder, required, options, selector}

  • browser_get_last_dialog — Get the most recent JavaScript dialog captured for this browser (only captured while a non-default dialog policy is acti…

  • browser_get_links — Extract all hyperlinks on the page as a compact list of {text, href, rel}

  • browser_get_metadata — Get page metadata: title, description, canonical URL, author, published/modified dates, language, favicon, Open Graph + …

  • browser_get_network — List the network requests the page has made (from the Resource Timing API): url, type, protocol, size, and duration, plu…

  • browser_get_screenshot — Retrieve a saved screenshot by UUID

  • browser_get_source — Get raw page source HTML

  • browser_get_state — Get comprehensive browser state

  • browser_get_storage — Read the page's localStorage or sessionStorage

  • browser_get_tables — Extract HTML tables as markdown (default), CSV, or JSON rows

  • browser_get_title — Get current page title

  • browser_get_url — Get current URL of a browser

  • browser_get_zoom — Get current zoom factor for the browser

  • browser_go_back — Navigate browser back in history

  • browser_go_forward — Navigate browser forward in history

  • browser_history_go — Move within the browser's session history by a relative delta (e.g

  • browser_hover — Hover the pointer over an element (dispatches pointer/mouse enter+over+move events), triggering hover menus and tooltips

  • browser_inject_css — Inject CSS into the page

  • browser_inject_script — Inject a script URL into the page

  • browser_is_element_visible — Check if an element is visible on the page

  • browser_navigate — Navigate a browser to a specific URL

  • browser_open_devtools — Open developer tools for the browser

  • browser_press_key — Send a real (trusted) key press to the focused element via native input

  • browser_print_pdf — Print page to PDF

  • browser_read — Read the page as clean, LLM-friendly content instead of raw HTML

  • browser_reload — Reload the current page

  • browser_remove_header — Remove a previously-set custom request header from this browser

  • browser_right_click — Right-click (context-menu) an element by dispatching mousedown/mouseup/contextmenu with the secondary button

  • browser_screenshot — Take a screenshot of the page - returns base64-encoded PNG image data

  • browser_screenshot_element — Screenshot a single element (scrolls it into view, captures just its bounding box)

  • browser_scroll_by — Scroll by offset amount

  • browser_scroll_to — Scroll to specific coordinates

  • browser_set_cookie — Set a cookie for the browser

  • browser_set_dialog_policy — Control how this browser handles JavaScript dialogs (alert/confirm/prompt/beforeunload)

  • browser_set_fingerprint — Set fingerprint spoofing config for a browser

  • browser_set_fingerprint_audio — Configure audio fingerprint spoofing for a browser

  • browser_set_fingerprint_canvas — Configure canvas fingerprint spoofing for a browser

  • browser_set_fingerprint_webgl — Configure WebGL fingerprint spoofing for a browser

  • browser_set_geolocation — Set geolocation for the browser

  • browser_set_header — Add or override a custom HTTP request header sent by this browser on subsequent requests (e.g

  • browser_set_headless — Toggle headless mode for a browser

  • browser_set_muted — Mute or unmute a single browser's audio

  • browser_set_offline — Set offline mode for the browser

  • browser_set_storage — Set a key in the page's localStorage or sessionStorage

  • browser_set_user_agent — Set user agent for the browser

  • browser_set_value — Set value of an input element

  • browser_set_viewport — Set viewport size for the browser

  • browser_set_zoom — Set zoom factor for the browser

  • browser_snapshot — Token-efficient interactive snapshot: a compact list of visible interactive elements (links, buttons, inputs, selects) e…

  • browser_stop — Stop loading the current page

  • browser_submit_form — Submit a form

  • browser_type — Type text at current cursor position

  • browser_upload_file — Attach files to a file element

  • browser_wait_for_element — Wait for an element to appear on the page

  • browser_wait_for_load — Wait for page to finish loading

  • browser_wait_for_network_idle — Wait until the page has finished loading and no new network requests have started for a quiet period

  • browsers_close_all — Close all browsers

  • browsers_close_others — Close all browsers except one

  • browsers_close_others_in_layout — Close all browsers in a layout except one

  • browsers_create_multiple — Create multiple browsers with different configurations

  • browsers_execute_all — Execute JavaScript on all browsers and return each browser's result

  • browsers_get_urls — Get every open browser's uuid, url and title (copy all URLs)

  • browsers_list — List all browsers

  • browsers_navigate_all — Navigate all browsers to a URL

  • browsers_reload_all — Reload all browsers

  • layout_close_all — Close all dock widgets of specified types

  • layout_create — Create a new layout/dock

  • layout_delete — Delete a layout/dock

  • layout_equalize — Equalize the dock splitters so the tiled docks share space evenly (tidy up the layout)

  • layout_get_apps — Get applications in a layout

  • layout_get_browsers — Get browsers in a layout

  • layout_get_info — Get information about a layout

  • layout_list — List all available layouts/docks

  • layout_open_dock — Open a non-browser dock in the layout: a downloads panel, history panel, or new-window panel

  • layout_rename — Rename a layout/dock

  • layout_reset_resolution — Clear a custom layout resolution and return the window to free/auto sizing

  • layout_screenshot — Take a screenshot of the entire layout window at its exact dimensions

  • layout_set_locked — Lock or unlock a layout

  • layout_set_mute_all — Mute or unmute all browsers in the layout at once

  • layout_set_resolution — Set a fixed pixel resolution for the layout window (useful for consistent screenshots or device-size testing)

  • layout_toggle_fullscreen — Toggle fullscreen mode for the layout window

  • profile_create — Create a new browser profile

  • profile_create_temporary — Create a temporary browser profile

  • profile_delete — Delete a browser profile

  • profile_get_default — Get default browser profile

  • profile_get_proxy — Get the proxy address stored for a browser profile

  • profile_list — List all browser profiles

  • profile_rename — Rename a browser profile (automatically handles both regular and temporary profiles)

  • profile_set_default — Set default browser profile

  • profile_set_proxy — Set the proxy address for a browser profile

  • workspace_create — Create a new workspace

  • workspace_delete — Delete a workspace

  • workspace_get_current — Get the currently active workspace

  • workspace_get_info — Get information about a workspace

  • workspace_get_layouts — Get all layouts associated with a workspace

  • workspace_get_startup — Get the startup workspace information

  • workspace_list — List all available workspaces

  • workspace_rename — Rename a workspace

  • workspace_set_homepage — Set workspace homepage URL

  • workspace_set_startup — Set workspace as startup workspace

  • workspace_switch — Switch to a different workspace

  • app_dismount — Dismount (unembed) a native app dock by UUID

  • app_info — Get full info for a mounted native app by UUID

  • app_list — List native app docks mounted in a layout (full JSON)

  • app_list_processes — List running OS windows/processes that can be mounted as native app docks

  • app_lock — Lock or unlock a native app dock

  • app_mount — Mount a running native window as a dock in a layout

  • app_set_title — Set the custom title of a native app dock

  • adblock_add — Add a new adblock filter list by URL

  • adblock_enable — Enable or disable an adblock filter list by id

  • adblock_get_override — Get a profile's adblock override (on/off/inherit) and the effective enabled state

  • adblock_list — List all adblock filter lists (id, name, url, enabled, rule_count, last_updated)

  • adblock_remove — Remove an adblock filter list by id

  • adblock_set_auto_update — Configure periodic auto-update of filter lists

  • adblock_set_override — Set a profile's adblock override

  • adblock_update — Trigger a refresh/download of a single filter list by id

  • adblock_update_all — Trigger a refresh/download of all enabled filter lists

  • bookmark_create — Create a bookmark

  • bookmark_delete — Delete a bookmark by id

  • bookmark_list — List bookmarks (id, name, url, category_id, tags)

  • bookmark_list_categories — List bookmark categories (id, name, parent_id, color, path, depth)

  • bookmark_open — Open a bookmark in a new browser

  • bookmark_update — Update a bookmark's title, url, and/or category by id (unspecified fields keep their current value)

  • history_clear — Clear all browsing history across every profile

  • history_delete_visit — Delete a single history visit by visit_id

  • history_list — List/search browsing history visits (visit_id, uri, title, host, profile, visit_time, counts)

  • history_profiles — List distinct profiles that have history visits

  • history_remove_uri — Remove all history for a specific URL

  • download_cancel — Cancel an in-flight download

  • download_clear_all — Remove every download (cancels in-flight first)

  • download_clear_completed — Remove all completed/cancelled/failed downloads

  • download_get — Get one download by uuid

  • download_list — List active/recent downloads (uuid, filename, url, status, bytes, speed)

  • download_pause — Pause an in-flight download

  • download_remove — Remove a download from the list (cancels first if active)

  • download_resume — Resume a paused download

  • download_start — Download a URL directly to the app's configured download directory

  • alias_delete — Delete a website alias

  • alias_list — List website aliases (short keyword -> URL shortcuts used in the omnibox)

  • alias_resolve — Resolve a website alias to its URL

  • alias_set — Create or update a website alias

  • search — Run a search query in a new browser using the default (or specified) search engine

  • permission_clear — Forget every remembered permission decision for all hosts

  • permission_list — List all remembered site permission decisions (host, permission_type, label, allowed)

  • permission_remove — Forget one remembered permission decision for a host

  • permission_remove_host — Forget every remembered permission decision for a host

  • settings_get — Get current values of application settings (the readable counterpart to settings_set) - behaviour/features, appearance, …

  • settings_list_search_engines — List configured search engines (id, name, url)

  • settings_list_themes — List available themes (id, name, is_dark, is_core)

  • settings_set — Set an application setting by key

Related MCP server: qutebrowser-mcp

Requirements

  • The MetaDock desktop app installed and running (Windows). Get it at metadock.app.

  • The MCP server enabled in MetaDock → Settings → API & Automation.

The server runs locally on your machine — stdio (metadock mcp) or loopback HTTP — so your data never leaves your computer.

Install

Settings → API & Automation → Install to desktop tools, then pick your client (Claude Desktop, Claude Code, Cursor, VS Code, Codex, …). MetaDock writes the correct config and enables the endpoint for you.

Option B — Claude Desktop (.mcpb)

Download the latest metadock-<version>.mcpb from Releases, open it with Claude Desktop, and confirm the path to metadock.exe when prompted.

Option C — manual (any stdio MCP client)

Add this to your client's MCP config, adjusting the path to where MetaDock is installed (default %LOCALAPPDATA%\MetaDock\bin\metadock.exe):

{
  "mcpServers": {
    "metadock": {
      "command": "C:\\Users\\YOU\\AppData\\Local\\MetaDock\\bin\\metadock.exe",
      "args": ["mcp"]
    }
  }
}

Option D — official MCP registry

Any registry-aware client can discover the server by name: app.metadock/metadock.

Privacy & safety

Everything runs on your machine. By design, the following are not reachable over MCP (or any automation surface): the Password Vault, the AI assistant, profile-bundle import/export, and the system clipboard.

Notes

  • The .mcpb in Releases is currently unsigned; Claude Desktop will note this on install.

  • This bundle references your installed metadock.exe and launches metadock mcp — the app itself is not bundled.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/metadockapp/metadock-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server