GSA Per Diem
com.1102tools/gsa-perdiem-mcpVersion 1.2.8GSA Per Diem access readiness, lodging, and meals and incidental expense rates. 7 tools.
Status
Responds235 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 13:44 UTC
- Latency
- 235 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://gsa-perdiem.1102tools.com/mcpResponds235 msNo sign-in
Claude Code
claude mcp add --transport http gsa-perdiem-mcp https://gsa-perdiem.1102tools.com/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: gsa-perdiem-mcp
Remote MCP server URL: https://gsa-perdiem.1102tools.com/mcpCursor
{
"mcpServers": {
"gsa-perdiem-mcp": {
"url": "https://gsa-perdiem.1102tools.com/mcp"
}
}
}VS Code
code --add-mcp '{"name":"gsa-perdiem-mcp","type":"http","url":"https://gsa-perdiem.1102tools.com/mcp"}'Streamable HTTP
pypi: gsa-perdiem-mcp 1.2.8Package only
PyPI (uvx)
claude mcp add gsa-perdiem-mcp -- uvx gsa-perdiem-mcp==1.2.8Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
7 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
compare_locationsCompare per diem rates across multiple locations.
locations: list of {"city": "...", "state": "XX"} dicts (optionally
with "county"), max 25 entries. Returns rates sorted by max daily
total (highest first). Ambiguous or unresolved cities are listed with
their status and candidate rate areas instead of a rate.
Useful for travel IGCE development when comparing destination costs.
| No | Yes | Not declared | Yes |
estimate_travel_costEstimate 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.
| No | Yes | Not declared | Yes |
get_data_statusReport which fiscal years are bundled, their GSA source files, and which tools call the GSA API.
ZIP, state, and M&IE lookups for bundled fiscal years are answered
from GSA's published files with no network call. City requests with a
supplied county for a bundled year also need no key or network call.
City-name requests without a county, and unbundled years, use the live
GSA Per Diem API. Credential
presence is reported without revealing or validating any value.
| No | Yes | Not declared | No |
get_mie_breakdownGet the M&IE (meals and incidental expenses) tier breakdown table.
Returns all M&IE tiers with breakfast, lunch, dinner, incidental, and
first/last day (75%) amounts, for showing the meal component of a
per diem estimate. Bundled fiscal years come from GSA's published
M&IE breakdown with no API call.
M&IE does NOT vary seasonally (unlike lodging). The tier is set per
location and applies year-round.
| No | Yes | Not declared | Yes |
lookup_city_perdiemLook up federal per diem rates for a city and state.
Returns lodging rates (monthly breakdown for seasonal locations) and
M&IE (meals and incidental expenses) for the specified fiscal year.
state: 2-letter USPS code (e.g., 'DC', 'VA', 'MD', 'CA').
fiscal_year: defaults to current FY. FY runs Oct 1 - Sep 30, so
FY2026 = 2025-10-01 through 2026-09-30.
county: optional county or independent city (e.g., 'Fairfax',
'Hampden', 'Richmond city'). When given for a bundled fiscal year the
rate is determined from GSA's county definitions without an API call.
Without county, the GSA Per Diem API resolves the city name to rate
areas. The result's status is:
- resolved: one rate applies (exact name, composite name such as
'Boston / Cambridge', GSA's own city-to-county resolution, or a
Census county tie-break among GSA's candidates)
- ambiguous: GSA lists several rate areas for the city; candidates are
returned and no single rate is chosen
- unresolved: GSA did not recognize the city; no rate is asserted
CONUS only: AK, HI, and territories return a pointer to DoD/State rates.
| No | Yes | Not declared | Yes |
lookup_state_ratesGet all Non-Standard Area (NSA) per diem rates for a state.
Returns every city/county with rates above the standard rate in that
state, plus the state's standard rate. Seasonal areas include their
lodging rate for each month (lodging_by_month). Useful for comparing rates
across cities within a state or for building a travel IGCE with
multiple destinations. Bundled fiscal years are answered from GSA's
published files with no API call.
CONUS only: AK, HI, and territories return a pointer to DoD/State rates
instead of an empty list that would falsely imply the standard CONUS
rate applies there.
| No | Yes | Not declared | Yes |
lookup_zip_perdiemLook up federal per diem rates by ZIP code.
Accepts 5-digit ZIPs or ZIP+4 (e.g., '02101' or '02101-1234').
Bundled fiscal years are answered from GSA's published ZIP file with
no API call; other years use the GSA Per Diem API.
GSA sets rates by county or locality, and about 1,800 ZIPs span more
than one rate area. The result's status is 'resolved' when every rate
area GSA lists for the ZIP has the same rate, otherwise 'ambiguous'
with all candidates and no single rate chosen. county (optional)
selects the candidate for that county.
| No | Yes | Not declared | Yes |
Details
- Registry status
- Active
- Published
- Oct 27, 2026
- Updated
- Oct 27, 2026
- Categories (suggested)
- Invoicing and accountingSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared