Skip to content

Commit da0441d

Browse files
authored
docs: extract WebMCP into its own category (#1993)
Extracting WebMCP tools into a separate category for better grouping in the docs. This changes `--experimentalWebmcp` to `--categoryExperimentalWebmcp` to align with other experimental categories. Debugging category was not a good fit since the tools provided by WebMCP are not necessarily used for debugging. cc @beaufortfrancois
1 parent 895fc65 commit da0441d

13 files changed

Lines changed: 67 additions & 50 deletions

File tree

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -505,15 +505,13 @@ If you run into any issues, checkout our [troubleshooting guide](./docs/troubles
505505
- **Network** (2 tools)
506506
- [`get_network_request`](docs/tool-reference.md#get_network_request)
507507
- [`list_network_requests`](docs/tool-reference.md#list_network_requests)
508-
- **Debugging** (10 tools)
508+
- **Debugging** (8 tools)
509509
- [`evaluate_script`](docs/tool-reference.md#evaluate_script)
510510
- [`get_console_message`](docs/tool-reference.md#get_console_message)
511511
- [`lighthouse_audit`](docs/tool-reference.md#lighthouse_audit)
512512
- [`list_console_messages`](docs/tool-reference.md#list_console_messages)
513513
- [`take_screenshot`](docs/tool-reference.md#take_screenshot)
514514
- [`take_snapshot`](docs/tool-reference.md#take_snapshot)
515-
- [`execute_webmcp_tool`](docs/tool-reference.md#execute_webmcp_tool)
516-
- [`list_webmcp_tools`](docs/tool-reference.md#list_webmcp_tools)
517515
- [`screencast_start`](docs/tool-reference.md#screencast_start)
518516
- [`screencast_stop`](docs/tool-reference.md#screencast_stop)
519517
- **Memory** (4 tools)
@@ -527,6 +525,9 @@ If you run into any issues, checkout our [troubleshooting guide](./docs/troubles
527525
- [`reload_extension`](docs/tool-reference.md#reload_extension)
528526
- [`trigger_extension_action`](docs/tool-reference.md#trigger_extension_action)
529527
- [`uninstall_extension`](docs/tool-reference.md#uninstall_extension)
528+
- **WebMCP** (2 tools)
529+
- [`execute_webmcp_tool`](docs/tool-reference.md#execute_webmcp_tool)
530+
- [`list_webmcp_tools`](docs/tool-reference.md#list_webmcp_tools)
530531

531532
<!-- END AUTO GENERATED TOOLS -->
532533

@@ -603,7 +604,7 @@ The Chrome DevTools MCP server supports the following configuration option:
603604
Path to ffmpeg executable for screencast recording.
604605
- **Type:** string
605606

606-
- **`--experimentalWebmcp`/ `--experimental-webmcp`**
607+
- **`--categoryExperimentalWebmcp`/ `--category-experimental-webmcp`**
607608
Set to true to enable debugging WebMCP tools. Requires Chrome 149+ with the following flags: `--enable-features=WebMCPTesting,DevToolsWebMCPSupport`
608609
- **Type:** boolean
609610

docs/tool-reference.md

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,13 @@
3030
- **[Network](#network)** (2 tools)
3131
- [`get_network_request`](#get_network_request)
3232
- [`list_network_requests`](#list_network_requests)
33-
- **[Debugging](#debugging)** (10 tools)
33+
- **[Debugging](#debugging)** (8 tools)
3434
- [`evaluate_script`](#evaluate_script)
3535
- [`get_console_message`](#get_console_message)
3636
- [`lighthouse_audit`](#lighthouse_audit)
3737
- [`list_console_messages`](#list_console_messages)
3838
- [`take_screenshot`](#take_screenshot)
3939
- [`take_snapshot`](#take_snapshot)
40-
- [`execute_webmcp_tool`](#execute_webmcp_tool)
41-
- [`list_webmcp_tools`](#list_webmcp_tools)
4240
- [`screencast_start`](#screencast_start)
4341
- [`screencast_stop`](#screencast_stop)
4442
- **[Memory](#memory)** (4 tools)
@@ -52,6 +50,9 @@
5250
- [`reload_extension`](#reload_extension)
5351
- [`trigger_extension_action`](#trigger_extension_action)
5452
- [`uninstall_extension`](#uninstall_extension)
53+
- **[WebMCP](#webmcp)** (2 tools)
54+
- [`execute_webmcp_tool`](#execute_webmcp_tool)
55+
- [`list_webmcp_tools`](#list_webmcp_tools)
5556

5657
## Input automation
5758

@@ -417,25 +418,6 @@ in the DevTools Elements panel (if any).
417418

418419
---
419420

420-
### `execute_webmcp_tool`
421-
422-
**Description:** Executes a WebMCP tool exposed by the page. (requires flag: --experimentalWebmcp=true)
423-
424-
**Parameters:**
425-
426-
- **toolName** (string) **(required)**: The name of the WebMCP tool to execute
427-
- **input** (string) _(optional)_: The JSON-stringified parameters to pass to the WebMCP tool
428-
429-
---
430-
431-
### `list_webmcp_tools`
432-
433-
**Description:** Lists all WebMCP tools the page exposes. (requires flag: --experimentalWebmcp=true)
434-
435-
**Parameters:** None
436-
437-
---
438-
439421
### `screencast_start`
440422

441423
**Description:** Starts recording a screencast (video) of the selected page in specified format. (requires flag: --experimentalScreencast=true)
@@ -503,7 +485,7 @@ in the DevTools Elements panel (if any).
503485

504486
## Extensions
505487

506-
> NOTE: Extensions are not active by default. Use the '--categoryExtensions' flag
488+
> NOTE: The Extensions category is not active by default. Use the '--categoryExtensions' flag.
507489
508490
### `install_extension`
509491

@@ -552,3 +534,26 @@ in the DevTools Elements panel (if any).
552534
- **id** (string) **(required)**: ID of the extension to uninstall.
553535

554536
---
537+
538+
## WebMCP
539+
540+
> NOTE: The WebMCP category is not active by default. Use the '--categoryExperimentalWebmcp' flag.
541+
542+
### `execute_webmcp_tool`
543+
544+
**Description:** Executes a WebMCP tool exposed by the page. (requires flag: --categoryExperimentalWebmcp=true)
545+
546+
**Parameters:**
547+
548+
- **toolName** (string) **(required)**: The name of the WebMCP tool to execute
549+
- **input** (string) _(optional)_: The JSON-stringified parameters to pass to the WebMCP tool
550+
551+
---
552+
553+
### `list_webmcp_tools`
554+
555+
**Description:** Lists all WebMCP tools the page exposes. (requires flag: --categoryExperimentalWebmcp=true)
556+
557+
**Parameters:** None
558+
559+
---

scripts/generate-docs.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ async function generateReference(
373373
if (OFF_BY_DEFAULT_CATEGORIES.includes(category)) {
374374
const flagName = `--${buildFlag(category)}`;
375375

376-
markdown += `> NOTE: ${categoryName} are not active by default. Use the '${flagName}' flag\n\n`;
376+
markdown += `> NOTE: The ${categoryName} category is not active by default. Use the '${flagName}' flag.\n\n`;
377377
}
378378

379379
// Sort tools within category

skills/chrome-devtools-cli/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ Experimental tools are disabled by default. Enable them with the corresponding f
141141
chrome-devtools click_at 100 200 # Clicks at the provided coordinates (requires --experimentalVision=true)
142142
chrome-devtools screencast_start # Starts a screencast recording (requires --experimentalScreencast=true and ffmpeg)
143143
chrome-devtools screencast_stop # Stops the active screencast
144-
chrome-devtools list_webmcp_tools # List all WebMCP tools (requires --experimentalWebmcp=true)
144+
chrome-devtools list_webmcp_tools # List all WebMCP tools (requires --categoryExperimentalWebmcp=true)
145145
```
146146

147147
## Service Management

src/McpResponse.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,7 @@ export class McpResponse implements Response {
560560
}
561561

562562
let webmcpTools: WebMCPTool[] | undefined;
563-
if (this.#listWebMcpTools && this.#args.experimentalWebmcp) {
563+
if (this.#listWebMcpTools && this.#args.categoryExperimentalWebmcp) {
564564
const page = this.#page ?? context.getSelectedMcpPage();
565565
webmcpTools = page.getWebMcpTools();
566566
}

src/bin/chrome-devtools-cli-options.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ export const commands: Commands = {
198198
},
199199
execute_webmcp_tool: {
200200
description:
201-
'Executes a WebMCP tool exposed by the page. (requires flag: --experimentalWebmcp=true)',
202-
category: 'Debugging',
201+
'Executes a WebMCP tool exposed by the page. (requires flag: --categoryExperimentalWebmcp=true)',
202+
category: 'WebMCP',
203203
args: {
204204
toolName: {
205205
name: 'toolName',
@@ -510,8 +510,8 @@ export const commands: Commands = {
510510
},
511511
list_webmcp_tools: {
512512
description:
513-
'Lists all WebMCP tools the page exposes. (requires flag: --experimentalWebmcp=true)',
514-
category: 'Debugging',
513+
'Lists all WebMCP tools the page exposes. (requires flag: --categoryExperimentalWebmcp=true)',
514+
category: 'WebMCP',
515515
args: {},
516516
},
517517
load_memory_snapshot: {

src/bin/chrome-devtools-mcp-cli-options.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ export const cliOptions = {
200200
describe: 'Path to ffmpeg executable for screencast recording.',
201201
implies: 'experimentalScreencast',
202202
},
203-
experimentalWebmcp: {
203+
categoryExperimentalWebmcp: {
204204
type: 'boolean',
205205
describe:
206206
'Set to true to enable debugging WebMCP tools. Requires Chrome 149+ with the following flags: `--enable-features=WebMCPTesting,DevToolsWebMCPSupport`',

src/telemetry/flag_usage_metrics.json

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,11 +246,13 @@
246246
},
247247
{
248248
"name": "experimental_webmcp",
249-
"flagType": "boolean"
249+
"flagType": "boolean",
250+
"isDeprecated": true
250251
},
251252
{
252253
"name": "experimental_webmcp_present",
253-
"flagType": "boolean"
254+
"flagType": "boolean",
255+
"isDeprecated": true
254256
},
255257
{
256258
"name": "redact_network_headers",
@@ -275,5 +277,13 @@
275277
{
276278
"name": "category_experimental_in_page",
277279
"flagType": "boolean"
280+
},
281+
{
282+
"name": "category_experimental_webmcp_present",
283+
"flagType": "boolean"
284+
},
285+
{
286+
"name": "category_experimental_webmcp",
287+
"flagType": "boolean"
278288
}
279289
]

src/tools/categories.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export enum ToolCategory {
1414
EXTENSIONS = 'extensions',
1515
IN_PAGE = 'experimentalInPage',
1616
MEMORY = 'memory',
17+
WEBMCP = 'experimentalWebmcp',
1718
}
1819

1920
export const labels = {
@@ -26,9 +27,11 @@ export const labels = {
2627
[ToolCategory.EXTENSIONS]: 'Extensions',
2728
[ToolCategory.IN_PAGE]: 'In-page tools',
2829
[ToolCategory.MEMORY]: 'Memory',
30+
[ToolCategory.WEBMCP]: 'WebMCP',
2931
};
3032

3133
export const OFF_BY_DEFAULT_CATEGORIES = [
3234
ToolCategory.EXTENSIONS,
3335
ToolCategory.IN_PAGE,
36+
ToolCategory.WEBMCP,
3437
];

src/tools/webmcp.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@ export const listWebMcpTools = definePageTool({
1313
name: 'list_webmcp_tools',
1414
description: `Lists all WebMCP tools the page exposes.`,
1515
annotations: {
16-
category: ToolCategory.DEBUGGING,
16+
category: ToolCategory.WEBMCP,
1717
readOnlyHint: true,
18-
conditions: ['experimentalWebmcp'],
1918
},
2019
schema: {},
2120
blockedByDialog: false,
@@ -28,9 +27,8 @@ export const executeWebMcpTool = definePageTool({
2827
name: 'execute_webmcp_tool',
2928
description: `Executes a WebMCP tool exposed by the page.`,
3029
annotations: {
31-
category: ToolCategory.DEBUGGING,
30+
category: ToolCategory.WEBMCP,
3231
readOnlyHint: false,
33-
conditions: ['experimentalWebmcp'],
3432
},
3533
schema: {
3634
toolName: zod.string().describe('The name of the WebMCP tool to execute'),

0 commit comments

Comments
 (0)