GSA Per Diem
by 1102tools.com · remote · local (pypi) · no sign-in to list tools · v1.2.7 · published by com.1102tools
GSA Per Diem access readiness, lodging, and meals and incidental expense rates. 7 tools.
7 tools: 1 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http gsa-perdiem https://gsa-perdiem.1102tools.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Infoget_data_status
The description mentions "Credential".
What this check looks forMatched text
description: "...ars, use the live GSA Per Diem API. Credential presence is reported without reveal..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
7 tools
Changes things 1Claude Code: ask
estimate_travel_costEstimate total per diem cost for a trip.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: true
- readOnlyHint: true
- title: Estimate Travel Cost
Only reads 6Claude Code: allow
compare_locationsCompare per diem rates across multiple locations.No findings
Why it is in this group
- The name "compare_locations" says "compare": a word for reading.
Description, as the server wrote it Compare 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: true
- readOnlyHint: true
- title: Compare Locations
get_data_statusReport which fiscal years are bundled, their GSA source files, and which tools call the GSA API.1 finding
Why it is in this group
- The name "get_data_status" says "get": a word for reading.
Findings
- Info
The description mentions "Credential".
What this check looks forMatched text
description: "...ars, use the live GSA Per Diem API. Credential presence is reported without reveal..."
Description, as the server wrote it Report 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Get Per Diem Data Status
get_mie_breakdownGet the M&IE (meals and incidental expenses) tier breakdown table.No findings
Why it is in this group
- The name "get_mie_breakdown" says "get": a word for reading.
Description, as the server wrote it Get 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: true
- readOnlyHint: true
- title: Get M&IE Breakdown
lookup_city_perdiemLook up federal per diem rates for a city and state.No findings
Why it is in this group
- The name "lookup_city_perdiem" says "lookup": a word for reading.
Description, as the server wrote it Look 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: true
- readOnlyHint: true
- title: Lookup City Per Diem
lookup_state_ratesGet all Non-Standard Area (NSA) per diem rates for a state.No findings
Why it is in this group
- The name "lookup_state_rates" says "lookup": a word for reading.
Description, as the server wrote it Get 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: true
- readOnlyHint: true
- title: Lookup State Rates
lookup_zip_perdiemLook up federal per diem rates by ZIP code.No findings
Why it is in this group
- The name "lookup_zip_perdiem" says "lookup": a word for reading.
Description, as the server wrote it Look 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: true
- readOnlyHint: true
- title: Lookup ZIP Per Diem
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.2.7. Values in angle brackets are yours to fill in.
claude mcp add --transport http gsa-perdiem https://gsa-perdiem.1102tools.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__gsa-perdiem__get_data_status",
"mcp__gsa-perdiem__lookup_city_perdiem",
"mcp__gsa-perdiem__lookup_zip_perdiem",
"mcp__gsa-perdiem__lookup_state_rates",
"mcp__gsa-perdiem__get_mie_breakdown",
"mcp__gsa-perdiem__compare_locations"
],
"ask": [
"mcp__gsa-perdiem__estimate_travel_cost"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as gsa-perdiem. Review it before you use it.