GSA Per Diem MCP

Created By
1102toolsa month ago
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"
      }
    }
  }
}
Project Info
Created At
a month ago
Updated At
a month ago
Author Name
1102tools
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Bring your real authenticated browser session to AI coding agents. Local-first MCP server + Chrome MV3 extension. No cloud. No telemetry.
@Cubenest

peek records the user's actual logged-in browser (DOM via rrweb, console events, network metadata, optional response bodies via opt-in Deep capture) through a Chrome MV3 extension. The extension ships events through a native-messaging stdio bridge to a local MCP server (peek-mcp), which persists them to a SQLite database at ~/.peek/sessions.db. AI coding agents (Claude Code, Cursor, Cline, Windsurf) read sessions from the database via 10 MCP tools: Tool What it does list_recent_sessions List recently recorded sessions (id, origin, ts, event count). get_session_summary LLM-readable narrative summary of a session. get_session_console_errors Console errors recorded in a session. get_session_network_errors Failed/notable network requests in a session. get_user_action_before_error Last N user actions before a console error. generate_playwright_repro Generate a runnable Playwright test from a session. get_dom_snapshot Reconstruct the DOM at a given timestamp. query_dom_history Timeline of attribute/text changes for a selector. request_authorization Side-panel consent for write actions (Level 3). execute_action Dispatch a UI action (gated by permission level + destructive blocklist). Why local-first matters Every other "browser session for AI" tool ships to a vendor cloud. peek's SQLite + extension live on the user's machine — no remote endpoints, no telemetry. The privacy policy (docs/peek/PRIVACY_POLICY.md) is the source of truth. Install # 1. Add the MCP server to Claude Code claude mcp add peek -- npx -y @peekdev/mcp # 2. Install the Chrome extension from the Chrome Web Store # (link added once the CWS listing is approved)

20 hours ago
Gpt Scrambler

2 days ago