ILP无人机交付MCP服务器
模型上下文协议服务器使大型语言模型能够通过自然语言与ILP无人机交付系统进行交互
概述
该MCP服务器允许Claude等人工智能助手使用自然语言查询而不是手动API调用来规划无人机交付、检查可用性和可视化路线。
示例用法:
User: "Can you plan a delivery to Edinburgh Castle with 5kg capacity?"
Claude: [Uses MCP tools] "I can send Drone 3, estimated cost $12.50, 45 moves..."特性
可用工具
- list_available_drones -获取所有具备相关功能的无人机
- get_drone-details -获取特定无人机信息
- 飞机交付 -根据成本/时间估算计划单次交付
- check_drone_availability -检查哪些无人机可以满足要求
- get_delivery_geojson -生成GeoJSON用于地图可视化
- 计划_多次交付 -规划多无人机配送路线
先决条件
- Node.js 18+已安装
- ILP CW2服务 运行于http://localhost:8080
- 克劳德桌面版 (用于LLM集成)或手动测试
🔧 安装
步骤1:设置项目
cd ilp-mcp-server
# Install dependencies
npm install
# Make server executable
chmod +x server.js
# Link globally (for Claude Desktop)
npm link步骤2:启动ILP服务
cd ILPCW2
java -jar target/*.jar app.jar验证它是否正在运行: curl http://localhost:8080/api/v1/dronesWithCooling/false
步骤3:测试MCP服务器
cd ilp-mcp-server
npm test预期产量:
🧪 Testing ILP MCP Server
1️⃣ Testing API connection...
✅ Connected! Found 8 drones
2️⃣ Testing list_available_drones...
✅ Success! Retrieved 8 drones
3️⃣ Testing plan_delivery...
✅ Success! Planned delivery
Cost: $11.06
Moves: 26
Drone: 1
4️⃣ Testing get_delivery_geojson...
✅ Success! Generated GeoJSON
Type: FeatureCollection
Features: 2
✅ All tests passed! (4/4)🤖 Claude桌面集成
配置
编辑您的Claude Desktop配置文件:
雨衣: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
添加此配置:
{
"mcpServers": {
"ilp-drone": {
"command": "node",
"args": ["/Users/rheabose/ilp-mcp-server/server.js"]
}
}
}💬 查询示例
在Claude Desktop中尝试以下操作:
基本查询
"What drones are available?"
"Show me drones with cooling capability"
"Get details for drone 3"规划交付
"Plan a delivery to coordinates (-3.188, 55.945) with 4kg capacity"
"I need to deliver 5kg with heating to Edinburgh Castle"
"Can you plan a delivery to (lng: -3.19, lat: 55.94) requiring cooling?"检查可用性
"Which drones can handle a 6kg delivery with heating?"
"Check if any drones are available for a 3kg cooled delivery"可视化
"Generate a GeoJSON path for a delivery to (-3.188, 55.945) with 4kg capacity"
"Show me the route visualization for a delivery to Edinburgh"多交付
"Plan deliveries to these locations:
1. (-3.188, 55.945) - 4kg
2. (-3.192, 55.943) - 3kg
3. (-3.185, 55.946) - 5kg"🧪 手动测试(无Claude桌面版)
您可以使用测试脚本手动测试MCP服务器:
npm test或者测试单个API调用:
# Test list drones
curl http://localhost:8080/api/v1/dronesWithCooling/false
# Test plan delivery
curl -X POST http://localhost:8080/api/v1/calcDeliveryPath \
-H "Content-Type: application/json" \
-d '[{"id":999,"requirements":{"capacity":4.0},"delivery":{"lng":-3.188,"lat":55.945}}]'🏗️ 建筑
┌─────────────────┐
│ Claude Desktop │
│ (LLM Client) │
└────────┬────────┘
│ MCP Protocol (stdio)
│
┌────────▼────────┐
│ MCP Server │
│ (server.js) │
└────────┬────────┘
│ HTTP REST API
│
┌────────▼────────┐
│ ILP CW2 API │
│ (Spring Boot) │
└─────────────────┘📝 工具说明
list_available_drones
- 目的: 获取所有具备相关功能的无人机
- 参数:
- hasCooling (可选):按冷却能力过滤
- 退货: 无人机的容量、功能和成本列表
飞机交付
- 目的: 规划完整的交付路线
- 参数:
- deliveryLng, deliveryLat:交货地点 - capacity:所需容量(kg) - heating, cooling (可选):温度要求 - date (可选):交货日期
- 退货: 成本、移动、无人机分配、路线摘要
check_drone_availability
- 目的: 查找符合特定要求的无人机
- 参数:
- capacity:所需容量 - heating, cooling (可选):温度需求 - date (可选):检查日期
- 退货: 可用无人机ID列表
get_delivery_geojson
- 目的: 生成地图可视化数据
- 参数: 交货地点和要求
- 退货: 带有飞行路径的GeoJSON
👤 作者
大黄糖 爱丁堡大学-信息学大实践
