Skip to main content
Glama
variflight

Variflight Tripmatch MCP Server

Official
by variflight

Variflight Tripmatch MCP Server

Variflight Tripmatch MCP Server provides a set of tools to query flight and train information.

Variflight API Key

To use the Variflight Tripmatch MCP server, you need to have a Variflight API key. You can get it from here.

Related MCP server: TripNow (航班管家)

Installation

{
    "mcpServers": {
        "variflight": {
            "command": "npx",
            "args": [
                "-y",
                "@variflight-ai/tripmatch-mcp"
            ],
            "env": {
                "VARIFLIGHT_API_KEY": "your_api_key_here"
            }
        }
    }
}

Available Tools

1. Search Flights by Departure and Arrival

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).

searchFlightsByDepArr({
  dep: "PEK",      // Departure airport IATA 3-letter code (optional)
  depcity: "BJS", // Departure city IATA 3-letter code (optional)
  arr: "SHA",      // Arrival airport IATA 3-letter code (optional)
  arrcity: "SHA",  // Arrival city IATA 3-letter code (optional)
  date: "2024-03-20" // Flight date in YYYY-MM-DD format
})

2. Search Flights by Number

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.

searchFlightsByNumber({
  fnum: "MU2157", // Flight number including airline code
  date: "2024-03-20", // Flight date in YYYY-MM-DD format
  dep: "HFE",     // Departure airport IATA 3-letter code (optional)
  arr: "CAN"      // Arrival airport IATA 3-letter code (optional)
})

3. Get Flight and Train Transfer Information

Get flight and train 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.

getFlightAndTrainTransferInfo({
  depcity: "BJS", // Departure airport IATA 3-letter code
  arrcity: "LAX", // Arrival airport IATA 3-letter code
  depdate: "2024-03-20" // Flight date in YYYY-MM-DD format
})

4. Flight Happiness Index

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.

flightHappinessIndex({
  fnum: "MU2157", // Flight number including airline code
  date: "2024-03-20", // Flight date in YYYY-MM-DD format
  dep: "HFE",     // Departure airport IATA 3-letter code (optional)
  arr: "CAN"      // Arrival airport IATA 3-letter code (optional)
})

5. Get Today's Date

Get today's date in local timezone (YYYY-MM-DD format). Use this tool whenever you need today's date - NEVER hardcode dates.

getTodayDate({})

6. Airport Weather Forecast

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).

getFutureWeatherByAirport({
  airport: "PEK" // Airport IATA 3-letter code
})

7. Search Train Tickets

Search for train tickets between two cities on a specific date. Date must be in YYYY-MM-DD format.

searchTrainTickets({
  from: "合肥", // Departure city name
  to: "北京",   // Arrival city name
  date: "2024-03-25" // Travel date in YYYY-MM-DD format
})

8. Get Flight Price By Cities

Get flight price information by departure city, arrival city, and departure date. All city codes must be valid IATA 3-letter codes (e.g. HFE for Hefei, CAN for Guangzhou). Date must be in YYYY-MM-DD format.

getFlightPriceByCities({
  dep_city: "HFE", // Departure city IATA 3-letter code
  arr_city: "CAN", // Arrival city IATA 3-letter code
  dep_date: "2024-03-25" // Departure date in YYYY-MM-DD format
})

9. Search Train Stations

Search for train stations by keyword.

searchTrainStations({
  query: "北京" // Keyword to search for train stations
})

License

ISC License - See LICENSE for details.

Author

Variflight (https://ai.variflight.com)

Version

Current version: 0.0.2

Available Tools

9 tools
flightHappinessIndexC

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fnumYesFlight number including airline code (e.g. MU2157, CZ3969)
dateYesFlight 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
depNoDeparture airport IATA 3-letter code (e.g. HFE for Hefei)
arrNoArrival airport IATA 3-letter code (e.g. CAN for Guangzhou)

TDQS

C2.3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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.

getFlightAndTrainTransferInfoA

Get flight and train 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
depdateYesFlight 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
depcityYesDeparture airport IATA 3-letter code (e.g. BJS for Beijing, CAN for Guangzhou)
arrcityYesArrival airport IATA 3-letter code (e.g. SHA for Shanghai, LAX for Los Angeles)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses behavioral traits such as date format requirements and the need to use getTodayDate for today's dates, but lacks details on rate limits, authentication needs, or what the output contains (e.g., transfer options, times, costs). This is adequate but has clear gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with the core purpose followed by specific guidelines. Every sentence earns its place, though it could be slightly more structured (e.g., bullet points for clarity). No wasted words, making it efficient for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides basic context like parameter formats and tool alternatives, but lacks details on behavioral aspects (e.g., error handling, response structure) and doesn't fully compensate for the absence of structured data. It's minimally viable but incomplete for a tool with 3 parameters and complex usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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, mentioning date format and airport code standards, but doesn't provide additional semantic context or usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Get flight and train transfer info') and resources ('by departure city and arrival city and departure date'), distinguishing it from siblings like getFlightPriceByCities or searchFlightsByDepArr by focusing on transfer info rather than pricing or general flight searches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit usage guidance: 'For today's date, you MUST use getTodayDate tool instead of hardcoding any date,' directly naming an alternative tool and specifying when to use it, which helps differentiate from siblings like getTodayDate and ensures correct parameter handling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getFlightPriceByCitiesB

Get flight price information by departure city, arrival city, and departure date. All city codes must be valid IATA 3-letter codes (e.g. HFE for Hefei, CAN for Guangzhou). Date must be in YYYY-MM-DD format.

ParametersJSON Schema
NameRequiredDescriptionDefault
dep_cityYesDeparture city IATA 3-letter code (e.g. HFE for Hefei)
arr_cityYesArrival city IATA 3-letter code (e.g. CAN for Guangzhou)
dep_dateYesDeparture 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

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions format requirements (IATA codes, YYYY-MM-DD) and references 'getTodayDate' for date handling, but lacks critical behavioral details: it doesn't specify if this is a read-only operation, what kind of price information is returned (e.g., single quote, range, list), whether it requires authentication, or any rate limits. The description adds some context but is insufficient for a mutation-free tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by specific format requirements. Every sentence earns its place by providing essential constraints without redundancy. It's efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is partially complete. It covers input formats and references date handling, but lacks details on output behavior, error cases, or integration with siblings. Without annotations or output schema, more context on what the tool returns would be beneficial, but it's adequate for a basic query tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 IATA code requirement and date format, and mentions using 'getTodayDate' for incomplete dates, which is useful but not substantial. 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.

Purpose4/5

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 price information by departure city, arrival city, and departure date.' This specifies the verb ('Get'), resource ('flight price information'), and key parameters. However, it doesn't explicitly differentiate from sibling tools like 'searchFlightsByDepArr' which might serve similar purposes, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions using 'getTodayDate' for date handling, but this is a prerequisite rather than a usage guideline. There's no comparison with sibling tools like 'searchFlightsByDepArr' or 'flightHappinessIndex' to help the agent choose appropriately.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
airportYesAirport IATA 3-letter code (e.g. PEK for Beijing, SHA for Shanghai, CAN for Guangzhou, HFE for Hefei)

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

getTodayDateA

Get today's date in local timezone (YYYY-MM-DD format). Use this tool whenever you need today's date - NEVER hardcode dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
random_stringNoDummy parameter for no-parameter tools

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
depNoDeparture airport IATA 3-letter code (e.g. PEK for Beijing, CAN for Guangzhou)
depcityNoDeparture city IATA 3-letter code (e.g. BJS for Beijing, CAN for Guangzhou)
arrNoArrival airport IATA 3-letter code (e.g. SHA for Shanghai, HFE for Hefei)
arrcityNoArrival city IATA 3-letter code (e.g. SHA for Shanghai, BJS for Beijing)
dateYesFlight 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

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fnumYesFlight number including airline code (e.g. MU2157, CZ3969)
dateYesFlight 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
depNoDeparture airport IATA 3-letter code (e.g. HFE for Hefei)
arrNoArrival airport IATA 3-letter code (e.g. CAN for Guangzhou)

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

searchTrainStationsC

Search for train stations by keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKeyword to search for train stations (e.g. 北京西)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Search') but doesn't describe any behavioral traits such as whether it's read-only, rate-limited, requires authentication, or what the output format looks like. This is a significant gap for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose and appropriately sized for a simple search tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like safety, performance, or output format, which are crucial for an AI agent to use the tool correctly. The simplicity of the tool (one parameter) doesn't compensate for these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'query' fully documented in the schema. The description adds minimal value beyond the schema by mentioning 'keyword', but doesn't provide additional syntax, format details, or examples beyond what's in the schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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') and resource ('train stations'), and includes the method ('by keyword'). However, it doesn't explicitly differentiate from sibling tools like 'searchTrainTickets' which searches for tickets rather than stations, though the distinction is implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'searchTrainTickets' or 'getFlightAndTrainTransferInfo', nor does it specify any prerequisites or exclusions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchTrainTicketsC

Search for train tickets between two cities on a specific date. Date must be in YYYY-MM-DD format.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesDeparture city name (e.g. 合肥)
toYesArrival city name (e.g. 北京)
dateYesTravel 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

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the date format constraint and hints at using 'getTodayDate' for today's date, but fails to describe key behaviors such as whether this is a read-only operation, what the output looks like (e.g., list of tickets, prices), error handling, or any rate limits. For a search tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with two concise sentences that directly state the tool's purpose and a key constraint. Every sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a search tool with no annotations and no output schema, the description is incomplete. It lacks details on output format (e.g., what data is returned), behavioral traits like error handling or pagination, and usage context relative to siblings. This leaves the agent with insufficient information to fully understand the tool's operation and results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 by reiterating the date format requirement, which is also covered in the schema's pattern and description. It does not provide additional semantic context beyond what the schema offers, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 for train tickets between two cities on a specific date.' It specifies the verb ('search'), resource ('train tickets'), and scope ('between two cities on a specific date'), which is clear and specific. However, it does not explicitly differentiate from sibling tools like 'searchTrainStations' or 'getFlightAndTrainTransferInfo', which could cause confusion about when to use this versus alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions the date format requirement but does not indicate scenarios where this tool is preferred over siblings like 'searchTrainStations' or 'getFlightAndTrainTransferInfo'. There is no explicit context for usage, leaving the agent without direction on tool selection.

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.

  1. 9 tool updates
    • First observedflightHappinessIndex
    • First observedgetFlightAndTrainTransferInfo
    • First observedgetFlightPriceByCities
    • First observedgetFutureWeatherByAirport
    • First observedgetTodayDate
    • First observedsearchFlightsByDepArr
    • First observedsearchFlightsByNumber
    • First observedsearchTrainStations
    • First observedsearchTrainTickets

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have distinct purposes, such as flight price lookup, flight search by number, and train ticket search, but there is some overlap between getFlightPriceByCities and searchFlightsByDepArr, which both retrieve flight information based on cities and dates, potentially causing confusion. The flightHappinessIndex is broad and could overlap with comfort aspects of other tools, but descriptions help clarify.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern with camelCase, as seen in getFlightPriceByCities and searchFlightsByNumber, with minor deviations like flightHappinessIndex (which lacks a verb prefix) and getTodayDate (which is more direct). Overall, the pattern is readable and mostly uniform.

Tool Count5/5

With 9 tools, the count is well-scoped for a travel and flight information server, covering key areas like flight searches, pricing, transfers, weather, and train services. Each tool serves a specific function without redundancy, making the set efficient and appropriate for the domain.

Completeness4/5

The tool surface covers core travel planning needs, including flight and train searches, pricing, transfers, and weather, with good CRUD-like coverage for information retrieval. Minor gaps exist, such as no explicit tools for booking or updating reservations, but agents can work around this with the provided search and info tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers