Variflight MCP Server
OfficialThe Variflight MCP Server provides tools for querying flight information, weather data, and comfort metrics. With this server, you can:
Search flights between airports or cities by date using IATA codes
Retrieve flight details by flight number and date
Discover transfer options between cities
Access flight comfort metrics (Flight Happiness Index) including punctuality, amenities, and baggage allowances
Track real-time aircraft location using registration numbers
Obtain 3-day weather forecasts for specific airports
Find purchasable flight itineraries with lowest prices for given routes
Get today's date
Allows querying flight information using IATA airport codes for searching flights, retrieving transfer options, and obtaining weather forecasts at airports.
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., "@Variflight MCP Serversearch flights from Beijing to Shanghai on March 20th"
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.
Variflight MCP Server
A Model Context Protocol (MCP) server implementation for VariFlight flight information services. This server provides various tools to query flight information, weather data, and flight comfort metrics.
Variflight API Key
To use the Variflight MCP server, you need to have a Variflight API key. You can get it from here.
Installation
{
"mcpServers": {
"variflight": {
"command": "npx",
"args": [
"-y",
"@variflight-ai/variflight-mcp"
],
"env": {
"VARIFLIGHT_API_KEY": "your_api_key_here"
}
}
}
}Related MCP server: Aviation Weather MCP Server
Available Tools
1. Search Flights by Departure and Arrival
Search direct flights by city or airport code on a specific date. Use city codes like BJS or exact airport codes like PEK, but do not mix city and airport codes for the same side:
searchFlightsByDepArr({
dep: "PEK", // Beijing
arr: "SHA", // Shanghai
date: "2024-03-20"
})2. Search Flights by Number
Search a specific flight by flight number and date:
searchFlightsByNumber({
fnum: "MU2157",
date: "2024-03-20"
})3. Get Flight Transfer Information
Search connecting flight options between departure and arrival cities:
getFlightTransferInfo({
depcity: "BJS",
arrcity: "LAX",
depdate: "2024-03-20"
})4. Flight Happiness Index
Get comfort-focused details for a known flight, such as punctuality, aircraft type, cabin configuration, meals, and entertainment:
flightHappinessIndex({
fnum: "MU2157",
date: "2024-03-20"
})5. Real-time Aircraft Location
Track realtime flight location using the aircraft registration number, also called tail number:
getRealtimeLocationByAnum({
anum: "B2021"
})6. Airport Weather Forecast
Get the 3-day airport weather forecast:
getFutureWeatherByAirport({
airport: "PEK"
})7. Search Flight Itineraries
Get a natural-language summary with recommended flight options, overall lowest price, shortest duration, and several suggested itineraries:
searchFlightItineraries({
depCityCode: "BJS", // Beijing
arrCityCode: "SHA", // Shanghai
depDate: "2025-04-20"
})8. Get Flight Prices by Cities
Get structured raw sale-flight data between two cities, with each flight returning cabin-level prices:
getFlightPriceByCities({
dep_city: "BJS", // Beijing
arr_city: "SHA", // Shanghai
dep_date: "2026-04-20"
})License
ISC License - See LICENSE for details.
Author
Variflight (https://mcp.variflight.com)
Version
Current version: 1.0.3
Available Tools
8 toolsflightHappinessIndexC
using this tool when you need information related to following topics: Detailed flight comparisons (punctuality, amenities, cabin specs),Health safety protocols for air travel,Baggage allowance verification,Environmental impact assessments,Aircraft configuration visualization,Comfort-focused trip planning (seat dimensions, entertainment, food). etc.
| Name | Required | Description | Default |
|---|---|---|---|
| arr | No | Arrival airport IATA 3-letter code (e.g. CAN for Guangzhou) | |
| date | Yes | Flight date in YYYY-MM-DD format. IMPORTANT: If user input only cotains month and date, you should use getTodayDate tool to get the year. For today's date, use getTodayDate tool instead of hardcoding | |
| dep | No | Departure airport IATA 3-letter code (e.g. HFE for Hefei) | |
| fnum | Yes | Flight number including airline code (e.g. MU2157, CZ3969) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It doesn't disclose any behavioral traits: no indication of whether this is a read-only query, if it has side effects, rate limits, authentication needs, or what the output looks like. The description only lists topics without explaining how the tool behaves when invoked. This is inadequate for a tool with 4 parameters and no 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?
The description is a single run-on sentence listing topics, which is somewhat concise but poorly structured. It starts with a usage hint but lacks clear organization. While it avoids unnecessary words, the list format with 'etc.' at the end feels incomplete and could be better formatted for readability. It's front-loaded with the usage context, but the content is vague.
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 complexity (4 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns, how the 'happiness index' is calculated or presented, or any behavioral aspects. The list of topics is broad but doesn't tie back to the input parameters or expected output. For a tool presumably providing detailed flight assessments, this leaves too many 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?
Schema description coverage is 100%, so the schema already fully documents all 4 parameters (arr, date, dep, fnum) with clear descriptions and patterns. The description adds no parameter-specific information beyond what's in the schema. According to guidelines, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.
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 lists topics but doesn't state what the tool actually does. It says 'using this tool when you need information related to following topics' followed by a list, but doesn't specify the action (e.g., 'retrieve', 'calculate', 'compare'). It's vague about whether this returns a happiness index score, provides detailed reports, or something else. The name 'flightHappinessIndex' suggests some kind of scoring or rating, but the description doesn't confirm this.
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 starts with 'using this tool when you need information related to following topics' which provides some context, but doesn't explicitly say when to use this vs. sibling tools like searchFlightItineraries or searchFlightsByNumber. It lists broad categories but gives no guidance on prerequisites, alternatives, or exclusions. For example, it doesn't clarify if this is for specific flights (matching the schema) or general comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFlightTransferInfoB
Get flight transfer info by departure city and arrival city and departure date. Date format: YYYY-MM-DD. IMPORTANT: For today's date, you MUST use getTodayDate tool instead of hardcoding any date. Airport codes should be IATA 3-letter codes.
| Name | Required | Description | Default |
|---|---|---|---|
| arrcity | Yes | Arrival airport IATA 3-letter code (e.g. SHA for Shanghai, LAX for Los Angeles) | |
| depcity | Yes | Departure airport IATA 3-letter code (e.g. BJS for Beijing, CAN for Guangzhou) | |
| depdate | Yes | Flight date in YYYY-MM-DD format. IMPORTANT: If user input only cotains month and date, you should use getTodayDate tool to get the year. For today's date, use getTodayDate tool instead of hardcoding |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adds useful behavioral context: the date format requirement (YYYY-MM-DD), the rule about using 'getTodayDate' for today's date, and the IATA code requirement. However, it doesn't disclose other important behaviors like whether this is a read-only operation, potential rate limits, error conditions, or what 'flight transfer info' specifically includes.
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 concise with three sentences. The first sentence states the purpose, the second provides format requirements, and the third gives important usage rules. Each sentence earns its place, though the structure could be slightly improved by front-loading the most critical information more clearly.
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 tool with 3 parameters, 100% schema coverage, and no annotations or output schema, the description is moderately complete. It covers basic usage rules and format requirements but lacks details about what 'flight transfer info' returns, error handling, or how this differs from sibling flight search tools. The absence of an output schema increases the burden on the description, which it doesn't fully meet.
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 three parameters thoroughly. The description adds minimal value beyond the schema: it reiterates the date format and IATA code requirements, but doesn't provide additional semantic context about what 'flight transfer info' means or how parameters interact. 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: 'Get flight transfer info by departure city and arrival city and departure date.' It specifies the verb ('Get') and resources ('flight transfer info'), but doesn't explicitly differentiate from sibling tools like 'searchFlightItineraries' or 'searchFlightsByDepArr' which might have overlapping functionality.
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 some usage guidance: it mentions using 'getTodayDate' for today's date instead of hardcoding, which is a specific context rule. However, it doesn't explain when to use this tool versus alternatives like 'searchFlightsByDepArr' or 'searchFlightItineraries', leaving the agent to infer based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFutureWeatherByAirportA
Get airport future weather for 3days (today、tomorrow、the day after tomorrow) by airport IATA 3-letter code. Airport codes should be IATA 3-letter codes (e.g. PEK for Beijing, SHA for Shanghai, CAN for Guangzhou, HFE for Hefei).
| Name | Required | Description | Default |
|---|---|---|---|
| airport | Yes | Airport IATA 3-letter code (e.g. PEK for Beijing, SHA for Shanghai, CAN for Guangzhou, HFE for Hefei) |
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 specifies the forecast duration and IATA code format but lacks details on permissions, rate limits, error handling, or response format. For a tool with zero annotation coverage, this leaves significant gaps in understanding its operational 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 efficiently structured in two sentences: the first states the tool's purpose and scope, and the second clarifies the parameter with examples. Every sentence adds essential information without redundancy, making it easy to parse and understand quickly.
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 (single parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and parameter semantics well but lacks behavioral details like response format or error conditions, which are important for a weather forecasting tool without structured output documentation.
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 parameter fully. The description adds value by reinforcing the IATA code requirement and providing examples (PEK, SHA, CAN, HFE), which aids in understanding the parameter's practical use beyond the schema's pattern constraint.
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 specific action ('Get airport future weather'), resource ('airport'), and scope ('for 3 days (today, tomorrow, the day after tomorrow) by airport IATA 3-letter code'). It distinguishes itself from sibling tools by focusing on weather forecasting rather than flight data, date, or location queries.
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 by specifying the 3-day forecast and IATA code requirement, but it does not explicitly state when to use this tool versus alternatives (e.g., for weather planning vs. flight tracking). No exclusions or direct comparisons to sibling tools are provided, leaving some ambiguity about optimal use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRealtimeLocationByAnumA
Get flight realtime location by aircraft number. aircraft number should be Aircraft registration numberlike B2021, B2022, B2023, etc. if aircraft number is unknown, you shuold try to request it using searchFlightsByNumber tool
| Name | Required | Description | Default |
|---|---|---|---|
| anum | Yes | Aircraft number like B2021, B2022, B2023, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the core behavior (retrieving realtime location) but doesn't disclose important traits like whether this is a read-only operation, potential rate limits, authentication requirements, or what happens when aircraft number is invalid. The description adds basic context but lacks comprehensive behavioral disclosure.
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 with zero waste. First sentence states purpose, second provides crucial usage guidance. Every word earns its place, and the most important information (purpose) is front-loaded.
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 single-parameter read operation with no output schema, the description provides good context about purpose and usage guidelines. However, without annotations or output schema, it could better explain what the return value contains (e.g., coordinates, altitude, timestamp) and any limitations. The completeness is strong but not perfect given the lack of structured metadata.
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 parameter type and format. The description adds minor clarification about the format ('Aircraft registration number like B2021, B2022, B2023, etc.') but doesn't provide additional semantic context beyond what's 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 verb ('Get') and resource ('flight realtime location') with specific qualification ('by aircraft number'). It distinguishes from siblings by focusing on realtime location retrieval rather than search, transfer info, or weather tools.
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 provides when-not-to-use guidance: 'if aircraft number is unknown, you should try to request it using searchFlightsByNumber tool.' This names a specific alternative tool for the prerequisite step, giving clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTodayDateA
Get today's date in local timezone (YYYY-MM-DD format). Use this tool whenever you need today's date - NEVER hardcode dates.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No | Dummy parameter for no-parameter tools |
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 effectively describes the tool's behavior: it returns today's date in a specific format and timezone. However, it doesn't mention potential edge cases (e.g., timezone handling during daylight saving) or error conditions, leaving some behavioral aspects unspecified.
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 extremely concise (two sentences) and front-loaded with the core functionality. Every sentence earns its place: the first defines the tool's output, and the second provides critical usage guidance. There is zero wasted text.
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 (no parameters, simple output), no annotations, and no output schema, the description is complete enough. It specifies the exact format and timezone of the return value, and the usage guidance covers when to invoke it. For this simple tool, no additional 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?
The input schema has 100% coverage with a single dummy parameter, so the schema already documents it. The description correctly indicates this is essentially a no-parameter tool by focusing on the date retrieval without mentioning inputs. It adds value by clarifying the tool's parameterless nature implicitly through its usage focus.
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 specific verb ('Get') and resource ('today's date'), with precise format details ('YYYY-MM-DD format') and timezone context ('local timezone'). It distinctly differentiates from sibling tools which are all flight-related, making its purpose unambiguous.
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 explicit usage guidance: 'Use this tool whenever you need today's date' and 'NEVER hardcode dates.' This gives clear when-to-use instructions and a specific prohibition, helping the agent choose this tool over manual date handling or other date-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchFlightItinerariesB
Search for purchasable flight options and the lowest price using the departure city three-letter code, arrival city three-letter code, and departure date. (e.g. BJS for Beijing, SHA for Shanghai, CAN for Guangzhou, HFE for Hefei).
| Name | Required | Description | Default |
|---|---|---|---|
| arrCityCode | Yes | Arrival city 3-letter code (e.g. BJS for Beijing, SHA for Shanghai, CAN for Guangzhou, HFE for Hefei) | |
| depCityCode | Yes | Departure city 3-letter code (e.g. BJS for Beijing, SHA for Shanghai, CAN for Guangzhou, HFE for Hefei) | |
| depDate | Yes | Departure city date (format: YYYY-MM-DD, e.g., 2025-07-04).IMPORTANT: If user input only cotains month and date, you should use getTodayDate tool to get the year. For today's date, use getTodayDate tool instead of hardcoding |
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 searching for 'purchasable flight options and the lowest price', which implies read-only querying, but does not address critical behaviors such as rate limits, authentication needs, error handling, or what the output format looks like (e.g., list of flights, pricing details). This leaves significant gaps for an agent to understand how to interpret results.
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 ('Search for purchasable flight options and the lowest price') followed by parameter details. The parenthetical examples are relevant but slightly lengthen the text. Overall, it is well-structured with no wasted words.
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 complexity of flight search (multiple parameters, no output schema, and no annotations), the description is incomplete. It lacks information on output format (e.g., what data is returned), error conditions, or behavioral constraints like pagination or availability. This makes it inadequate for an agent to fully understand how to use the tool effectively in practice.
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%, with each parameter well-documented in the input schema (e.g., patterns, examples). The description adds minimal value beyond the schema by reiterating the three-letter code examples (BJS, SHA, etc.) and mentioning the departure date, but does not provide additional semantic context or usage nuances. This meets the baseline 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 specific action ('Search for purchasable flight options and the lowest price') and identifies the key resources (departure city, arrival city, departure date). It distinguishes this tool from siblings like 'searchFlightsByDepArr' by emphasizing price comparison and purchasability, which is not mentioned in other tool names.
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 through its parameter examples (e.g., BJS for Beijing), but does not explicitly state when to use this tool versus alternatives like 'searchFlightsByDepArr'. It provides some context for date handling (referring to 'getTodayDate' tool), but lacks clear exclusions or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchFlightsByDepArrA
Search for flights between airports or cities by date. For cities with multiple airports, use depcity and arrcity parameters; otherwise use dep and arr parameters. Date must be in YYYY-MM-DD format. For today's date, use the getTodayDate tool. All airport/city codes must be valid IATA 3-letter codes (e.g.BJS for city of Beijing, PEK for Beijing Capital Airport).
| Name | Required | Description | Default |
|---|---|---|---|
| arr | No | Arrival airport IATA 3-letter code (e.g. SHA for Shanghai, HFE for Hefei) | |
| arrcity | No | Arrival city IATA 3-letter code (e.g. SHA for Shanghai, BJS for Beijing) | |
| date | Yes | Flight date in YYYY-MM-DD format. IMPORTANT: If user input only cotains month and date, you should use getTodayDate tool to get the year. For today's date, use getTodayDate tool instead of hardcoding | |
| dep | No | Departure airport IATA 3-letter code (e.g. PEK for Beijing, CAN for Guangzhou) | |
| depcity | No | Departure city IATA 3-letter code (e.g. BJS for Beijing, CAN for Guangzhou) |
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 effectively describes key behavioral traits: the requirement for valid IATA codes, date format constraints, and the interaction with the getTodayDate tool for date handling, though it lacks details on output format, error handling, or rate limits.
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, with each sentence earning its place by providing essential information without redundancy. It efficiently covers purpose, parameter usage, date handling, and code validation in a structured manner.
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 complexity of 5 parameters, no annotations, and no output schema, the description does well by covering parameter semantics, usage guidelines, and behavioral aspects like date handling. However, it lacks details on the return format (e.g., what data is included in flight results), which is a minor gap in completeness.
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 baseline is 3. The description adds significant value by explaining the semantic difference between dep/arr (airport codes) and depcity/arrcity (city codes), providing usage rules for cities with multiple airports, and reinforcing date format and tool dependencies, elevating it above the baseline.
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 a specific verb ('Search for flights') and resource ('between airports or cities by date'), and distinguishes it from sibling tools like 'searchFlightItineraries' and 'searchFlightsByNumber' by specifying it searches by departure/arrival locations rather than itineraries or flight numbers.
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 explicit guidance on when to use specific parameters (depcity/arrcity vs. dep/arr based on city airport multiplicity) and when to use an alternative tool ('For today's date, use the getTodayDate tool'), offering clear context and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchFlightsByNumberA
Search flights by flight number and date. Flight number should include airline code (e.g. MU2157, CZ3969). dep and arr are optional, keep empty if you don't know them. Date format: YYYY-MM-DD. IMPORTANT: For today's date, you MUST use getTodayDate tool instead of hardcoding any date. Airport codes (optional) should be IATA 3-letter codes.
| Name | Required | Description | Default |
|---|---|---|---|
| arr | No | Arrival airport IATA 3-letter code (e.g. CAN for Guangzhou) | |
| date | Yes | Flight date in YYYY-MM-DD format. IMPORTANT: If user input only cotains month and date, you should use getTodayDate tool to get the year. For today's date, use getTodayDate tool instead of hardcoding | |
| dep | No | Departure airport IATA 3-letter code (e.g. HFE for Hefei) | |
| fnum | Yes | Flight number including airline code (e.g. MU2157, CZ3969) |
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 adds some useful context about date handling requirements (using getTodayDate for today's date) and airport code format. However, it doesn't disclose important behavioral aspects like what happens if no flights are found, whether this is a read-only operation, rate limits, or authentication requirements. The description provides some operational constraints but misses key behavioral traits.
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 with the core purpose. Each sentence adds value: format examples, optional parameters, date format, and important usage rule. There's no wasted text, though the structure could be slightly improved by grouping related information more clearly.
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 search tool with 4 parameters, 100% schema coverage, but no annotations and no output schema, the description provides adequate but incomplete context. It covers the basic operation and some constraints, but doesn't explain what the tool returns (no output schema) or address potential error conditions. Given the complexity and lack of structured output information, the description should do more to compensate.
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 thoroughly. The description adds minimal value beyond the schema: it reiterates the flight number format example and mentions that dep/arr are optional. However, it doesn't provide additional semantic context about parameter interactions or edge cases not covered in the schema descriptions.
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: 'Search flights by flight number and date.' It specifies the verb ('search') and resource ('flights'), but doesn't explicitly differentiate from sibling tools like 'searchFlightsByDepArr' or 'searchFlightItineraries' beyond the 'by flight number' aspect. The description is specific about what it searches by, but lacks sibling differentiation.
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 clear context for when to use this tool: when searching by flight number and date. It explicitly mentions an alternative tool ('getTodayDate') for obtaining today's date, which is helpful guidance. However, it doesn't specify when NOT to use this tool versus other flight search siblings like 'searchFlightsByDepArr' or 'searchFlightItineraries'.
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.
8 tool updates
v1.0.0- First observed
flightHappinessIndex - First observed
getFlightTransferInfo - First observed
getFutureWeatherByAirport - First observed
getRealtimeLocationByAnum - First observed
getTodayDate - First observed
searchFlightItineraries - First observed
searchFlightsByDepArr - First observed
searchFlightsByNumber
TDQS
There is significant overlap between searchFlightItineraries, searchFlightsByDepArr, and getFlightTransferInfo, all involving flight search between locations with date parameters. However, descriptions clarify some distinctions: searchFlightItineraries focuses on purchasable options and pricing, searchFlightsByDepArr handles airport/city flexibility, and getFlightTransferInfo specifically targets transfer information. The flightHappinessIndex stands out as distinct, covering comfort and amenities rather than routing.
Naming is inconsistent with mixed conventions: flightHappinessIndex uses camelCase, while all other tools use snake_case (e.g., getFlightTransferInfo, searchFlightsByDepArr). Verb patterns vary: 'get' (getFlightTransferInfo, getFutureWeatherByAirport, getRealtimeLocationByAnum, getTodayDate) vs. 'search' (searchFlightItineraries, searchFlightsByDepArr, searchFlightsByNumber), with flightHappinessIndex lacking a clear verb. This inconsistency reduces predictability.
With 8 tools, the count is reasonable for a flight information server, covering key aspects like search, transfers, weather, location, and comfort. It's slightly on the higher side but well-scoped, as each tool addresses a specific need without obvious bloat. The domain of flight data supports this number, ensuring agents have necessary operations without being overwhelmed.
The tool set provides good coverage for flight-related queries, including search (by itinerary, departure/arrival, number), transfer info, real-time location, weather, and comfort assessments. Minor gaps exist, such as lack of tools for booking management, flight status updates beyond location, or historical data, but core workflows for information retrieval are well-covered, allowing agents to handle most common requests effectively.
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
Flight search MCP server providing search, pagination, and itinerary details for AI assistants.
航班管家 DAST 官方航空数据 MCP,提供航班动态、天气、轨迹、延误风险及机场/航司运行统计。Official Flight Master aviation data MCP.
1Geo-based flight search MCP server. Find more flights between any two places on earth
Hosted MCP server for Xweather weather data: conditions, forecasts, alerts, and more.
1
Related MCP Servers
- AlicenseCqualityDmaintenanceA Model Context Protocol (MCP) server that provides real-time flight tracking and status information using the AviationStack API.34,8607MIT
- AlicenseNot gradedqualityDmaintenanceProvides aviation weather information through a Model Context Protocol server, enabling access to METARs, TAFs, PIREPs, and route weather data for informational purposes only.2MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server that provides comprehensive weather data querying capabilities based on the Caiyun Weather API, supporting real-time weather, forecasts, and alerts with multi-language support.710-
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides tools to fetch weather alerts for US states and forecasts based on latitude/longitude coordinates using the US National Weather Service API.2801MIT
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/variflight/variflight-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server