Сервер MCP Mermaid
Сервер Model Context Protocol (MCP), который преобразует диаграммы Mermaid в изображения PNG. Этот сервер позволяет помощникам ИИ и другим приложениям генерировать визуальные диаграммы из текстовых описаний с использованием синтаксиса разметки Mermaid.
Функции
Преобразует код диаграммы Mermaid в изображения PNG
Поддерживает несколько тем диаграмм (по умолчанию, лесная, темная, нейтральная)
Настраиваемые цвета фона
Использует Puppeteer для высококачественного рендеринга headless-браузера
Реализует протокол MCP для бесшовной интеграции с помощниками на основе искусственного интеллекта.
Гибкие возможности вывода: возврат изображений напрямую или сохранение на диск
Обработка ошибок с подробными сообщениями об ошибках
Related MCP server: mcp-mermaid-validator
Как это работает
Сервер использует Puppeteer для запуска headless-браузера, рендеринга диаграммы Mermaid в SVG и захвата скриншота рендеринговой диаграммы. Процесс включает в себя:
Запуск экземпляра headless-браузера
Создание HTML-шаблона с кодом Mermaid
Загрузка библиотеки Mermaid.js
Рендеринг диаграммы в SVG
Сделать снимок экрана с отрендеренным SVG в формате PNG
Либо вернуть изображение напрямую, либо сохранить его на диске
Строить
Использование
Использовать с настольным компьютером Claude
Использовать с курсором и Cline
Список диаграмм русалок можно найти в ./diagrams , они создаются с помощью агента Cursor с подсказкой: «создать диаграммы русалок и сохранить их в отдельной папке диаграмм, объясняющей, как работает renderMermaidPng».
Бегите с инспектором
Запустите сервер с инспектором для тестирования и отладки:
Сервер запустится и будет прослушивать stdio на предмет сообщений протокола MCP.
Подробнее об инспекторе можно узнать здесь .
Установка через Smithery
Чтобы автоматически установить Mermaid Diagram Generator для Claude Desktop через Smithery :
Среды Docker и Smithery
При запуске в контейнерах Docker (в том числе через Smithery) вам может потребоваться обработка зависимостей Chrome:
Теперь сервер пытается использовать встроенный браузер Puppeteer по умолчанию.
Если вы столкнулись с ошибками, связанными с браузером, у вас есть два варианта:
Вариант 1: Во время сборки образа Docker:
Установите
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=trueпри установке PuppeteerУстановите Chrome/Chromium в свой Docker-контейнер
Установите
PUPPETEER_EXECUTABLE_PATHво время выполнения, чтобы указать на установку Chrome
Вариант 2: использование встроенного Chrome от Puppeteer:
Убедитесь, что ваш Docker-контейнер имеет необходимые зависимости для Chrome
Не нужно устанавливать
PUPPETEER_SKIP_CHROMIUM_DOWNLOADКод будет автоматически использовать встроенный браузер.
Для пользователей Smithery последняя версия должна работать без дополнительной настройки.
API
Сервер предоставляет единственный инструмент:
generate: Преобразует код диаграммы Mermaid в изображение PNGПараметры:
code: Код диаграммы русалки для визуализацииtheme: (необязательно) Тема для диаграммы. Варианты: "default", "forest", "dark", "neutral"backgroundColor: (необязательно) Цвет фона для диаграммы, например, «белый», «прозрачный», «#F0F0F0»name: Имя сгенерированного файла (обязательно, если CONTENT_IMAGE_SUPPORTED=false)folder: абсолютный путь для сохранения изображения (обязательно, если CONTENT_IMAGE_SUPPORTED=false)
Поведение инструмента generate зависит от переменной среды CONTENT_IMAGE_SUPPORTED :
Если
CONTENT_IMAGE_SUPPORTED=true(по умолчанию): инструмент возвращает изображение непосредственно в ответе.Когда
CONTENT_IMAGE_SUPPORTED=false: инструмент сохраняет изображение в указанной папке и возвращает путь к файлу.
Переменные среды
CONTENT_IMAGE_SUPPORTED: управляет тем, будут ли изображения возвращаться непосредственно в ответе или сохраняться на диске.true(по умолчанию): изображения возвращаются непосредственно в ответе.false: Изображения сохраняются на диск, требуя параметрыnameиfolder
Примеры
Базовое использование
С темой и цветом фона
Сохранение на диск (когда CONTENT_IMAGE_SUPPORTED=false)
Часто задаваемые вопросы
Разве Claude Desktop уже не поддерживает русалку через холст?
Да, но он не поддерживает параметры theme и backgroundColor . Плюс, наличие выделенного сервера упрощает создание диаграмм русалок с помощью разных клиентов MCP.
Почему мне нужно указывать CONTENT_IMAGE_SUPPORTED=false при использовании с курсором?
Курсор пока не поддерживает встроенные изображения в ответах.
Издательский
В этом проекте используются действия GitHub для автоматизации процесса публикации в npm.
Метод 1: Использование сценария выпуска (рекомендуется)
Убедитесь, что все ваши изменения зафиксированы и отправлены.
Запустите скрипт релиза либо с определенным номером версии, либо с семантическим приращением версии:
# Using a specific version number npm run release 0.1.4 # Using semantic version increments npm run release patch # Increments the patch version (e.g., 0.1.3 → 0.1.4) npm run release minor # Increments the minor version (e.g., 0.1.3 → 0.2.0) npm run release major # Increments the major version (e.g., 0.1.3 → 1.0.0)Сценарий будет:
Проверить формат версии или семантическое приращение
Проверьте, находитесь ли вы на основной ветке
Обнаружение и предупреждение о несоответствии версий между файлами
Последовательно обновите все ссылки на версии (package.json, package-lock.json и index.ts)
Создайте единый коммит со всеми изменениями версии
Создайте и отправьте тег git
Затем рабочий процесс GitHub автоматически выполнит сборку и опубликует в npm.
Метод 2: Ручной процесс
Обновите свой код и зафиксируйте изменения.
Создайте и отправьте новый тег с номером версии:
git tag v0.1.4 # Use the appropriate version number git push origin v0.1.4Рабочий процесс GitHub автоматически:
Построить проект
Опубликовать в npm с версией из тега
Примечание: Вам необходимо настроить секрет NPM_TOKEN в настройках вашего репозитория GitHub. Для этого:
Сгенерируйте токен доступа npm с разрешениями на публикацию
Перейдите в свой репозиторий GitHub → Настройки → Секреты и переменные → Действия.
Создайте новый секрет репозитория с именем
NPM_TOKEN, используя ваш токен npm в качестве значения.
Значки
Лицензия
Массачусетский технологический институт