mcpField
C
Cloudflare Browser Rendering Experiments & MCP Server

Cloudflare Browser Rendering Experiments & MCP Server

本地服务
github.com/amotivv浏览器自动化1185 周前更新

关于 Cloudflare Browser Rendering Experiments & MCP Server

Cloudflare Browser Rendering Experiments & MCP Server 展示如何利用 Cloudflare Browser Rendering 抓取网页内容并整理为 LLM 上下文,适合构建网页检索与内容处理流程的开发者。项目也包含 REST API 和 Workers Binding API 实验。

主要功能

  1. 01通过浏览器渲染获取网页内容
  2. 02提供 REST API 与 Puppeteer Binding 示例
  3. 03按 CSS 选择器提取结构化内容
  4. 04汇总网页内容
  5. 05搜索 Cloudflare 文档

适用场景

  1. 01为 LLM 获取网页上下文
  2. 02按页面元素提取所需内容
  3. 03检索 Cloudflare 文档并获取相关信息
  4. 04实验 Cloudflare 浏览器自动化接口

MCP 相关

MCP 服务提供 `fetch_page`、`search_documentation`、`extract_structured_content` 和 `summarize_content` 工具,用于获取、搜索、提取和概括网页内容。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudflare-browser-rendering": {
"command": "npx",
"args": [
"-y",
"wrangler"
]
}
}
}
启动命令npx -y wrangler

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmwrangler

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Cloudflare Browser Rendering 实验与 MCP 服务

本项目演示如何使用 Cloudflare Browser Rendering 提取网页内容,以供大模型作为上下文。本项目包含 REST API 和 Workers Binding API 的实验,以及一个可用于向大模型提供网页上下文的 MCP 服务实现。

网页内容服务 MCP 服务

项目结构

cloudflare-browser-rendering/
├── examples/                   # Example implementations and utilities
│   ├── basic-worker-example.js # Basic Worker with Browser Rendering
│   ├── minimal-worker-example.js # Minimal implementation
│   ├── debugging-tools/        # Tools for debugging
│   │   └── debug-test.js       # Debug test utility
│   └── testing/                # Testing utilities
│       └── content-test.js     # Content testing utility
├── experiments/                # Educational experiments
│   ├── basic-rest-api/         # REST API tests
│   ├── puppeteer-binding/      # Workers Binding API tests
│   └── content-extraction/     # Content processing tests
├── src/                        # MCP server source code
│   ├── index.ts                # Main entry point
│   ├── server.ts               # MCP server implementation
│   ├── browser-client.ts       # Browser Rendering client
│   └── content-processor.ts    # Content processing utilities
├── puppeteer-worker.js         # Cloudflare Worker with Browser Rendering binding
├── test-puppeteer.js           # Tests for the main implementation
├── wrangler.toml               # Wrangler configuration for the Worker
├── cline_mcp_settings.json.example # Example MCP settings for Cline
├── .gitignore                  # Git ignore file
└── LICENSE                     # MIT License

前置条件

  • Node.js(v16 或更高版本)
  • 已启用 Browser Rendering 的 Cloudflare 账户
  • TypeScript
  • Wrangler CLI(用于部署 Worker)

安装

  1. 克隆仓库:
git clone https://github.com/yourusername/cloudflare-browser-rendering.git
cd cloudflare-browser-rendering
  1. 安装依赖:
npm install

Cloudflare Worker 设置

  1. 安装 Cloudflare Puppeteer 包:
npm install @cloudflare/puppeteer
  1. 配置 Wrangler:
# wrangler.toml
name = "browser-rendering-api"
main = "puppeteer-worker.js"
compatibility_date = "2023-10-30"
compatibility_flags = ["nodejs_compat"]

[browser]
binding = "browser"
  1. 部署 Worker:
npx wrangler deploy
  1. 测试 Worker:
node test-puppeteer.js

运行实验

基本 REST API 实验

本实验演示如何使用 Cloudflare Browser Rendering REST API 获取和处理网页内容:

npm run experiment:rest
Puppeteer Binding API 实验

本实验演示如何将 Cloudflare Browser Rendering Workers Binding API 与 Puppeteer 配合使用,以实现更高级的浏览器自动化:

npm run experiment:puppeteer
内容提取实验

本实验演示如何专门提取和处理网页内容,以供大模型作为上下文:

npm run experiment:content

MCP 服务

此 MCP 服务提供用于使用 Cloudflare Browser Rendering 获取和处理网页内容的工具,以供大模型作为上下文。

构建 MCP 服务
npm run build
运行 MCP 服务
npm start

或者,用于开发时:

npm run dev
MCP 服务工具

此 MCP 服务提供以下工具:

  1. fetch_page - 获取并处理网页,以供大模型作为上下文
  2. search_documentation - 搜索 Cloudflare 文档并返回相关内容
  3. extract_structured_content - 使用 CSS 选择器从网页提取结构化内容
  4. summarize_content - 总结网页内容,使大模型上下文更简洁

配置

若要使用 Cloudflare Browser Rendering 端点,请设置 BROWSER_RENDERING_API 环境变量:

export BROWSER_RENDERING_API=https://YOUR_WORKER_URL_HERE

将 YOUR_WORKER_URL_HERE 替换为已部署的 Cloudflare Worker 的 URL。你需要在多个文件中替换此占位符:

  1. 在测试文件中:test-puppeteer.js、examples/debugging-tools/debug-test.js、examples/testing/content-test.js
  2. 在 MCP 服务配置中:cline_mcp_settings.json.example
  3. 在浏览器客户端中: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 文件中。

主要经验

  1. Cloudflare Browser Rendering 需要使用 @cloudflare/puppeteer 包与浏览器绑定交互。
  2. 使用浏览器绑定的正确模式是:
    import puppeteer from '@cloudflare/puppeteer';
    
    // Then in your handler:
    const browser = await puppeteer.launch(env.browser);
    const page = await browser.newPage();
    
  3. 部署使用 Browser Rendering 绑定的 Worker 时,需要启用 nodejs_compat 兼容性标志。
  4. 使用完毕后务必关闭浏览器,以避免资源泄漏。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。