mcp URL抓取器
一种模型上下文协议服务器,使大型语言模型能够以多种格式(HTML、JSON、Markdown、文本)获取和处理网页内容,并具有自动格式检测功能。
服务介绍
MCP URL 格式转换器
一个模型上下文协议(MCP)服务器,可以从任何URL获取内容并将其转换为你所需的输出格式。
概述
MCP URL 格式转换器提供了一组工具,用于从任何网页URL检索内容,并将其转换为各种格式(HTML、JSON、Markdown或纯文本),无论原始内容的类型如何。它设计为与任何兼容MCP的客户端一起工作,包括Claude for Desktop,使LLM能够以一致的格式访问、转换和分析网页内容。
特性
- 🔄 格式转换:将任何网页内容转换为HTML、JSON、Markdown或纯文本
- 🌐 通用输入支持:处理网站、API、原始文件等
- 🔍 自动内容检测:智能识别源格式
- 🧰 强大的库支持:使用行业标准库:
- Cheerio 用于 HTML 解析
- Marked 用于 Markdown 处理
- Fast-XML-Parser 用于 XML 处理
- CSVtoJSON 用于 CSV 转换
- SanitizeHTML 用于安全
- Turndown 用于 HTML 到 Markdown 的转换
- 🔧 高级格式处理:
- 带有元数据提取的 HTML 解析
- JSON 美化打印和结构保留
- 带样式的 Markdown 渲染
- CSV 到表格的转换
- XML 到 JSON 的转换
- 📜 历史记录跟踪:维护最近获取的URL日志
- 🛡️ 安全重点:内容净化以防止XSS攻击
安装
先决条件
- Node.js 16.x 或更高版本
- npm 或 yarn
快速开始
-
克隆仓库:
git clone https://github.com/yourusername/mcp-url-converter.git cd mcp-url-converter -
安装依赖项:
npm install -
构建项目:
npm run build -
运行服务器:
npm start
与 Claude for Desktop 集成
-
打开你的 Claude for Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
将 URL 转换服务器添加到配置中:
{ "mcpServers": { "url-converter": { "command": "node", "args": ["/absolute/path/to/mcp-url-converter/build/index.js"] } } } -
重启 Claude for Desktop
可用工具
fetch
从任何URL获取内容,并自动检测最佳输出格式。
参数:
url(字符串, 必需): 要从中获取内容的URLformat(字符串, 可选): 转换为的格式 (auto,html,json,markdown,text)。默认值:auto
示例:
Can you fetch https://example.com and choose the best format to display it?
fetch-json
从任何URL获取内容并将其转换为JSON格式。
参数:
url(字符串, 必需): 要从中获取内容的URLprettyPrint(布尔值, 可选): 是否美化打印JSON。默认值:true
示例:
Can you fetch https://example.com and convert it to JSON format?
fetch-html
从任意 URL 获取内容并转换为 HTML 格式。
参数:
url(字符串,必填):要获取内容的 URLextractText(布尔值,可选):是否仅提取文本内容。默认值:false
示例:
Can you fetch https://api.example.com/users and convert it to HTML?
fetch-markdown
从任意 URL 获取内容并转换为 Markdown 格式。
参数:
url(字符串,必填):要获取内容的 URL
示例:
Can you fetch https://example.com and convert it to Markdown?
fetch-text
从任意 URL 获取内容并转换为纯文本格式。
参数:
url(字符串,必填):要获取内容的 URL
示例:
Can you fetch https://example.com and convert it to plain text?
web-search 和 deep-research
这些工具提供了 Perplexity 搜索功能的接口(当 MCP 主机支持时)。
可用资源
recent-urls://list
返回带有时间戳和输出格式的最近获取的 URL 列表。
示例:
What URLs have I fetched recently?
安全性
此服务器实现了多项安全措施:
- 使用
sanitize-html对 HTML 进行净化以防止 XSS 攻击 - 在处理前进行内容验证
- 错误处理和安全默认设置
- 使用 Zod 进行输入参数验证
- 安全的输出编码
测试
您可以使用 MCP Inspector 测试服务器:
npm run test
故障排除
常见问题
- 连接错误:请验证 URL 是否可访问且格式正确
- 转换错误:某些复杂内容可能无法在格式之间干净地转换
- 跨域问题:某些网站可能会阻止来自未知来源的请求
调试模式
为了获得额外的调试信息,请设置 DEBUG 环境变量:
DEBUG=mcp:* npm start
许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
致谢
- 使用 Model Context Protocol 构建
- 使用现代、积极维护的库,并注重安全性
- 净化方法基于 OWASP 的建议
最后更新:2025年3月29日