SVG to PNG MCP Server

SVG to PNG MCP Server

A Model Context Protocol server that converts SVG code to PNG images, offering two conversion methods (CairoSVG and Inkscape) with support for custom working directories.

Category
Visit Server

README

SVG to PNG MCP Server

这是一个基于Model Context Protocol (MCP)的SVG转PNG工具服务器。

功能特点

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

SVG转PNG方案说明

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

  1. CairoSVG方案(当前使用)

    • 使用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       # 依赖文件

安装

  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 解释器的绝对路径
  • args 中的 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的图片。

将servers_config.json中的内容填入Cursor、Claude desktop等MCP客户端即可使用。

注意:

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

技术实现

服务器架构

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

核心功能

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

客户端集成

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

依赖

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured