Mermaid MCP Server
Сервер для преобразования диаграмм Mermaid на базе Model Context Protocol (MCP), предоставляющий AI-клиентам мощные возможности генерации диаграмм
О проекте
Mermaid MCP Server — это профессиональный сервер для преобразования диаграмм Mermaid на базе Model Context Protocol (MCP), предоставляющий AI-клиентам мощные возможности генерации диаграмм. Проект позволяет преобразовывать код диаграмм Mermaid в различные форматы изображений (PNG, JPG, SVG, PDF), позволяя пользователям легко создавать высококачественные диаграммы в любых AI-клиентах, поддерживающих протокол MCP.
Основные характеристики
Многоформатный вывод: поддержка форматов PNG, JPG, SVG, PDF и других
Настройка тем: встроенные темы: default, dark, neutral, forest
Параметры настройки: поддержка настройки цвета фона, размеров изображения и других параметров
Проверка синтаксиса: функция проверки синтаксиса Mermaid в реальном времени
Примеры ресурсов: встроенные примеры кода для различных типов диаграмм
Обработка ошибок: надежный механизм обработки ошибок и понятные сообщения об ошибках
Двойной режим STDIO/SSE: поддержка режимов связи STDIO и SSE
Управление пакетами uv: использование сверхбыстрого менеджера пакетов uv
Related MCP server: mcp-mermaid-validator
Список функций
Название функции | Описание | Технологический стек | Статус |
Преобразование диаграмм | Код Mermaid в изображение | mermaid.ink API | ✅ Стабильно |
Многоформатный вывод | PNG/JPG/SVG/PDF | requests + base64 | ✅ Стабильно |
Настройка тем | 4 встроенные темы | mermaid.ink | ✅ Стабильно |
Проверка синтаксиса | Проверка в реальном времени | mermaid-cli | ✅ Стабильно |
Примеры ресурсов | Богатая коллекция примеров | Статические ресурсы | ✅ Стабильно |
Обработка ошибок | Понятные сообщения | Обработка исключений Python | ✅ Стабильно |
Протокол MCP | Model Context Protocol | mcp[cli] | ✅ Стабильно |
Режим SSE | Server-Sent Events | FastAPI + Uvicorn | ✅ Стабильно |
Техническая архитектура
Технология | Версия | Назначение |
Python | 3.12+ | Основной язык разработки |
MCP | 1.9+ | Model Context Protocol |
FastAPI | 0.104+ | Веб-фреймворк (режим SSE) |
Uvicorn | 0.24+ | ASGI-сервер |
requests | 2.31+ | HTTP-клиент |
uv | latest | Менеджер пакетов Python |
Архитектура связи
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 通信架构图 │
├─────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┐ ┌─────────────────────────┐ ┌─────────────┐ │
│ │ AI 客户端 │ ◄────► │ Mermaid MCP Server │ ◄────► │ Mermaid API │ │
│ │ (Cursor/Claude) │ │ STDIO/SSE │ │ mermaid.ink│ │
│ └──────────────────┘ └─────────────────────────┘ └─────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ AI 对话界面 MCP 协议通信 图表渲染转换 │
│ 生成图表请求 双向数据传输 返回图像数据 │
│ │
└─────────────────────────────────────────────────────────────────────────────────┘Инструкция по установке
Системные требования
Python 3.12+
Менеджер пакетов uv (рекомендуется)
Установка зависимостей
Способ 1: Установка через uv (рекомендуется)
# 克隆仓库
git clone https://github.com/wwwzhouhui/mermaid_mcp_server.git
cd mermaid_mcp_server
# 安装依赖
uv syncСпособ 2: Установка через pip
pip install -r requirements.txtИнструкция по использованию
Настройка клиента
Настройка Cursor
Добавьте следующую конфигурацию в файл ~/.cursor/mcp.json:
Режим STDIO (рекомендуется):
{
"mcpServers": {
"mermaid-mcp-server-png-pdf-jpg-svg": {
"command": "uvx",
"args": [
"mermaid-mcp-server-png-pdf-jpg-svg"
]
}
}
}Режим SSE:
{
"mcpServers": {
"mermaid-mcp-server-png-pdf-jpg-svg": {
"url": "http://127.0.0.1:8003/sse"
}
}
}Настройка Cherry Studio
Откройте Cherry Studio
Перейдите в Настройки → MCP Servers → Добавить сервер
Настройте параметры:
Имя:
mermaid-mcp-server-png-pdf-jpg-svgОписание:
Сервис генерации диаграмм MermaidТип:
STDIOКоманда:
uvxАргументы:
mermaid-mcp-server-png-pdf-jpg-svg
Нажмите «Сохранить» и активируйте
👁 Пример настройки Cherry Studio
Настройка Claude Desktop
Добавьте в файл claude_desktop_config.json:
{
"mcpServers": {
"mermaid-mcp-server-png-pdf-jpg-svg": {
"command": "uvx",
"args": [
"mermaid-mcp-server-png-pdf-jpg-svg"
]
}
}
}Настройка Continue.dev
Добавьте в файл config.json:
{
"mcpServers": {
"mermaid-mcp-server-png-pdf-jpg-svg": {
"command": "uvx",
"args": [
"mermaid-mcp-server-png-pdf-jpg-svg"
]
}
}
}Запуск службы
Режим STDIO (рекомендуется для настольных клиентов)
uv run python main.pyРежим SSE (для сетевого подключения)
uv run python main.py --sseОписание конфигурации
Настройка переменных окружения
Имя переменной | Описание | Значение по умолчанию |
| Адрес сервера |
|
| Порт сервера |
|
| Уровень логирования |
|
| URL API Mermaid |
|
| Тайм-аут запроса (сек) |
|
| Режим отладки |
|
| Режим разработки |
|
Доступные инструменты
1. convert_mermaid_to_image
Преобразует код диаграммы Mermaid в файл изображения различных форматов
Параметры:
mermaid_code(string): Код диаграммы Mermaidoutput_format(string, опционально): Формат вывода, поддерживает png, jpg, svg, pdf, по умолчанию "png"theme(string, опционально): Стиль темы, поддерживает default, dark, neutral, forest, по умолчанию "default"background_color(string, опционально): Цвет фона, шестнадцатеричный кодwidth(number, опционально): Ширина изображения (пиксели)height(number, опционально): Высота изображения (пиксели)
Поддерживаемые форматы вывода: PNG, JPG, SVG, PDF
2. validate_mermaid_syntax
Проверяет правильность синтаксиса кода диаграммы Mermaid
Параметры:
mermaid_code(string): Код диаграммы Mermaid для проверки
Результат:
valid(boolean): Пройдена ли проверкаerror_message(string): Сообщение об ошибке (если проверка не пройдена)
3. get_supported_options
Получает список опций, поддерживаемых конвертером
Результат:
themes(array): Список поддерживаемых темformats(array): Список поддерживаемых форматов
Поддерживаемые типы диаграмм
Блок-схема (Flowchart): для представления процессов и алгоритмов
Диаграмма последовательности (Sequence Diagram): для представления взаимодействия между объектами
Диаграмма Ганта (Gantt Chart): для управления графиком проекта
Круговая диаграмма (Pie Chart): для представления долей данных
Git-граф (Git Graph): для представления истории коммитов Git
Интеллект-карта (Mind Map): для представления структуры знаний
Диаграмма классов (Class Diagram): для представления структуры классов
Примеры использования
Пример блок-схемы
请使用 convert_mermaid_to_image 工具生成一个流程图:
flowchart TD
A[开始] --> B{判断条件}
B -->|是 | C[执行动作 1]
B -->|否 | D[执行动作 2]
C --> E[结束]
D --> EПример диаграммы последовательности
请使用 convert_mermaid_to_image 工具生成一个时序图,使用深色主题:
sequenceDiagram
participant 用户
participant 系统
participant 数据库
用户->>系统:登录请求
系统->>数据库:验证用户
数据库-->>系统:返回结果
系统-->>用户:登录成功Пример проверки синтаксиса
首先使用 validate_mermaid_syntax 验证语法,然后使用 convert_mermaid_to_image 生成图表Примеры ресурсов
Получение примеров диаграмм
Примеры диаграмм различных типов можно получить через следующие URI ресурсов:
mermaid://examples/flowchart- пример блок-схемыmermaid://examples/sequence- пример диаграммы последовательностиmermaid://examples/gantt- пример диаграммы Гантаmermaid://examples/pie- пример круговой диаграммыmermaid://examples/gitgraph- пример Git-графаmermaid://examples/mindmap- пример интеллект-картыmermaid://examples/class- пример диаграммы классов
Структура проекта
mermaid_mcp_server/
├── mermaid_mcp_server/ # 核心模块
│ ├── __init__.py
│ └── main.py # 主程序入口
├── requirements.txt # 依赖列表(pip)
├── pyproject.toml # 项目配置(uv)
├── .env.example # 环境变量示例
├── README.md # 项目文档
└── .vscode/ # VSCode 配置
└── settings.jsonРуководство по разработке
Локальная разработка
# 克隆仓库
git clone https://github.com/wwwzhouhui/mermaid_mcp_server.git
cd mermaid_mcp_server
# 安装依赖
uv sync
# 配置环境变量
cp .env.example .env
# 启动服务(STDIO 模式)
uv run python main.py
# 启动服务(SSE 模式)
uv run python main.py --sseРежим отладки
Включение подробного вывода логов:
export LOG_LEVEL=DEBUG
uv run python main.pyЧасто задаваемые вопросы
О:
Проверьте сетевое подключение и настройки брандмауэра
Убедитесь, что API mermaid.ink доступен
Проверьте настройки прокси
О:
Используйте инструмент validate_mermaid_syntax для проверки синтаксиса
Обратитесь к официальной документации Mermaid
Используйте код из примеров ресурсов
О:
Упростите содержимое диаграммы
Разбейте на несколько небольших диаграмм
Настройте параметры размера изображения
О:
Установите менеджер пакетов uv:
curl -LsSf https://astral.sh/uv/install.sh | shИли используйте глобальную установку пакета через pip
Проверьте переменную окружения PATH
О:
Убедитесь, что служба запущена в режиме SSE
Проверьте, не занят ли порт 8003
Убедитесь, что URL настроен правильно
О:
Увеличьте параметры размера изображения
Выберите подходящую тему
Оптимизируйте структуру кода Mermaid
О:
Проверьте скорость сетевого подключения
Увеличьте переменную окружения REQUEST_TIMEOUT
Упростите сложность диаграммы
О:
Убедитесь, что имя темы написано правильно
Проверьте, поддерживается ли эта тема
Попробуйте использовать другое имя темы
О:
Используйте параметр background_color
Формат — шестнадцатеричный код цвета (например, #FFFFFF)
Поддерживается только для некоторых форматов вывода
Группа технического общения
Приглашаем вас присоединиться к группе технического общения, чтобы поделиться своим опытом и предложениями:
Контакты автора
WeChat: laohaibao2025
Email: 75271002@qq.com
Поддержка проекта
Если этот проект помог вам, буду рад чашке кофе ☕
WeChat Pay
История звезд
Если проект вам понравился, поставьте звезду ⭐
Лицензия
MIT License
Журнал изменений
v0.1.0 (текущая версия)
✅ Выпущен начальный релиз
✅ Поддержка многоформатного вывода (PNG, JPG, SVG, PDF)
✅ Интегрированы четыре стиля тем (default, dark, neutral, forest)
✅ Предоставлены функции проверки синтаксиса и примеры ресурсов
✅ Поддержка двойного режима связи STDIO и SSE
v0.0.3 (2025-07-21)
✅ Выпущен начальный релиз
✅ Поддержка преобразования диаграмм в несколько форматов
✅ Функция проверки синтаксиса
✅ Функция примеров ресурсов
Руководство по внесению вклада
Приветствуются Issue и Pull Request для улучшения проекта!
Сделайте Fork этого репозитория
Создайте ветку для функции:
git checkout -b feature/amazing-featureЗафиксируйте изменения:
git commit -m 'Add amazing feature'Отправьте изменения в ветку:
git push origin feature/amazing-featureСоздайте Pull Request
Примечания
Генерация диаграммы может занять несколько секунд, пожалуйста, подождите
Убедитесь, что сетевое подключение в порядке, служба зависит от онлайн-API mermaid.ink
Данные созданного изображения возвращаются в формате base64
Сложные диаграммы могут потребовать больше времени для генерации
Наслаждайтесь созданием красивых диаграмм с Mermaid! 🎨✨
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wwwzhouhui/mermaid_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
