Skip to main content
Glama
irs-mileage-rate-per-diem-mcp

irs-mileage-rate-per-diem-mcp

irs-mileage-rate-per-diem-mcp

An MCP server that gives an AI assistant the official IRS standard mileage rates, including the July 1, 2026 increase to 76 cents a mile, the GSA per diem rates for every ZIP code for FY2026 and FY2027, and the IRS high-low per diem rates from Notice 2026-60. It calculates mileage deductions and trip per diem with the right rate for each date.

Hosted endpoint, no sign-in and no token:

https://irs-mileage-rate-per-diem-mcp.lipmichal.workers.dev/mcp

Tools

Tool

What it does

get_mileage_rate

IRS business, medical, charity and military moving rates for a year or date (2011-2026), the depreciation part of the business rate and the FAVR / employer-vehicle maximum value.

calculate_mileage_deduction

Deduction or tax-free reimbursement for a list of trips, each at the rate in force on its date. Splits 2026 at July 1 and returns the basis reduction for business miles.

get_per_diem_rates

GSA maximum lodging by month and M&IE for a ZIP code or city, with the meal breakdown and the 75% first and last day amount. FY2026 and FY2027.

calculate_trip_per_diem

Maximum per diem for a trip: each night at that month's lodging rate (across seasons and the Oct. 1 fiscal year change), M&IE with 75% on travel days, minus provided meals.

get_high_low_per_diem

IRS high-low rates, the meals portion, transportation industry M&IE and incidentals rate for a date, and whether a city is a high-cost locality on that date.

Every result has structured JSON, a plain-English summary, as_of, source (the irs.gov or gsa.gov document) and more (a self-employed tax calculator on taxbreakcalc.com).

Related MCP server: goodvat

What it knows that your model does not

  • The IRS raised the 2026 business mileage rate mid-year: 72.5 cents a mile from Jan. 1 to June 30, 2026 and 76 cents from July 1, 2026 (Announcement 2026-11). Medical and military moving went from 20.5 to 23.5 cents. Charity stays at 14 cents.

  • The depreciation part of the 2026 business rate is 35 cents a mile. The FAVR and employer-vehicle maximum value for 2026 is $61,700 (Notice 2026-10).

  • FY2027 GSA per diem (from Oct. 1, 2026): standard CONUS rate $113 lodging and $68 M&IE, and the rates for 295 named destinations by month.

  • IRS high-low method from Oct. 1, 2026: $329 high and $230 low, with $86 and $74 treated as meals (Notice 2026-60). Tucson, San Mateo, Albuquerque and Cody were added; Panama City was removed.

  • The IRS had not announced the 2027 mileage rates on 2026-11-03. The tools say so.

Install

Claude.ai custom connector or ChatGPT developer mode

Add a custom connector and paste the URL. No token is needed.

https://irs-mileage-rate-per-diem-mcp.lipmichal.workers.dev/mcp

Claude Code

claude mcp add --transport http mileage-per-diem https://irs-mileage-rate-per-diem-mcp.lipmichal.workers.dev/mcp

Or run it locally:

claude mcp add mileage-per-diem -- npx -y github:theluckystrike/irs-mileage-rate-per-diem-mcp

Claude Desktop

Add this to claude_desktop_config.json:

{
  "mcpServers": {
    "mileage-per-diem": {
      "command": "npx",
      "args": ["-y", "github:theluckystrike/irs-mileage-rate-per-diem-mcp"]
    }
  }
}

Cursor

Add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "mileage-per-diem": {
      "url": "https://irs-mileage-rate-per-diem-mcp.lipmichal.workers.dev/mcp"
    }
  }
}

VS Code

Add this to .vscode/mcp.json:

{
  "servers": {
    "mileage-per-diem": {
      "type": "http",
      "url": "https://irs-mileage-rate-per-diem-mcp.lipmichal.workers.dev/mcp"
    }
  }
}

Node 20 or newer is needed for the local npx version.

Example prompts

  • "What is the IRS mileage rate for 2026? Did it change during the year?"

  • "I drove 6,200 business miles from January to June 2026 and 5,800 from July to December. What is my deduction?"

  • "What is the per diem for ZIP 02110 in March 2027?"

  • "Calculate the per diem for a trip to Washington DC from September 29 to October 2, 2026, with lunch provided one day."

  • "What are the IRS high-low per diem rates from October 2026, and is Chicago high-cost in November?"

Data sources

IRS Notice 2026-10, Announcement 2026-11, Notice 2025-5, the IRS standard mileage rates table, Notices 2026-60 and 2025-54, the GSA FY2026 and FY2027 per diem ZIP code files and the GSA M&IE breakdown table, all fetched on 2026-11-03. See DATA_SOURCES.md.

Limitations

  • General information, not tax advice.

  • Per diem covers the continental U.S. (CONUS) only. Alaska, Hawaii, territories and foreign rates (OCONUS, set by the Department of Defense and State Department) are not included.

  • GSA rates for FY2026 and FY2027 only. Mileage rates for 2011 to 2026.

  • Some ZIP codes span more than one per diem area. The tools list every match; pick by the county the lodging is in.

  • The trip calculator applies the federal travel rules (75% M&IE on the first and last day). Your employer's policy can differ.

More

Self-employed and tracking deductions? Use the self-employed set-aside calculator on taxbreakcalc.com.

Part of the Zovo MCP collection: https://mcp.zovo.one

Development

npm install
npm run build
npm test

src/core.ts holds the rates and rules and has no I/O. src/gsa.ts and src/highcost.ts are generated from the GSA files and Notice tables. src/stdio.ts is the local entry and src/worker.ts is the Cloudflare Worker entry. Both use the same tool registry in src/tools.ts.

License

MIT

More data servers from the same author

Each one is free, needs no API key and has a hosted URL you can paste into Claude or ChatGPT.

server

tools

hosted URL

cups-to-grams-mcp

convert_ingredient, search_ingredients, scale_recipe, convert_oven_temperature

https://cups-to-grams-mcp.lipmichal.workers.dev/mcp

dscr-loan-calculator-mcp

calculate_dscr, max_loan_for_target_dscr, rent_needed_for_target_dscr, compare_scenarios, amortization_summary

https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcp

gold-price-per-gram-mcp

get_gold_price_per_gram, get_metal_prices, calculate_jewelry_value, convert_gold_units

https://gold-price-per-gram-mcp.lipmichal.workers.dev/mcp

lake-level-mcp

search_lakes, get_lake_level, get_lake_history, compare_lakes

https://lake-level-mcp.lipmichal.workers.dev/mcp

minimum-wage-mcp

get_minimum_wage, list_upcoming_increases, compare_states, annual_income_at_minimum_wage

https://minimum-wage-mcp.lipmichal.workers.dev/mcp

no-tax-on-overtime-mcp

calculate_overtime_deduction, calculate_tips_deduction, calculate_senior_deduction, estimate_tax_savings, explain_eligibility

https://no-tax-on-overtime-mcp.lipmichal.workers.dev/mcp

paycheck-calculator-mcp

calculate_take_home_pay, compare_states_take_home, salary_to_hourly, hourly_to_salary, get_federal_tax_brackets

https://paycheck-calculator-mcp.lipmichal.workers.dev/mcp

uk-income-tax-salary-mcp

calculate_uk_take_home, get_uk_tax_bands, compare_salaries, marginal_rate_at_income

https://uk-income-tax-salary-mcp.lipmichal.workers.dev/mcp

us-federal-holidays-business-days-mcp

list_federal_holidays, is_business_day, add_business_days, count_business_days, invoice_due_date

https://us-federal-holidays-business-days-mcp.lipmichal.workers.dev/mcp

ab-test-sample-size-calculator-mcp

calculate_sample_size, estimate_test_duration, test_ab_significance, fisher_exact_test, check_peeking_risk

https://ab-test-sample-size-calculator-mcp.lipmichal.workers.dev/mcp

aca-premium-tax-credit-calculator-mcp

get_federal_poverty_level, calculate_premium_tax_credit, check_subsidy_cliff, get_aptc_repayment_cap

https://aca-premium-tax-credit-calculator-mcp.lipmichal.workers.dev/mcp

ap-score-distributions-mcp

get_ap_score_distribution, estimate_ap_percentile, compare_ap_exams, list_ap_exams, estimate_ap_score_from_composite

https://ap-score-distributions-mcp.lipmichal.workers.dev/mcp

car-loan-interest-deduction-calculator-mcp

calculate_car_loan_interest_deduction, calculate_salt_deduction, get_tax_brackets_and_standard_deduction, calculate_child_tax_credit

https://car-loan-interest-deduction-calculator-mcp.lipmichal.workers.dev/mcp

cpi-inflation-calculator-mcp

calculate_inflation, get_latest_cpi, get_inflation_rate, compare_raise_to_inflation, calculate_social_security_cola

https://cpi-inflation-calculator-mcp.lipmichal.workers.dev/mcp

estate-gift-tax-exemption-calculator-mcp

get_exemption_amounts, calculate_estate_tax, check_gift, compare_years

https://estate-gift-tax-exemption-calculator-mcp.lipmichal.workers.dev/mcp

recipe-nutrition-calculator-mcp

lookup_ingredient_nutrition, calculate_recipe_nutrition, round_nutrition_label, scale_recipe_nutrition

https://recipe-nutrition-calculator-mcp.lipmichal.workers.dev/mcp

retirement-contribution-limits-2027-mcp

get_contribution_limits, calculate_max_contribution, get_social_security_cola, compare_years

https://retirement-contribution-limits-2027-mcp.lipmichal.workers.dev/mcp

section-179-deduction-calculator-mcp

calculate_section_179, calculate_bonus_depreciation, get_vehicle_depreciation_limits, calculate_asset_loan_payment

https://section-179-deduction-calculator-mcp.lipmichal.workers.dev/mcp

student-loan-repayment-assistance-plan-calculator-mcp

calculate_rap_payment, compare_rap_vs_standard, get_federal_loan_limits, get_plan_transition_dates

https://student-loan-repayment-assistance-plan-calculator-mcp.lipmichal.workers.dev/mcp

subdomain-finder-mcp

find_subdomains, resolve_subdomains, get_certificate_history, summarize_attack_surface

https://subdomain-finder-mcp.lipmichal.workers.dev/mcp

uk-statutory-sick-pay-maternity-pay-calculator-mcp

calculate_statutory_sick_pay, calculate_statutory_maternity_pay, get_minimum_wage_rates, check_eligibility

https://uk-statutory-sick-pay-maternity-pay-calculator-mcp.lipmichal.workers.dev/mcp

The paid back-office collection (invoices, VAT, PDFs, spreadsheets) is at https://mcp.zovo.one

Available Tools

5 tools
calculate_mileage_deductionMileage deduction or reimbursement calculatorA
Read-onlyIdempotent
Inspect

Calculates the deduction or tax-free reimbursement for driven miles at the IRS standard mileage rates, splitting by the date each trip was driven. Applies the 2026 mid-year increase automatically (72.5 cents before July 1, 76 cents from July 1). Supports business, medical, charity and military moving miles, returns the amount per rate period and purpose, and the depreciation basis reduction for business miles. Notes who can and cannot deduct (employees' unreimbursed mileage is not deductible after the One, Big, Beautiful Bill Act).

NameRequiredDescriptionDefault
tripsYesTrips or mileage totals, each with a date.
default_purposeNoPurpose for trips that do not set one. Default business.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: it discloses concrete 2026 rate values, the automatic mid-year split, what the response contains (amount per rate period and purpose, depreciation basis reduction), and an eligibility caveat about unreimbursed employee mileage. That is substantive behavioral context an agent cannot get from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then rate mechanics, then return contents, then eligibility. Dense but nearly every clause carries information. It is a single long paragraph rather than structured, which slightly reduces scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so — amounts per rate period and purpose, plus depreciation basis reduction. Combined with the rate values and eligibility note, an agent has enough to call and interpret results correctly; only the moving/military wording is a small blemish.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: the date on each trip determines which rate period applies, and purposes are enumerated with a business default. Minor friction: it says 'military moving' while the enum value is just 'moving', a small mismatch an agent must resolve.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: calculates the deduction or tax-free reimbursement for driven miles at IRS standard rates. The scope (date-split rates, per-purpose breakdown, depreciation basis) clearly separates it from sibling rate-lookup tools like get_mileage_rate and from calculate_trip_per_diem.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when to use it — computing a deduction or reimbursement from actual trips, with a note on who can and cannot deduct. It does not explicitly route the agent away from siblings (e.g. 'use get_mileage_rate to look up a rate without computing an amount'), so the alternative selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_trip_per_diemTrip per diem calculator (GSA rates)A
Read-onlyIdempotent
Inspect

Calculates the maximum federal per diem for a business trip: lodging for each night at that month's GSA rate (crossing seasons and the Oct. 1 fiscal year change), M&IE for each day with 75% on the first and last day, minus meals provided at the GSA breakdown amounts. Uses the official FY2026 and FY2027 GSA rates for trips between Oct. 1, 2025 and Sept. 30, 2027.

NameRequiredDescriptionDefault
zipNo5-digit ZIP code of the destination (best match).
cityNoCity or county name, e.g. "Boston" or "Maricopa".
stateNo2-letter state code, e.g. MA.
end_dateYesLast travel day (YYYY-MM-DD).
start_dateYesFirst travel day (YYYY-MM-DD).
meals_providedNoNumber of meals provided (by a conference or the employer) to deduct from M&IE.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower, yet the description adds real substance: 75% M&IE on first/last day, meal deductions taken at GSA breakdown amounts, season and Oct. 1 fiscal-year crossing, and the supported rate vintages. It stops short of describing output shape or what happens on unmatched locations or out-of-range dates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the computation logic front-loaded and the coverage window stated last as a boundary condition; there is no filler. The nested parentheticals in the first sentence make it dense, but each clause carries computation-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should convey what comes back — a single total, an itemized lodging/M&IE breakdown, or per-day lines — and it does not. It also omits error behavior for dates outside the supported fiscal years or unresolvable locations, which matters for a tool whose correctness hinges on rate lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all six parameters, establishing a baseline of 3. The description adds some interpretive value by explaining that meals_provided is deducted at the GSA breakdown amounts and that dates are evaluated per night/day across seasons, but it says nothing about how zip/city/state are resolved or prioritized beyond the schema's 'best match' note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb ('Calculates') and a precisely scoped resource ('maximum federal per diem for a business trip'), enumerating the components computed: lodging per night, M&IE per day with proration, and meal deductions. It is clearly distinct from the getter-style siblings (get_per_diem_rates, get_mileage_rate), but it never names or contrasts those siblings explicitly, keeping it short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the FY2026/FY2027 and Oct. 1, 2025–Sept. 30, 2027 window functions as an eligibility boundary, which is useful. However, there is no explicit 'use this instead of get_per_diem_rates when...' guidance and no stated behavior for trips outside that window, so the agent must infer routing and edge handling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_high_low_per_diemIRS high-low per diem rates and high-cost localitiesA
Read-onlyIdempotent
Inspect

Returns the IRS high-low substantiation method rates for a date and whether a city is a high-cost locality then: from Oct. 1, 2026 $329 high / $230 low with $86 / $74 treated as meals (Notice 2026-60); Oct. 1, 2025 - Sept. 30, 2026 $319 / $225 (Notice 2025-54). Also the transportation industry M&IE ($80 CONUS, $86 OCONUS) and the $5 incidental-expenses-only rate. Checks the 91 FY2027 high-cost localities and their seasonal portions (e.g. Tucson added, Panama City removed).

NameRequiredDescriptionDefault
cityNoCity or county to test against the high-cost list.
dateNoTravel date. Default today (YYYY-MM-DD).
stateNo2-letter state code or state name.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and non-open-world, so the safety profile is covered. The description goes well beyond that by disclosing effective-date windows (Oct. 1, 2026 onward vs. Oct. 1, 2025 – Sept. 30, 2026), the governing IRS notices, the transportation-industry M&IE rates, the $5 incidental-only rate, and the size of the high-cost locality list including seasonal portions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, which is good, but the remainder is a dense run-on of dollar figures, notice numbers, and parenthetical asides. The rate values and Notice citations are plausibly useful for answering without follow-up calls, but the packing hurts scanability and buries the high-cost-locality check mid-sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing returns, and it does: rate pairs, meal components, transportation M&IE, incidental rate, and a high-cost locality determination with seasonal variants. Gaps remain around behavior for unmatched cities, missing state, or dates outside the published windows, and around response shape, but the substantive business content is there.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents city, date, and state, including the YYYY-MM-DD pattern and the today-default. The description adds only indirect meaning ('for a date', 'whether a city is a high-cost locality') and never mentions the state parameter or how city+state combine for locality matching, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it returns IRS high-low substantiation rates for a date and a boolean-ish answer on whether a city is a high-cost locality. The 'high-low substantiation method' phrasing implicitly separates it from get_per_diem_rates and calculate_trip_per_diem, but no sibling is named, so the agent must infer the routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the distinctive 'high-low substantiation method' framing and by the explicit mention of checking a city against the 91 FY2027 high-cost localities. There is no 'use this instead of X when...' statement and no note about when the standard per diem tool would be preferred, leaving the sibling choice to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mileage_rateIRS standard mileage rates (2011-2026, incl. the July 2026 increase)A
Read-onlyIdempotent
Inspect

Returns the official IRS standard mileage rates in cents per mile for business, medical, charity and military moving use, for a year or a specific date. Knows the mid-year 2026 change: 72.5 cents for business from Jan. 1 to June 30, 2026 (Notice 2026-10) and 76 cents from July 1, 2026 (Announcement 2026-11, fuel price increase), medical/moving 20.5 then 23.5 cents, charity 14 cents. Also returns the depreciation (basis reduction) part of the business rate (35 cents for 2026) and the FAVR / employer-vehicle maximum value ($61,700 for 2026). 2027 rates are not announced yet and the tool says so.

NameRequiredDescriptionDefault
dateNoA date the miles were driven; returns the rate in force that day (YYYY-MM-DD).
yearNoTax year, e.g. 2026. Default 2026.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds genuinely behavioral detail: the tool honors the mid-year 2026 split (72.5 cents through June 30, 76 cents from July 1), returns auxiliary values (35-cent depreciation component, $61,700 FAVR maximum), and explicitly reports that 2027 rates are unavailable instead of failing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The most important information – purpose, units, categories, and the mid-year caveat – is front-loaded in the first two sentences. The remaining sentences pack in many specific figures (72.5, 76, 20.5, 23.5, 14, 35, 61,700); each is useful but the density approaches list-like rather than prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the return-value burden and does so: units (cents per mile), categories, the depreciation component, and the FAVR maximum value. It also covers the edge case of unannounced future years, which is the main failure mode an agent would hit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (date pattern YYYY-MM-DD, year 2011-2100, default 2026) are already documented. The description reinforces the date semantics by noting the mid-year switch, but adds little beyond what the schema fields state, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb and resource: 'Returns the official IRS standard mileage rates in cents per mile for business, medical, charity and military moving use.' That is enough for an agent to distinguish it from calculate_mileage_deduction, which computes a deduction rather than looking up statutory rates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the two lookup modes ('for a year or a specific date') and the boundary that 2027 is not yet announced, but it never explicitly tells the agent when to call this versus calculate_mileage_deduction. The when-to-use is inferable from the purpose, not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_per_diem_ratesGSA per diem rates by ZIP or city (FY2026 and FY2027)A
Read-onlyIdempotent
Inspect

Returns the official GSA federal per diem rates for a U.S. (CONUS) destination by ZIP code or city/state: maximum lodging per night by month and the meals and incidental expenses (M&IE) rate with its breakfast/lunch/dinner/incidentals breakdown and the 75% first/last-day amount. Covers FY2026 (Oct. 1, 2025 - Sept. 30, 2026) and FY2027 (from Oct. 1, 2026; standard rate $113 lodging and $68 M&IE). Data from GSA's FY2026 and FY2027 ZIP code files, so it knows rates newer than a model's training data.

NameRequiredDescriptionDefault
zipNo5-digit ZIP code of the destination (best match).
cityNoCity or county name, e.g. "Boston" or "Maricopa".
dateNoTravel date; picks the fiscal year and shows that night's lodging rate (YYYY-MM-DD).
stateNo2-letter state code, e.g. MA.
fiscal_yearNoFederal fiscal year (2027 = Oct. 2026 - Sept. 2027). Default: the current one.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuine context beyond them: the GSA ZIP-file data source, the FY2026/FY2027 coverage with the FY2027 standard rate figures, and what fields come back. It does not say what happens when no location parameter is supplied, which matters for a 5-param, zero-required tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph that front-loads the core purpose and output contents before the fiscal-year detail. It is borderline long, and the embedded '$113 lodging and $68 M&IE' figures are close to filler, but every sentence carries usable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only lookup with no output schema, the description covers data provenance, fiscal-year scope, and the shape of the result well. The remaining gap is the absent-parameter and multi-parameter behavior (all five params are optional), which an agent would need to know to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above baseline by clarifying the fiscal-year semantics ('FY2027 from Oct. 1, 2026') and framing ZIP-versus-city as alternative lookup paths that the schema only hints at. It still does not explain how zip, city, and state combine or which takes precedence when several are passed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Returns the official GSA federal per diem rates') with the lookup key ('by ZIP code or city/state') and enumerates the returned components: monthly lodging caps, M&IE with meal breakdown, and the 75% first/last-day amount. It implicitly separates itself from the calculate_* siblings by being a rate lookup rather than a trip computation, but it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It signals the relevant window ('FY2026 ... and FY2027') and that data is fresher than training data, which implies 'use this for current rates'. However, it gives no explicit when-to-use guidance against calculate_trip_per_diem or get_high_low_per_diem, and no indication of whether a location argument is mandatory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observedcalculate_mileage_deduction
    • First observedcalculate_trip_per_diem
    • First observedget_high_low_per_diem
    • First observedget_mileage_rate
    • First observedget_per_diem_rates

TDQS

A4/5.0

Scored across 5 tools

Disambiguation4/5

The get/calculate split is clear: lookup tools retrieve rates, while calculate tools compute deductions or trip totals. The only potential confusion is between get_per_diem_rates (GSA CONUS lodging/M&IE by ZIP) and get_high_low_per_diem (IRS high-low substantiation), though the descriptions distinguish them well.

Naming Consistency5/5

All tools follow a consistent snake_case verb_noun pattern: get_mileage_rate, calculate_mileage_deduction, get_per_diem_rates, calculate_trip_per_diem, get_high_low_per_diem. The get vs calculate distinction is used predictably.

Tool Count5/5

Five tools is well-scoped for a focused IRS mileage and per diem server. Each tool covers a distinct lookup or calculation need without obvious redundancy.

Completeness4/5

Core workflows are covered: mileage rate lookup, mileage deduction calculation, GSA per diem lookup, trip per diem calculation, and IRS high-low lookup. Minor gaps remain, such as a dedicated high-low trip calculation and OCONUS/foreign per diem lookup.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to answer tax compliance questions (VAT, sales tax, GST) and validate EU VAT numbers in real time via the VIES registry.
    2
    5 npm
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to perform 22 unit conversions and common calculations such as length, weight, temperature, volume, tip, percentage, date difference, age, currency, cooking, and fuel consumption.
    14
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to work out the tourist, city, occupancy and hotel taxes a stay adds on top of the room price, night by night, for given dates, guests and room cost, with each figure tied to its official source and check date. It also exposes full local rules (rates, seasons, caps, exemptions) for researched places and returns links to live hotel and rental prices.
    Apache 2.0