Vscode Playwright Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Vscode Playwright Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A VS Code-aware layer on top of @playwright/mcp. Gives LLMs full control over VS Code — click UI elements, type code, run commands, take screenshots, read editor state, and record GIFs.
Use cases:
Built on top of @playwright/mcp, which provides generic Electron automation (click, type, screenshot, etc.). We add a VS Code-specific layer: isolated launch with temp user-data-dir, command palette automation, editor state scraping, and Monaco-aware tools.
Generic tools from @playwright/mcp are aliased to vscode_* names for a unified LLM experience. Before vscode_launch, only 1 tool is visible (lazy discovery saves ~10k context tokens). After launch, all 26 tools appear.
{
"mcpServers": {
"vscode": {
"command": "npx",
"args": ["-y", "vscode-playwright-mcp"]
}
}
}Custom VS Code binary:
{
"mcpServers": {
"vscode": {
"command": "npx",
"args": ["-y", "vscode-playwright-mcp", "--vscode-path", "/path/to/code"]
}
}
}| Tool | Description |
|---|---|
vscode_launch | Launch an isolated VS Code instance. Options: workspace, extensions, viewport size, settings. |
vscode_close | Close VS Code and clean up temp files/processes. |
| Tool | Description |
|---|---|
vscode_screenshot | Full-window screenshot. |
vscode_snapshot | Accessibility tree with [ref=eN] annotations on interactive elements. |
vscode_zoom | Cropped screenshot of a specific region (native — Monaco-aware). |
vscode_find_element | Search a11y tree by role/name, returns refs (native). |
| Tool | Description |
|---|---|
vscode_click | Click by ref, element description, or coordinates. |
vscode_type | Type text into focused element. |
vscode_press_key | Press key combinations (e.g., Control+Shift+P). |
vscode_hover | Hover to reveal tooltips. |
vscode_drag | Drag from one point to another. |
vscode_click_xy | Click at exact pixel coordinates. |
vscode_hover_xy | Hover at exact pixel coordinates. |
vscode_drag_xy | Drag between exact pixel coordinates. |
vscode_select_option | Select from dropdown/combobox. |
vscode_fill_form | Fill form inputs. |
| Tool | Description |
|---|---|
vscode_run_command | Execute a VS Code command via Command Palette automation. |
vscode_ensure_file | Open and activate a file by path with verification. |
| Tool | Description |
|---|---|
vscode_get_state | Read editor state: active file, cursor, diagnostics, completions, peek widget. |
vscode_get_hover | Read hover tooltip content as text. |
| Tool | Description |
|---|---|
vscode_evaluate | Run JavaScript in the VS Code renderer process (aliased). |
vscode_wait_for | Wait for selector state, text, or delay (aliased). |
vscode_console | Retrieve console messages from renderer (aliased). |
vscode_resize | Resize the VS Code window and viewport (native). |
vscode_scroll | Scroll up/down by amount (native). |
vscode_gif | Record actions as animated GIF (native). |
vscode_snapshot → see [ref=eN] annotations → vscode_click(ref="e5"). Deterministic, no coordinate guessing.vscode_snapshot → see shortcuts → vscode_press_key. Fastest for commands.vscode_screenshot or vscode_zoom → read the image → vscode_click_xy(x, y).This project is built on top of @playwright/mcp, not a replacement. Playwright MCP provides generic Electron automation. We add:
vscode_run_command) — execute commands by namevscode_get_state) — cursor, diagnostics, completions, peek widgetvscode_zoom, vscode_find_element) — the editor is invisible to generic a11y toolsnpm run build # Build with tsup
npm run dev # Build in watch mode
npm test # Run unit tests (vitest)
npm run test:integration # Run integration tests (requires VS Code)
npm run test:e2e # Run E2E tests (full MCP protocol loop)
npm run typecheck # Type-check with tsc
npm run lint # Lint with ESLint~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.