@luorivergoddess/mcp-geo
Сервер MCP (Model Context Protocol) для генерации точных геометрических изображений с использованием Asymptote. Этот сервер позволяет моделям ИИ, совместимым с MCP, запрашивать генерацию изображений, предоставляя код Asymptote.
Предпосылки
Перед использованием этого сервера убедитесь, что у вас установлено следующее:
Node.js : рекомендуется версия 16.x или выше. Вы можете загрузить ее с nodejs.org .
Asymptote : Это критическая зависимость. Инструмент командной строки
asyдолжен быть установлен и доступен в PATH вашей системы.Посетите официальный сайт Asymptote для загрузки и получения подробных инструкций по установке.
Распространенные методы установки:
macOS (через Homebrew):
brew install asymptoteDebian/Ubuntu Linux:
sudo apt-get install asymptoteWindows: Часто устанавливается как часть дистрибутивов TeX, таких как MiKTeX или TeX Live. Убедитесь, что каталог Asymptote
binдобавлен в ваш PATH.
Сервер попытается проверить наличие
asy -versionпри запуске и выведет ошибку, если она не будет найдена.
Related MCP server: Stability AI MCP Server
Установка
Чтобы установить этот пакет глобально (если вы собираетесь запустить команду connect напрямую) или как зависимость в другом проекте:
Если вы клонировали репозиторий и хотите запустить его локально для разработки:
Клонируйте репозиторий.
Установка зависимостей:
npm installСоберите проект:
npm run build
Использование
Запуск сервера
После установки пакета (например, глобально или локально) вы можете запустить сервер MCP с помощью команды connect предоставленной этим пакетом. Эта команда предназначена для вызова клиентом MCP.
Или, если вы клонировали репозиторий и собрали его:
Сервер запустится и будет прослушивать сообщения JSON-RPC на stdin/stdout, используя @modelcontextprotocol/sdk .
Интеграция клиента MCP
Настройте MCP-совместимый клиент (например, VS Code с Copilot Agent Mode, Claude Desktop) для использования этого сервера. Обычно это включает в себя указание клиенту, как запустить сервер, что будет командой npx @luorivergoddess/mcp-geo connect .
Доступный инструмент: renderGeometricImage
Сервер предоставляет один основной инструмент:
Имя:
renderGeometricImageОписание: Визуализирует изображение из кода Asymptote.
Схема ввода:
{ "type": "object", "properties": { "asyCode": { "type": "string", "description": "A string containing complete and valid Asymptote code to be compiled. The server executes this code directly. Ensure necessary `import` statements (e.g., `import graph;`) and settings (e.g., `unitsize(1cm);`) are included within this code block if needed." }, "outputParams": { "type": "object", "description": "Optional parameters to control the output image.", "properties": { "format": { "type": "string", "enum": ["svg", "png"], "description": "The desired output image format. \"svg\" for scalable vector graphics (recommended for diagrams and plots), \"png\" for raster graphics. Defaults to \"svg\" if not specified." }, "renderLevel": { "type": "number", "description": "For PNG output only. Specifies the rendering quality (supersampling level for antialiasing). Higher values (e.g., 4 or 8) produce smoother images but take longer to render and result in larger files. Asymptote default is 2. This server defaults to 4 if not specified and format is \"png\". Ignored for SVG output." } } } }, "required": ["asyCode"] }Вывод: инструмент возвращает
CallToolResult, содержащий массив частей контента.В случае успеха он включает часть
ImageContentсо следующими элементами:type: "image"mimeType: "image/svg+xml"или"image/png"data: "<base64_encoded_image_data>"
Он также может включать часть
TextContentс журналами из Asymptote.Если возникает ошибка, выдается
McpError.
Пример вызова
Примечания по совместимости клиента:
Некоторые клиенты MCP могут иметь ограничения по поддерживаемым типам MIME изображений.
Например, если вы используете этот сервер с клиентом, который не поддерживает
image/svg+xml(например, определенные версии или конфигурации "Cherry Studio", как сообщалось), убедитесь, что вы запрашиваете форматpng, включив"outputParams": { "format": "png" }в аргументы вызова инструмента. Сервер по умолчанию используетsvg, если формат не указан.
Автор
luorivergoddess
Лицензия
МСК