ohos-playwright-mcp
Allows controlling HarmonyOS/OpenHarmony ArkWeb browser via MCP, enabling navigation, interaction, and automation of web content on HarmonyOS devices.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ohos-playwright-mcpNavigate to openharmony.cn and take a screenshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ohos-playwright-mcp
MCP server for HarmonyOS / OpenHarmony ArkWeb (Chromium 132-based) — the ohos counterpart of @playwright/mcp.
Drives ArkWeb through playwright-core over the Chrome DevTools Protocol. Bootstrap (hdc connect → aa start → hdc fport → CDP endpoint) is delegated to ohos-playwright.
Why this exists
ArkWeb on HarmonyOS denies AF_UNIX socket creation in its sandbox, which breaks any tool that tries to launch Chrome the playwright way. connectOverCDP over a TCP-forwarded port works fine, and that's what this server uses end-to-end.
Related MCP server: browser-mcp-server
Install
npm i -g ohos-playwright-mcp ohos-playwright@^0.6.0 playwright-coreRequires Node ≥ 24 and hdc on PATH. Requires ohos-playwright ≥ 0.6.0.
MCP client config
{
"mcpServers": {
"ohos": {
"command": "ohos-playwright-mcp"
}
}
}If the peer deps live in a non-standard location, point at them explicitly:
{
"mcpServers": {
"ohos": {
"command": "node",
"args": ["/abs/path/to/server.mjs"],
"env": {
"ARKWEB_OHOS_PW_REGISTER": "/abs/path/to/ohos-playwright/dist/register.mjs",
"ARKWEB_OHOS_PW_SETUP": "/abs/path/to/ohos-playwright/dist/setup.mjs",
"ARKWEB_PW_CORE": "/abs/path/to/playwright-core/index.mjs"
}
}
}
}Other env vars:
OHOS_PW_INFO_PATH— where the CDP endpoint cache lives (default:<tmpdir>/ohos-playwright-cdp.json).Any
OHOS_PW_*vars consumed byohos-playwright/setup(device serial, browser bundle name, port, etc.) — see that project's README.
Tools (61)
Navigation — navigate, navigate_back, navigate_forward, reload, wait, wait_for
Read-only — evaluate, get_text, get_html, screenshot, snapshot
Tabs / lifecycle — list_pages, select_page, tab_new, tab_close, close, resize
Input (selector-based) — click, hover, type, fill, fill_form, press_key, select_option, file_upload, drag
Input (raw mouse) — mouse_move_xy, mouse_click_xy, mouse_down, mouse_up, mouse_drag_xy, mouse_wheel
Diagnostics — console_messages, handle_dialog
Network — network_requests, network_request, network_state_set, route, route_list, unroute
Cookies — cookie_list, cookie_get, cookie_set, cookie_delete, cookie_clear
Storage — localstorage_list, localstorage_get, localstorage_set, localstorage_delete, localstorage_clear, sessionstorage_list, sessionstorage_get, sessionstorage_set, sessionstorage_delete, sessionstorage_clear, storage_state
Visualization — highlight, hide_highlight
Heavy — pdf_save (may not work on foreground ArkWeb), start_tracing, stop_tracing
Each tool's JSON schema is published via standard MCP tools/list.
ArkWeb-specific notes
screenshotuses raw CDPPage.captureScreenshotto skip Playwright's font-wait, which hangs on some ArkWeb pages.snapshotcallsAccessibility.getFullAXTreevia a fresh CDP session because Playwright 1.x removedpage.accessibility.tab_newuses the/json/newHTTP endpoint withPUT(ArkWeb rejects the playwrightcontext.newPage()path).navigate_back/navigate_forwardusewaitUntil: 'commit'because ArkWeb doesn't re-fireloadfor cached history navigation.ArkWeb tabs can occasionally crash into
arkweb-error://webdata/under heavy CDP load. The server auto-recovers by spawning a blank tab.
License
MIT © 2026 social4hyq
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server to assist with JxBrowser development.
Community preview of HuaweiCloud DevKit MCP server (official: io.github.huaweicloud)
Browserless MCP — wraps the Browserless headless-Chromium REST API (browserless.io)
MCP server for understanding Javascript internals from ECMAScript specification.
Related MCP Servers
- AlicenseBqualityNot gradedmaintenanceA MCP server that provides browser automation tools, allowing users to navigate websites, take screenshots, click elements, fill forms, and execute JavaScript through Playwright.82Apache 2.0
- AlicenseBqualityDmaintenanceA universal browser automation MCP server using Playwright, enabling programmatic control of Chrome with 63 tools for navigation, interaction, media control, and CDP-based diagnostics.636 npm3MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive browser automation MCP server using Playwright, offering 50+ tools for page control, element interaction, content extraction, and more across multiple browser engines.11 npm1MIT
- FlicenseBqualityDmaintenanceAn MCP server for generic browser automation using Playwright. Enables MCP clients to navigate pages, inspect elements, execute JavaScript, capture screenshots, and monitor console logs and network traffic via a headless Chromium instance.7-