DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Hermes Web Mcp — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
H

hermes-web-mcp

Hermes Web Mcp

无需 API 密钥的 MCP 服务器,为 DSH 和任何 MCP 客户端提供 web_search、web_extract 以及 7 个 page_* 真实浏览器(CDP)工具。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:ShadowMiner/hermes-web-mcp#11e7937903ef6fe12f032999103a8cd1fa5b8344
README兼容性版本

兼容性与来源证明

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

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

版本

1.0.0stable
2026/9/8

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Anysearch Dsh@anysearch/anysearch-dsh适用于 DeepSeek Harness 的 AnySearch 网络搜索和获取提供程序及高级工具Industry Researchdsh-industry-research适用于 DeepSeek Harness 的行业与公司研究领域包:方法论技能、行业链结构模型(industry_map)、通过 ctx.web 进行的公开来源政策/新闻跟踪(industry_track)、公司扫描卡片(company_scan)以及可审计的研究Zoterodsh-zotero让智能体搜索、阅读并引用您的本地 Zotero 文献库:查找论文、浏览笔记和批注、按问题提取证据、打开源文档并生成引文。Browser@anweat/dsh-browserDeepSeek Harness 的自包含浏览器运行时插件(作用域为 @anweat)——将 Playwright(chromium)和 OpenCLI 作为插件本地依赖进行打包(支持全局复用回退),提供 `browser` 服务和交互式浏览器工具。

README

hermes-web-mcp

Web powers for any MCP client — no API keys required.

hermes-web-mcp is an MCP (Model Context Protocol) server that gives DSH Desktop and any MCP client a complete web toolkit:

  • web_search — keyless search via cn.bing direct, with a DuckDuckGo-over-proxy fallback; no search API key needed.
  • web_extract — scrape any page with full JS rendering (local playwright-service + html-to-md chain over dual CDP Chrome) and return clean Markdown.
  • 7 × page_* — real browser automation on a shared CDP Chrome inside an isolated context (never touches your host browser tabs): page_open, page_click, page_type, page_read, page_shot, page_back, page_close.

Tools

ToolPurposeKey arguments
web_searchKeyless web search (cn.bing direct, DDG fallback) → title/URL/snippet listquery (string, required), max_results (number, default 8)
web_extractRender + scrape a page to Markdown via playwright-service + html-to-md; dual-CDP failover, then plain-fetch degradeurl (required), via_proxy (boolean), wait_ms (number, default 2500)
page_openOpen a URL in the shared CDP Chrome; returns the first 4000 chars of body texturl (required), via_proxy (boolean), wait_ms (default 3000)
page_clickClick an element matched by a CSS selectorselector, wait_ms (default 1200)
page_typeFill an input field (optionally press Enter)selector, text, enter (boolean)
page_readRead up to 12000 chars of the current page body—
page_shotScreenshot the current page into shots/ and return the file pathfull_page (boolean)
page_backNavigate back one page—
page_closeClose the isolated browser context (cleanup)—

9 tools in total: web_search + web_extract + 7 page_* tools.

How it works

┌──────────────┐   stdio (MCP)   ┌────────────────────── hermes-web-mcp ──────────────────────┐
│ MCP client   │ ───────────────▶ │ web_search   → cn.bing (keyless) / DDG fallback           │
│ (DSH, etc.)  │                  │ web_extract  → playwright-service (:3003) → html-to-md    │
└──────────────┘                  │                (:8080)  ⇄ CDP Chrome 9333 (direct) /       │
                                  │                9334 (via HTTP proxy)                       │
                                  │ page_*       → playwright chromium.connectOverCDP          │
                                  └───────────────────────────────────────────────────────────┘

web_extract never needs a scraper API key: a local playwright-service renders the page over CDP, and an html-to-md service converts the HTML to Markdown. Two Chrome instances back it:

  • CDP direct (default, 127.0.0.1:9333) — for domestic sites and pages where your normal login session lives.
  • CDP proxied (127.0.0.1:9334) — Chrome with traffic routed through your local HTTP proxy, for overseas/restricted sites.

web_extract tries your preferred CDP first and fails over to the other automatically; if both fail it degrades to a plain fetch (no JS rendering). The page_* tools use Playwright's connectOverCDP against the same shared Chrome in an isolated context — host tabs are never touched.

Environment variables

VariableDefaultMeaning
WEBMCP_PWD:/path/to/playwright-service/node_modules/playwrightPath to a Playwright install whose chromium driver is used for connectOverCDP
WEBMCP_SCRAPEhttp://127.0.0.1:3003/scrapeplaywright-service scrape endpoint (POST {url, wait_after_load, cdp_url} → {content, pageStatusCode, contentType})
WEBMCP_CONVERThttp://127.0.0.1:8080/converthtml-to-md endpoint (POST {html} → {markdown})
WEBMCP_CDP_DIRECThttp://127.0.0.1:9333CDP endpoint of the direct Chrome
WEBMCP_CDP_PROXYhttp://127.0.0.1:9334CDP endpoint of the proxied Chrome

All variables are optional — omit them and the defaults above are used.

Prerequisites (deployment)

  1. Node.js ≥ 22, then npm install in this repo (only runtime dependency: @modelcontextprotocol/sdk).
  2. playwright-service — a local service exposing POST /scrape {url, wait_after_load, cdp_url} → {content, pageStatusCode, contentType}, rendering the page with Playwright against the target CDP. (The firecrawl-lite project has a reference implementation.)
  3. html-to-md — a local service exposing POST /convert {html} → {markdown}.
  4. Two CDP Chrome instances:
    • chrome --remote-debugging-port=9333 (direct)
    • chrome --remote-debugging-port=9334 launched with traffic routed through your local HTTP proxy (for sites not directly reachable).
  5. A Playwright install resolvable at WEBMCP_PW (or the default path) for the page_* tools.

The defaults assume services on 127.0.0.1:3003 / 127.0.0.1:8080 and Chrome on 9333 / 9334. Different setup? Just set the env vars.

Registering the server

Generic MCP config (e.g. Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "hermes-web": {
      "command": "node",
      "args": ["D:/path/to/hermes-web-mcp/hermes-web-mcp.js"],
      "env": {
        "WEBMCP_PW": "D:/path/to/playwright-service/node_modules/playwright",
        "WEBMCP_SCRAPE": "http://127.0.0.1:3003/scrape",
        "WEBMCP_CONVERT": "http://127.0.0.1:8080/convert",
        "WEBMCP_CDP_DIRECT": "http://127.0.0.1:9333",
        "WEBMCP_CDP_PROXY": "http://127.0.0.1:9334"
      }
    }
  }
}

dsh-mcp-client (SQLite registry, insert example — adapt column names to your schema):

INSERT INTO mcp_servers (name, command, args, env) VALUES (
  'hermes-web',
  'node',
  JSON_ARRAY('D:/path/to/hermes-web-mcp/hermes-web-mcp.js'),
  JSON_OBJECT(
    'WEBMCP_PW',         'D:/path/to/playwright-service/node_modules/playwright',
    'WEBMCP_SCRAPE',     'http://127.0.0.1:3003/scrape',
    'WEBMCP_CONVERT',    'http://127.0.0.1:8080/convert',
    'WEBMCP_CDP_DIRECT', 'http://127.0.0.1:9333',
    'WEBMCP_CDP_PROXY',  'http://127.0.0.1:9334'
  )
);

Smoke test

With all prerequisites running:

npm install
node smoke.js

smoke.js spawns the server over real MCP stdio, lists the registered tools, then calls web_search, web_extract, page_open (proxied) and page_shot, printing each output. It requires the playwright-service, the html-to-md service and both CDP Chrome instances to be up.

License

MIT — Copyright (c) 2026 ShadowMiner.