m

mcp URL抓取器

@nathanonn/mcp-url-fetcher
0 Stars 548 次浏览 nathanonn 更新于 2026-08-23

一种模型上下文协议服务器,使大型语言模型能够以多种格式(HTML、JSON、Markdown、文本)获取和处理网页内容,并具有自动格式检测功能。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

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

快速开始

  1. 克隆仓库:

    git clone https://github.com/yourusername/mcp-url-converter.git
    cd mcp-url-converter
    
  2. 安装依赖项:

    npm install
    
  3. 构建项目:

    npm run build
    
  4. 运行服务器:

    npm start
    

与 Claude for Desktop 集成

  1. 打开你的 Claude for Desktop 配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. 将 URL 转换服务器添加到配置中:

    {
      "mcpServers": {
        "url-converter": {
          "command": "node",
          "args": ["/absolute/path/to/mcp-url-converter/build/index.js"]
        }
      }
    }
    
  3. 重启 Claude for Desktop

可用工具

fetch

从任何URL获取内容,并自动检测最佳输出格式。

参数:

  • url (字符串, 必需): 要从中获取内容的URL
  • format (字符串, 可选): 转换为的格式 (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 (字符串, 必需): 要从中获取内容的URL
  • prettyPrint (布尔值, 可选): 是否美化打印JSON。默认值: true

示例:

Can you fetch https://example.com and convert it to JSON format?

fetch-html

从任意 URL 获取内容并转换为 HTML 格式。

参数:

  • url (字符串,必填):要获取内容的 URL
  • extractText (布尔值,可选):是否仅提取文本内容。默认值: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-searchdeep-research

这些工具提供了 Perplexity 搜索功能的接口(当 MCP 主机支持时)。

可用资源

recent-urls://list

返回带有时间戳和输出格式的最近获取的 URL 列表。

示例:

What URLs have I fetched recently?

安全性

此服务器实现了多项安全措施:

  • 使用 sanitize-html 对 HTML 进行净化以防止 XSS 攻击
  • 在处理前进行内容验证
  • 错误处理和安全默认设置
  • 使用 Zod 进行输入参数验证
  • 安全的输出编码

测试

您可以使用 MCP Inspector 测试服务器:

npm run test

故障排除

常见问题

  1. 连接错误:请验证 URL 是否可访问且格式正确
  2. 转换错误:某些复杂内容可能无法在格式之间干净地转换
  3. 跨域问题:某些网站可能会阻止来自未知来源的请求

调试模式

为了获得额外的调试信息,请设置 DEBUG 环境变量:

DEBUG=mcp:* npm start

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

致谢

  • 使用 Model Context Protocol 构建
  • 使用现代、积极维护的库,并注重安全性
  • 净化方法基于 OWASP 的建议

最后更新:2025年3月29日

相关 MCP 服务