Chrome Util¶
Visual element annotation for the Chrome DevTools MCP server — highlight elements, guide users through workflows, and read user selections.
Short alias: chrome
Highlights¶
- Inject overlays onto any page and highlight elements with labelled, coloured boxes
- Multi-step workflow guidance — all steps visible at once via
guide_user - Manual selection mode (Ctrl+I) lets users point Claude to page elements
- Read back all annotations (programmatic and user-created) with
scan_annotations
Functions¶
| Function | Description |
|---|---|
chrome_util.inject_annotations() |
Load inject.js into the current page (idempotent) |
chrome_util.highlight_element(selector, ...) |
Highlight elements matching a CSS selector |
chrome_util.scan_annotations() |
Return all current annotations on the page |
chrome_util.clear_annotations() |
Remove all annotations and overlays |
chrome_util.guide_user(task, steps) |
Highlight a sequence of elements for a workflow |
Key Parameters¶
| Parameter | Type | Description |
|---|---|---|
selector |
str | CSS selector to match elements |
label |
str | Text label for the highlight overlay |
color |
str | Overlay colour: "orange" (default), "red", "blue", "green" |
element_id |
str | Optional ID for the annotation |
task |
str | Description of the guided workflow |
steps |
list[dict] | List of {selector, label, color} dicts for guide_user |
Requires¶
- The
chrome_devtoolsMCP server must be enabled inservers.yamlor viaot.server(enable="chrome_devtools")
Configuration¶
Required¶
- No required
tools.chrome_utilsettings.
Optional¶
- This pack does not define any pack-specific keys under
tools.chrome_util.
Defaults¶
- OneTool uses the built-in defaults for annotation behavior.
- Requires the
chrome_devtoolsMCP server. Enable it inservers.yaml(persistent):
Or enable for the current session only: ot.server(enable="chrome_devtools")
Examples¶
# Inject annotations and highlight an element
chrome_util.inject_annotations()
chrome_util.highlight_element(selector="button.submit", label="Click here")
# Guide a user through a multi-step form
chrome_util.guide_user(
task="Complete checkout",
steps=[
{"selector": "input[name='email']", "label": "1. Enter email"},
{"selector": "input[name='card']", "label": "2. Card number"},
{"selector": "button.pay", "label": "3. Pay now", "color": "green"},
],
)
# Read user selections after Ctrl+I
annotations = chrome_util.scan_annotations()
# Clear all overlays
chrome_util.clear_annotations()