blockrunner/landcomp-mcp
If you are the rightful owner of landcomp-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
LandComp MCP Server is designed for integration with LandComp, supporting both local and Docker deployment modes.
LandComp MCP Server
MCP сервер для интеграции с LandComp. Поддерживает два режима работы:
- Локальный режим (stdio): для работы через Cursor на локальной машине
- Docker режим (SSE): для работы в Docker контейнере с подключением через docker сеть
🚀 Быстрый старт
1. Установка зависимостей
cd D:\LandComp\landcomp-mcp
npm install
2. Сборка проекта
npm run build
3. Тестирование PHP API
node test/test_local_api.js
4. Запуск MCP сервера
npm run dev
🔧 Конфигурация
Переменные окружения
Локальный режим (config.env)
MCP_TRANSPORT=stdio
LANDCOMP_API_URL=http://landcomp.local/api/mcp
MCP_API_KEY=test-local-api-key-12345
MCP_SERVER_PORT=3000
LOG_LEVEL=debug
Docker режим (.env)
MCP_TRANSPORT=sse
LANDCOMP_API_URL=http://landcomp-app:80/api/mcp
MCP_API_KEY=your-api-key-here
MCP_SERVER_PORT=3000
LOG_LEVEL=info
Cursor MCP конфигурация
Сервер уже настроен в c:\Users\Admin\.cursor\mcp.json как landcomp-local для локальной работы.
🐳 Docker Deployment
Предварительные требования
- Создайте общую Docker сеть (если еще не создана):
docker network create landcomp_network
- Убедитесь, что основное приложение LandComp подключено к этой сети в своем docker-compose.yml:
networks:
landcomp_network:
external: true
Развертывание MCP сервера
- Создайте
.envфайл на основе примера:
cp .env.example .env
# Отредактируйте .env и укажите правильные значения
- Соберите и запустите контейнер:
docker-compose up -d --build
- Проверьте статус:
docker-compose ps
docker-compose logs -f mcp-server
- Проверьте health check:
curl http://localhost:3000/health
Подключение приложения к MCP серверу
В приложении LandComp используйте URL для подключения к MCP серверу:
http://landcomp-mcp:3000/sse
MCP сервер будет доступен по имени контейнера landcomp-mcp внутри docker сети.
Остановка и удаление
docker-compose down
Для полного удаления с данными:
docker-compose down -v
💻 Локальная разработка
Для локальной разработки и тестирования через Cursor используйте режим stdio:
🛠 Доступные инструменты
get_growth_conditions
Получить список возможных условий роста для растений
- Входные параметры: нет
- Описание: Возвращает варианты условий роста (солнечно/сухо, полутень/влажно и т.д.)
search_plants
Поиск растений в каталоге LandComp
- Входные параметры:
query(string) - название растения для поискаgrowth_conditions(string) - условия роста (XML_ID)growth_speed(string) - скорость ростаmin_height(number) - минимальная высота в смmax_height(number) - максимальная высота в см
create_composition
Создание новой ландшафтной композиции
- Входные параметры:
payload(object) - полный JSON композиции в формате фронтенда
visualize_composition
Получение визуализации композиции (три сезона) с отображением изображений в интерфейсе Cursor
- Входные параметры:
composition_id(string|number) - ID композиции (альтернатива коду)code(string) - символьный код композицииisChanged(boolean) - установите true для регенерации изображенийregeneratePayload(object) - дополнительные данные для регенерации
- Особенность: Изображения автоматически загружаются и отображаются в интерфейсе Cursor как встроенные изображения для всех трех сезонов (весна, лето, осень)
list_compositions
Получение списка композиций пользователя
- Входные параметры:
page(number) - номер страницы (по умолчанию 1)limit(number) - количество элементов на странице (по умолчанию 20)
🧪 Тестирование
1. Проверка PHP API
Запустите тестовый скрипт:
node test/test_local_api.js
Ожидаемый результат:
- ✅ Health check
- ✅ Auth verification
- ✅ Growth conditions
- ✅ Growth speeds
- ✅ Plant search
2. Тестирование в Cursor
После перезапуска Cursor используйте команды:
- "Получи список условий роста для растений"
- "Найди растения для солнечного сухого места высотой 1-2 метра"
- "Покажи визуализацию композиции с кодом composition-xxx" (изображения отобразятся в интерфейсе!)
📁 Структура проекта
D:\LandComp\landcomp-mcp\
├── src/
│ ├── index.ts # Главный файл MCP сервера (поддержка stdio и SSE)
│ ├── api/
│ │ └── client.ts # HTTP клиент для landcomp.local
│ ├── config/
│ │ └── config.ts # Конфигурация
│ └── tools/
│ ├── index.ts # Регистрация инструментов
│ └── catalog.ts # Инструменты каталога
├── dist/ # Скомпилированный JavaScript
├── test/
│ └── test_local_api.js # Тестовый скрипт PHP API
├── Dockerfile # Docker образ для деплоя
├── docker-compose.yml # Docker Compose конфигурация
├── .dockerignore # Исключения для Docker build
├── package.json
├── tsconfig.json
├── config.env # Локальная конфигурация
├── .env.example # Пример конфигурации для Docker
└── README.md
🖼️ Отображение изображений в Cursor
Инструмент visualize_composition теперь автоматически загружает и отображает изображения композиций прямо в интерфейсе Cursor!
Как это работает:
- При вызове
visualize_compositionсервер получает пути к изображениям трех сезонов - Изображения автоматически загружаются с сервера LandComp
- Конвертируются в base64 формат
- Возвращаются в формате MCP SDK для отображения в Cursor
- Все три изображения (весна, лето, осень) отображаются встроенными в ответ
Пример использования:
Покажи визуализацию композиции с кодом composition-a1b2c3d4
Изображения будут автоматически загружены и отображены в интерфейсе Cursor!
🔍 Отладка
Логи MCP сервера
Логи выводятся в stderr и видны в Cursor:
[API] GET /catalog/growth-conditions/
[API] ✅ 200 /catalog/growth-conditions/
[Tools] Calling get_growth_conditions with args: {}
[API] Loading image: http://landcomp.local/upload/compositions/...
[API] ✅ Image loaded: ... (image/jpeg, 12345 bytes base64)
[Tools] ✅ Added Весна image to response
Проверка подключения
- Убедитесь, что landcomp.local доступен
- Проверьте API ключ в БД
- Запустите тестовый скрипт
🚨 Устранение неполадок
Ошибка "TAO system not available"
- Проверьте, что Bitrix инициализирован
- Убедитесь, что маршруты добавлены в Bundle.php
Ошибка "API ключ не валиден"
- Проверьте API ключ в БД
- Убедитесь, что ключ активен
Ошибка подключения к API
- Проверьте доступность landcomp.local (локально) или landcomp-app (в Docker)
- Убедитесь в правильности URL в config.env или .env
- В Docker режиме проверьте, что оба контейнера подключены к одной сети
Docker: контейнер не запускается
- Проверьте логи:
docker-compose logs mcp-server - Убедитесь, что порт 3000 не занят другим процессом
- Проверьте, что создана сеть
landcomp_network:docker network ls
Docker: не может подключиться к LandComp API
- Убедитесь, что
LANDCOMP_API_URLуказывает на правильный hostname внутри docker сети - Проверьте, что основное приложение запущено и доступно
- Проверьте подключение к сети:
docker network inspect landcomp_network