Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ILP Drone Delivery MCP ServerPlan a 5kg delivery to Edinburgh Castle with cooling requirements"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ILP Drone Delivery MCP Server
Model Context Protocol server enabling Large Language Models to interact with the ILP Drone Delivery System through natural language
Overview
This MCP server allows AI assistants like Claude to plan drone deliveries, check availability, and visualize routes using natural language queries instead of manual API calls.
Example usage:
Features
Available Tools
list_available_drones - Get all drones with capabilities
get_drone_details - Get specific drone information
plan_delivery - Plan a single delivery with cost/time estimates
check_drone_availability - Check which drones can handle requirements
get_delivery_geojson - Generate GeoJSON for map visualization
plan_multiple_deliveries - Plan multi-drone delivery routes
Prerequisites
Node.js 18+ installed
ILP CW2 Service running on http://localhost:8080
Claude Desktop (for LLM integration) OR manual testing
π§ Installation
Step 1: Set Up Project
Step 2: Start Your ILP Service
Verify it's running: curl http://localhost:8080/api/v1/dronesWithCooling/false
Step 3: Test the MCP Server
Expected output:
π€ Claude Desktop Integration
Configuration
Edit your Claude Desktop config file:
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this configuration:
π¬ Example Queries
Try these in Claude Desktop:
Basic Queries
Planning Deliveries
Checking Availability
Visualization
Multi-Delivery
π§ͺ Manual Testing (Without Claude Desktop)
You can test the MCP server manually using the test script:
Or test individual API calls:
ποΈ Architecture
π Tool Descriptions
list_available_drones
Purpose: Get all drones with capabilities
Parameters:
hasCooling(optional): Filter by cooling capability
Returns: List of drones with capacity, features, costs
plan_delivery
Purpose: Plan a complete delivery route
Parameters:
deliveryLng,deliveryLat: Delivery locationcapacity: Required capacity in kgheating,cooling(optional): Temperature requirementsdate(optional): Delivery date
Returns: Cost, moves, drone assignment, route summary
check_drone_availability
Purpose: Find drones matching specific requirements
Parameters:
capacity: Required capacityheating,cooling(optional): Temperature needsdate(optional): Date to check
Returns: List of available drone IDs
get_delivery_geojson
Purpose: Generate map visualization data
Parameters: Delivery location and requirements
Returns: GeoJSON with flight paths
π€ Author
RheaBose University of Edinburgh - Informatics Large Practical