Use your real Chrome through any MCP client. No Playwright. No headless. Raw CDP over your existing agent.
Install the Unchained agent on your Mac to bridge your local Chrome:
curl -fsSL https://api.unchainedsky.com/install.sh | bash
claude mcp add unchainedsky \
https://api.unchainedsky.com/mcp \
-t http \
-H "Authorization: Bearer YOUR_API_KEY"
Restart Claude Code after adding (/mcp to verify tools are loaded).
Ask your MCP client to run a quick DDM extraction (agent_id is auto-detected from your API key):
ddm url=https://example.com
To check your agent connection status:
curl -s -H "Authorization: Bearer YOUR_API_KEY" https://api.unchainedsky.com/api/agents | python3 -m json.tool
ddm orients the page (~500 tokens) → intel_probe classifies the best extraction strategy → intel_extract pulls structured data. For JS-heavy SPAs, probe may rank intel_stores → intel_shape / intel_find_paths → js_eval higher.
| Tool | Description |
|---|---|
| Page Understanding | |
ddm | DOM Density Map — structural page layout + interactive elements (~500 tokens). Use --text for page text, --at x,y for element details, --find "keyword" to search. |
intel_probe | Page intelligence probe — DOM fingerprint + Bayesian strategy ranking (~100 tokens). Run on first visit to any SPA. |
intel_extract | Extract structured data using auto-selected or forced strategy (host_attrs, react_fiber, data_testid, etc.) |
| Data Store Extraction | |
intel_stores | List JavaScript data stores on page (globals >10KB). Use on Nuxt/Next/YouTube sites. |
intel_shape | Map the shape of a JS global object (e.g. __NUXT__, ytInitialData). |
intel_find_paths | Find paths to a key pattern inside a JS global. |
| Browser Interaction | |
cdp_navigate | Navigate to a URL. Returns page title and DDM layout. |
cdp_click | Click at pixel coordinates (from DDM output). Returns updated DDM layout. |
cdp_type | Type text into the focused element. Click an input first to focus it. |
js_eval | Execute JavaScript and return the result. Use for SPA widgets, querySelectorAll, data stores. |
cdp_screenshot | Take a screenshot (~2100 tokens). Prefer DDM. Use for CAPTCHAs/visual verification only. |
| File & Agent Management | |
cdp_set_file | Set a file on <input type="file"> without the OS picker. |
list_connected_agents | List connected browser agents and Chrome profiles. |
| Chrome Profile Provisioning | |
cdp_provision_launch | Launch Chrome with a user profile for OAuth/authenticated browsing. |
cdp_provision_cleanup | Clean up provisioned Chrome instances. |
list_provisioned_tabs | List tabs in provisioned Chrome (discover OAuth popups). |