SVG to PNG MCP Server

Um servidor que converte código SVG para imagens PNG usando a biblioteca cairosvg.

Documentação

MseeP.ai Security Assessment Badge

SVG to PNG MCP Server

smithery badge

Este é um servidor de ferramentas de conversão de SVG para PNG baseado no Model Context Protocol (MCP).

Recursos

  • Converte código SVG em imagens PNG
  • Suporta especificação de diretório de trabalho
  • Baseado no protocolo MCP, pode ser integrado com outros clientes MCP

Explicação das soluções de conversão de SVG para PNG

Atualmente, são suportadas duas soluções de conversão de SVG para PNG:

  1. Solução CairoSVG (atualmente em uso)

    • Usa a biblioteca cairosvg para conversão
    • Vantagens:
      • Velocidade de conversão rápida
      • Poucas dependências, instalação simples
      • Adequado para conversão de gráficos SVG simples
    • Desvantagens:
      • O suporte a fontes chinesas requer tratamento especial
      • Suporte limitado a alguns recursos SVG complexos
  2. Solução Inkscape (alternativa)

    • Usa a ferramenta de linha de comando do Inkscape para conversão
    • Vantagens:
      • Suporte completo a todos os recursos do SVG
      • Melhor suporte à renderização de fontes
      • Resultados de conversão mais precisos
    • Desvantagens:
      • Requer a instalação do software Inkscape
      • Velocidade de conversão relativamente mais lenta
      • Mais dependências do sistema

Nota: A versão atual usa a solução CairoSVG por padrão. Se você encontrar problemas de renderização de fontes ou problemas de conversão de SVG complexos, considere mudar para a solução Inkscape.

Estrutura do projeto

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

Instalação

Instalação via Smithery

Para instalar o SVG to PNG MCP Server para Claude Desktop automaticamente via Smithery:

npx -y @smithery/cli install @longbowzz/svg2png_mcp --client claude
  1. Crie e ative o ambiente virtual:
# 创建虚拟环境
python -m venv venv

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

Configuração

  1. Copie o arquivo de configuração de exemplo:
cp servers_config.example.json servers_config.json
  1. Edite servers_config.json, deve usar caminhos absolutos:
{
    "mcpServers": {
        "svg2png": {
            "command": "/absolute/path/to/venv/bin/python",
            "args": [
                "/absolute/path/to/svg2png_mcp/src/server.py"
            ]
        }
    }
}

⚠️ Observações importantes:

  • command deve ser o caminho absoluto do interpretador Python no ambiente virtual
  • O caminho server.py em args deve ser um caminho absoluto
  • Isso garante que outros clientes MCP possam encontrar e iniciar o servidor corretamente

Como obter os caminhos:

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

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

Exemplo (macOS/Linux):

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

Exemplo (Windows):

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

Como usar

Execute o cliente de teste:

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

Se funcionar corretamente, uma imagem chamada output.png será gerada no diretório test_output.

Preencha o conteúdo de servers_config.json em clientes MCP como Cursor, Claude Desktop, etc., para usar.

Nota:

  • O cliente MCP iniciará automaticamente o servidor com base na configuração em servers_config.json
  • Certifique-se de que caminhos absolutos corretos sejam usados em servers_config.json
  • Certifique-se de que o ambiente virtual esteja ativado ao executar o cliente

Implementação técnica

Arquitetura do servidor

  • Implementa o servidor MCP usando o framework FastMCP
  • Fornece a interface de ferramenta svg_to_png
  • Suporta operações assíncronas e tratamento de erros

Funcionalidades principais

  • A conversão de SVG para PNG usa a biblioteca cairosvg
  • Suporta diretório de trabalho personalizado
  • Fornece tratamento de erros completo e registro de logs

Integração com clientes

  • Suporta integração com clientes MCP padrão
  • Fornece exemplo de cliente de teste
  • Suporta descoberta de ferramentas e chamadas assíncronas

Dependências

  • mcp: implementação do protocolo MCP
  • cairosvg: biblioteca principal de conversão de SVG
  • Pillow: suporte ao processamento de imagens