关于 Web2MD
Web2MD 是一个 MCP 服务,可提取网页内容并转换为 Markdown、纯文本或按令牌数限制的分块,面向需要网页内容、元数据或 RAG 素材的客户端;请求通过 RapidAPI 上的 Web2MD API 处理。
主要功能
- 01提取网页为 Markdown 或文本
- 02按标题拆分令牌数受限的内容块
- 03转换提供的 HTML
- 04获取网页元数据
适用场景
- 01为 RAG 和嵌入准备网页内容
- 02去除导航与广告文本后读取页面
- 03将已有 HTML 转成 Markdown 或文本
MCP 相关
向 MCP 客户端提供 `read_url`、`chunk_url`、`convert_html` 和 `page_metadata` 工具。使用 Web2MD API 需要 RapidAPI 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 绝对 http(s) URL,最多 2048 个字符。 |
| format | enum | 否 | 输出格式。默认值为 markdown。markdown | text | json |
| include_links | boolean | 否 | 将链接保留为 [text](url)。默认 true。 |
| include_images | boolean | 否 | 将图片保留为 。默认 false。 |
| include_tables | boolean | 否 | 将表格保留为 Markdown 表格。默认 true。 |
详细介绍
Web2MD MCP 服务
一个 MCP 服务,使用 RapidAPI 上的 Web2MD API,将任意网页转换为简洁的 Markdown、纯文本或受令牌数限制的 RAG 分块。
功能
read_url:获取网页并将其主要内容以 Markdown 或纯文本形式返回,不含导航、广告或冗余内容。chunk_url:获取网页,并按标题将其拆分为令牌数受限的分块,用于 RAG 和嵌入。convert_html:将已有的原始 HTML 转换为 Markdown 或纯文本。page_metadata:获取网页的标题、作者、发布日期、描述等字段,不包含完整内容。
3 步完成设置
- 在 RapidAPI 上订阅 Web2MD。BASIC 套餐免费,每月包含 500 次请求。
- 从该 API 页面上的 Endpoints 选项卡复制你的
X-RapidAPI-Key。 - 将此服务添加到你的客户端。
需要 Node.js 22 或更高版本。
Claude Code:
claude mcp add web2md -e RAPIDAPI_KEY=your-key -- npx -y web2md-rag-mcp
Claude Desktop(claude_desktop_config.json)和 Cursor(~/.cursor/mcp.json)使用相同的 JSON:
{
"mcpServers": {
"web2md": {
"command": "npx",
"args": ["-y", "web2md-rag-mcp"],
"env": { "RAPIDAPI_KEY": "your-key" }
}
}
}
Windsurf:将相同的代码块放入 ~/.codeium/windsurf/mcp_config.json。
工具
| 工具 | 功能 | 参数 | 返回值 |
|---|---|---|---|
read_url | 将网页作为简洁的 Markdown 或文本获取 | url(最多 2048 个字符);format:markdown、text 或 json;include_links、include_images、include_tables | 标题、令牌数和内容;format: "json" 返回完整的 JSON 文档 |
chunk_url | 将网页拆分为 RAG 分块 | url;max_tokens 64-8192(默认值为 512);overlap_tokens 0-1024(默认值为 50);include_links、include_images、include_tables | 包含 total_tokens 和 chunks 的 JSON;每个分块均包含标题路径和令牌数 |
convert_html | 转换原始 HTML | html(最多 5,000,000 个字符);可选的 url,用于解析相对链接;format;include_links、include_images、include_tables | 与 read_url 相同 |
page_metadata | 获取网页元数据 | url | 包含标题、作者、日期、描述、站点名称、语言、规范 URL、图片、字数和阅读时间的 JSON |
限额和套餐
| 套餐 | 价格 | 每月请求数 |
|---|---|---|
| BASIC | $0 | 500 |
| PRO | $9 | 10,000 |
| ULTRA | $29 | 60,000 |
| MEGA | $79 | 250,000 |
- RapidAPI 速率限制:每小时 1,000 次请求。
- 支持最大 5 MB 的网页。
- 遵循 robots.txt 规则。
- JavaScript 较多的网页可能返回
no_content。计划支持页面渲染。
错误
工具错误的格式为 Web2MD error [code]: message。输入验证失败(URL 错误、数字超出范围)则由 MCP SDK 返回,格式为 MCP error -32602: Input validation error ...。
| 代码 | 含义 |
|---|---|
missing_key | 未设置 RAPIDAPI_KEY |
invalid_key | RAPIDAPI_KEY 包含 HTTP 标头中不允许的字符,通常是粘贴时带入了换行符 |
rapidapi_auth | RapidAPI 拒绝了该密钥,或你尚未订阅 |
rapidapi_quota | 套餐配额或速率限制已用尽 |
invalid_request | 请求未通过验证(HTTP 422) |
invalid_url | 400:不是 http/https 地址、包含凭据、缺少主机、端口无效,或长度超过 2048 个字符 |
blocked_destination | 400:主机解析到私有、环回、链路本地或元数据地址;端口不是 80/443;主机为 localhost/.local/.internal。适用于每次重定向 |
dns_error | 400:主机无法解析 |
robots_disallowed | 403:该网站的 robots.txt 禁止 web2md 用户代理访问此路径 |
page_too_large | 413:页面大于 5 MB |
unsupported_content_type | 415:不是 HTML |
no_content | 422:主要内容少于 10 个单词,通常是仅包含 JavaScript 的页面 |
host_rate_limited | 429:针对目标网站的限制,用于保护被抓取的网站。这不是你的配额 |
target_blocked | 502:网站返回了 401/403/429/503,通常是遇到了反机器人拦截 |
target_error | 502:网站返回了其他 4xx/5xx 状态码 |
fetch_failed | 502:无法连接或 TLS 失败 |
too_many_redirects | 502:重定向次数超过 5 次 |
fetch_timeout | 504:抓取耗时超过 15 秒 |
timeout | Web2MD 请求超时 |
network_error | 请求无法连接到 API |
bad_response | API 返回了非 JSON 格式的成功响应 |
http_<status> | 其他任何 HTTP 错误,附带响应内容的简短片段 |
internal_error | MCP 服务内部发生意外错误 |
隐私
你的密钥仅会发送到 RapidAPI 网关(web2md-webpage-to-markdown-rag-chunks.p.rapidapi.com),且绝不会被记录。
开发
npm ci
npm test
npm run lint
npm run build
RAPIDAPI_KEY=your-key npm run smoke
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。