MCP URL Format Converter

Obtiene contenido de cualquier URL y lo convierte a HTML, JSON, Markdown o texto plano.

Documentación

MCP URL Format Converter

Un servidor de Protocolo de Contexto de Modelo (MCP) que obtiene contenido de cualquier URL y lo convierte al formato de salida que desees.

Descripción general

MCP URL Format Converter proporciona herramientas para recuperar contenido de cualquier URL web y transformarlo en varios formatos (HTML, JSON, Markdown o texto plano), independientemente del tipo de contenido original. Está diseñado para funcionar con cualquier cliente compatible con MCP, incluido Claude for Desktop, lo que permite a los LLM acceder, transformar y analizar contenido web en un formato consistente.

Características

  • 🔄 Conversión de formato: Transforma cualquier contenido web a HTML, JSON, Markdown o texto plano
  • 🌐 Soporte universal de entrada: Maneja sitios web, APIs, archivos sin procesar y más
  • 🔍 Detección automática de contenido: Identifica inteligentemente el formato de origen
  • 🧰 Soporte robusto de bibliotecas: Utiliza bibliotecas estándar de la industria:
    • Cheerio para análisis de HTML
    • Marked para procesamiento de Markdown
    • Fast-XML-Parser para manejo de XML
    • CSVtoJSON para conversión de CSV
    • SanitizeHTML para seguridad
    • Turndown para conversión de HTML a Markdown
  • 🔧 Procesamiento avanzado de formatos:
    • Análisis de HTML con extracción de metadatos
    • Impresión bonita de JSON y preservación de estructura
    • Renderizado de Markdown con estilos
    • Conversión de CSV a tablas
    • Transformación de XML a JSON
  • 📜 Seguimiento de historial: Mantiene registros de URLs obtenidas recientemente
  • 🛡️ Enfoque en seguridad: Saneamiento de contenido para prevenir ataques XSS

Instalación

Requisitos previos

  • Node.js 16.x o superior
  • npm o yarn

Inicio rápido

  1. Clona el repositorio:

    git clone https://github.com/yourusername/mcp-url-converter.git
    cd mcp-url-converter
    
  2. Instala las dependencias:

    npm install
    
  3. Compila el proyecto:

    npm run build
    
  4. Ejecuta el servidor:

    npm start
    

Integración con Claude for Desktop

  1. Abre tu archivo de configuración de Claude for Desktop:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Agrega el servidor de conversión de URL a tu configuración:

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

Herramientas disponibles

fetch

Obtiene contenido de cualquier URL y detecta automáticamente el mejor formato de salida.

Parámetros:

  • url (cadena, obligatorio): La URL de la que se obtendrá el contenido
  • format (cadena, opcional): Formato al que convertir (auto, html, json, markdown, text). Predeterminado: auto

Ejemplo:

Can you fetch https://example.com and choose the best format to display it?

fetch-json

Obtiene contenido de cualquier URL y lo convierte a formato JSON.

Parámetros:

  • url (cadena, obligatorio): La URL de la que se obtendrá el contenido
  • prettyPrint (booleano, opcional): Si se debe imprimir el JSON de forma bonita. Predeterminado: true

Ejemplo:

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

fetch-html

Obtiene contenido de cualquier URL y lo convierte a formato HTML.

Parámetros:

  • url (cadena, obligatorio): La URL de la que se obtendrá el contenido
  • extractText (booleano, opcional): Si se debe extraer solo el contenido de texto. Predeterminado: false

Ejemplo:

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

fetch-markdown

Obtiene contenido de cualquier URL y lo convierte a formato Markdown.

Parámetros:

  • url (cadena, obligatorio): La URL de la que se obtendrá el contenido

Ejemplo:

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

fetch-text

Obtiene contenido de cualquier URL y lo convierte a formato de texto plano.

Parámetros:

  • url (cadena, obligatorio): La URL de la que se obtendrá el contenido

Ejemplo:

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

web-search y deep-research

Estas herramientas proporcionan interfaces para las capacidades de búsqueda de Perplexity (cuando el host MCP lo admite).

Recursos disponibles

recent-urls://list

Devuelve una lista de URLs obtenidas recientemente con marcas de tiempo y formatos de salida.

Ejemplo:

What URLs have I fetched recently?

Seguridad

Este servidor implementa varias medidas de seguridad:

  • Saneamiento de HTML usando sanitize-html para prevenir ataques XSS
  • Validación de contenido antes del procesamiento
  • Manejo de errores y valores predeterminados seguros
  • Validación de parámetros de entrada con Zod
  • Codificación segura de salida

Pruebas

Puedes probar el servidor usando el MCP Inspector:

npm run test

Solución de problemas

Problemas comunes

  1. Errores de conexión: Verifica que la URL sea accesible y esté correctamente formateada
  2. Errores de conversión: Algunos contenidos complejos pueden no convertirse limpiamente entre formatos
  3. Problemas de origen cruzado: Algunos sitios web pueden bloquear solicitudes de fuentes desconocidas

Modo de depuración

Para obtener información adicional de depuración, establece la variable de entorno DEBUG:

DEBUG=mcp:* npm start

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE para más detalles.

Agradecimientos

  • Construido con el Protocolo de Contexto de Modelo
  • Utiliza bibliotecas modernas y mantenidas activamente con enfoque en seguridad
  • Enfoque de saneamiento basado en las recomendaciones de OWASP

Última actualización: 29 de marzo de 2025