SVG to PNG MCP Server

Un servidor que convierte código SVG a imágenes PNG usando la biblioteca cairosvg.

Documentación

MseeP.ai Security Assessment Badge

Servidor MCP de SVG a PNG

smithery badge

Este es un servidor de herramientas de conversión de SVG a PNG basado en el Protocolo de Contexto de Modelo (MCP).

Características

  • Convierte código SVG a imágenes PNG
  • Admite especificar un directorio de trabajo
  • Basado en el protocolo MCP, se puede integrar con otros clientes MCP

Explicación de las soluciones de conversión de SVG a PNG

Actualmente se admiten dos soluciones de conversión de SVG a PNG:

  1. Solución CairoSVG (usada actualmente)

    • Usa la biblioteca cairosvg para la conversión
    • Ventajas:
      • Velocidad de conversión rápida
      • Pocas dependencias, instalación sencilla
      • Adecuada para conversión de gráficos SVG simples
    • Desventajas:
      • El soporte de fuentes chinas requiere manejo especial
      • Soporte limitado para ciertas características SVG complejas
  2. Solución Inkscape (alternativa)

    • Usa la herramienta de línea de comandos de Inkscape para la conversión
    • Ventajas:
      • Soporte completo de todas las características SVG
      • Mejor renderizado de fuentes
      • Resultados de conversión más precisos
    • Desventajas:
      • Requiere instalar el software Inkscape
      • Velocidad de conversión relativamente más lenta
      • Más dependencias del sistema

Nota: La versión actual usa la solución CairoSVG por defecto. Si encuentra problemas de renderizado de fuentes o problemas de conversión SVG complejos, considere cambiar a la solución Inkscape.

Estructura del proyecto

svg2png_mcp/
├── src/
│   ├── server.py          # MCP服务器实现
│   ├── svg2png.py         # SVG转PNG的业务逻辑
│   └── test_client.py     # 测试客户端
├── servers_config.example.json    # MCP服务器配置示例
└── requirements.txt       # 依赖文件

Instalación

Instalación mediante Smithery

Para instalar el Servidor MCP de SVG a PNG para Claude Desktop automáticamente mediante Smithery:

npx -y @smithery/cli install @longbowzz/svg2png_mcp --client claude
  1. Cree y active el entorno virtual:
# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# 在 macOS/Linux 上:
source venv/bin/activate
# 在 Windows 上:
.\venv\Scripts\activate
  1. Instale las dependencias:
pip install -r requirements.txt

Configuración

  1. Copie el archivo de configuración de ejemplo:
cp servers_config.example.json servers_config.json
  1. Edite servers_config.json, debe usar rutas absolutas:
{
    "mcpServers": {
        "svg2png": {
            "command": "/absolute/path/to/venv/bin/python",
            "args": [
                "/absolute/path/to/svg2png_mcp/src/server.py"
            ]
        }
    }
}

⚠️ Nota importante:

  • command debe ser la ruta absoluta del intérprete de Python en el entorno virtual
  • La ruta de server.py en args debe ser una ruta absoluta
  • Esto es para garantizar que otros clientes MCP puedan encontrar e iniciar el servidor correctamente

Método para obtener las rutas:

# 获取Python解释器的绝对路径(在虚拟环境中运行)
which python  # macOS/Linux
where python  # Windows

# 获取项目根目录的绝对路径
pwd  # macOS/Linux
cd   # Windows

Ejemplo (macOS/Linux):

{
    "mcpServers": {
        "svg2png": {
            "command": "/Users/username/projects/svg2png_mcp/venv/bin/python",
            "args": [
                "/Users/username/projects/svg2png_mcp/src/server.py"
            ]
        }
    }
}

Ejemplo (Windows):

{
    "mcpServers": {
        "svg2png": {
            "command": "C:\\Users\\username\\projects\\svg2png_mcp\\venv\\Scripts\\python.exe",
            "args": [
                "C:\\Users\\username\\projects\\svg2png_mcp\\src\\server.py"
            ]
        }
    }
}

Método de uso

Ejecute el cliente de prueba:

# 确保虚拟环境已激活
source venv/bin/activate  # macOS/Linux
# 运行客户端
python src/test_client.py

Si funciona correctamente, se generará una imagen llamada output.png en el directorio test_output.

Complete el contenido de servers_config.json en clientes MCP como Cursor, Claude Desktop, etc. para usarlo.

Nota:

  • El cliente MCP iniciará automáticamente el servidor según la configuración en servers_config.json
  • Asegúrese de que servers_config.json use las rutas absolutas correctas
  • Asegúrese de que el entorno virtual esté activado al ejecutar el cliente

Implementación técnica

Arquitectura del servidor

  • Usa el framework FastMCP para implementar el servidor MCP
  • Proporciona la interfaz de herramienta svg_to_png
  • Admite operaciones asíncronas y manejo de errores

Funcionalidad principal

  • La conversión de SVG a PNG usa la biblioteca cairosvg
  • Admite directorios de trabajo personalizados
  • Proporciona manejo completo de errores y registro de actividades

Integración con clientes

  • Admite conexión con clientes MCP estándar
  • Proporciona ejemplos de clientes de prueba
  • Admite descubrimiento de herramientas y llamadas asíncronas

Dependencias

  • mcp: Implementación del protocolo MCP
  • cairosvg: Biblioteca principal de conversión SVG
  • Pillow: Soporte de procesamiento de imágenes