Koskamo

Delopt MCP

An AI dispatch server for food and local delivery that assigns orders to drivers, sequences stops, and times departures to optimize routes and reduce delivery costs.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Delopt MCP logo, by TransoptVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Transopt
MCP endpoint (Streamable HTTP)
https://api.delopt.transopt.io/mcp/demo
Vendor documentation

What you can do with it

  • Assign orders to available drivers
  • Sequence stops for optimal routes
  • Calculate realistic arrival times
  • Prioritize delayed or urgent orders

Source and maintenance

Vendor evidenceRegistry 1.0.5

Protocol and capabilities

Server
delopt 4.36.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
3 advertised
Resource templates
0 advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Delopt plans last-mile delivery dispatch: given a depot, vehicles (drivers) and orders, it decides which vehicle takes which orders, in what sequence, and when each vehicle should leave, minimising customer waiting time and keeping late orders few. Far orders get a little more time than their wait target (distance grace), and orders marked with a freshness class (hot meals, iced coffee, ...) get shorter rides. Use plan_deliveries to plan everything currently pending (which driver takes which orders and when), and plan_vehicle_departure to sequence the orders one driver is leaving with right now. Orders and the depot can be given as street addresses (geocoded server-side) or as lat/lon. Times must be ISO 8601 with a timezone offset. get_account_status shows the plan, its limits, today's remaining address lookups and the free trial; call it when a plan is refused for a limit or the user asks about their plan. request_more_vehicles asks the Delopt team for a plan beyond 8 vehicles.

Tools

5 advertised

plan_deliveries — Plan fleet deliveries
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Plan which vehicle delivers which orders, in what order, and when each vehicle leaves the depot, minimising customer waiting time. Built for live dispatch through a busy shift, where orders keep arriving and each driver goes out many times. Call it again whenever new orders come in or a driver returns, with every order not yet sent out. Dispatch only each vehicle's first run: later runs are a look-ahead the next call revises. Every order is assigned, so the vehicles' combined capacity (times max_deliveries_per_vehicle) must cover all orders. Returns per-vehicle stop lists with ETAs and each order's wait versus its target, plus headline KPIs. The plan is a recommendation: nothing is stored or sent to drivers. The plan minimises how long customers wait, with an extra cost per minute an order is late. Far orders get a little more time than their wait target (distance_grace_minutes in the result). Set freshness to the user's kind of goods (hot meals, iced coffee, ...) to keep sensitive orders' rides short. The defaults suit same-day food delivery.

plan_deliveries input schema
{
  "type": "object",
  "$defs": {
    "Place": {
      "type": "object",
      "title": "Place",
      "properties": {
        "lat": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 90,
              "minimum": -90,
              "description": "Latitude in decimal degrees"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lat",
          "default": null
        },
        "lon": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 180,
              "minimum": -180,
              "description": "Longitude in decimal degrees"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lon",
          "default": null
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Address",
          "default": null,
          "description": "Street address, geocoded server-side when lat/lon are omitted"
        }
      },
      "description": "A location given either as a street address or as coordinates."
    },
    "Freshness": {
      "enum": [
        "robust",
        "hot",
        "cold",
        "crispy",
        "frozen"
      ],
      "type": "string",
      "title": "Freshness",
      "description": "Goods class for how fast an order loses quality on the road. Resolved\nby optimise() into a degrade start and weight relative to\nfactor_wait_excess - see FRESHNESS_TERMS and LESSONS_LEARNED.md\n(\"Freshness classes\")."
    },
    "OrderSpec": {
      "type": "object",
      "title": "OrderSpec",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "title": "Id",
          "description": "Your reference for the order"
        },
        "lat": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 90,
              "minimum": -90,
              "description": "Latitude in decimal degrees"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lat",
          "default": null
        },
        "lon": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 180,
              "minimum": -180,
              "description": "Longitude in decimal degrees"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lon",
          "default": null
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Address",
          "default": null,
          "description": "Street address, geocoded server-side when lat/lon are omitted"
        },
        "priority": {
          "type": "boolean",
          "title": "Priority",
          "default": false,
          "description": "Send this order out as soon as possible"
        },
        "ready_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ready At",
          "default": null,
          "description": "When the order is ready to leave the depot. Omit to mean now."
        },
        "freshness": {
          "anyOf": [
            {
              "$ref": "#/$defs/Freshness"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "How fast the order loses quality on the road: robust (not modelled), hot (hot meals), cold (iced coffee, cold drinks), crispy (fries, delicate food) or frozen. Omit to use plan_deliveries' freshness."
        },
        "received_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Received At",
          "default": null,
          "description": "When the customer placed the order. Omit to mean now."
        },
        "wait_target_minutes": {
          "type": "number",
          "title": "Wait Target Minutes",
          "default": 15,
          "minimum": 0,
          "description": "Promised wait, from received_at to arrival at the customer"
        }
      }
    },
    "VehicleSpec": {
      "type": "object",
      "title": "VehicleSpec",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "title": "Id",
          "description": "Your reference for the vehicle or driver"
        },
        "capacity": {
          "type": "integer",
          "title": "Capacity",
          "default": 5,
          "description": "How many orders the vehicle can carry at once",
          "exclusiveMinimum": 0
        },
        "available_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Available At",
          "default": null,
          "description": "When the vehicle is back at the depot and free for a new route. Omit if it is available now."
        }
      }
    }
  },
  "title": "plan_deliveriesArguments",
  "required": [
    "vehicles",
    "orders"
  ],
  "properties": {
    "depot": {
      "anyOf": [
        {
          "$ref": "#/$defs/Place"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Where the vehicles start from. Omit only if your API key is bound to a depot, in which case the server supplies it."
    },
    "orders": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/OrderSpec"
      },
      "title": "Orders",
      "minItems": 1
    },
    "vehicles": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/VehicleSpec"
      },
      "title": "Vehicles",
      "minItems": 1
    },
    "freshness": {
      "anyOf": [
        {
          "$ref": "#/$defs/Freshness"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Freshness class for orders that don't give their own, usually the shop's kind of goods: hot (hot meals), cold (iced coffee, cold drinks), crispy (fries, delicate food), frozen, or robust (not modelled, the default). Sensitive orders get shorter rides at a cost of about 0.5-1 minute average wait per protected class."
    },
    "factor_wait": {
      "type": "number",
      "title": "Factor Wait",
      "default": 1,
      "maximum": 100,
      "minimum": 0,
      "description": "Cost per minute of every order's wait, from received_at to arrival (default 1). Only its ratio to factor_wait_excess matters; leave the default unless the user asks for something specific."
    },
    "factor_wait_excess": {
      "type": "number",
      "title": "Factor Wait Excess",
      "default": 10,
      "maximum": 10000,
      "minimum": 0,
      "description": "Lateness weight: extra cost per minute an order is late, beyond its wait_target_minutes plus distance grace (default 10), so 40 minutes late costs far more than 5. Values from 1 to 100 give similar plans: the default keeps the late tail down without raising the average wait. Change it only if the user asks to trade one for the other."
    },
    "optimization_seconds": {
      "type": "integer",
      "title": "Optimization Seconds",
      "default": 5,
      "maximum": 15,
      "minimum": 1,
      "description": "Solver time budget in seconds; more can give slightly better plans. Below 5 the plan is returned with a warning, as priority orders may not be sent out first."
    },
    "max_deliveries_per_vehicle": {
      "type": "integer",
      "title": "Max Deliveries Per Vehicle",
      "default": 2,
      "maximum": 2,
      "minimum": 1,
      "description": "How many consecutive delivery runs to plan per vehicle. Only the first run of each vehicle needs dispatching now: plan again when a vehicle returns."
    }
  }
}
plan_deliveries output schema
{
  "type": "object",
  "$defs": {
    "StopSummary": {
      "type": "object",
      "title": "StopSummary",
      "required": [
        "order_id",
        "address",
        "eta",
        "wait_minutes",
        "wait_target_minutes",
        "over_target"
      ],
      "properties": {
        "eta": {
          "type": "string",
          "title": "Eta",
          "format": "date-time",
          "description": "Estimated arrival at the customer"
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Address"
        },
        "order_id": {
          "type": "string",
          "title": "Order Id"
        },
        "over_target": {
          "type": "boolean",
          "title": "Over Target",
          "description": "Wait above wait_target_minutes plus distance_grace_minutes"
        },
        "wait_minutes": {
          "type": "number",
          "title": "Wait Minutes",
          "description": "From received_at to arrival"
        },
        "wait_target_minutes": {
          "type": "number",
          "title": "Wait Target Minutes"
        },
        "distance_grace_minutes": {
          "type": "number",
          "title": "Distance Grace Minutes",
          "default": 0,
          "description": "Extra time beyond wait_target_minutes allowed because the customer is far from the depot"
        }
      }
    },
    "DeliverySummary": {
      "type": "object",
      "title": "DeliverySummary",
      "required": [
        "vehicle_id",
        "depart_at",
        "return_at",
        "stops"
      ],
      "properties": {
        "stops": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/StopSummary"
          },
          "title": "Stops",
          "description": "In visiting order"
        },
        "notice": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Notice",
          "default": null,
          "description": "Account notice to pass on to the user, e.g. a trial ending soon"
        },
        "depart_at": {
          "type": "string",
          "title": "Depart At",
          "format": "date-time"
        },
        "return_at": {
          "type": "string",
          "title": "Return At",
          "format": "date-time"
        },
        "vehicle_id": {
          "type": "string",
          "title": "Vehicle Id"
        }
      }
    }
  },
  "title": "PlanSummary",
  "required": [
    "orders_planned",
    "vehicles_used",
    "avg_wait_minutes",
    "max_wait_minutes",
    "orders_over_target",
    "unplanned_order_ids",
    "deliveries"
  ],
  "properties": {
    "notice": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Notice",
      "default": null,
      "description": "Account notice to pass on to the user, e.g. a trial ending soon"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "description": "Things to tell the user about how this plan was made"
    },
    "deliveries": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/DeliverySummary"
      },
      "title": "Deliveries"
    },
    "vehicles_used": {
      "type": "integer",
      "title": "Vehicles Used"
    },
    "orders_planned": {
      "type": "integer",
      "title": "Orders Planned"
    },
    "avg_wait_minutes": {
      "type": "number",
      "title": "Avg Wait Minutes"
    },
    "max_wait_minutes": {
      "type": "number",
      "title": "Max Wait Minutes"
    },
    "orders_over_target": {
      "type": "integer",
      "title": "Orders Over Target"
    },
    "unplanned_order_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Unplanned Order Ids",
      "description": "Orders the plan does not cover, if any"
    }
  }
}
plan_deliveries annotations
{
  "title": "Plan fleet deliveries",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
plan_vehicle_departure — Plan a driver's departure
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

A driver is leaving the depot now with these orders: find the best visiting sequence and each order's ETA. The orders must fit the vehicle's capacity. To decide which orders a driver should take, use plan_deliveries instead. Nothing is stored or sent to the driver.

plan_vehicle_departure input schema
{
  "type": "object",
  "$defs": {
    "Place": {
      "type": "object",
      "title": "Place",
      "properties": {
        "lat": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 90,
              "minimum": -90,
              "description": "Latitude in decimal degrees"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lat",
          "default": null
        },
        "lon": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 180,
              "minimum": -180,
              "description": "Longitude in decimal degrees"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lon",
          "default": null
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Address",
          "default": null,
          "description": "Street address, geocoded server-side when lat/lon are omitted"
        }
      },
      "description": "A location given either as a street address or as coordinates."
    },
    "Freshness": {
      "enum": [
        "robust",
        "hot",
        "cold",
        "crispy",
        "frozen"
      ],
      "type": "string",
      "title": "Freshness",
      "description": "Goods class for how fast an order loses quality on the road. Resolved\nby optimise() into a degrade start and weight relative to\nfactor_wait_excess - see FRESHNESS_TERMS and LESSONS_LEARNED.md\n(\"Freshness classes\")."
    },
    "OrderSpec": {
      "type": "object",
      "title": "OrderSpec",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "title": "Id",
          "description": "Your reference for the order"
        },
        "lat": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 90,
              "minimum": -90,
              "description": "Latitude in decimal degrees"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lat",
          "default": null
        },
        "lon": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 180,
              "minimum": -180,
              "description": "Longitude in decimal degrees"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lon",
          "default": null
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Address",
          "default": null,
          "description": "Street address, geocoded server-side when lat/lon are omitted"
        },
        "priority": {
          "type": "boolean",
          "title": "Priority",
          "default": false,
          "description": "Send this order out as soon as possible"
        },
        "ready_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ready At",
          "default": null,
          "description": "When the order is ready to leave the depot. Omit to mean now."
        },
        "freshness": {
          "anyOf": [
            {
              "$ref": "#/$defs/Freshness"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "How fast the order loses quality on the road: robust (not modelled), hot (hot meals), cold (iced coffee, cold drinks), crispy (fries, delicate food) or frozen. Omit to use plan_deliveries' freshness."
        },
        "received_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Received At",
          "default": null,
          "description": "When the customer placed the order. Omit to mean now."
        },
        "wait_target_minutes": {
          "type": "number",
          "title": "Wait Target Minutes",
          "default": 15,
          "minimum": 0,
          "description": "Promised wait, from received_at to arrival at the customer"
        }
      }
    }
  },
  "title": "plan_vehicle_departureArguments",
  "required": [
    "vehicle",
    "orders"
  ],
  "properties": {
    "depot": {
      "anyOf": [
        {
          "$ref": "#/$defs/Place"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Where the vehicles start from. Omit only if your API key is bound to a depot, in which case the server supplies it."
    },
    "orders": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/OrderSpec"
      },
      "title": "Orders",
      "minItems": 1
    },
    "vehicle": {
      "type": "object",
      "title": "VehicleSpec",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "title": "Id",
          "description": "Your reference for the vehicle or driver"
        },
        "capacity": {
          "type": "integer",
          "title": "Capacity",
          "default": 5,
          "description": "How many orders the vehicle can carry at once",
          "exclusiveMinimum": 0
        },
        "available_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Available At",
          "default": null,
          "description": "When the vehicle is back at the depot and free for a new route. Omit if it is available now."
        }
      },
      "description": "The vehicle (driver) leaving now."
    }
  }
}
plan_vehicle_departure output schema
{
  "type": "object",
  "$defs": {
    "StopSummary": {
      "type": "object",
      "title": "StopSummary",
      "required": [
        "order_id",
        "address",
        "eta",
        "wait_minutes",
        "wait_target_minutes",
        "over_target"
      ],
      "properties": {
        "eta": {
          "type": "string",
          "title": "Eta",
          "format": "date-time",
          "description": "Estimated arrival at the customer"
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Address"
        },
        "order_id": {
          "type": "string",
          "title": "Order Id"
        },
        "over_target": {
          "type": "boolean",
          "title": "Over Target",
          "description": "Wait above wait_target_minutes plus distance_grace_minutes"
        },
        "wait_minutes": {
          "type": "number",
          "title": "Wait Minutes",
          "description": "From received_at to arrival"
        },
        "wait_target_minutes": {
          "type": "number",
          "title": "Wait Target Minutes"
        },
        "distance_grace_minutes": {
          "type": "number",
          "title": "Distance Grace Minutes",
          "default": 0,
          "description": "Extra time beyond wait_target_minutes allowed because the customer is far from the depot"
        }
      }
    }
  },
  "title": "DeliverySummary",
  "required": [
    "vehicle_id",
    "depart_at",
    "return_at",
    "stops"
  ],
  "properties": {
    "stops": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/StopSummary"
      },
      "title": "Stops",
      "description": "In visiting order"
    },
    "notice": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Notice",
      "default": null,
      "description": "Account notice to pass on to the user, e.g. a trial ending soon"
    },
    "depart_at": {
      "type": "string",
      "title": "Depart At",
      "format": "date-time"
    },
    "return_at": {
      "type": "string",
      "title": "Return At",
      "format": "date-time"
    },
    "vehicle_id": {
      "type": "string",
      "title": "Vehicle Id"
    }
  }
}
plan_vehicle_departure annotations
{
  "title": "Plan a driver's departure",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
geocode_address — Look up an address
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Look up coordinates and a short street address for a free-text address. Include the postcode in the address: it helps a lot. Check `precise`: when false, only a town or street was matched and the coordinates are an approximate area centre. Check `routable` too: false means Delopt has no road data for that place yet and plans there are refused.

geocode_address input schema
{
  "type": "object",
  "title": "geocode_addressArguments",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "title": "Query",
      "minLength": 1,
      "description": "Free-text address: street, number, town. Including the postcode helps a lot."
    }
  }
}
geocode_address output schema
{
  "type": "object",
  "title": "GeocodeResult",
  "required": [
    "lat",
    "lon",
    "address",
    "precise"
  ],
  "properties": {
    "lat": {
      "type": "number",
      "title": "Lat"
    },
    "lon": {
      "type": "number",
      "title": "Lon"
    },
    "address": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Address"
    },
    "precise": {
      "type": "boolean",
      "title": "Precise",
      "description": "False when only a town or street was matched, so lat/lon is an approximate area centre rather than the address itself"
    },
    "routable": {
      "type": "boolean",
      "title": "Routable",
      "default": true,
      "description": "False when this place is outside the regions Delopt has road data for, so plans there are refused (see delopt://guide/getting-started)"
    }
  }
}
geocode_address annotations
{
  "title": "Look up an address",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_account_status — Check account status
Advertised by the server during the last successful anonymous check.
Advertised read-only

The caller's Delopt plan and what is left of it: vehicle and rate limits, today's address lookups, the free trial and how to upgrade. Use it when a plan is refused for a limit, or when the user asks about their plan, trial or remaining lookups. It spends no lookups.

get_account_status input schema
{
  "type": "object",
  "title": "get_account_statusArguments",
  "properties": {}
}
get_account_status output schema
{
  "type": "object",
  "$defs": {
    "TrialStatus": {
      "type": "object",
      "title": "TrialStatus",
      "required": [
        "plan",
        "ends_at",
        "days_left"
      ],
      "properties": {
        "plan": {
          "type": "string",
          "title": "Plan"
        },
        "ends_at": {
          "type": "string",
          "title": "Ends At",
          "format": "date-time"
        },
        "days_left": {
          "type": "integer",
          "title": "Days Left"
        }
      }
    },
    "AddressLookups": {
      "type": "object",
      "title": "AddressLookups",
      "required": [
        "limit_per_day",
        "used_today",
        "remaining_today",
        "resets_at"
      ],
      "properties": {
        "resets_at": {
          "type": "string",
          "title": "Resets At",
          "format": "date-time",
          "description": "Next UTC midnight"
        },
        "used_today": {
          "type": "integer",
          "title": "Used Today"
        },
        "limit_per_day": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Limit Per Day",
          "description": "Daily budget of address lookups (UTC day); null = unlimited"
        },
        "remaining_today": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Remaining Today",
          "description": "Lookups left today; null when the plan is unlimited"
        }
      }
    }
  },
  "title": "AccountStatus",
  "required": [
    "plan",
    "channel",
    "max_vehicles",
    "rate_limit",
    "address_lookups",
    "free_trial_available",
    "subscription_status",
    "upgrade_url"
  ],
  "properties": {
    "plan": {
      "type": "string",
      "title": "Plan",
      "description": "free, basic, advanced, pro, enterprise or demo"
    },
    "trial": {
      "anyOf": [
        {
          "$ref": "#/$defs/TrialStatus"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The free trial, while one is running"
    },
    "notice": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Notice",
      "default": null,
      "description": "Something to pass on to the user, e.g. a trial that ended"
    },
    "channel": {
      "type": "string",
      "title": "Channel",
      "description": "full (web app, REST API and MCP) or mcp (AI assistants only)"
    },
    "rate_limit": {
      "type": "string",
      "title": "Rate Limit",
      "description": "Tool calls allowed, e.g. 30/minute"
    },
    "upgrade_url": {
      "type": "string",
      "title": "Upgrade Url"
    },
    "max_vehicles": {
      "type": "integer",
      "title": "Max Vehicles",
      "description": "Vehicles allowed in one plan"
    },
    "address_lookups": {
      "$ref": "#/$defs/AddressLookups"
    },
    "subscription_status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Subscription Status"
    },
    "free_trial_available": {
      "type": "boolean",
      "title": "Free Trial Available",
      "description": "True when the account can still start a free trial"
    }
  }
}
get_account_status annotations
{
  "title": "Check account status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
request_more_vehicles — Request more vehicles
Advertised by the server during the last successful anonymous check.

Ask the Delopt team for a plan with more vehicles than the largest self-serve plan allows (8). For up to 8 vehicles, upgrading the plan is enough, so nothing is sent: the answer says which plan fits. Asking again updates the open request. The team follows up with the account's email address.

request_more_vehicles input schema
{
  "type": "object",
  "title": "request_more_vehiclesArguments",
  "required": [
    "vehicles_needed"
  ],
  "properties": {
    "note": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ],
      "title": "Note",
      "default": null,
      "description": "Optional: what the fleet is, or anything else the team should know"
    },
    "vehicles_needed": {
      "type": "integer",
      "title": "Vehicles Needed",
      "maximum": 500,
      "minimum": 1,
      "description": "How many vehicles one plan should be able to cover"
    }
  }
}
request_more_vehicles output schema
{
  "type": "object",
  "title": "CapacityRequestResult",
  "required": [
    "recorded",
    "vehicles_requested",
    "message"
  ],
  "properties": {
    "message": {
      "type": "string",
      "title": "Message",
      "description": "What to tell the user"
    },
    "recorded": {
      "type": "boolean",
      "title": "Recorded",
      "description": "True when the request was passed to the Delopt team"
    },
    "vehicles_requested": {
      "type": "integer",
      "title": "Vehicles Requested"
    }
  }
}
request_more_vehicles annotations
{
  "title": "Request more vehicles",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

2 advertised

dispatch_pending_orders — Dispatch pending orders

Advertised by the server during the last successful anonymous check.

Plan which driver takes which pending orders, and when each should leave.

depot
No description (required)
drivers
No description (required)
orders
No description (required)
sequence_driver_departure — Sequence a driver's departure

Advertised by the server during the last successful anonymous check.

Find the best stop order and ETAs for a driver leaving the depot now.

driver
No description (required)
orders
No description (required)
depot
No description

Resources

3 advertised

getting_started_resource — Getting started with Delopt

Advertised by the server during the last successful anonymous check.

How the tools fit together, how to give orders, times and depots, and what comes back.

getting_started_resource URI
delopt://guide/getting-started

MIME type: text/markdown

limits_resource — Plan limits

Advertised by the server during the last successful anonymous check.

Vehicles per plan, rate limits and per-call caps for each Delopt plan tier.

limits_resource URI
delopt://guide/limits

MIME type: text/markdown

sample_orders_resource — Sample orders

Advertised by the server during the last successful anonymous check.

A depot, drivers and orders as coordinates, ready to pass to plan_deliveries to see a plan.

sample_orders_resource URI
delopt://guide/sample-orders

MIME type: text/markdown

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1437 ms
95th percentile latency
1437 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1437 ms · metadata changed · 5 tool(s), 3 resource(s), 0 resource template(s), 2 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http delopt-mcp-transopt https://api.delopt.transopt.io/mcp/demo

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add delopt-mcp-transopt --url https://api.delopt.transopt.io/mcp/demo

Cursor

Merge this server into .cursor/mcp.json in your project, then enable delopt-mcp-transopt in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "delopt-mcp-transopt": {
      "url": "https://api.delopt.transopt.io/mcp/demo"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "delopt-mcp-transopt": {
      "type": "streamableHttp",
      "url": "https://api.delopt.transopt.io/mcp/demo",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start delopt-mcp-transopt and inspect its tools.
VS Code configuration
{
  "servers": {
    "delopt-mcp-transopt": {
      "type": "http",
      "url": "https://api.delopt.transopt.io/mcp/demo"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http delopt-mcp-transopt https://api.delopt.transopt.io/mcp/demo

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "delopt-mcp-transopt": {
      "url": "https://api.delopt.transopt.io/mcp/demo"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "delopt-mcp-transopt": {
      "serverUrl": "https://api.delopt.transopt.io/mcp/demo"
    }
  }
}

Let your agent find its tools

Find servers like Delopt MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Delopt MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing