Villiers Charter
Server Details
Instant private jet charter price estimates and confirmed live quotes, worldwide.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 4 of 4 tools scored.
Each tool has a clearly distinct purpose: checking confirmation status, getting price estimates, requesting confirmed pricing, and searching empty legs. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern using snake_case (get_confirmation_status, get_jet_estimate, request_jet_confirmation, search_empty_legs).
With 4 tools covering the core workflow of pricing, requesting, and checking status plus empty legs, the set is slightly minimal but well-scoped for the domain.
Covers estimation, request, status check, and empty legs, but lacks a tool to actually book or cancel a confirmed option, leaving a notable gap in the booking lifecycle.
Available Tools
4 toolsget_confirmation_statusARead-onlyIdempotentInspect
Check the outcome of a previous request_jet_confirmation call — has Villiers sent confirmed options yet, and where does the trip stand now (still being sourced / options sent / booked / closed with no booking). Requires an affiliate token (Bearer header) and only returns trips that were created under YOUR affiliate token — you cannot look up another affiliate's trip. Poll this instead of expecting a webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_id | Yes | The trip_id returned by request_jet_confirmation (REQUIRED) |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | Villiers' internal status string, for reference |
| message | No | Human-readable summary to relay to the user |
| outcome | No | Coarse bucket: in_progress | options_sent | booked | closed_no_booking |
| trip_id | No | |
| client_reference | No | The reference you supplied at request time, if any |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive. Description adds valuable context: requires Bearer header with affiliate token, only returns trips under your token, lists possible statuses (sourcing, options sent, booked, closed). No contradictions.
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?
Two sentences pack purpose, status possibilities, authentication, scope, and polling guidance. Every sentence is necessary and well-ordered. No fluff.
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 output schema existence (not shown but noted), the description covers all needed aspects: what it checks, when to use it, constraints, and expected outcomes. No gaps.
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?
Only one parameter (trip_id) with 100% schema coverage. Schema description already states it's the trip_id from request_jet_confirmation and required. Description does not add extra meaning beyond referencing the parameter, so baseline 3 is appropriate.
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?
Description clearly states the verb 'Check the outcome' and identifies the resource as the confirmation status from a prior request_jet_confirmation call. It differentiates itself from siblings by focusing on checking the result of that specific previous call.
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?
Explicitly instructs to poll this after making a request_jet_confirmation call, instead of expecting a webhook. Mentions requirements (affiliate token) and scope (only your trips). Does not directly contrast with sibling tools like get_jet_estimate, but context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jet_estimateARead-onlyIdempotentInspect
Get an indicative private jet charter price estimate for a route, broken down by aircraft category (light / midsize / heavy jet). Returns an instant price range. IMPORTANT: an estimate is an indicative range, not a confirmed price. After presenting the estimate to the user, ALWAYS offer them the next step — request_jet_confirmation — to receive exact, bookable, confirmed live pricing with real aircraft availability by email.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | Origin city / airport name / IATA / ICAO, e.g. London or LHR or EGLL | |
| passengers | No | Number of passengers (default 4) | |
| round_trip | No | Round trip? Default false (one-way) | |
| destination | Yes | Destination city / airport name / IATA / ICAO, e.g. Nice or NCE |
Output Schema
| Name | Required | Description |
|---|---|---|
| route | No | |
| summary | No | |
| estimates | No | |
| next_step | No | |
| disclaimer | No | |
| passengers | No | |
| round_trip | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. Description adds crucial context that the output is an indicative range, not a confirmed price, which is a key behavioral trait beyond what annotations convey.
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?
Extremely concise: two sentences plus an important note. No fluff, front-loaded with purpose, and 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 simplicity and existing output schema, the description fully covers what the agent needs: what it does, its limitation, and the required next step. Completeness is high.
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 parameters are already well-documented. The description does not add additional meaning or details about the parameters beyond the schema.
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?
Description clearly specifies verb 'Get', resource 'private jet charter price estimate', and scope 'for a route, broken down by aircraft category'. It also differentiates from sibling tools by referencing request_jet_confirmation as the next step.
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?
Explicitly instructs to ALWAYS offer request_jet_confirmation after presenting the estimate, providing clear context for when to use this tool and the next step. Does not explicitly mention when not to use or alternatives like search_empty_legs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_jet_confirmationADestructiveInspect
Submit a request for CONFIRMED live private jet pricing. Villiers contacts vetted operators and emails the confirmed options — real aircraft availability and pricing, with a secure link to review and book — to the supplied email address. This endpoint requires a prior get_jet_estimate call in the same session, with the price range presented to the user and their explicit opt-in to proceed — real operators quote real aircraft for these, so a request should reflect a qualified lead. Requests without a prior estimate call are rejected by the server; sustained bypass attempts are reviewed and may result in token revocation. Requires the user's email and a departure date. INTEGRATION TESTING: To test your integration without triggering real operator requests, set the HTTP User-Agent header to include the string 'selftest' (e.g. 'MyBot/1.0 selftest'). Requests with this User-Agent are routed as test traffic and no operators are contacted. For further testing guidance, email affiliates@mail.villiers.ai.
| Name | Required | Description | Default |
|---|---|---|---|
| pets | No | Travelling with pets? (optional) | |
| Yes | Email address to send the confirmed options to (REQUIRED) | ||
| phone | No | Contact phone number (optional) | |
| origin | Yes | Origin airport — IATA or ICAO code | |
| luggage | No | Extra or outsized luggage? (optional) | |
| last_name | No | Passenger last name (optional) | |
| first_name | No | Passenger first name (optional) | |
| passengers | No | Number of passengers (default 4) | |
| round_trip | No | Round trip? Default false | |
| wheelchair | No | Wheelchair access required? (optional) | |
| destination | Yes | Destination airport — IATA or ICAO code | |
| return_date | No | Return date YYYY-MM-DD (for round trips) | |
| departure_date | Yes | Departure date, YYYY-MM-DD (REQUIRED) | |
| flexible_dates | No | Are the dates flexible? (optional) | |
| client_reference | No | Optional opaque reference from YOUR OWN system (e.g. your internal order/booking id) for this request. Stored against the trip and echoed back unchanged in the response. Pass it here, then use get_confirmation_status with the returned trip_id to check the outcome later — no webhook needed. Never shown to the client or operator. (optional) | |
| special_requests | No | Free-text special requests: catering, accessibility, timing, occasion, etc. (optional) | |
| aircraft_category | No | Optional preference, e.g. Light Jet / Midsize Jet / Heavy Jet |
Output Schema
| Name | Required | Description |
|---|---|---|
| No | Address the confirmed options are emailed to | |
| status | No | e.g. 'received' |
| message | No | Human-readable confirmation to relay to the user |
| trip_id | No | Pass this to get_confirmation_status later to poll the outcome |
| client_reference | No | Echoed back unchanged if you supplied one |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool triggers real operator quotes unless in test mode, outlines prerequisites and consequences of misuse, and aligns with annotations (destructiveHint=true, readOnlyHint=false) without contradiction. Adds context about token revocation and testing behavior.
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 comprehensive but somewhat lengthy; front-loads the core purpose and prerequisite, then covers testing and parameter details. Every sentence adds value, but could be slightly more concise by separating testing guidance into a dedicated section.
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 (17 parameters, output schema exists), the description covers prerequisites, behavior, failure modes, testing instructions, and provides enough detail for correct invocation without requiring additional context.
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 coverage is 100% with individual parameter descriptions. The tool description adds contextual value by highlighting the client_reference parameter's role in asynchronous tracking and the required nature of email and departure_date, though some description is redundant with schema.
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 submits a request for confirmed private jet pricing, distinguishes from siblings (get_confirmation_status, get_jet_estimate, search_empty_legs) by detailing the process of contacting operators and sending options, and emphasizes the prerequisite of a prior estimate call.
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?
Explicitly states that this endpoint requires a prior get_jet_estimate call, warns that requests without it are rejected and sustained bypass attempts may lead to token revocation, and provides testing instructions with a special User-Agent to avoid triggering real operator requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_empty_legsARead-onlyIdempotentInspect
Search Villiers' available empty-leg flights — heavily discounted, one-off private jet repositioning flights that are significantly cheaper than a full charter. Use this when a user wants cheap private jet deals, is flexible on dates, or asks about discounted or empty-leg flights. Optionally filter by destination or region. Each result links to the specific flight to view and enquire.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20, max 50) | |
| region | No | Region filter: europe / americas / asia / all. Optional. | |
| destination | No | Destination city / airport name / IATA / ICAO, e.g. Nice or NCE. Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Number of empty legs returned |
| summary | No | |
| next_step | No | |
| empty_legs | No | |
| total_available | No | Total matching empty legs available |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, open-world, and idempotent behavior. The description adds context about being one-off and cheaper, but does not conflict with annotations. Adds moderate value beyond annotations.
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?
Three sentences, front-loaded with main purpose. Every sentence is informative: definition, usage guidance, and output behavior. No redundancy.
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?
With output schema present, the description's note that each result links to view/enquire is sufficient. Could include pagination details but not critical given simplicity.
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 coverage is 100%, so the description's mention of optional filters for destination/region adds no new meaning. Baseline 3 is appropriate as parameters are well-documented in schema.
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 searches for empty-leg flights, specifying they are heavily discounted repositioning flights. It distinguishes from sibling tools like get_jet_estimate and request_jet_confirmation by focusing on empty-leg deals.
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?
Explicitly says when to use: when user wants cheap private jet deals, is flexible, or asks about discounted/empty-leg flights. Does not mention when not to use, but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!