GSA Per Diem

com.1102tools由 1102tools.com 發布官方發布者v1.2.8更新於 Oct 29, 2026

GSA Per Diem access readiness, lodging, and meals and incidental expense rates. 7 tools.

發布方自己的服務:Acquisition.gov

已驗證Streamable HTTP可網頁執行位置與生活金融商業與電商

概覽

AI 產生的概覽

查詢美國聯邦 GSA 每日津貼(住宿與 M&IE)費率並估算差旅費用,資料來自內建 GSA 檔案或即時 GSA API。

可以做什麼
  • 依城市與州、依 ZIP 或 ZIP+4 查詢每日津貼費率,或列出某州所有非標準地區費率
  • 檢視 M&IE 分級表,含早餐、午餐、晚餐、雜費及首末日金額
  • 依住宿加 M&IE 估算指定晚數與出行月份的總差旅費用
  • 最多比較 25 個地點的費率,依每日總額由高到低排序
  • 回報已內建的會計年度、其 GSA 來源檔案,以及哪些工具會呼叫 API
適用情境
適合聯邦差旅規劃、IGCE 編製與報銷估算,需要官方 CONUS 每日津貼上限而非實際飯店價格時使用。FY2021 起已內建的會計年度,ZIP、州、M&IE 及城市加郡查詢可離線完成。
執行需求
可作為託管遠端端點使用,無需設定或金鑰;也可透過 uvx 在本機執行 PyPI 套件(Python)。未內建的會計年度或內建資料無法定位的城市名稱需即時 API 請求,須在 PERDIEM_API_KEY 填入免費的 api.data.gov 金鑰。可選 FEDERAL_API_MIN_INTERVAL_SECONDS 控制請求間隔。
安裝前請注意
費率是聯邦報銷上限而非實際價格,僅涵蓋 CONUS,通常不含住宿稅。橫跨多個費率區的 ZIP 或城市會回傳候選地區而非單一答案。即時請求會將查詢送往 api.gsa.gov,並與使用同一金鑰的其他 api.data.gov 程序共用限流;該金鑰屬憑證,應妥善保管。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 GSA Per Diem,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.1102tools%2Fgsa-perdiem-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "gsa-per-diem": {
      "type": "http",
      "url": "https://gsa-perdiem.1102tools.com/mcp"
    }
  }
}

README

gsa-perdiem-mcp

[price: free] [license: MIT] [tools: 7] [regression tests]

Free, open-source MCP server for the GSA Per Diem Rates API. Federal travel lodging and M&IE rates for IGCEs and travel cost estimation.

Overview, demo video and hosted setup: https://1102tools.com/mcp/gsa-per-diem

ZIP, state, and M&IE lookups for FY2021 onward work with no key and no network call: they are answered from GSA's published rate, ZIP, and M&IE files bundled in the package. For bundled fiscal years, city lookups, trip estimates and comparisons with a supplied county also work without a key or network call. City-name lookups without a county are answered from bundled Census place and GSA county data when that settles the rate area; other city names and lookups for unbundled years use the GSA Per Diem API and need a free api.data.gov key in PERDIEM_API_KEY. The hosted version needs no key for any lookup. See Local or hosted.

Regression tests, and realistic contractor travel questions checked against GSA's published rates before release. See testing.md.

Local or hosted

Local (desktop)Claude (hosted)ChatGPT (hosted)
Local setupInstallInstall
  • Local runs it on your computer, inside the Claude or ChatGPT desktop app or another AI app. You get your own full rate limits, and it relies only on the government service. Bundled ZIP, state, M&IE and city-plus-county requests need no key. Only live API requests need a free api.data.gov key. It doesn't update itself, so ask your AI to update it. You don't have to set it up by hand: give your AI this page's link and ask it to set it up or walk you through it.
  • Hosted is always up to date, needs no setup or keys, and works in Claude or ChatGPT anywhere.

Compare local and hosted · Matching prompts

What it does

Exposes GSA per diem rates as 7 MCP tools:

Core lookups

  • lookup_city_perdiem - Rates by city/state, from bundled Census and county data when the city falls in one rate area, otherwise through the GSA API (optional county selects one)
  • lookup_zip_perdiem - Rates by ZIP code from GSA's ZIP file (optional county)
  • lookup_state_rates - All NSA rates and the standard rate for a state
  • get_mie_breakdown - M&IE tier table (meal components)
  • get_data_status - Bundled fiscal years, their GSA source files, and which tools call the API

Workflow

  • estimate_travel_cost - Calculate trip per diem (lodging + M&IE with first/last day at 75%)
  • compare_locations - Compare rates across multiple cities

Rate areas are never guessed. GSA sets rates by county or locality. When a ZIP or city spans more than one rate area with different rates, results have status: "ambiguous" and list every candidate; supplying county selects one. A city is placed in a rate area by GSA's county definitions, using Census 2020 place-to-county records; a name Census doesn't list goes to GSA, and one GSA also doesn't recognize is unresolved rather than defaulting to the standard rate. When GSA lists several rate areas for a city, Census 2020 place-to-county records break the tie only if they place the city in exactly one of them. Every result names its source: the bundled GSA file (with SHA-256) or the API endpoint.

Bundled data. src/gsa_perdiem_mcp/data/ holds FY2021 onward, generated by scripts/build_snapshot.py from GSA's per diem files page and Census 2020 place/county code files. data/manifest.json records each source URL and SHA-256. The builder fails on schema drift, on any disagreement between GSA's rate and ZIP files, and on locality wording it has not been taught. FY2020 and fiscal years not yet bundled use the API.

API key (only for live API requests)

ZIP, state and M&IE requests for bundled fiscal years work without a key. So do lookup_city_perdiem, estimate_travel_cost and compare_locations when you supply a county for the bundled year. For example, ask for Boston, MA, in Suffolk County, or include county: "Suffolk" in each Boston comparison entry.

City-name requests that bundled Census and county data can't settle, and lookups for unbundled years, call api.gsa.gov and require an api.data.gov key: 1,000 requests per hour, yours alone. Without PERDIEM_API_KEY, those API requests return setup instructions. You can instead supply the work-location county for a bundled year to complete a city lookup or travel estimate without setting up a key.

Get a free key (takes 30 seconds):

  1. Go to api.data.gov/signup
  2. Enter your name and email: no approval, no wait
  3. Copy the key from the confirmation page
  4. Paste it into your client config as PERDIEM_API_KEY (see below)

The same key works for every api.data.gov-backed API (GSA Per Diem, NASA, FEC, FCC, etc.).

Installation

bash
uvx --refresh-package gsa-perdiem-mcp --from gsa-perdiem-mcp gsa-perdiem-mcp

Configuration

Use the configuration below as the server definition and adapt its placement to your compatible MCP client. For practical requests using this source, see the prompt library.

With your key:

json
{  "mcpServers": {    "gsa-perdiem": {      "command": "uvx",      "args": ["--refresh-package", "gsa-perdiem-mcp", "--from", "gsa-perdiem-mcp", "gsa-perdiem-mcp"],      "env": {        "PERDIEM_API_KEY": "paste-your-api-data-gov-key-here",        "FEDERAL_API_MIN_INTERVAL_SECONDS": "4"      }    }  }}

The server defaults FEDERAL_API_MIN_INTERVAL_SECONDS to 0.6 for keyed requests and caps them at 950 per hour. The example above sets a slower 4; either works. Per Diem and Regulations.gov processes using the same api.data.gov key share the gate.

No-key setup (bundled ZIP, state, M&IE, and city-plus-county lookups, estimates and comparisons work):

json
{  "mcpServers": {    "gsa-perdiem": {      "command": "uvx",      "args": ["--refresh-package", "gsa-perdiem-mcp", "--from", "gsa-perdiem-mcp", "gsa-perdiem-mcp"]    }  }}

The --refresh-package flag tells uv to check PyPI for a newer release each time your client launches the server, so fixes arrive automatically; without it, uv keeps serving whatever version it first cached. It adds a moment of network time at startup, so raise your platform's MCP startup timeout if it enforces a short one.

Restart the client and the tools appear.

Example prompts

  • "What's the per diem rate for Washington DC in FY2026?"
  • "Estimate travel costs for 4 nights in Boston in March."
  • "Compare per diem rates for DC, New York, and San Francisco."
  • "What are all the NSA per diem locations in Virginia?"
  • "Show me the M&IE meal breakdown for the $92 tier."
  • "Build a travel estimate: 3 trips to Seattle (4 nights each) and 2 trips to DC (3 nights each)."

Important: maximum reimbursement, not actual prices

Per diem rates are federal reimbursement ceilings per 41 CFR 301-11. They are not actual hotel prices. CONUS only. Non-foreign OCONUS rates (Alaska, Hawaii, territories) are set by DoD (DTMO); foreign rates by the State Department. Lodging taxes generally not included. First/last travel day M&IE at 75%.

Companion tools

Use alongside bls-oews-mcp (wage data) and gsa-calc-mcp (ceiling rates) for complete IGCE development. Per diem covers the travel component; BLS and CALC+ cover labor.

License

MIT

Trips crossing months or fiscal years. Add each month's lodging_total at the applicable fiscal year rate. Calculate M&IE once across the actual travel days: 75% on the departure and return days, 100% on intervening days. Do not add separate monthly mie_total or grand_total values because each estimate assumes its own departure and return. For example, four nights at a $92 daily M&IE rate cost $414 M&IE over five travel days; two independent two-night estimates sum to $460 M&IE.

來源:servers/gsa-perdiem-mcp/readme.md,提交 b30d160

工具

7

get_data_status

Get Per Diem Data Status

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.

無需輸入參數。

lookup_city_perdiem

Lookup City Per Diem

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.

輸入參數city必填state必填countyfiscal_year

lookup_zip_perdiem

Lookup ZIP Per Diem

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.

輸入參數countyzip_code必填fiscal_year

lookup_state_rates

Lookup State Rates

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.

輸入參數state必填fiscal_year

get_mie_breakdown

Get M&IE Breakdown

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.

輸入參數fiscal_year

estimate_travel_cost

Estimate Travel Cost

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.

輸入參數city必填state必填countynum_nights必填fiscal_yeartravel_month

compare_locations

Compare Locations

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.

輸入參數locations必填fiscal_year

版本歷史

11
  1. v1.2.8最新Oct 29, 2026
  2. v1.2.7Oct 21, 2026
  3. v1.2.6Oct 12, 2026
  4. v1.2.5Oct 11, 2026
  5. v1.2.4Oct 10, 2026
  6. v1.2.3Oct 10, 2026
  7. v1.2.0Sep 27, 2026
  8. v1.1.1Sep 26, 2026
  9. v1.1.0Sep 26, 2026
  10. v1.0.11Sep 25, 2026
  11. v1.0.10Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 1102tools 整合