URL格式转换器

MCP URL格式转换器是一个能够从任何URL获取内容并将其转换为所需输出格式(如HTML、JSON、Markdown或纯文本)的服务,适用于需要统一处理和分析网络内容的场景。

  • by nathanonn
  • TypeScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 nathanonn/mcp-url-fetcher

使用说明

MCP URL格式转换器

模型上下文协议(MCP)服务器,从任何URL获取内容并将其转换为所需的输出格式。

概述

MCP URL格式转换器提供从任何web URL检索内容并将其转换为各种格式(HTML、JSON、Markdown或纯文本)的工具,而不管原始内容类型如何。它旨在与任何兼容MCP的客户端(包括Claude for Desktop)配合使用,使LLM能够以一致的格式访问、转换和分析web内容。

特性

  • 🔄 格式转换:将任何web内容转换为HTML、JSON、Markdown或纯文本
  • 🌐 通用输入支持:处理网站、API、原始文件等
  • 🔍 自动内容检测:智能识别源格式
  • 🧰 强大的库支持:使用行业标准库:
    • Cheerio用于HTML解析
    • 标记为Markdown处理
    • 用于XML处理的快速XML解析器
    • CSV转换的CSVtoJSON
    • 消毒HTML以确保安全
    • 拒绝HTML到Markdown的转换
  • 🔧 高级格式处理:
    • HTML解析与元数据提取
    • JSON漂亮打印和结构保存
    • 带样式的Markdown渲染
    • CSV到表格的转换
    • XML到JSON转换
  • 📜 历史跟踪:维护最近获取的URL的日志
  • 🛡️ 安全焦点:内容净化以防止XSS攻击

安装

先决条件

  • Node.js 16.x或更高版本
  • npm或纱线

快速开始

  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
    • 窗户: %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

可用工具

fetch

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

参数:

  • url (string,必填):从中获取内容的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 (string,必填):从中获取内容的URL
  • prettyPrint (boolean,可选):是否漂亮地打印JSON。违约: true

例子:

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

fetch-html

从任何URL获取内容并将其转换为HTML格式。

参数:

  • url (string,必填):从中获取内容的URL
  • extractText (布尔值,可选):是否仅提取文本内容。违约: false

例子:

Can you fetch https://api.example.com/users and convert it to HTML?

fetch-markdown

从任何URL获取内容并将其转换为Markdown格式。

参数:

  • url (string,必填):从中获取内容的URL

例子:

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

fetch-text

从任何URL获取内容并将其转换为纯文本格式。

参数:

  • url (string,必填):从中获取内容的URL

例子:

Can you fetch https://example.com and convert it to plain text?

web-search 和 deep-research

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

可用资源

recent-urls://list

返回最近获取的URL列表,其中包含时间戳和输出格式。

例子:

What URLs have I fetched recently?

安全

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

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

测试

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

npm run test

故障排除

常见问题

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

调试模式

有关其他调试信息,请设置 DEBUG 环境变量:

DEBUG=mcp:* npm start

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

  • 与 模型上下文协议
  • 使用以安全为重点的现代化、积极维护的图书馆
  • 基于OWASP建议的消毒方法

最后更新日期:2025年3月29日