BiSheng (毕昇) —— 一个 MCP 工具,让你的大模型能“看懂”任意网页

165 阅读7分钟

BiSheng (毕昇) —— 一个 MCP 工具,让你的大模型能“看懂”任意网页

一、 当前 AI 编程痛点:当 AI “瞎”了怎么办

随着 CursorClaude CodeWindsurf 等 AI 编程工具的普及,我们越来越依赖将 API 文档直接丢给 AI,让它基于文档写代码。

但现实往往很骨感。当你满怀期待地把一个 URL 发给 AI 时,你可能会遇到以下问题:

  1. SPA 页面“白屏”:现在很多文档站(如 React、Vue 官网)是单页应用(SPA)。普通的 AI 工具大多使用简单的 fetch 请求,无法执行 JavaScript,结果 AI 读到的是 <div id="app"></div>,根本拿不到内容。
  2. Token 爆炸与噪声干扰:即便抓取到了 HTML,里面充斥着 <nav><footer>、广告脚本和 Base64 图片。把这几万个 Token 的“垃圾”喂给 AI,不仅浪费上下文窗口(耗钱),还会严重干扰 AI 的注意力,导致它产生幻觉。
  3. 内网/本地文档:你的 API 文档可能部署在 http://localhost:8080/docs 或者公司的内网上。大多数云端 AI 服务(如 OpenAI 或 Claude 的服务器)根本无法访问你的本地服务。
  4. 反爬虫与 WAF 拦截:有些带防爬虫防御的网站,可能直接拒绝掉 AI 服务器 IP 过来的请求。
  5. 截图无法 Copy:有些工具试图通过“看截图”来解决,但截图无法让 AI 准确复制长代码块,且 OCR 识别率在复杂代码场景下并不完美。

结果就是: 你明明有了最强的 AI 模型,却还得手动把文档复制粘贴到对话框里,效率瞬间回到了解放前。


二、 BiSheng(毕昇):AI 时代的“活字印刷术”

为了解决上述问题,我开发了 BiSheng

之所以命名为“毕昇”,是因为它的核心理念与活字印刷术异曲同工:将互联网上杂乱无章、甚至由于动态渲染而无法直接读取的网页内容(原始素材),重新“排版”为大模型最容易理解、最标准化的 Markdown 格式(活字)。

BiSheng 是一个标准的 MCP (Model Context Protocol) Server,它可以无缝集成到 Claude Desktop、Cursor(通过 MCP 桥接)等支持该协议的工具中。

它不仅仅是一个简单的爬虫,它具备以下核心能力:

  • 🖥️ 真浏览器渲染:基于 Playwright (Chromium),完美支持 React / Vue 等 SPA 页面,自动处理懒加载。
  • 🌐 本地与内网可见:进程运行在本机或 Docker 容器内,可以直接访问 localhost、局域网以及公司内网。
  • 🧹 智能清洗与重组:集成 Mozilla Readability + Turndown 引擎,自动剥离导航栏、侧边栏、弹窗广告,只提取核心正文,并转为结构化 Markdown。
  • 📝 完整 Markdown 输出:保留代码块语言标记、表格结构,并自动修复相对链接。
  • 🛡️ 类人浏览行为:通过模拟真实浏览器指纹,有效降低被基础反爬与 WAF 拦截的概率。

最终结果:BiSheng 让你的 AI 助手拥有了一双运行在本地的、能看懂动态网页的“眼睛”。

2.1 原始 HTML vs BiSheng Markdown 对比

实际效果对比图:

原始网页BiSheng 输出
html.pngbisheng.png

2.2 进阶必杀技:喂饱 Cursor 的索引,让 Context "零"负担

BiSheng 最强大的用法,不仅仅是"读给 AI 听",而是**"存给 AI 查"**。

在 BiSheng 的 MCP 工具中,你可以指定 output_path 参数,将抓取到的 Markdown 直接保存到你的项目目录(例如 docs/external_api.md)。结合 CursorWindsurf 强大的 Codebase Indexing(代码库索引) 能力,将产生质的飞跃:

  1. 从"被动灌输"变为"主动检索": 通常我们需要把几万字的 API 文档全部塞进对话框,不仅瞬间耗尽 Token 额度,还容易让模型"迷失"在无关信息中。 但当你把 BiSheng 生成的 Markdown 存入文件后,Cursor 会自动对这些文档建立向量索引。当你问"如何调用这个登录接口?"时,Cursor 只会精准检索文档中关于"登录"的那几行片段喂给模型。
  2. 极度节省上下文窗口: 你不再需要为每一次对话重复支付昂贵的长文档 Token 费用。文档就在项目里,模型按需取用,既省钱响应速度又快。
  3. 长期记忆与知识沉淀: 这些由 BiSheng 清洗过的 Markdown 文档变成了项目的一部分。即使下周你换了一个新的 Chat Session,AI 依然记得这些文档的内容,因为它们已经成为了代码库的一部分。

场景模拟:

你正在开发一个支付模块,需要参考 微信支付 的文档。

  • 以前:复制 微信支付 官网 -> 粘贴给 AI -> AI 报错"太长" -> 手动截取 -> AI 还是读不懂。
  • 现在:让 BiSheng 把 微信支付 文档抓下来存为 wxpay_doc.md -> 在 Cursor 里直接打字 如何编写支付回调接口 -> AI 可检索文档正确回复

三、 不止于编程:通用的网页转 Markdown 神器

虽然 BiSheng 的初衷是为了辅助编程,但作为一个将 URL -> Markdown 做到极致的工具,它的想象空间远不止于此。

一旦你安装了 BiSheng,你的 AI 就获得了一个通用的信息获取接口。你可以尝试以下玩法:

  1. 生成技术博客摘要:把一篇几万字的技术长文链接发给 AI,BiSheng 把它转换成 Markdown 后,AI 可以精准地为你生成摘要、提炼要点,甚至通过多轮对话帮你从文中学习新知识。
  2. 构建个人知识库:看到好的文章想保存到 Obsidian 或 Notion?让 AI 帮忙整理,通过 BiSheng 获取纯净内容,格式完美,甚至连图片链接都保留完好。
  3. 舆情分析与数据抓取:需要分析某个新闻网页的评论风向?或者提取某个电商页面的商品参数?BiSheng 能够将复杂的 DOM 结构扁平化为 Markdown,让 LLM 极其容易地从中提取结构化数据(JSON)。

四、 如何开始使用

4.1 在 Claude Desktop 中使用

在 Claude Desktop 的配置文件(例如 claude_desktop_config.json)中新增一个 MCP Server:

{
  "mcpServers": {
    "bisheng": {
      "command": "npx",
      "args": ["-y", "@curzbin/mcp-bisheng@latest"]
    }
  }
}

保存配置并重启 Claude Desktop 后,你就可以在对话中直接调用 read_url 工具,让 Claude 通过 BiSheng 读取任意网页并返回 Markdown。

一个典型的交互流程可能是这样的:

  1. 你对 Claude 说:“用 BiSheng 帮我读取这个文档并总结重点:https://react.dev/learn。”
  2. Claude 通过 MCP 调用 BiSheng 的 read_url,获取到清洗好的 Markdown。
  3. Claude 基于这份 Markdown 继续对话,为你生成学习笔记或示例代码。

在内部实现上,可以抽象成一次这样的工具调用:

{ "tool": "read_url", "params": { "url": "https://react.dev/learn" } }
4.1.2 在 Cursor 中作为 MCP 工具使用

在 Cursor 中,你可以在“Settings → MCP Servers”(或相应的 MCP 配置入口)中新增一个 MCP Server,命令配置为:

{
  "mcpServers": {
    "bisheng": {
      "command": "npx",
      "args": ["-y", "@curzbin/mcp-bisheng@latest"]
    }
  }
}

当 Cursor 启动这个 MCP Server 后,你的对话就具备了“原生看网页”的能力。例如:

  1. 你在项目中集成了某个三方支付 SDK,对着 Cursor 说:“请根据这个 API 文档帮我写一个下单示例,文档地址是 https://example.com/pay/docs。”
  2. Cursor 通过 MCP 调用 BiSheng 的 read_url,得到结构化的 Markdown 文档。
  3. 如果你在调用时增加了 output_path 参数,例如:
{
  "tool": "read_url",
  "params": {
    "url": "https://example.com/pay/docs",
    "output_path": "docs/external/pay-api.md"
  }
}

那么 BiSheng 会在你的仓库中生成一个 Markdown 文档,Cursor 会自动将其纳入索引。之后你只需要在对话中问:“帮我实现退款接口。”,Cursor 就会自动检索这份文档,并基于其中的内容给出准确实现。

4.2 使用 Docker 一键运行

docker pull curzbin/mcp-bisheng:latest
docker run --rm -i curzbin/mcp-bisheng:latest

容器启动后,同样可以作为 MCP Server 被上层客户端(如 Claude Desktop、通过桥接的 Cursor 等)调用。

4.3 命令行(CLI)临时使用

只想临时把某个网页转成 Markdown 存到本地,可以直接用 npx

npx @curzbin/mcp-bisheng@latest

在工具中,你可以调用以下两个核心能力:

  • read_url:使用无头浏览器渲染网页并返回 Markdown 主内容,可选地通过 output_path 参数把结果保存到本地文件。
  • install_chromium:在首次使用或更换环境时,安装 Playwright 所需的 Chromium 浏览器。

开源仓库地址https://github.com/Curzibn/mcp-bisheng