Skip to main content
Glama

get_city_pair_locations

City Pair airport and city codes

List or search the three-letter codes used by GSA City Pair awards for the fiscal year of date (today by default), with GSA's own city, state and country labels. Awards use IATA airport codes (DCA, IAD, BWI) for most domestic pairs and metropolitan city codes (WAS, NYC, LON) for others; only GSA decides which, so resolve the code here before calling the fare lookup. Several codes can share one city label. Without q, every code of the fiscal year is returned, ordered by code. With q (3+ characters), a code matches exactly and city/country names match by substring, case-insensitively. Plan/date rules are those of the fare lookup: Sandbox and Google add-on today only; Pro the current US fiscal year; Business (including Enterprise accounts) any loaded fiscal year.

Example:

curl --get 'https://api.allowancesapi.com/v1/gsa/city-pairs/locations' -H 'X-API-Key: YOUR_KEY' --data-urlencode 'q=washington'

Labels mirror the latest imported awards table and change with it.

Input Schema

NameRequiredDescriptionDefault
qNoMatch a code exactly or a city/country name by substring; case-insensitive. Omit to list every code of the fiscal year.
dateNoSpecific date in YYYY-MM-DD format

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses ordering, the fact that all codes are returned unpaginated when `q` is omitted, that multiple codes can share a city label, that labels track the latest imported awards table and change with it, and that behavior varies by plan tier (Sandbox/Google add-on today only, Pro current fiscal year, Business any loaded year). It stops short of stating rate limits or error behavior, so not a 5.

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?

Front-loaded with the purpose and the critical 'resolve here first' instruction, then falls back to mode and plan details. Slightly dense: the curl example and the deferral of plan rules to the fare lookup ('Plan/date rules are those of the fare lookup') add modest weight, though both are defensible for a public API.

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 2-parameter, no-annotation, no-output-schema read tool, the description covers what is returned (codes plus GSA city/state/country labels), ordering, filtering semantics, and access-tier constraints. An agent could invoke this correctly without opening the schema.

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?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: `q` semantics (exact code match vs. case-insensitive substring on city/country names, 3-character minimum, omission returns everything) and that `date` selects the fiscal year, not a fare date. This goes beyond the schema's terse property descriptions.

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?

States a specific verb and resource: list/search the three-letter GSA City Pair codes for a fiscal year, with GSA's own city/state/country labels. It explicitly distinguishes itself from the fare-lookup sibling by telling the agent to resolve codes here before calling the fare lookup, and clarifies the airport-code vs. metro-code ambiguity that would otherwise be a trap.

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?

Gives explicit when-to-use routing ('resolve the code here before calling the fare lookup'), spells out both modes (without `q` = full listing ordered by code; with `q` 3+ chars = exact code match or substring name match), and enumerates which plan tiers can query which fiscal years. Alternatives and exclusions are both present.

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.

Resources