DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Browsercontrol Mcp — DeepSeek Harness 插件(DSH Plugin)
← Plugins
B

dsh-browsercontrol-mcp

Browsercontrol Mcp

为 DeepSeek Harness 提供真实浏览器控制:将 Playwright MCP 挂载为原生工具,让代理驱动你实际使用的浏览器。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:SciF-Lin/dsh-browsercontrol-mcp#a21f971b27376c74cdb0a527bd5fece855eda302
README兼容性版本

兼容性与来源证明

Browsercontrol Mcp 以 dsh-browsercontrol-mcp 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/9/23

版本

0.1.0stable
2026/9/23

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/23
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

dsh-browsercontrol-mcp

Real browser control for DeepSeek Harness: mounts Playwright MCP as native tools (mcp__playwright__*) so the agent can navigate, click, type, drag, upload, snapshot, screenshot, read console/network, and evaluate JS in a browser you actually use.

Why a plugin and not a plain YAML row

Three facts are only knowable at runtime:

  1. @playwright/mcp restricts its exports, so @playwright/mcp/cli.js cannot be resolved (ERR_PACKAGE_PATH_NOT_EXPORTED). The real path comes from the package's exported ./package.json plus its bin field.
  2. On Windows npx is a .cmd, which Node's spawn cannot execute without a shell.
  3. Both the cli.js path and the Node path only exist after installation.

So apply() resolves them, starts the MCP server with process.execPath, and mounts the generated row on the loader. Disposing the plugin removes the row with it.

The plugin never takes the harness down with it: invalid config or a missing @playwright/mcp prints dsh-browsercontrol-mcp: not mounting: ... and contributes no tools, instead of failing the whole plugin tree.

Install

dsh plugin --profile web add github:<owner>/dsh-browsercontrol-mcp
# local development
dsh plugin --profile web add link:C:\path\to\dsh-browsercontrol-mcp

Restart the profile once after installing. patchReload: live covers edits to patch files, but a newly installed bundle only joins the composition at profile start, so nothing changes until you restart (dsh web); nothing in the config is lost.

Verify: ask the agent to list its browser tools, or inspect host / Tool / listTools for mcp__playwright__*.

Configuration

KeyDefaultMeaning
serverNameplaywrightTool namespace: mcp__<serverName>__browser_navigate
modelaunchlaunch own browser / cdp attach to a running one / extension attach via the Playwright extension
browsermsedgelaunch mode: chrome | msedge | firefox | webkit; also the default CDP channel
cdpEndpointemptyCDP target: a Chromium channel (msedge, msedge-beta, chrome-dev, ...) or a CDP URL (http://localhost:9222)
cdpTimeoutMs30000CDP attach timeout in milliseconds
headlessfalselaunch mode without a visible window
userDataDiremptypersistent profile directory for launch mode
profileDirNameemptybrowser profile directory name used by extension mode, e.g. Profile 1
cwdemptyMCP server working directory (where screenshots land)
env{}extra environment for the MCP server process
cliPathemptyexplicit cli.js, bypassing module resolution
extraArgs[]raw extra CLI flags, e.g. ['--caps', 'vision,devtools']
toolCallTimeoutMs120000per-tool-call timeout
failOnStartupErrorfalsemake a failed initial connection abort activation instead of only logging

Unknown keys are rejected and reported, never silently ignored.

Note that browser and CDP channels are different sets: msedge-beta / chrome-canary are valid CDP targets but are not accepted by --browser.

Modes

  • launch — starts its own browser; chrome/msedge use the installed system browser, so no Chromium download is needed. Set userDataDir to keep logins.
  • cdp — attaches to a browser you are already using, with its logged-in sessions. The target browser must be running; enable "Allow remote debugging for this browser instance" at edge://inspect/#remote-debugging (chrome://inspect/#remote-debugging in Chrome). The switch is persisted in the browser profile. Chromium 136+ ignores --remote-debugging-port for the default profile, which is why the UI switch is the only path that keeps your sessions.
  • extension — attaches through the Playwright Extension; use profileDirName to pick a profile.

Where the browser comes from

  • chrome / msedge: the system browser, nothing to download (recommended).
  • firefox / webkit: no system channel, so run npx playwright install firefox (or webkit).
  • Playwright's own Chromium: do not set PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 when installing, or run npx playwright install chromium afterwards.

Security

  • In cdp / extension mode the model can see every logged-in site in that browser. Use a dedicated browser profile for automation.
  • browser_run_code_unsafe and browser_evaluate are equivalent to running arbitrary JS in the browser process.

Coexistence

If a hand-written mcp-playwright row already serves the same serverName, this plugin detects it, skips mounting, and logs a warning instead of failing startup. Remove that row to let the plugin own the capability.

Troubleshooting

SymptomCause / fix
not mounting: unknown config key "..."Fix the key; the message lists the valid ones
not mounting: cannot find @playwright/mcpInstall it for the profile (npm i @playwright/mcp) or set cliPath
serverName ... already in useAnother row owns it; rename or remove that row
browserType.launch: spawn EPERMThe process is sandboxed; start DSH with normal rights
cdp cannot connect, reads no DevToolsActivePortThe target browser is not running, or the inspect switch is off
No tools appearDid you restart the profile? Then check the logs for browsercontrol-mcp

Dependencies and versions

@playwright/mcp is a dependency; official @deepseek-ai/* packages are peerDependencies.

The @deepseek-ai/dsh-mcp-client range enumerates one branch per released tuple:

>=0.1.0-rc.2 <0.2.0-0 || >=0.1.1-rc.1 <0.2.0-0 || >=0.1.2-alpha.2 <0.2.0-0 ||
>=0.1.3-alpha.2 <0.2.0-0 || >=0.1.5-alpha.1 <0.2.0-0 || >=0.1.6-alpha.1 <0.2.0-0 ||
>=0.1.7-alpha.1 <0.2.0-0

node-semver only admits a prerelease when some comparator shares its exact major.minor.patch tuple and carries a prerelease tag, so a broad-looking >=0.1.5-rc.1 <0.2.0-0 silently rejects 0.1.6-rc.1 and leaves users with an ERESOLVE. This range covers every published 0.1.x version (the ancient 0.0.1-rc.* line is deliberately excluded); append a branch when the harness ships a new 0.1.x prerelease.

Development

npm install
npm test              # Node test runner
npm run test:direct   # same tests, in-process

Coverage: argument building for all three modes, row generation (command, timeouts, failure policy, env), every config-rejection branch, conflict skip, degradation when entries() throws, error reporting without throwing, and the dispose race while a mount is in flight.

npm test uses the Node test runner, which forks a child process per file; inside a confined sandbox that fork is refused (spawn EPERM), so use npm run test:direct there.

License

MIT

相关插件

继续浏览 search-research 分类下经过校验的插件。

Weknora@wxg-prc-cpg/dsh-weknora适用于 DeepSeek Harness (dsh) 的 WeKnora 知识检索工具:通过自有知识库进行语义搜索、文档阅读以及 RAG/代理回答。Find Plugindsh-find-plugin在代理中查找 DeepSeek Harness 插件——实时搜索 GitHub 上的 dsh-plugin 主题,并按星标数排序。Builtin Browserdsh-builtin-browserDeepSeek Harness 的共享真实浏览器插件:安装即用——可由人类接管的可见原生浏览器,由代理通过 CDP 驱动。支持 DOM 级交互(React/Vue 安全)、按任务隔离会话、Cookie 持久化(browser_auth)、CAPTCBrowser@anweat/dsh-browserDeepSeek Harness 的自包含浏览器运行时插件(作用域为 @anweat)——将 Playwright(chromium)和 OpenCLI 作为插件本地依赖进行打包(支持全局复用回退),提供 `browser` 服务和交互式浏览器工具。