ohos-playwright-mcp
Allows controlling HarmonyOS/OpenHarmony ArkWeb browser via MCP, enabling navigation, interaction, and automation of web content on HarmonyOS devices.
Click on "Install 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.
Install
npm i -g ohos-playwright-mcp ohos-playwright playwright-coreNode ≥ 24. hdc must be on PATH and an OpenHarmony / HarmonyOS device reachable.
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/social4hyq/ohos-playwright-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server