返回市场
SVG转PNG_MCP

SVG转PNG_MCP

作者:longbowzz3 星标更新:2025-06-20

项目介绍

【技术文档摘要】: MseeP.ai 安全评估徽章

SVG 转 PNG MCP 服务器

smithery 徽章

这是一个基于模型上下文协议(MCP)的SVG转PNG工具服务器。

功能

  • 将SVG代码转换为PNG图像
  • 支持指定工作目录
  • 基于MCP协议,可以与其他MCP客户端集成

SVG 转 PNG 转换方案说明

目前支持两种SVG到PNG的转换方案:

  1. Cairo SVG 方案(当前使用中)

    • 使用cairosvg库进行转换
    • 优点:
      • 快速转换速度
      • 依赖较少,安装简单
      • 适合简单的SVG图形转换
    • 缺点:
      • 中文字体支持需要特殊处理
      • 对某些复杂SVG特性支持有限
  2. Inkscape 解决方案(备选)

    • 使用Inkscape命令行工具进行转换
    • 优点:
      • 完整支持所有SVG特性
      • 字体渲染支持更好
      • 转换效果更准确
    • 缺点:
      • 需要安装Inkscape软件
      • 转换速度相对较慢
      • 系统依赖较多

注意:当前版本默认使用CairoSVG方案。如果遇到字体渲染或复杂SVG转换问题,可考虑切换至Inkscape方案。

项目结构

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

安装

通过 Smithery 安装

要通过 Smithery 自动安装SVG到PNG MCP服务器给Claude桌面:

npx -y @smithery/cli install @longbowzz/svg2png_mcp --client claude
  1. 创建并激活虚拟环境:
# 创建虚拟环境
python -m venv venv

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

配置

  1. 复制配置文件示例:
cp servers_config.example.json servers_config.json
  1. 编辑 servers_config.json必须使用绝对路径
{
    "mcpServers": {
        "svg2png": {
            "command": "/absolute/path/to/venv/bin/python",
            "args": [
                "/absolute/path/to/svg2png_mcp/src/server.py"
            ]
        }
    }
}

⚠️ 重要提示

  • command 必须是虚拟环境中的Python解释器的绝对路径
  • server.py 的路径必须是绝对路径
  • 这是为了确保其他MCP客户端能够正确定位并启动服务器

获取路径的方法:

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

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

示例(macOS/Linux):

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

示例(Windows):

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

使用说明

运行测试客户端:

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

如果正常运行,将在test_output目录下生成名为'output.png'的图片。

将服务器配置文件的内容填入cursor和Claude桌面等MCP客户端以使用。

注意:

  • MCP客户端会根据servers_config.json自动响应配置启动服务器
  • 确保在过程中servers_config.json使用了正确的绝对路径
  • 运行客户端时确保虚拟环境已激活

技术实现

服务器架构

  • 使用FastMCP框架实现MCP服务器
  • 提供svg_to_png工具接口
  • 支持异步操作和错误处理

核心功能

  • 使用cairosvg库将SVG转换为PNG
  • 支持自定义工作目录
  • 提供完整的错误处理和日志记录

客户端集成

  • 支持标准MCP客户端访问
  • 提供测试客户端示例
  • 支持工具发现和异步调用

依赖

  • MCP:MCP协议实现
  • Cairosvg:SVG转换核心库
  • Pillow:图像处理支持