Web Content MCP Server

Web Content MCP Server

一个利用 Cloudflare 浏览器渲染技术来提取和处理网页内容,并将其用作大型语言模型(LLM)上下文的服务器。它提供了一系列工具,包括抓取页面、搜索文档、提取结构化内容和总结内容。

浏览器自动化
搜索
TypeScript
访问服务器

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)

安装

  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 浏览器渲染 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 服务器提供以下工具:

  1. fetch_page - 获取和处理 Web 页面,用于 LLM 上下文
  2. search_documentation - 搜索 Cloudflare 文档并返回相关内容
  3. extract_structured_content - 使用 CSS 选择器从 Web 页面提取结构化内容
  4. summarize_content - 总结 Web 内容,以获得更简洁的 LLM 上下文

配置

要使用您的 Cloudflare 浏览器渲染端点,请设置 BROWSER_RENDERING_API 环境变量:

export BROWSER_RENDERING_API=https://YOUR_WORKER_URL_HERE

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

  1. 在测试文件中:test-puppeteer.jsexamples/debugging-tools/debug-test.jsexamples/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 浏览器渲染需要 @cloudflare/puppeteer 包才能与浏览器绑定进行交互。
  2. 使用浏览器绑定的正确模式是:
    import puppeteer from '@cloudflare/puppeteer';
    
    // 然后在您的处理程序中:
    const browser = await puppeteer.launch(env.browser);
    const page = await browser.newPage();
    
  3. 部署使用浏览器渲染绑定的 Worker 时,需要启用 nodejs_compat 兼容性标志。
  4. 始终在使用后关闭浏览器,以避免资源泄漏。

许可证

MIT

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
Playwright MCP Server

Playwright MCP Server

提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。

精选
本地
TypeScript
@kazuph/mcp-fetch

@kazuph/mcp-fetch

用于获取网页内容和处理图像的模型上下文协议服务器。这使得 Claude Desktop(或任何 MCP 客户端)能够适当地获取网页内容和处理图像。

精选
本地
JavaScript
Apple MCP Server

Apple MCP Server

通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。

精选
本地
TypeScript
DuckDuckGo MCP Server

DuckDuckGo MCP Server

一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。

精选
Python
contentful-mcp

contentful-mcp

在你的 Contentful Space 中更新、创建、删除内容、内容模型和资源。

精选
TypeScript