Skip to main content
Glama
social4hyq

ohos-playwright-mcp

by social4hyq

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 starthdc 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-core

Node ≥ 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 by ohos-playwright/setup (device serial, browser bundle name, port, etc.) — see that project's README.

Tools (61)

Navigationnavigate, navigate_back, navigate_forward, reload, wait, wait_for

Read-onlyevaluate, get_text, get_html, screenshot, snapshot

Tabs / lifecyclelist_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

Diagnosticsconsole_messages, handle_dialog

Networknetwork_requests, network_request, network_state_set, route, route_list, unroute

Cookiescookie_list, cookie_get, cookie_set, cookie_delete, cookie_clear

Storagelocalstorage_list, localstorage_get, localstorage_set, localstorage_delete, localstorage_clear, sessionstorage_list, sessionstorage_get, sessionstorage_set, sessionstorage_delete, sessionstorage_clear, storage_state

Visualizationhighlight, hide_highlight

Heavypdf_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

  • screenshot uses raw CDP Page.captureScreenshot to skip Playwright's font-wait, which hangs on some ArkWeb pages.

  • snapshot calls Accessibility.getFullAXTree via a fresh CDP session because Playwright 1.x removed page.accessibility.

  • tab_new uses the /json/new HTTP endpoint with PUT (ArkWeb rejects the playwright context.newPage() path).

  • navigate_back / navigate_forward use waitUntil: 'commit' because ArkWeb doesn't re-fire load for 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

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
7Releases (12mo)
Commit activity

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