Submit

GSA Per Diem MCP

@1102tools

MCP server for GSA Per Diem Rates: federal travel lodging and M&IE rates for all CONUS locations. Look up by city, state, or ZIP. Returns monthly lodging rates with seasonal variations, M&IE breakdowns, and first/last day rates at 75%. 6 tools.
Overview

GSA Per Diem MCP

A Model Context Protocol server that wraps the GSA Per Diem Rates API as deterministic tool calls. Built for IGCE developers, travel coordinators, contract analysts, federal program managers, and anyone pricing federal travel CLINs or government employee TDY estimates.

6 tools covering all CONUS locations. Hardened across multiple live audit rounds. MIT licensed. Free api.data.gov key required.

What it does

Location Lookups

  • lookup_city_perdiem: search per diem by city name (with state)
  • lookup_zip_perdiem: ZIP-to-rate lookup with automatic county resolution
  • lookup_state_rates: state-level rate listings for all counties and cities

Lodging Rates

  • Monthly lodging rate breakdowns showing seasonal variation (e.g. higher rates in San Diego October peaks)
  • Standard rate fallback for non-listed locations
  • Current and prior fiscal year rates
  • Notes on whether a location is a "key city" with elevated rates

M&IE (Meals and Incidental Expenses)

  • get_mie_breakdown: full M&IE daily rate plus per-meal breakdown
  • Breakfast, lunch, dinner, and incidentals per FTR Chapter 301
  • First/last day of travel at 75% per FTR 301-11.101

Travel Cost Estimates

  • estimate_travel_cost: multi-day trip cost combining lodging + M&IE + first/last day adjustments
  • Multi-traveler calculations (multiply per-person costs)
  • Travel CLIN pricing for IGCEs (X trips × Y people × Z nights)
  • Tax-exempt vs tax-included variants where relevant

Cross-Location Comparison

  • compare_locations: pull per diem for multiple destinations in one call
  • Side-by-side lodging and M&IE comparisons
  • Useful for selecting between candidate sites or pricing multi-stop itineraries

Use cases

  • Build the travel CLIN portion of any IGCE (FFP, T&M, LH, CR)
  • Estimate contractor TDY costs for proposal evaluation
  • Government employee TDY cost estimates for budget submissions
  • Compare lodging rates across candidate conference sites or PMR locations
  • Validate contractor invoiced travel costs against the FTR
  • Pre-solicitation travel scope sizing (how many trips, where, how long, what cost)

Compatibility

  • Claude Desktop (one-click .mcpb install or Copy JSON)
  • Codex (ChatGPT) via TOML config or codex mcp add
  • Gemini CLI via ~/.gemini/settings.json
  • Copilot via .vscode/mcp.json in VS Code
  • Claude Code, Cursor, Cline, Zed, Continue, and any other MCP-compatible client

Install

Requires a free api.data.gov key from https://api.data.gov/signup/ (1,000 requests/hour). The same key works for the regulations-gov MCP.

{
  "mcpServers": {
    "gsa-perdiem": {
      "command": "uvx",
      "args": ["--refresh-package", "gsa-perdiem-mcp", "--from", "gsa-perdiem-mcp", "gsa-perdiem-mcp"],
      "env": { "PERDIEM_API_KEY": "your-key-here" }
    }
  }
}

TOML config (Codex):

[mcp_servers.gsa-perdiem]
command = "uvx"
args = ["--refresh-package", "gsa-perdiem-mcp", "--from", "gsa-perdiem-mcp", "gsa-perdiem-mcp"]

[mcp_servers.gsa-perdiem.env]
PERDIEM_API_KEY = "your-key-here"

PyPI: pip install gsa-perdiem-mcp or uvx gsa-perdiem-mcp

Example prompts

  • "What's the per diem rate in San Diego in October?"
  • "Build me a travel cost estimate for 4 engineers, 5 nights in Huntsville AL, including M&IE and first/last day at 75%."
  • "Compare lodging rates across DC, San Diego, and Boston for a quarterly site visit."
  • "Pull the per diem for ZIP 22202 in March."
  • "Give me the M&IE breakdown for Norfolk VA: breakfast, lunch, dinner, incidentals."
  • "Build the travel CLIN for an IGCE: 12 quarterly trips for 3 people from DC to Dahlgren VA over a base year + 4 options."
  • "What's the seasonal lodging variation for Key West FL across the fiscal year?"

Hardening

Live-audited against the production api.data.gov per diem endpoint. Handles ZIP/county/city resolution edge cases, monthly seasonal rate variations, standard-rate fallbacks for non-listed locations, and FTR-compliant first/last day calculations. Pydantic models use extra="forbid" to surface schema drift. Tested across multiple fiscal years to handle annual rate updates.

Source

Server Config

{
  "mcpServers": {
    "gsa-perdiem": {
      "command": "uvx",
      "args": [
        "--refresh-package",
        "gsa-perdiem-mcp",
        "--from",
        "gsa-perdiem-mcp",
        "gsa-perdiem-mcp"
      ],
      "env": {
        "PERDIEM_API_KEY": "your-key-here"
      }
    }
  }
}
© 2025 MCP.so. All rights reserved.

Build with ShipAny.