Skip to main content
Glama

List journeys

list_journeys
Read-only

List the user's journeys (movements between countries), newest-first, including presence stamps and ordered legs. Optional date-range and country filters. Journey routes are ordered legs[], one entry per continuous movement. Airside connections stay one journey with multiple legs; if the traveler left the airport or cleared immigration, split into separate journeys. Domestic/never-left-country journeys are valid but ignored for day counts. Journey output leg times are departureAt/arrivalAt; write inputs use departureDate/arrivalDate. If unfamiliar with TripLedger semantics, call get_tripledger_guide first. Dates are ISO 8601 (YYYY-MM-DD or full timestamp), interpreted as UTC when no offset is given. A date-only to includes the entire UTC day; a full-timestamp to remains exact. Results are newest-first and paginated: pass cursor from a previous response's nextCursor to fetch the next page (nextCursor is null on the last page).

Input Schema

NameRequiredDescriptionDefault
toNoOnly journeys departing on/before this ISO 8601 date.
fromNoOnly journeys departing on/after this ISO 8601 date.
limitNoPage size (default 25, max 100).
cursorNoOpaque pagination cursor from a previous page's nextCursor.
countryNoOnly journeys whose origin OR destination matches this country (ISO alpha-2 code or English name).
personIdNoOnly journeys tagged with this ledger person. Use list_people to find IDs.

Output Schema

NameRequiredDescriptionDefault
journeysYes
nextCursorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld=false, and the description adds substantial behavior beyond them: newest-first ordering, pagination via cursor/nextCursor with null terminator, UTC interpretation of offsetless dates, inclusive date-only `to` versus exact timestamp `to`, and even the domain rule that airside connections stay one journey while airport exits split journeys. The output-field naming difference between read (`departureAt`) and write (`departureDate`) inputs is exactly the kind of non-obvious detail an agent would otherwise get wrong.

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?

Purpose, ordering and filters are front-loaded, and most sentences carry non-obvious information. A couple of clauses (the leg-time versus write-input naming, the domestic-journey day-count note) are only tangentially needed to invoke this read tool, which keeps it from a 5.

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?

An output schema exists, so return-field enumeration is unnecessary — yet the description still explains pagination contract and the newest-first ordering an agent needs to page correctly. Combined with the date-semantics and guide pointer, nothing material for a correct call is missing.

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 the baseline is 3, but the description adds real semantics on top: the cursor must come from a prior response's `nextCursor`, and `to`/`from` interpretation differs for date-only versus full-timestamp values (whole UTC day versus exact instant). It also defines what a journey is for filtering purposes (airside vs split journeys, domestic journeys valid but excluded from day counts).

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 the user's journeys") and immediately qualifies the domain object ("movements between countries") plus what is returned (presence stamps, ordered legs, newest-first). This clearly distinguishes it from get_journey (single journey), list_stays, and detect_journey_gaps without needing the schema.

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?

Gives a concrete routing hint: "If unfamiliar with TripLedger semantics, call get_tripledger_guide first," and explains that filters are optional. It does not state when to prefer this over siblings like list_stays or get_travel_summary, so an explicit exclusion is missing, but the context is clear.

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