VSCode Automation MCP (Sukarth/vscode-automation-mcp) is an MCP server listed on the M8ven Trust Index. It scores 58 out of 100, grade D. It declares 61 tools. No publisher has claimed this listing.

D
Caution
58/100

VSCode Automation MCP

Enables AI agents to programmatically control and automate VSCode by interacting with its UI, executing commands, and inspecting the DOM structure. It supports advanced workflows like UI testing, extension development, and debugging through a standalone VSCode instance.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

Sukarth

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
⚠️
Known vulnerabilities in dependencies: 3 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
// tools this server exposes61 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

vscode_execute_command

Execute a VSCode command programmatically. Use this to trigger any command available in the Command Palette.

vscode_list_commands

List available VSCode commands. Optionally filter by a search string to find specific commands.

vscode_click_element

Click a UI element in VSCode by CSS selector, XPath, accessibility label, or text content. Supports single click, double click, and right click.

vscode_type_text

Type text into VSCode. Can type into the currently focused element or target a specific input by selector.

vscode_open_file

Open a file in the VSCode editor. Optionally navigate to a specific line and column position.

vscode_take_screenshot

Take a screenshot of the VSCode window. The screenshot is saved to a file and optionally returned as base64 data.

vscode_get_element

Get detailed information about a UI element including its text, visibility, enabled state, position, size, and attributes.

vscode_open_webview

Open a webview panel by its title or command. Webviews are used by extensions for custom UI.

vscode_get_diagnostics

Get diagnostic messages (errors, warnings, info) from the Problems panel. Useful for checking compilation errors and linting issues.

vscode_get_dom

Get the full DOM structure of the VSCode window or a specific element. Returns the DOM tree in a format suitable for understanding the UI structure. Use this to discover element selectors for automation.

vscode_get_ui_structure

Get the structure of a specific VSCode UI region (sidebar, editor, panel, etc.). Provides a focused, clean view of the requested UI area with semantic information.

vscode_query_elements

Find all elements matching a CSS selector and get information about each. Useful for discovering interactive elements, understanding repeated patterns, and building automation selectors.

vscode_get_accessibility_tree

Get the accessibility tree of the VSCode window. Provides a semantic, role-based view of the UI that is often cleaner and more meaningful than raw DOM. Includes ARIA labels, roles, and states.

vscode_get_element_children

Get the direct children (or descendants) of an element. Use this for incremental DOM exploration - start with a parent, then drill down into specific children.

vscode_get_element_parents

Get the parent chain (ancestors) of an element up to the body. Useful for understanding element context and building more specific selectors.

vscode_get_element_siblings

Get sibling elements at the same level as the target element. Useful for understanding list items, tabs, or other repeated elements.

vscode_find_interactive_elements

Find all interactive elements (buttons, inputs, links, tabs, etc.) within a container. Great for discovering what actions can be performed in a UI area.

vscode_search_dom

Search the DOM for elements by text content, ID, class, aria-label, title, or role. Returns matching elements with their selectors.

vscode_dump_dom_to_file

Dump the full DOM structure to a file (JSON, HTML, or tree format). The AI can then read sections of this file incrementally to explore large DOMs without overwhelming context.

vscode_execute_script

Execute arbitrary JavaScript code in the VSCode window context (like DevTools console). Has full access to document, window, and all globals. Returns the result as JSON.

vscode_query_selector

Direct wrapper for document.querySelector() or querySelectorAll(). Simple and fast element lookup by CSS selector.

vscode_get_element_by_id

Get an element by its ID (document.getElementById wrapper). Fast lookup for elements with known IDs.

vscode_get_elements_by_class

Get all elements with a specific class name (document.getElementsByClassName wrapper).

vscode_get_elements_by_tag

Get all elements of a specific tag type like "button", "input", "div" (document.getElementsByTagName wrapper).

vscode_get_editor_content

Get the full text content of the currently active editor along with metadata like file name, line count, and dirty state.

vscode_verify_element

Verify the presence and state of a UI element. Check if it exists, is visible, is enabled, or contains specific text.

vscode_assert_text

Assert that specific text appears in the editor or a UI element. Supports exact match or contains check.

vscode_check_file_open

Check if a file with the specified name is currently open in the editor.

vscode_press_keys

Press keyboard keys or key combinations (e.g., "ctrl+s", "ctrl+shift+p", "Enter", "Escape"). Supports modifiers and special keys.

vscode_focus_element

Focus a UI element by CSS selector. Optionally scrolls the element into view first.

vscode_scroll

Scroll an element or the page in a specified direction or to a position (top/bottom).

vscode_drag_drop

Drag an element and drop it onto another element. Useful for reordering tabs, tree items, etc.

vscode_hover

Hover over an element for a specified duration to trigger hover effects.

vscode_wait_for_element

Wait for an element to appear or disappear. Useful for waiting for UI updates after actions.

vscode_wait_for_text

Wait for specific text to appear or disappear in an element or the page.

vscode_wait_for_idle

Wait for VSCode to become idle (no pending operations, document ready, no busy indicators).

vscode_get_notifications

Get all visible notifications with their type, message, actions, and source.

vscode_dismiss_notification

Dismiss a notification by clicking its close button. Can target by index or message text.

vscode_handle_dialog

Handle modal dialogs like InputBox, QuickPick, or confirmation dialogs. Can submit text or dismiss.

vscode_get_quick_pick_items

Get items from the currently visible QuickPick/Command Palette.

vscode_select_quick_pick_item

Select an item from the QuickPick by text or index.

vscode_trigger_hover

Trigger hover on an element and optionally wait for tooltip to appear. Returns tooltip content if found.

vscode_open_context_menu

Open a context menu (right-click menu) on an element.

vscode_get_menu_items

Get items from a visible menu (context menu or dropdown).

vscode_click_menu_item

Click a menu item by its text label.

vscode_get_tooltip

Get currently visible tooltip content. Optionally hover over an element first.

vscode_trigger_completion

Trigger IntelliSense/code completion (Ctrl+Space) and optionally wait for items.

vscode_get_completion_items

Get items from the currently visible IntelliSense/completion widget.

vscode_select_completion_item

Select and accept a completion item by its label.

vscode_get_problems_panel

Get problems/diagnostics from the Problems panel with severity, message, source, and location.

vscode_go_to_definition

Trigger Go to Definition (F12) on the current cursor position.

vscode_trigger_signature_help

Trigger signature help (Ctrl+Shift+Space) and get parameter info.

vscode_get_console_logs

Get captured console logs (log, info, warn, error, debug). Logs are captured after first call.

vscode_clear_console

Clear captured console logs.

vscode_get_output_channels

Get list of available output channels in VSCode.

vscode_get_output_channel_content

Get content from a specific output channel.

vscode_get_performance_metrics

Get performance metrics including memory, timing, DOM stats, and resource loading.

vscode_get_extension_logs

Get extension-related console logs. Can filter by extension ID.

vscode_get_devtools_info

Get DevTools-style information about the window, document, navigator, and VSCode-specific APIs.

vscode_initialize

Initialize the VSCode automation driver. This is called automatically on first tool use, but can be called explicitly to pre-warm the connection.

vscode_get_status

Get the current status of the VSCode automation driver.

// known CVEs in dependencies3 high

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

high@modelcontextprotocol/sdk@1.12.0GHSA-345p-7cg4-v4c7

@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse

high@modelcontextprotocol/sdk@1.12.0GHSA-8r9q-7v3j-jr4g

Anthropic's MCP TypeScript SDK has a ReDoS vulnerability

high@modelcontextprotocol/sdk@1.12.0GHSA-w48q-cv73-mx4w

Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configCHROME_DCHECK_ALWAYS_ON
configCHROME_DISABLE_GPU
configCHROME_DISABLE_GPU_COMPOSITING
configDISABLE_GPU
configELECTRON_DISABLE_GPU
configELECTRON_NO_ATTACH_CONSOLE
configEXTENSIONS_FOLDER
configLIBGL_ALWAYS_SOFTWARE
configTEST_RESOURCES
configVSCODE_AUTOMATION_LOG_LEVELLog level: trace, debug, info, warn, error info
configVSCODE_AUTOMATION_OFFLINESet to true to use cached binaries only false
configVSCODE_AUTOMATION_STORAGE_PATHDirectory to store VSCode and ChromeDriver System temp dir
configVSCODE_AUTOMATION_VERSIONVSCode version to download (e.g., 1.95.0, 1.85.0, or latest) latest
configVSCODE_IPC_HOOK
configVSCODE_PORTABLE
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

61/61 tools missing one or more hints — vscode_execute_command (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); vscode_list_commands (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); vscode_click_element (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +58 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Tool inputs are validated

Only 0/61 tool handlers declare input schemas (0%)

Declare an inputSchema with zod/joi/yup on every tool definition.

Tool handlers catch errors

Only 0/61 tool handlers wrap calls in try/catch (0%)

Wrap each tool handler body in try/catch and return a structured error response.

Tests exist

No test files found

Add tests that exercise each declared tool.

Production dependencies are patched

0 critical, 3 high severity in production deps — @modelcontextprotocol/sdk@1.12.0 (high), @modelcontextprotocol/sdk@1.12.0 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 6 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/sukarth/vscode-automation-mcp?variant=verified)](https://m8ven.ai/mcp/sukarth/vscode-automation-mcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 994918d01967ac21c8957557b5075c5c486e1d10
code hash: e93317e77e82b7666c17574b52cf7da32528c0d2016021dc9d58fd8c2996ab71
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client