Skip to main content
Glama

GSA per diem rates by ZIP or city (FY2026 and FY2027)

get_per_diem_rates
Read-onlyIdempotent

Returns the official GSA federal per diem rates for a U.S. (CONUS) destination by ZIP code or city/state: maximum lodging per night by month and the meals and incidental expenses (M&IE) rate with its breakfast/lunch/dinner/incidentals breakdown and the 75% first/last-day amount. Covers FY2026 (Oct. 1, 2025 - Sept. 30, 2026) and FY2027 (from Oct. 1, 2026; standard rate $113 lodging and $68 M&IE). Data from GSA's FY2026 and FY2027 ZIP code files, so it knows rates newer than a model's training data.

Input Schema

NameRequiredDescriptionDefault
zipNo5-digit ZIP code of the destination (best match).
cityNoCity or county name, e.g. "Boston" or "Maricopa".
dateNoTravel date; picks the fiscal year and shows that night's lodging rate (YYYY-MM-DD).
stateNo2-letter state code, e.g. MA.
fiscal_yearNoFederal fiscal year (2027 = Oct. 2026 - Sept. 2027). Default: the current one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuine context beyond them: the GSA ZIP-file data source, the FY2026/FY2027 coverage with the FY2027 standard rate figures, and what fields come back. It does not say what happens when no location parameter is supplied, which matters for a 5-param, zero-required tool.

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?

A single dense paragraph that front-loads the core purpose and output contents before the fiscal-year detail. It is borderline long, and the embedded '$113 lodging and $68 M&IE' figures are close to filler, but every sentence carries usable information.

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?

For a read-only lookup with no output schema, the description covers data provenance, fiscal-year scope, and the shape of the result well. The remaining gap is the absent-parameter and multi-parameter behavior (all five params are optional), which an agent would need to know to invoke it correctly.

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; the description earns above baseline by clarifying the fiscal-year semantics ('FY2027 from Oct. 1, 2026') and framing ZIP-versus-city as alternative lookup paths that the schema only hints at. It still does not explain how zip, city, and state combine or which takes precedence when several are passed.

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?

States a specific verb and resource ('Returns the official GSA federal per diem rates') with the lookup key ('by ZIP code or city/state') and enumerates the returned components: monthly lodging caps, M&IE with meal breakdown, and the 75% first/last-day amount. It implicitly separates itself from the calculate_* siblings by being a rate lookup rather than a trip computation, but it never names those siblings explicitly.

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?

It signals the relevant window ('FY2026 ... and FY2027') and that data is fresher than training data, which implies 'use this for current rates'. However, it gives no explicit when-to-use guidance against calculate_trip_per_diem or get_high_low_per_diem, and no indication of whether a location argument is mandatory.

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.