ILP Drone Delivery MCP Server
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:
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
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
cd ilp-mcp-server
# Install dependencies
npm install
# Make server executable
chmod +x server.js
# Link globally (for Claude Desktop)
npm linkStep 2: Start Your ILP Service
cd ILPCW2
java -jar target/*.jar app.jarVerify it's running: curl http://localhost:8080/api/v1/dronesWithCooling/false
Step 3: Test the MCP Server
cd ilp-mcp-server
npm testExpected 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 testOr 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 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
Available Tools
6 toolscheck_drone_availabilityC
Check which drones are available to handle a delivery with specific requirements
| Name | Required | Description | Default |
|---|---|---|---|
| capacity | Yes | Required capacity in kg | |
| heating | No | Requires heating capability | |
| cooling | No | Requires cooling capability | |
| date | No | Date in YYYY-MM-DD format |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| deliveryLng | Yes | Delivery longitude | |
| deliveryLat | Yes | Delivery latitude | |
| capacity | Yes | Capacity in kg | |
| heating | No | Requires heating | |
| cooling | No | Requires cooling |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| droneId | Yes | The drone ID to get details for |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| hasCooling | No | Filter drones by cooling capability (true = only cooling drones, false = all drones) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| deliveryLng | Yes | Delivery location longitude (e.g., -3.188 for Edinburgh) | |
| deliveryLat | Yes | Delivery location latitude (e.g., 55.945 for Edinburgh) | |
| capacity | Yes | Required cargo capacity in kilograms (e.g., 4.5) | |
| heating | No | Whether the cargo requires heating | |
| cooling | No | Whether the cargo requires cooling | |
| date | No | Delivery date in YYYY-MM-DD format (defaults to today) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| deliveries | Yes | Array of delivery objects |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v1.0.0- First observed
check_drone_availability - First observed
get_delivery_geojson - First observed
get_drone_details - First observed
list_available_drones - First observed
plan_delivery - First observed
plan_multiple_deliveries
TDQS
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.
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.
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.
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
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
Furgonetka MCP Server is an extension for LLMs (such as Claude) that integrates AI assistants with Poland's most popular courier brokerage platform. The server enables models to interact directly with services from various couriers (including InPost, DPD, DHL, UPS, and Poczta Polska) through a single, unified interface. With this integration, your AI stops just "writing about logistics" and starts actually managing it.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
- mcpOAuthcom.crisphive
Field operations on a deterministic solver β run jobs, crews & fleet from Claude or ChatGPT.
13 The Ferryhopper MCP server is a connector for LLMs and AI Agents in maritime travel that exposes ferry routes, schedules, and booking options. It enables AI assistants to search ports and connections across 33 countries and 190+ ferry operators, provide real-time ferry itineraries with indicative prices, and assist users with planning island-hopping or multi-leg journeys by processing natural language queries about ferry times, passenger counts, and travel durations.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage global shipping operations, including rate comparison, shipment creation, label purchasing, tracking, pickup scheduling, address validation, billing, and analytics, via natural language.17MIT- FlicenseAqualityDmaintenanceEnables AI agents to query orders, manage routes, track drivers, and analyze delivery performance on the FleetSync last-mile delivery platform through natural language.18-
- FlicenseAqualityCmaintenanceEnables LLM clients to access scheduling data, KPIs, routes, and trigger optimization algorithms via MCP.9-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with SmartRoutes route optimization and dispatch tools, allowing users to manage orders, vehicles, and plans via natural language.MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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