MetaDock
OfficialAllows toggling ad-blocking and managing ad-block lists within MetaDock's browsers.
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 browserbrowser_clear_cookies— Clear all cookies for the browserbrowser_clear_device_emulation— Clear device emulation for the browserbrowser_clear_fingerprint— Disable all fingerprint spoofing for a browserbrowser_clear_geolocation— Clear geolocation override for the browserbrowser_clear_input— Clear an input fieldbrowser_clear_storage— Clear the page's localStorage or sessionStoragebrowser_click— Click an element by CSS selectorbrowser_click_at— Click at raw viewport pixel coordinates using a real (trusted) mouse eventbrowser_close— Close a browser instancebrowser_close_devtools— Close developer tools for the browserbrowser_create— Create a new browser instancebrowser_delete_cookie— Delete a specific cookie from the browserbrowser_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 browserbrowser_enable_devtools— Enable or disable developer tools for the browserbrowser_execute_js— Execute JavaScript code in browserbrowser_extract— Structured, schema-driven extractionbrowser_find— Find visible interactive elements whose role or accessible name matches a text querybrowser_get_all_cookies— Get all cookies for the browserbrowser_get_console— Get console messages from the browserbrowser_get_cookie— Get a cookie value from the browserbrowser_get_element_attribute— Get an attribute value of an element by CSS selectorbrowser_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 selectorbrowser_get_fingerprint— Get current fingerprint spoofing configuration for a browserbrowser_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 UUIDbrowser_get_source— Get raw page source HTMLbrowser_get_state— Get comprehensive browser statebrowser_get_storage— Read the page's localStorage or sessionStoragebrowser_get_tables— Extract HTML tables as markdown (default), CSV, or JSON rowsbrowser_get_title— Get current page titlebrowser_get_url— Get current URL of a browserbrowser_get_zoom— Get current zoom factor for the browserbrowser_go_back— Navigate browser back in historybrowser_go_forward— Navigate browser forward in historybrowser_history_go— Move within the browser's session history by a relative delta (e.gbrowser_hover— Hover the pointer over an element (dispatches pointer/mouse enter+over+move events), triggering hover menus and tooltipsbrowser_inject_css— Inject CSS into the pagebrowser_inject_script— Inject a script URL into the pagebrowser_is_element_visible— Check if an element is visible on the pagebrowser_navigate— Navigate a browser to a specific URLbrowser_open_devtools— Open developer tools for the browserbrowser_press_key— Send a real (trusted) key press to the focused element via native inputbrowser_print_pdf— Print page to PDFbrowser_read— Read the page as clean, LLM-friendly content instead of raw HTMLbrowser_reload— Reload the current pagebrowser_remove_header— Remove a previously-set custom request header from this browserbrowser_right_click— Right-click (context-menu) an element by dispatching mousedown/mouseup/contextmenu with the secondary buttonbrowser_screenshot— Take a screenshot of the page - returns base64-encoded PNG image databrowser_screenshot_element— Screenshot a single element (scrolls it into view, captures just its bounding box)browser_scroll_by— Scroll by offset amountbrowser_scroll_to— Scroll to specific coordinatesbrowser_set_cookie— Set a cookie for the browserbrowser_set_dialog_policy— Control how this browser handles JavaScript dialogs (alert/confirm/prompt/beforeunload)browser_set_fingerprint— Set fingerprint spoofing config for a browserbrowser_set_fingerprint_audio— Configure audio fingerprint spoofing for a browserbrowser_set_fingerprint_canvas— Configure canvas fingerprint spoofing for a browserbrowser_set_fingerprint_webgl— Configure WebGL fingerprint spoofing for a browserbrowser_set_geolocation— Set geolocation for the browserbrowser_set_header— Add or override a custom HTTP request header sent by this browser on subsequent requests (e.gbrowser_set_headless— Toggle headless mode for a browserbrowser_set_muted— Mute or unmute a single browser's audiobrowser_set_offline— Set offline mode for the browserbrowser_set_storage— Set a key in the page's localStorage or sessionStoragebrowser_set_user_agent— Set user agent for the browserbrowser_set_value— Set value of an input elementbrowser_set_viewport— Set viewport size for the browserbrowser_set_zoom— Set zoom factor for the browserbrowser_snapshot— Token-efficient interactive snapshot: a compact list of visible interactive elements (links, buttons, inputs, selects) e…browser_stop— Stop loading the current pagebrowser_submit_form— Submit a formbrowser_type— Type text at current cursor positionbrowser_upload_file— Attach files to a file elementbrowser_wait_for_element— Wait for an element to appear on the pagebrowser_wait_for_load— Wait for page to finish loadingbrowser_wait_for_network_idle— Wait until the page has finished loading and no new network requests have started for a quiet periodbrowsers_close_all— Close all browsersbrowsers_close_others— Close all browsers except onebrowsers_close_others_in_layout— Close all browsers in a layout except onebrowsers_create_multiple— Create multiple browsers with different configurationsbrowsers_execute_all— Execute JavaScript on all browsers and return each browser's resultbrowsers_get_urls— Get every open browser's uuid, url and title (copy all URLs)browsers_list— List all browsersbrowsers_navigate_all— Navigate all browsers to a URLbrowsers_reload_all— Reload all browsers
layout_close_all— Close all dock widgets of specified typeslayout_create— Create a new layout/docklayout_delete— Delete a layout/docklayout_equalize— Equalize the dock splitters so the tiled docks share space evenly (tidy up the layout)layout_get_apps— Get applications in a layoutlayout_get_browsers— Get browsers in a layoutlayout_get_info— Get information about a layoutlayout_list— List all available layouts/dockslayout_open_dock— Open a non-browser dock in the layout: a downloads panel, history panel, or new-window panellayout_rename— Rename a layout/docklayout_reset_resolution— Clear a custom layout resolution and return the window to free/auto sizinglayout_screenshot— Take a screenshot of the entire layout window at its exact dimensionslayout_set_locked— Lock or unlock a layoutlayout_set_mute_all— Mute or unmute all browsers in the layout at oncelayout_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 windowprofile_create— Create a new browser profileprofile_create_temporary— Create a temporary browser profileprofile_delete— Delete a browser profileprofile_get_default— Get default browser profileprofile_get_proxy— Get the proxy address stored for a browser profileprofile_list— List all browser profilesprofile_rename— Rename a browser profile (automatically handles both regular and temporary profiles)profile_set_default— Set default browser profileprofile_set_proxy— Set the proxy address for a browser profile
workspace_create— Create a new workspaceworkspace_delete— Delete a workspaceworkspace_get_current— Get the currently active workspaceworkspace_get_info— Get information about a workspaceworkspace_get_layouts— Get all layouts associated with a workspaceworkspace_get_startup— Get the startup workspace informationworkspace_list— List all available workspacesworkspace_rename— Rename a workspaceworkspace_set_homepage— Set workspace homepage URLworkspace_set_startup— Set workspace as startup workspaceworkspace_switch— Switch to a different workspace
app_dismount— Dismount (unembed) a native app dock by UUIDapp_info— Get full info for a mounted native app by UUIDapp_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 docksapp_lock— Lock or unlock a native app dockapp_mount— Mount a running native window as a dock in a layoutapp_set_title— Set the custom title of a native app dock
adblock_add— Add a new adblock filter list by URLadblock_enable— Enable or disable an adblock filter list by idadblock_get_override— Get a profile's adblock override (on/off/inherit) and the effective enabled stateadblock_list— List all adblock filter lists (id, name, url, enabled, rule_count, last_updated)adblock_remove— Remove an adblock filter list by idadblock_set_auto_update— Configure periodic auto-update of filter listsadblock_set_override— Set a profile's adblock overrideadblock_update— Trigger a refresh/download of a single filter list by idadblock_update_all— Trigger a refresh/download of all enabled filter lists
bookmark_create— Create a bookmarkbookmark_delete— Delete a bookmark by idbookmark_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 browserbookmark_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 profilehistory_delete_visit— Delete a single history visit by visit_idhistory_list— List/search browsing history visits (visit_id, uri, title, host, profile, visit_time, counts)history_profiles— List distinct profiles that have history visitshistory_remove_uri— Remove all history for a specific URL
download_cancel— Cancel an in-flight downloaddownload_clear_all— Remove every download (cancels in-flight first)download_clear_completed— Remove all completed/cancelled/failed downloadsdownload_get— Get one download by uuiddownload_list— List active/recent downloads (uuid, filename, url, status, bytes, speed)download_pause— Pause an in-flight downloaddownload_remove— Remove a download from the list (cancels first if active)download_resume— Resume a paused downloaddownload_start— Download a URL directly to the app's configured download directory
alias_delete— Delete a website aliasalias_list— List website aliases (short keyword -> URL shortcuts used in the omnibox)alias_resolve— Resolve a website alias to its URLalias_set— Create or update a website aliassearch— Run a search query in a new browser using the default (or specified) search engine
permission_clear— Forget every remembered permission decision for all hostspermission_list— List all remembered site permission decisions (host, permission_type, label, allowed)permission_remove— Forget one remembered permission decision for a hostpermission_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
Option A — from inside MetaDock (recommended)
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.
Links
Website — https://metadock.app
MCP setup docs — https://metadock.app/docs/mcp
Support — https://metadock.app/support
Privacy policy — https://metadock.app/privacy
Notes
The
.mcpbin Releases is currently unsigned; Claude Desktop will note this on install.This bundle references your installed
metadock.exeand launchesmetadock mcp— the app itself is not bundled.
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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