Web Content MCP Server
一个利用 Cloudflare 浏览器渲染技术来提取和处理网页内容,并将其用作大型语言模型(LLM)上下文的服务器。它提供了一系列工具,包括抓取页面、搜索文档、提取结构化内容和总结内容。
Tools
fetch_page
Fetches and processes a web page for LLM context
search_documentation
Searches Cloudflare documentation and returns relevant content
extract_structured_content
Extracts structured content from a web page using CSS selectors
summarize_content
Summarizes web content for more concise LLM context
README
Cloudflare 浏览器渲染实验 & MCP 服务器
本项目演示了如何使用 Cloudflare 浏览器渲染来提取 Web 内容,用于 LLM 上下文。它包括 REST API 和 Workers Binding API 的实验,以及一个 MCP 服务器实现,可用于为 LLM 提供 Web 上下文。
<a href="https://glama.ai/mcp/servers/wg9fikq571"> <img width="380" height="200" src="https://glama.ai/mcp/servers/wg9fikq571/badge" alt="Web Content Server MCP server" /> </a>
项目结构
cloudflare-browser-rendering/
├── examples/ # 示例实现和实用程序
│ ├── basic-worker-example.js # 带有浏览器渲染的基本 Worker
│ ├── minimal-worker-example.js # 最小实现
│ ├── debugging-tools/ # 调试工具
│ │ └── debug-test.js # 调试测试实用程序
│ └── testing/ # 测试实用程序
│ └── content-test.js # 内容测试实用程序
├── experiments/ # 教育实验
│ ├── basic-rest-api/ # REST API 测试
│ ├── puppeteer-binding/ # Workers Binding API 测试
│ └── content-extraction/ # 内容处理测试
├── src/ # MCP 服务器源代码
│ ├── index.ts # 主要入口点
│ ├── server.ts # MCP 服务器实现
│ ├── browser-client.ts # 浏览器渲染客户端
│ └── content-processor.ts # 内容处理实用程序
├── puppeteer-worker.js # 带有浏览器渲染绑定的 Cloudflare Worker
├── test-puppeteer.js # 主要实现的测试
├── wrangler.toml # Worker 的 Wrangler 配置
├── cline_mcp_settings.json.example # Cline 的示例 MCP 设置
├── .gitignore # Git 忽略文件
└── LICENSE # MIT 许可证
前提条件
- Node.js (v16 或更高版本)
- 启用了浏览器渲染的 Cloudflare 帐户
- TypeScript
- Wrangler CLI (用于部署 Worker)
安装
- 克隆存储库:
git clone https://github.com/yourusername/cloudflare-browser-rendering.git
cd cloudflare-browser-rendering
- 安装依赖项:
npm install
Cloudflare Worker 设置
- 安装 Cloudflare Puppeteer 包:
npm install @cloudflare/puppeteer
- 配置 Wrangler:
# wrangler.toml
name = "browser-rendering-api"
main = "puppeteer-worker.js"
compatibility_date = "2023-10-30"
compatibility_flags = ["nodejs_compat"]
[browser]
binding = "browser"
- 部署 Worker:
npx wrangler deploy
- 测试 Worker:
node test-puppeteer.js
运行实验
基本 REST API 实验
此实验演示了如何使用 Cloudflare 浏览器渲染 REST API 来获取和处理 Web 内容:
npm run experiment:rest
Puppeteer Binding API 实验
此实验演示了如何将 Cloudflare 浏览器渲染 Workers Binding API 与 Puppeteer 结合使用,以实现更高级的浏览器自动化:
npm run experiment:puppeteer
内容提取实验
此实验演示了如何提取和处理 Web 内容,专门用于作为 LLM 中的上下文:
npm run experiment:content
MCP 服务器
MCP 服务器提供了使用 Cloudflare 浏览器渲染获取和处理 Web 内容的工具,用于作为 LLM 中的上下文。
构建 MCP 服务器
npm run build
运行 MCP 服务器
npm start
或者,用于开发:
npm run dev
MCP 服务器工具
MCP 服务器提供以下工具:
fetch_page
- 获取和处理 Web 页面,用于 LLM 上下文search_documentation
- 搜索 Cloudflare 文档并返回相关内容extract_structured_content
- 使用 CSS 选择器从 Web 页面提取结构化内容summarize_content
- 总结 Web 内容,以获得更简洁的 LLM 上下文
配置
要使用您的 Cloudflare 浏览器渲染端点,请设置 BROWSER_RENDERING_API
环境变量:
export BROWSER_RENDERING_API=https://YOUR_WORKER_URL_HERE
将 YOUR_WORKER_URL_HERE
替换为已部署的 Cloudflare Worker 的 URL。您需要在多个文件中替换此占位符:
- 在测试文件中:
test-puppeteer.js
、examples/debugging-tools/debug-test.js
、examples/testing/content-test.js
- 在 MCP 服务器配置中:
cline_mcp_settings.json.example
- 在浏览器客户端中:
src/browser-client.ts
(如果未设置环境变量,则作为回退)
与 Cline 集成
要将 MCP 服务器与 Cline 集成,请将 cline_mcp_settings.json.example
文件复制到适当的位置:
cp cline_mcp_settings.json.example ~/Library/Application\ Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
或者将配置添加到您现有的 cline_mcp_settings.json
文件中。
主要学习内容
- Cloudflare 浏览器渲染需要
@cloudflare/puppeteer
包才能与浏览器绑定进行交互。 - 使用浏览器绑定的正确模式是:
import puppeteer from '@cloudflare/puppeteer'; // 然后在您的处理程序中: const browser = await puppeteer.launch(env.browser); const page = await browser.newPage();
- 部署使用浏览器渲染绑定的 Worker 时,需要启用
nodejs_compat
兼容性标志。 - 始终在使用后关闭浏览器,以避免资源泄漏。
许可证
MIT
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
Playwright MCP Server
提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。
@kazuph/mcp-fetch
用于获取网页内容和处理图像的模型上下文协议服务器。这使得 Claude Desktop(或任何 MCP 客户端)能够适当地获取网页内容和处理图像。
Apple MCP Server
通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。
DuckDuckGo MCP Server
一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。
contentful-mcp
在你的 Contentful Space 中更新、创建、删除内容、内容模型和资源。