Skip to main content
Glama

Calculate Distance

calculate_distance
Read-onlyIdempotent

Calculate straight-line distance between two airports by IATA code (e.g., "JFK" to "LHR"). Returns kilometers and miles.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesIATA code of the destination airport (e.g. "LHR")
fromYesIATA code of the origin airport (e.g. "JFK")

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesDestination airport details
fromYesOrigin airport details
distance_kmYesDistance in kilometers
distance_milesYesDistance in miles

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "distance_km": {
      +      "description": "Distance in kilometers",
      +      "type": "number"
      +    },
      +    "distance_miles": {
      +      "description": "Distance in miles",
      +      "type": "number"
      +    },
      +    "from": {
      +      "description": "Origin airport details",
      +      "properties": {
      +        "altitude_ft": {
      +          "description": "Altitude in feet",
      +          "type": "number"
      +        },
      +        "city": {
      +          "description": "City where airport is located",
      +          "type": "string"
      +        },
      +        "country": {
      +          "description": "Country where airport is located",
      +          "type": "string"
      +        },
      +        "iata": {
      +          "description": "Three-letter IATA code",
      +          "type": "string"
      +        },
      +        "icao": {
      +          "description": "Four-letter ICAO code",
      +          "type": "string"
      +        },
      +        "latitude": {
      +          "description": "Latitude coordinate",
      +          "type": "number"
      +        },
      +        "longitude": {
      +          "description": "Longitude coordinate",
      +          "type": "number"
      +        },
      +        "name": {
      +          "description": "Airport name",
      +          "type": "string"
      +        },
      +        "timezone": {
      +          "description": "Airport timezone",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "to": {
      +      "description": "Destination airport details",
      +      "properties": {
      +        "altitude_ft": {
      +          "description": "Altitude in feet",
      +          "type": "number"
      +        },
      +        "city": {
      +          "description": "City where airport is located",
      +          "type": "string"
      +        },
      +        "country": {
      +          "description": "Country where airport is located",
      +          "type": "string"
      +        },
      +        "iata": {
      +          "description": "Three-letter IATA code",
      +          "type": "string"
      +        },
      +        "icao": {
      +          "description": "Four-letter ICAO code",
      +          "type": "string"
      +        },
      +        "latitude": {
      +          "description": "Latitude coordinate",
      +          "type": "number"
      +        },
      +        "longitude": {
      +          "description": "Longitude coordinate",
      +          "type": "number"
      +        },
      +        "name": {
      +          "description": "Airport name",
      +          "type": "string"
      +        },
      +        "timezone": {
      +          "description": "Airport timezone",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "from",
      +    "to",
      +    "distance_km",
      +    "distance_miles"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "from": "JFK",
      +    "to": "LHR"
      +  },
      +  {
      +    "from": "LAX",
      +    "to": "NRT"
      +  }
      +]
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint: true, openWorldHint: true, idempotentHint: true, and destructiveHint: false. The description adds useful context beyond these annotations by specifying that it returns kilometers and miles, and that it uses straight-line distance. No contradiction with annotations.

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 exceptionally concise, comprising two short sentences that front-load the action and resource. It includes a relevant example without any wasted words, achieving maximum information density.

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?

For a simple, read-only calculation tool with an output schema and comprehensive annotations, the description covers all necessary aspects: input format, operation, and output units. There are no missing requirements given the tool's complexity.

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 baseline is 3. The description adds a concrete example ('JFK' to 'LHR') and reinforces the IATA code format, but the schema already fully explains both parameters as 'IATA code of origin/destination airport'. No deeper semantics are introduced.

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 a specific verb 'Calculate' and resource 'straight-line distance between two airports', with an example that makes the purpose unambiguous. This distinguishes it from sibling tools like get_airport and search_airports, which provide different functionality.

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 implies when to use the tool (whenever straight-line distance between two airports is needed) and clarifies the input format via IATA codes. However, it does not explicitly mention alternatives or when not to use it, leaving a small gap in guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.5/5.0
Disambiguation2/5

Many tools have distinct purposes, but the three 'ask_pipeworx' variants (ask_pipeworx, ask_pipeworx_beta, ask_pipeworx_grounded) are highly similar and likely cause confusion. Additionally, the toolset mixes airport-specific tools with unrelated financial and research tools, creating ambiguity about when to use which.

Naming Consistency2/5

Naming conventions are inconsistent: some tools use descriptive snake_case (ai_visibility_check, ask_pipeworx), others are single verbs (remember, forget, recall), and some include brand names (pipeworx_feedback). No clear pattern emerges across the 34 tools.

Tool Count1/5

34 tools is excessive for a server named 'airports'—only 3 tools directly relate to airports (search_airports, get_airport, calculate_distance). The majority are unrelated utilities (financial, prediction markets, memory), making the scope far too broad and unfocused.

Completeness1/5

The server severely lacks completeness for its stated airport domain: there are no tools for flights, airlines, runways, or real-time data. The other included domains (e.g., financial, prediction markets) are also incomplete, with e.g., only partial coverage of company data and no update/delete operations.