SVG to PNG MCP Server
Um servidor que converte código SVG para imagens PNG usando a biblioteca cairosvg.
Documentação
SVG to PNG MCP Server
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:
-
Solução CairoSVG (atualmente em uso)
- Usa a biblioteca
cairosvgpara 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
- Usa a biblioteca
-
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
- Crie e ative o ambiente virtual:
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# 在 macOS/Linux 上:
source venv/bin/activate
# 在 Windows 上:
.\venv\Scripts\activate
- Instale as dependências:
pip install -r requirements.txt
Configuração
- Copie o arquivo de configuração de exemplo:
cp servers_config.example.json servers_config.json
- 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:
commanddeve ser o caminho absoluto do interpretador Python no ambiente virtual- O caminho
server.pyemargsdeve 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
