LandComp MCP服务器
与LANDCOMP集成的MCP服务器。支持两种工作模式:
- 本地模式(STDIO):用于在本地计算机上使用Cursor
- Docker模式(SSE):在Docker容器中工作,通过Docker网络连接
🚀 快速入门
1.建立依赖关系
cd D:\LandComp\landcomp-mcp
npm install2.项目装配
npm run build3.测试PHP API
node test/test_local_api.js4.启动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=debugDocker模式(.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=infocursor mcp配置
服务器已配置为 c:\Users\Admin\.cursor\mcp.json 如何 landcomp-local 用于本地工作。
🐳 Docker部署
先决条件
- 创建共享Docker网络(如果尚未创建):
docker network create landcomp_network- 在docker-compose.yml中验证主LandComp应用程序是否已连接到此网络:
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/sseMCP服务器将以容器名称可用 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)-最小高度(cm) - max_height (Number)-最大高度(cm)
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预期成果:
- ✅ 健康检查
- ✅ 身份验证
- ✅ 生长条件
- ✅ 增长速度
- ✅ 植物搜索
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系统不可用”
- 验证Bitrix是否已初始化
- 验证路由是否已添加到bundle.php
API密钥无效错误
- 检查数据库中的API密钥
- 确保密钥处于活动状态
API连接失败
- 检查landcomp.local(本地)或landcomp应用程序(在docker中)的可用性
- 验证config.env或.env中的URL是否正确。
- 在Docker模式下,检查两个容器是否连接到同一网络。
Docker:容器无法启动
- 检查日志:
docker-compose logs mcp-server - 确保端口3000不被其他进程占用
- 检查是否已建立网络
landcomp_network:docker network ls
Docker:无法连接到LandComp API
- 确保
LANDCOMP_API_URL指定Docker网络中正确的主机名 - 验证主应用程序是否已运行并可用
- 检查网络连接:
docker network inspect landcomp_network
