# voidjet empty legs

> Search empty-leg private jet offers; prepare inquiries and alerts the user confirms by email.

- name: io.voidjet/empty-legs
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 90/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.voidjet%2Fempty-legs
- tools: https://api.protogrid.dev/v1/servers/io.voidjet%2Fempty-legs/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "empty-legs": {
      "type": "http",
      "url": "https://api.voidjet.io/agent/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-10d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 90/100 (strong)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,235 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 10 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 6, about 2,235 tokens to load them all
- tool set hash: b1c374cbbb7d66dce7ad0f7b50d8915d
- tools last changed: 2026-10-11T22:15:13.830Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.voidjet/empty-legs.svg)](https://protogrid.dev/servers/io.voidjet/empty-legs)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-11 `create_flight_alert` changed (description)
  - before: Only when the user asks to be notified about new empty legs on a route or from a place and gives their email. voidjet emails a confirmation link; the alert becomes active only after the user clicks it (double opt-in, valid 7 days). Give at least origin or destination; dates, passengers and budget are optional. Tell the user to check their inbox.
  - after: Sets up an email alert for new empty legs on a route or from a place, for when the user asks to be notified and gives their email. voidjet emails a confirmation link; the alert becomes active only after the user clicks it (double opt-in, valid 7 days). Needs origin or destination; dates, passengers and budget are optional.
- 2026-10-11 `request_charter_quote` changed (description)
  - before: Only after search_empty_legs returned charter_alternative, you showed the user its price range and the user explicitly asked for confirmed prices and gave their email. NOT an empty leg: a regular charter via voidjet partner Villiers (paid partner offer) - say both. voidjet emails the user a link; Villiers gets the request only after the user sends the form on voidjet.io within 48 hours, then emails confirmed options directly. Never invent name, phone or message.
  - after: Requests confirmed charter prices from partner Villiers for the route of a charter_alternative, for when the user has seen its price range, asked for confirmed prices and given their email. NOT an empty leg: a regular charter and a paid partner offer. voidjet emails the user a link; Villiers receives the request only after the user sends the form on voidjet.io within 48 hours, then emails confirmed options directly. name, phone and message are optional and come from the user.
- 2026-10-11 `request_inquiry` changed (description)
  - before: Prepare an inquiry for one offer — only after the user explicitly asked to inquire and gave their email. voidjet emails the user a link; nothing is forwarded to the provider until the user opens it and sends the pre-filled form on voidjet.io within 48 hours. Tell the user to check their inbox. name, phone and message are optional and only pre-fill the form; never invent them. Prices are indicative.
  - after: Prepares an inquiry for one offer, for when the user has asked to inquire and given their email. voidjet emails the user a link; nothing is forwarded to the provider until the user opens it and sends the pre-filled form on voidjet.io within 48 hours. name, phone and message are optional, come from the user and only pre-fill the form. Prices are indicative.
- 2026-10-11 `report_unmet_need` changed (description)
  - before: Call only when the user has a legitimate need voidjet cannot serve, e.g. no offer on the route, a return flight, pets, instant booking. Choose 1-5 categories; optional route, dates, passengers, budget. Never include personal data. Helps voidjet decide what to add.
  - after: Records a need voidjet cannot serve, for when the user wants voidjet to know about it: e.g. no offer on the route, a return flight, pets, instant booking. Takes 1-5 categories and optional route, dates, passengers and budget; no personal data. Helps voidjet decide what to add.
- 2026-10-11 `search_empty_legs` changed (description, outputSchema)
  - before: Find current empty-leg flights. Give at least origin or destination (city name or IATA/ICAO code). Returns up to 20 offers with route, date, aircraft, seats, indicative price and a voidjet link plus a pre-filled inquiry link for the user. Show at least 3; if more match, refine lists frequent destinations, date span and prices for narrowing. Provider names are not included. With no match, charter_alternative may offer a regular charter via partner Villiers: NOT an empty leg and a paid partner offer, tell the user both.
  - after: Finds current empty-leg flights by origin and/or destination (city name or IATA/ICAO code), dates, passengers and budget. Returns up to 20 offers with route, date, aircraft, seats, indicative price, a voidjet link and a pre-filled inquiry link; provider names are not included. When more offers match, refine summarises all matches (frequent destinations, date span, prices). With no match, charter_alternative may contain a regular charter via partner Villiers: NOT an empty leg, and a paid partner offer.
- 2026-10-11 `search_empty_legs` changed (outputSchema)
- 2026-10-10 `create_flight_alert` added
  - Only when the user asks to be notified about new empty legs on a route or from a place and gives their email. voidjet emails a confirmation link; the alert becomes active only after the user clicks it (double opt-in, valid 7 days). Give at least origin or destination; dates, passengers and budget are optional. Tell the user to check their inbox.
- 2026-10-10 `request_charter_quote` added
  - Only after search_empty_legs returned charter_alternative, you showed the user its price range and the user explicitly asked for confirmed prices and gave their email. NOT an empty leg: a regular charter via voidjet partner Villiers (paid partner offer) - say both. voidjet emails the user a link; Villiers gets the request only after the user sends the form on voidjet.io within 48 hours, then emails confirmed options directly. Never invent name, phone or message.
- 2026-10-10 `request_inquiry` added
  - Prepare an inquiry for one offer — only after the user explicitly asked to inquire and gave their email. voidjet emails the user a link; nothing is forwarded to the provider until the user opens it and sends the pre-filled form on voidjet.io within 48 hours. Tell the user to check their inbox. name, phone and message are optional and only pre-fill the form; never invent them. Prices are indicative.
- 2026-10-10 `search_empty_legs` changed (description, outputSchema)
  - before: Find current empty-leg flights. Give at least origin or destination (city name or IATA/ICAO code). Returns up to 20 offers with route, date, aircraft, seats, indicative price and a voidjet link plus a pre-filled inquiry link for the user. Provider names are not included. With no match, charter_alternative may offer a regular charter via partner Villiers: NOT an empty leg and a paid partner offer, tell the user both.
  - after: Find current empty-leg flights. Give at least origin or destination (city name or IATA/ICAO code). Returns up to 20 offers with route, date, aircraft, seats, indicative price and a voidjet link plus a pre-filled inquiry link for the user. Show at least 3; if more match, refine lists frequent destinations, date span and prices for narrowing. Provider names are not included. With no match, charter_alternative may offer a regular charter via partner Villiers: NOT an empty leg and a paid partner offer, tell the user both.

Full history: https://api.protogrid.dev/v1/servers/io.voidjet%2Fempty-legs/changes

## Remotes

- https://api.voidjet.io/agent/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (6)

- `create_flight_alert`: Sets up an email alert for new empty legs on a route or from a place, for when the user asks to be notified and gives their email. voidjet emails a confirmation link; the alert becomes active only after the user clicks it (double opt-in, valid 7 days). Needs origin or destination; dates, passengers and budget are optional.
- `get_empty_leg`: Current details of one offer by the ref returned by search_empty_legs. available=false means the offer is no longer listed.
- `report_unmet_need`: Records a need voidjet cannot serve, for when the user wants voidjet to know about it: e.g. no offer on the route, a return flight, pets, instant booking. Takes 1-5 categories and optional route, dates, passengers and budget; no personal data. Helps voidjet decide what to add.
- `request_charter_quote`: Requests confirmed charter prices from partner Villiers for the route of a charter_alternative, for when the user has seen its price range, asked for confirmed prices and given their email. NOT an empty leg: a regular charter and a paid partner offer. voidjet emails the user a link; Villiers receives the request only after the user sends the form on voidjet.io within 48 hours, then emails confirmed options directly. name, phone and message are optional and come from the user.
- `request_inquiry`: Prepares an inquiry for one offer, for when the user has asked to inquire and given their email. voidjet emails the user a link; nothing is forwarded to the provider until the user opens it and sends the pre-filled form on voidjet.io within 48 hours. name, phone and message are optional, come from the user and only pre-fill the form. Prices are indicative.
- `search_empty_legs`: Finds current empty-leg flights by origin and/or destination (city name or IATA/ICAO code), dates, passengers and budget. Returns up to 20 offers with route, date, aircraft, seats, indicative price, a voidjet link and a pre-filled inquiry link; provider names are not included. When more offers match, refine summarises all matches (frequent destinations, date span, prices). With no match, charter_alternative may contain a regular charter via partner Villiers: NOT an empty leg, and a paid partner offer.
