Skip to main content
Glama

estimate_travel_cost

Read-only

Estimate total per diem cost for a trip.

Calculates lodging + M&IE for the specified number of nights.
First and last travel days use 75% M&IE per 41 CFR 301-11.20.

travel_month: 3-letter abbreviation (Jan, Feb, ..., Dec). Every night is
priced at that month's rate; for a trip that crosses into another month
or fiscal year, add only each month's lodging_total at the applicable
fiscal year rate. Calculate M&IE once across the actual trip days,
using 75% only on the actual departure and return days. Do not add
separate monthly mie_total or grand_total values: each estimate
assumes a new trip.
If omitted, uses the max monthly lodging rate (conservative estimate
for IGCE).
fiscal_year: if omitted, the FY of the next occurrence of travel_month
(or the current FY when no month is given). Pass it for a trip that
already happened.
county: optional; selects the rate area when the city spans more than
one (see lookup_city_perdiem).

No estimate is produced when the city is ambiguous or unresolved; the
candidate rate areas are returned instead.

Does NOT include airfare or ground transportation.

Formula:
- Lodging = nightly_rate * num_nights
- M&IE = full_day_rate * (travel_days - 2) + first/last_day_rate * 2
- Travel days = num_nights + 1

num_nights bounded 1-365.

Input Schema

NameRequiredDescriptionDefault
cityYes
stateYes
countyNo
num_nightsYes
fiscal_yearNo
travel_monthNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld and non-destructive, so the safety profile is covered; the description adds the real behavioral substance: the 41 CFR 301-11.20 75% M&IE rule on first/last day, cross-month and cross-fiscal-year proration, the fy-inference default, and the fact that ambiguous cities return candidate rate areas rather than an estimate. Only gap is no statement about rate resolution failures or numeric precision.

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-loads the one-line purpose, then cost components, then per-parameter rules, then the formula. Nearly every sentence earns its place, though the 'Do not add separate monthly mie_total or grand_total values' instruction is aggregation guidance aimed at the caller rather than a tool behavior and reads as a slight detour.

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 values need no prose, yet the description still flags the one non-obvious return case (candidate rate areas instead of an estimate). With six parameters, an open-world read and no schema descriptions, the formula block and month/fiscal-year interaction rules close every remaining gap.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does: travel_month format is pinned to a 3-letter abbreviation with its default behavior, fiscal_year gets both a definition and an inference rule, county gets a selection rationale, and num_nights is bounded 1-365. city/state are self-evident and correctly left alone.

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 — estimate total per diem cost (lodging + M&IE) for a trip — and immediately scopes it against siblings by excluding airfare and ground transportation and by naming lookup_city_perdiem for rate-area selection. An agent can distinguish it from lookup_state_rates or get_mie_breakdown without opening any schema.

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 conditions for each optional parameter: fiscal_year 'Pass it for a trip that already happened', travel_month omitted means max monthly lodging rate for a conservative IGCE, county for multi-county cities. It also states the failure path — no estimate when the city is ambiguous or unresolved — and names the alternative tool for county resolution.

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.