Skip to main content
Glama
RheaBose

ILP Drone Delivery MCP Server

by RheaBose

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:

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..."

Related MCP server: fleetsync-mcp

Features

Available Tools

  1. list_available_drones - Get all drones with capabilities

  2. get_drone_details - Get specific drone information

  3. plan_delivery - Plan a single delivery with cost/time estimates

  4. check_drone_availability - Check which drones can handle requirements

  5. get_delivery_geojson - Generate GeoJSON for map visualization

  6. 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

cd ilp-mcp-server

# Install dependencies
npm install

# Make server executable
chmod +x server.js

# Link globally (for Claude Desktop)
npm link

Step 2: Start Your ILP Service

cd ILPCW2
java -jar target/*.jar app.jar

Verify it's running: curl http://localhost:8080/api/v1/dronesWithCooling/false

Step 3: Test the MCP Server

cd ilp-mcp-server
npm test

Expected output:

πŸ§ͺ 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 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:

{
  "mcpServers": {
    "ilp-drone": {
      "command": "node",
      "args": ["/Users/rheabose/ilp-mcp-server/server.js"]
    }
  }
}

πŸ’¬ Example Queries

Try these in Claude Desktop:

Basic Queries

"What drones are available?"
"Show me drones with cooling capability"
"Get details for drone 3"

Planning Deliveries

"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?"

Checking Availability

"Which drones can handle a 6kg delivery with heating?"
"Check if any drones are available for a 3kg cooled delivery"

Visualization

"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"

Multi-Delivery

"Plan deliveries to these locations: 
 1. (-3.188, 55.945) - 4kg
 2. (-3.192, 55.943) - 3kg
 3. (-3.185, 55.946) - 5kg"

πŸ§ͺ Manual Testing (Without Claude Desktop)

You can test the MCP server manually using the test script:

npm test

Or test individual API calls:

# 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}}]'

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Claude Desktop β”‚
β”‚   (LLM Client)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ MCP Protocol (stdio)
         β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   MCP Server    β”‚
β”‚   (server.js)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ HTTP REST API
         β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  ILP CW2 API    β”‚
β”‚  (Spring Boot)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ 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 location

    • capacity: Required capacity in kg

    • heating, cooling (optional): Temperature requirements

    • date (optional): Delivery date

  • Returns: Cost, moves, drone assignment, route summary

check_drone_availability

  • Purpose: Find drones matching specific requirements

  • Parameters:

    • capacity: Required capacity

    • heating, cooling (optional): Temperature needs

    • date (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

Available Tools

6 tools
check_drone_availabilityC

Check which drones are available to handle a delivery with specific requirements

ParametersJSON Schema
NameRequiredDescriptionDefault
capacityYesRequired capacity in kg
heatingNoRequires heating capability
coolingNoRequires cooling capability
dateNoDate in YYYY-MM-DD format

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read-only query but doesn't disclose response format, pagination, error conditions, or performance characteristics. For a tool with 4 parameters and no output schema, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every element earns its place, making it appropriately concise for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'available' means operationally, how results are returned, or error handling. For a query tool with multiple filtering parameters, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional parameter semantics beyond implying filtering by requirements, which is already covered by the parameter descriptions in the schema. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as checking drone availability for deliveries with specific requirements, using a specific verb ('check') and resource ('drones'). It distinguishes from siblings like 'list_available_drones' by emphasizing requirement-based filtering, but could be more explicit about the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'list_available_drones' or 'plan_delivery'. It mentions 'specific requirements' but doesn't clarify prerequisites, exclusions, or comparative contexts with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_delivery_geojsonB

Get the delivery path in GeoJSON format for map visualization. Can be used with geojson.io

ParametersJSON Schema
NameRequiredDescriptionDefault
deliveryLngYesDelivery longitude
deliveryLatYesDelivery latitude
capacityYesCapacity in kg
heatingNoRequires heating
coolingNoRequires cooling

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves a delivery path in GeoJSON format but doesn't disclose key behavioral traits: whether this is a read-only operation (implied by 'Get' but not confirmed), if it requires authentication, rate limits, error conditions, or what happens with invalid inputs. The mention of geojson.io adds minor context for visualization, but overall, the description lacks sufficient detail for a mutation-free tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: it starts with the core purpose ('Get the delivery path in GeoJSON format for map visualization') and adds a useful tip ('Can be used with geojson.io') in a second sentence. Every sentence earns its place by providing value without redundancy, making it efficient and easy to parse for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description is partially complete. It covers the purpose and output format but lacks details on behavioral aspects (e.g., safety, errors) and doesn't explain the return values beyond 'GeoJSON format.' Without an output schema, the description should ideally hint at the response structure, but it doesn't, leaving gaps in understanding how to interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters (deliveryLng, deliveryLat, capacity, heating, cooling) with clear descriptions. The description adds no additional parameter semantics beyond what the schema provides, such as explaining how these inputs affect the GeoJSON output or their interrelationships. With high schema coverage, the baseline is 3, as the description doesn't compensate but also doesn't detract from the schema's documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the delivery path in GeoJSON format for map visualization.' It specifies the verb ('Get'), resource ('delivery path'), and output format ('GeoJSON format'), distinguishing it from siblings like 'check_drone_availability' or 'plan_delivery' that focus on availability or planning rather than path retrieval. However, it doesn't explicitly differentiate from 'get_drone_details' or 'list_available_drones' in terms of path vs. drone data, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context with 'for map visualization' and 'Can be used with geojson.io,' suggesting it's for visualizing delivery paths on maps. However, it lacks explicit guidance on when to use this tool versus alternatives like 'plan_delivery' (which might also involve paths) or prerequisites such as needing delivery coordinates. No when-not-to-use or clear alternatives are mentioned, leaving usage somewhat inferred rather than explicitly defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_drone_detailsB

Get detailed information about a specific drone by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
droneIdYesThe drone ID to get details for

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It states this is a read operation ('Get'), but doesn't mention authentication requirements, rate limits, error conditions, or what 'detailed information' includes. This leaves significant gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with one parameter and no output schema, the description is minimally adequate. However, without annotations or output schema, it should ideally provide more context about what information is returned or any behavioral constraints, leaving room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already documents the single parameter 'droneId' adequately. The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('detailed information about a specific drone'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_available_drones' or 'check_drone_availability', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'list_available_drones' and 'check_drone_availability' available, there's no indication whether this tool is for retrieving metadata, status, or other details, or when it should be preferred over other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_available_dronesB

Get a list of all available drones with their capabilities (capacity, heating, cooling, cost, max moves)

ParametersJSON Schema
NameRequiredDescriptionDefault
hasCoolingNoFilter drones by cooling capability (true = only cooling drones, false = all drones)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the output ('list of all available drones with their capabilities') but does not specify whether this is a read-only operation, if it requires authentication, its rate limits, or pagination behavior. For a tool with no annotations, this leaves significant behavioral gaps, though it at least clarifies the return content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose and lists the returned capabilities in parentheses. There is no wasted verbiage or redundancy, making it highly concise and well-structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one optional parameter, no output schema, no annotations), the description is minimally adequate. It explains what the tool returns but lacks details on behavioral traits like safety or performance. Without annotations or an output schema, the description should ideally provide more context on the operation's nature, but it meets the basic requirement for a simple listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter ('hasCooling') with 100% schema description coverage, fully documenting its purpose and type. The description does not add any parameter-specific information beyond what the schema provides, such as default behavior or interactions with other parameters. With high schema coverage, the baseline score of 3 is appropriate as the description does not compensate but also does not detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a list of all available drones with their capabilities (capacity, heating, cooling, cost, max moves)'. It specifies the verb ('Get a list') and resource ('available drones'), and lists the returned capability fields. However, it does not explicitly differentiate from sibling tools like 'check_drone_availability' or 'get_drone_details', which might have overlapping or related functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'check_drone_availability' (which might check availability for specific drones) or 'get_drone_details' (which might retrieve details for a single drone), leaving the agent to infer usage context. There are no explicit when/when-not statements or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_deliveryC

Plan a delivery route including cost estimate, number of moves, and drone assignment. Returns complete path planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
deliveryLngYesDelivery location longitude (e.g., -3.188 for Edinburgh)
deliveryLatYesDelivery location latitude (e.g., 55.945 for Edinburgh)
capacityYesRequired cargo capacity in kilograms (e.g., 4.5)
heatingNoWhether the cargo requires heating
coolingNoWhether the cargo requires cooling
dateNoDelivery date in YYYY-MM-DD format (defaults to today)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions outputs like cost estimate and drone assignment, but doesn't cover critical aspects such as whether this is a read-only simulation or commits to actual delivery planning, potential rate limits, authentication requirements, or error conditions. For a planning tool with 6 parameters and no annotations, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose and key outputs. Every element earns its place by specifying what the tool does and what it returns. It could be slightly more structured by separating purpose from outputs, but it's appropriately sized with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, no output schema, no annotations), the description is incomplete. It doesn't address behavioral traits, usage context, or output details beyond a high-level summary. For a planning tool that likely involves calculations and resource assignment, more context on constraints, assumptions, or result format would be needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing clear documentation for all 6 parameters. The description adds no parameter-specific information beyond what's in the schema. It mentions general outputs but doesn't explain how parameters like 'heating' or 'cooling' affect the plan. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('plan a delivery route') and outputs ('cost estimate, number of moves, drone assignment, complete path planning'). It distinguishes from siblings like 'check_drone_availability' or 'get_delivery_geojson' by emphasizing comprehensive planning rather than checking or retrieving specific data. However, it doesn't explicitly contrast with 'plan_multiple_deliveries' beyond the singular vs. plural implication.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'plan_multiple_deliveries' for single deliveries, or prerequisites like needing drone availability checks first. Usage is implied by the name and purpose but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_multiple_deliveriesC

Plan routes for multiple deliveries simultaneously with multi-drone optimization

ParametersJSON Schema
NameRequiredDescriptionDefault
deliveriesYesArray of delivery objects

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'optimization' but doesn't describe what that entails (e.g., minimizing distance, time, cost), whether it's a read-only planning operation or executes deliveries, what permissions are needed, or any rate limits. For a complex multi-drone routing tool with zero annotation coverage, this is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. Every word earns its placeβ€”'plan routes', 'multiple deliveries', 'simultaneously', 'multi-drone optimization'β€”with zero waste or redundancy. It's appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multi-drone optimization), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., routes, assignments, cost estimates), behavioral traits, or usage constraints. For a planning tool with significant operational implications, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single 'deliveries' parameter and its nested structure. The description adds no additional parameter semantics beyond what's in the schema (e.g., explaining what 'capacity', 'heating', or 'cooling' mean in context). Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('plan routes') and resource ('multiple deliveries'), and specifies the optimization approach ('multi-drone optimization'). However, it doesn't explicitly differentiate from its sibling 'plan_delivery' tool, which appears to be a single-delivery version. The purpose is specific but lacks sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'plan_delivery' or other drone-related tools. It mentions 'multi-drive optimization' but doesn't specify prerequisites, constraints, or when this approach is preferred over single-drone planning. No explicit when/when-not statements are present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv1.0.0
    • First observedcheck_drone_availability
    • First observedget_delivery_geojson
    • First observedget_drone_details
    • First observedlist_available_drones
    • First observedplan_delivery
    • First observedplan_multiple_deliveries

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a distinct and clear purpose: checking availability, getting geospatial data, retrieving drone details, listing drones, planning a single delivery, and planning multiple deliveries. There is no overlap or ambiguity between tools, making it easy for an agent to select the correct one.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., check_drone_availability, get_delivery_geojson). The naming is uniform, using snake_case throughout, which enhances readability and predictability for agents.

Tool Count5/5

With 6 tools, the server is well-scoped for drone delivery operations. Each tool serves a specific function in the delivery lifecycle, from availability checks to route planning, without being overly sparse or bloated.

Completeness4/5

The tool set covers core drone delivery workflows well, including availability, details, and planning. However, there are minor gaps, such as tools for managing deliveries (e.g., canceling or updating deliveries) or handling drone status changes, which agents might need to work around.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RheaBose/ilp-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server