360 Secure SkillHub
360 安全技能中心

Moli CDP Server

该 Skill 指导启动 Moli 的无头浏览器 CDP 服务端(默认 loopback 端点 127.0.0.1:9222),并让 Playwright、Puppeteer 或原始 CDP 客户端以远程方式接入;包含 moli 缺失时的安装步骤、布局与资源等启动选项、连接前探测及排障说明,并提示仅覆盖所选 CDP 子集。

lexmount
lexmount
热度 7.64
最近更新 2026-08-17 17:19:37
分类:自动化依赖:代码执行 / 联网浏览搜索应用场景:自动化脚本 / 工作流 / API 集成

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add moli-cdp-server
Metadata
name
moli-cdp-server
description
Start Moli's CDP server and connect Playwright, Puppeteer, or raw CDP clients. Use to run a headless-browser CDP endpoint, replace a Chromium process, attach over CDP, enable real layout and screenshot surfaces, or diagnose CDP discovery, connection, and target startup—even when Moli is not named.

Run Moli's CDP Server

Run one Moli CDP server and connect the requested CDP client to its endpoint. Preserve the client's existing API where Moli supports it.

Workflow

  1. Resolve moli from PATH. If it is unavailable, install the latest prebuilt release for the current platform:

    Linux or macOS:

    curl --proto '=https' --tlsv1.2 -fsSL \
      https://github.com/lexmount/moli/releases/latest/download/moli-installer.sh | sh
    

    On Windows, use PowerShell:

    irm https://github.com/lexmount/moli/releases/latest/download/moli-installer.ps1 | iex
    

    Resolve the installed binary again and run moli --version. The default location is ~/.local/bin/moli on Linux/macOS and %LOCALAPPDATA%\Moli\bin\moli.exe on Windows when it is not yet on PATH.

  2. Start moli serve on the default loopback endpoint http://127.0.0.1:9222.

  3. Add --layout when the workflow needs real element geometry, coordinate input, screenshots, PDFs, or screencasts. Add --resource only when all optional visual/media resources are required.

  4. Probe /json/version before connecting the client.

  5. Connect with the client's remote/attach API; do not launch a second bundled browser.

  6. Close CDP clients cleanly, then stop the Moli server if this workflow owns it.

Playwright over CDP

import { chromium } from "playwright";

const browser = await chromium.connectOverCDP("http://127.0.0.1:9222");
const context = browser.contexts()[0];
const page = context.pages()[0] ?? await context.newPage();

await page.goto("https://example.com");
console.log(await page.locator("body").innerText());

await browser.close();

Integration rules

  • Bind to 127.0.0.1 by default. Expose another host only when the user explicitly needs remote access and has addressed network access controls.
  • Treat Moli as a remote endpoint. Avoid Chrome launch flags and assumptions that require a local Chromium executable.
  • Expect selected CDP coverage, not complete Chrome protocol parity. Preserve explicit unsupported errors.
  • Use a unique port for parallel isolated runs.
  • Persist state intentionally with --profile-dir; otherwise keep runs disposable.
  • Pass proxy, cookie, resource, user-agent, and private-network policy to the Moli server, not to a nonexistent child browser process.

Read references/protocols.md for CDP discovery URLs, server options, client selection, and connection troubleshooting.