Visitar URL original
refactor: create all tools and register per slim mode by Lightning00Blade · Pull Request #2874 · ChromeDevTools/chrome-devtools-mcp · GitHub
Skip to content

refactor: create all tools and register per slim mode - #2874

Merged
Lightning00Blade merged 2 commits into
mainfrom
cd4a-config/1-tool-registration
Sep 30, 2026
Merged

Lightning00Blade merged 2 commits into
mainfrom
cd4a-config/1-tool-registration

Conversation

@Lightning00Blade

Copy link
Copy Markdown
Collaborator

Prepares the server for applying configuration changes at runtime.

  • createTools() always returns every tool. The DevTools comments tools are
    gated by their devtoolsComments condition like other tools, instead of
    not being created.
  • Slim tools are marked with slim: true. Slim mode selects which set of
    tools is registered, so slim tools may reuse the names of regular tools
    and other tools do not need a "not slim" condition.
  • McpServer keeps the registered tool handles so tools can be updated in
    place, and declares the tools.listChanged capability with debounced
    notifications/tools/list_changed.
  • The docs, CLI and metrics scripts use the single tool list. The DevTools
    comments tools are now tracked in the tool call metrics.

Stack created with GitHub Stacks CLI • Give Feedback 💬

@Lightning00Blade
Lightning00Blade force-pushed the move-to-class branch 2 times, most recently from e3ef7e9 to 2ef51fa Compare September 30, 2026 07:58
@Lightning00Blade
Lightning00Blade force-pushed the cd4a-config/1-tool-registration branch from 67ad67c to 2eabb5b Compare September 30, 2026 08:12
@Lightning00Blade
Lightning00Blade marked this pull request as ready for review September 30, 2026 08:15
An error occurred while trying to automatically change base from move-to-class to main September 30, 2026 08:18
@Lightning00Blade
Lightning00Blade force-pushed the cd4a-config/1-tool-registration branch from 2eabb5b to bc405cc Compare September 30, 2026 08:23
Comment thread src/tools/slim/tools.ts Resolved
@Lightning00Blade
Lightning00Blade force-pushed the cd4a-config/1-tool-registration branch from bc405cc to aeb794d Compare September 30, 2026 08:28
@Lightning00Blade
Lightning00Blade removed this pull request from stack #2879 September 30, 2026 08:32
@Lightning00Blade
Lightning00Blade changed the base branch from move-to-class to main September 30, 2026 08:33
Prepares the server for applying configuration changes at runtime.

- createTools() always returns every tool. The DevTools comments tools are
  gated by their `devtoolsComments` condition like other tools, instead of
  not being created.
- Slim tools are marked with `slim: true`. Slim mode selects which set of
  tools is registered, so slim tools may reuse the names of regular tools
  and other tools do not need a "not slim" condition.
- McpServer keeps the registered tool handles so tools can be updated in
  place, and declares the `tools.listChanged` capability with debounced
  `notifications/tools/list_changed`.
- The docs, CLI and metrics scripts use the single tool list. The DevTools
  comments tools are now tracked in the tool call metrics.
@Lightning00Blade
Lightning00Blade force-pushed the cd4a-config/1-tool-registration branch from aeb794d to c749e46 Compare September 30, 2026 08:37
@Lightning00Blade
Lightning00Blade added this pull request to the merge queue Sep 30, 2026
Merged via the queue into main with commit 99847a7 Sep 30, 2026
31 of 33 checks passed
@Lightning00Blade
Lightning00Blade deleted the cd4a-config/1-tool-registration branch September 30, 2026 10:17
OrKoN added a commit that referenced this pull request Oct 15, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.11.0](chrome-devtools-mcp-v1.10.1...chrome-devtools-mcp-v1.11.0)
(2026-10-15)


### 🎉 Features

* add --file-navigations flag to reject file: URL navigations
([#2853](#2853))
([54cae57](54cae57))
* Add analyze_heapsnapshot_contexts MCP tool
([#2791](#2791))
([190aeee](190aeee))
* add ignoreCache option to performance_start_trace
([#2931](#2931))
([3467d40](3467d40))
* add maxNameLength truncation option to compare_heapsnapshots
([#3098](#3098))
([1e1c53e](1e1c53e))
* Add pagination to compare_heapsnapshots
([#3140](#3140))
([daebfd1](daebfd1))
* **config:** add ConfigWatcher to watch config file changes
([#3139](#3139))
([9171f77](9171f77))
* discover the config file in predefined locations
([#2876](#2876))
([02c0112](02c0112))
* implement ffmpeg-free screencast tools enabled by default
([#3123](#3123))
([8953ea5](8953ea5))
* reduce StaticText noise in text snapshots
([#2895](#2895))
([4441325](4441325))
* report pages opened by input actions
([#2679](#2679))
([28fb230](28fb230))
* resolve config defaults after merging CLI and config file
([#2849](#2849))
([bdeb70d](bdeb70d))
* return failing audits and DOM nodes inline from lighthouse_audit
([#2930](#2930))
([241fba5](241fba5))
* skip more redundant data in text snapshots
([#2896](#2896))
([b2f522c](b2f522c))
* support debugging WebMCP tools in third-party developer tools
([#2900](#2900))
([0db519f](0db519f))
* support emulating additional CSS media features
([#2929](#2929))
([69524f0](69524f0))
* support evaluating scripts from local files
([#2606](#2606))
([9cf47a4](9cf47a4))
* Support truncation in get_heapsnapshot_details
([#3137](#3137))
([f827e06](f827e06))
* Truncate long names by default to 100 characters
([#2893](#2893))
([5ddb0a3](5ddb0a3))


### 🛠️ Fixes

* account for scroll offsets in downscaled screenshots
([#2685](#2685))
([830c693](830c693))
* allow --categoryExtensions when connecting to an existing browser
([#3041](#3041))
([d250bc5](d250bc5))
* allow stopping the CLI if command fails
([#3088](#3088))
([77e238e](77e238e)),
closes
[#2982](#2982)
* avoid runtime title fetches
([#2883](#2883))
([04195d1](04195d1))
* better config support for chrome-devtools CLI
([#2819](#2819))
([9624e64](9624e64))
* clamp async stack trace separator repeat count
([#3035](#3035))
([93e06ab](93e06ab)),
closes
[#3031](#3031)
* **cli:** pass positional values starting with `-` through to tools
([#3084](#3084))
([9de05ae](9de05ae)),
closes
[#2984](#2984)
* **collectors:** ignore transient target errors when subscribing to
service workers
([#2888](#2888))
([551dd6c](551dd6c))
* **daemon:** bound browser shutdown and avoid watchFile timeout on stop
([#2887](#2887))
([f3db5e7](f3db5e7))
* **daemon:** keep fallback socket in private runtime dir
([#2766](#2766))
([871a37e](871a37e))
* **daemon:** verify process identity before treating PID file as active
([#3109](#3109))
([b608bed](b608bed))
* do not close a healthy browser when a tool call outlasts 60s
([#3149](#3149))
([39c7db1](39c7db1))
* ensure aggregate IDs in heap snapshots are deterministic
([#2923](#2923))
([e918c47](e918c47))
* escape client-supplied values in McpContext logs and errors
([#2832](#2832))
([efb0d02](efb0d02)),
closes
[#2831](#2831)
* fail fast on tool calls stuck after a dead browser connection
([#2699](#2699))
([2a7ef50](2a7ef50))
* harden third-party tool result serialization
([#2892](#2892))
([4418a7b](4418a7b))
* honor explicit --allowUnrestrictedPaths=false in CLI mode
([#3040](#3040))
([61fc362](61fc362))
* include errors in slim responses
([#3085](#3085))
([ee38097](ee38097))
* **input:** reject multiple file paths on single-file input in
upload_file
([#2995](#2995))
([#3135](#3135))
([e650843](e650843))
* list fresh page titles
([#3103](#3103))
([e717082](e717082))
* **memory:** reject contradictory pagination options in
take_heapsnapshot
([#3002](#3002))
([#3131](#3131))
([508126c](508126c))
* **network:** enforce URL policy across redirects
([#2767](#2767))
([274cd4c](274cd4c))
* pass categoryExtensions to the target filter when connecting
([#3047](#3047))
([4e90238](4e90238))
* **performance:** report an error when performance_stop_trace is called
with no active trace
([#3001](#3001))
([#3126](#3126))
([e170384](e170384))
* preserve HeapSnapshotManager across browser reconnects
([#3025](#3025))
([64388c6](64388c6))
* propagate failed responseFilePath write error instead of reporting
body unavailable
([#2957](#2957))
([#3119](#3119))
([3cee3bd](3cee3bd))
* **pwa:** wait for initial navigation on launch and retry transient
install error
([#2889](#2889))
([63010cb](63010cb))
* record screencast at the page's device pixel size
([#3155](#3155))
([62e2aa4](62e2aa4))
* reject --blockedUrlPattern/--allowedUrlPattern hostname regexp groups
([#2796](#2796))
([ae0aaef](ae0aaef))
* reject JSON arrays as 3p and WebMCP tool params
([#2785](#2785))
([c14e616](c14e616))
* reject named groups in URL patterns
([#2857](#2857))
([5b2c6f9](5b2c6f9))
* reject non-positive --viewport dimensions
([#2781](#2781))
([0ef528a](0ef528a))
* reject non-positive resize_page dimensions
([#2784](#2784))
([6ab6d35](6ab6d35))
* reject unrestricted paths with an explicit workspace
([#2858](#2858))
([45c1c6c](45c1c6c))
* report unknown page id before last-page guard in close_page
([#3042](#3042))
([bdc7e24](bdc7e24))
* round lighthouse category scores and show unscored categories as n/a
([#2924](#2924))
([7007680](7007680)),
closes
[#2915](#2915)
[#2916](#2916)
* set empty filePath to undefined instead of empty string
([#2836](#2836))
([adfc1ff](adfc1ff)),
closes
[#2825](#2825)
* surface WebMCP tool exceptions in execute_webmcp_tool
([#3107](#3107))
([d80d22e](d80d22e)),
closes
[#2975](#2975)
* url pattern partial ipv4
([#2859](#2859))
([c87d190](c87d190))


### 📄 Documentation

* clarify Antigravity MCP setup for VS Code extension
([#2855](#2855))
([12e13ca](12e13ca))
* clarify scope of --no-javascript-evaluation
([#3100](#3100))
([0c67cd5](0c67cd5))
* correct link to configuration
([#3086](#3086))
([bbb1e36](bbb1e36))
* document trusted host environment in SECURITY.md
([#3125](#3125))
([1352207](1352207))
* fix inaccurate examples in skills and CLI docs
([#2922](#2922))
([ec372b0](ec372b0)),
closes
[#2906](#2906)
[#2907](#2907)
[#2908](#2908)
[#2910](#2910)
[#2912](#2912)
[#2913](#2913)
[#2918](#2918)
[#2919](#2919)
[#2920](#2920)
[#2921](#2921)
* fix some reported issues
([#3099](#3099))
([d5d2f08](d5d2f08))
* include serviceWorkerId parameter for evaluate_script
([#3015](#3015))
([#3129](#3129))
([0623434](0623434))
* mention heapsnapshot being cached between runs
([#3045](#3045))
([f08dbe1](f08dbe1)),
closes
[#2976](#2976)
* **skills:** remove invalid outputDir flag from lighthouse_audit calls
([#3013](#3013))
([#3130](#3130))
([7754226](7754226))
* update documentation and SKILL for get_css_styles tool
([#2824](#2824))
([3c12a91](3c12a91))


### ⚡ Performance

* **cli:** re-use MCPServer.from helpers for daemon
([#2804](#2804))
([89eb3d5](89eb3d5))
* Load heap snapshots in parallel in compare_heapsnapshots
([#3023](#3023))
([20c1391](20c1391))


### 🏗️ Refactor

* centralize config defaults and conflict checks
([#2753](#2753))
([a739ba8](a739ba8))
* create all tools and register per slim mode
([#2874](#2874))
([99847a7](99847a7))
* enable categories by default
([#2811](#2811))
([e33ee48](e33ee48))
* extract CLI examples and conflict list in mcp-options
([#2848](#2848))
([45000d9](45000d9))
* extract config parsing logic in a class
([#2861](#2861))
([e4168d0](e4168d0))
* extract worker logic into McpWorker
([#2800](#2800))
([77165c6](77165c6))
* group Puppeteer and tool options
([#2875](#2875))
([699c4d5](699c4d5))
* lazily initialize McpPage from Target and enumerate targets in
McpContext
([#2812](#2812))
([545cbe3](545cbe3))
* use default Error for toolSchema
([#2822](#2822))
([8b2768d](8b2768d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants