feat(mcp): add browser_set_checked tool #38958
Open
+156
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Adds a new
browser_set_checkedMCP tool that allows setting the checked state of checkboxes and radio buttons.What does this PR do?
browser_set_checkedtool inpackages/playwright/src/mcp/browser/tools/snapshot.tselement: Human-readable element descriptionref: Exact target element reference from the page snapshotchecked: Boolean to set the checked state (true/false)await page.getByRole('checkbox', { name: 'Accept' }).setChecked(true);Why is this needed?
The existing
browser_checkandbrowser_unchecktools are marked asskillOnly: true(not exposed to MCP). This new tool provides a single interface to both check and uncheck elements, which is the expected API for LLM agents interacting with forms.Tests
Added
tests/mcp/set-checked.spec.tswith 3 tests:browser_set_checked (checkbox)- Tests checking and unchecking a checkboxbrowser_set_checked (radio button)- Tests selecting a radio buttonbrowser_set_checked (already checked)- Tests unchecking a pre-checked elementAll tests pass locally with
npm run ctest-mcp.Fixes microsoft/playwright-mcp#1342