SVG to PNG MCP Server
Un servidor que convierte código SVG a imágenes PNG usando la biblioteca cairosvg.
Documentación
Servidor MCP de SVG a PNG
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:
-
Solución CairoSVG (usada actualmente)
- Usa la biblioteca
cairosvgpara 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
- Usa la biblioteca
-
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
- Cree y active el entorno virtual:
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# 在 macOS/Linux 上:
source venv/bin/activate
# 在 Windows 上:
.\venv\Scripts\activate
- Instale las dependencias:
pip install -r requirements.txt
Configuración
- Copie el archivo de configuración de ejemplo:
cp servers_config.example.json servers_config.json
- 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:
commanddebe ser la ruta absoluta del intérprete de Python en el entorno virtual- La ruta de
server.pyenargsdebe 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.jsonuse 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
