landcomp-mcp

blockrunner/landcomp-mcp

3.2

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.

Tools
5
Resources
0
Prompts
0

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

Предварительные требования

  1. Создайте общую Docker сеть (если еще не создана):
docker network create landcomp_network
  1. Убедитесь, что основное приложение LandComp подключено к этой сети в своем docker-compose.yml:
networks:
  landcomp_network:
    external: true

Развертывание MCP сервера

  1. Создайте .env файл на основе примера:
cp .env.example .env
# Отредактируйте .env и укажите правильные значения
  1. Соберите и запустите контейнер:
docker-compose up -d --build
  1. Проверьте статус:
docker-compose ps
docker-compose logs -f mcp-server
  1. Проверьте 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!

Как это работает:

  1. При вызове visualize_composition сервер получает пути к изображениям трех сезонов
  2. Изображения автоматически загружаются с сервера LandComp
  3. Конвертируются в base64 формат
  4. Возвращаются в формате MCP SDK для отображения в Cursor
  5. Все три изображения (весна, лето, осень) отображаются встроенными в ответ

Пример использования:

Покажи визуализацию композиции с кодом 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

Проверка подключения

  1. Убедитесь, что landcomp.local доступен
  2. Проверьте API ключ в БД
  3. Запустите тестовый скрипт

🚨 Устранение неполадок

Ошибка "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