Skip to main content
Glama

Travel Per Diem & Allowance Calculator

Server Details

Compliant per diems in one call: official US GSA, German BMF and UK HMRC rates, with a trip…

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
68.4% over 23 days
Last Tested
Transport
Streamable HTTP
URL

TDQS

A3.5/5.0

Scored across 4 tools

Disambiguation3/5

The four core tools (calculate_trip_allowance, get_per_diem_rates, list_per_diem_regimes, search_per_diem_locations) have distinct purposes, but the regime entries (de-bmf, us-gsa, us-state, uk-hmrc) read like overlapping ways to produce the same allowance output as calculate_trip_allowance, so it is unclear when to call a regime tool versus the general calculator.

Naming Consistency2/5

Core tools follow a clean snake_case verb_noun pattern, but the regime tools use kebab-case codes (de-bmf, us-gsa, us-state, uk-hmrc) that are neither verb_noun nor the same convention, producing a mixed naming scheme across the set.

Tool Count4/5

A count of 4 core tools is well-scoped for a rate/allowance calculator, with each tool earning its place (compute, look up rates, list regimes, search locations); if the regime entries are separate tools the set is still within a reasonable range.

Completeness4/5

The surface covers the key lifecycle: searching locations, listing regimes, fetching rates, and computing trip allowances with fallbacks and freshness. Minor gaps exist (e.g., no batching or explicit error/reconciliation tooling), but core workflows are covered.

Tool Schema Changelog

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

  1. 3 tool updates
    • Changedcalculate_trip_allowance2 fields changed
      • changedInput schema / properties / regime / enum
        Previous value: -[
        -  "de-bmf",
        -  "us-gsa",
        -  "uk-hmrc"
        -]New value: +[
        +  "de-bmf",
        +  "us-gsa",
        +  "us-state",
        +  "uk-hmrc"
        +]
      • changedOutput schema / properties / regime / enum
        Previous value: -[
        -  "de-bmf",
        -  "us-gsa",
        -  "uk-hmrc"
        -]New value: +[
        +  "de-bmf",
        +  "us-gsa",
        +  "us-state",
        +  "uk-hmrc"
        +]
    • Changedget_per_diem_rates4 fields changed
      • changedInput schema / properties / regime / description
        Previous value: -"de-bmf (Germany), us-gsa (US CONUS) or uk-hmrc (UK overseas scale rates)"New value: +"de-bmf (Germany), us-gsa (US CONUS), us-state (US State Dept foreign) or uk-hmrc (UK overseas scale rates)"
      • changedInput schema / properties / regime / enum
        Previous value: -[
        -  "de-bmf",
        -  "us-gsa",
        -  "uk-hmrc"
        -]New value: +[
        +  "de-bmf",
        +  "us-gsa",
        +  "us-state",
        +  "uk-hmrc"
        +]
      • changedOutput schema / properties / regime / enum
        Previous value: -[
        -  "de-bmf",
        -  "us-gsa",
        -  "uk-hmrc"
        -]New value: +[
        +  "de-bmf",
        +  "us-gsa",
        +  "us-state",
        +  "uk-hmrc"
        +]
      • addedOutput schema / properties / us_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "properties": {
        +        "breakfast": {
        +          "description": "M&IE breakdown (FTR ch. 301 Appendix B): breakfast",
        +          "title": "Breakfast",
        +          "type": "number"
        +        },
        +        "country_label": {
        +          "description": "Country as named by the State Dept",
        +          "title": "Country Label",
        +          "type": "string"
        +        },
        +        "dinner": {
        +          "description": "M&IE breakdown: dinner",
        +          "title": "Dinner",
        +          "type": "number"
        +        },
        +        "effective_from": {
        +          "description": "Date the State Dept made this post's current rate effective",
        +          "format": "date",
        +          "title": "Effective From",
        +          "type": "string"
        +        },
        +        "first_last_day": {
        +          "description": "75 % of M&IE for the first and last day of travel",
        +          "title": "First Last Day",
        +          "type": "number"
        +        },
        +        "footnote_url": {
        +          "description": "Where the footnotes are explained",
        +          "title": "Footnote Url",
        +          "type": "string"
        +        },
        +        "footnotes": {
        +          "description": "State Dept footnote numbers for this post (see footnote_url)",
        +          "items": {
        +            "type": "integer"
        +          },
        +          "title": "Footnotes",
        +          "type": "array"
        +        },
        +        "incidentals": {
        +          "description": "M&IE breakdown: incidental expenses",
        +          "title": "Incidentals",
        +          "type": "number"
        +        },
        +        "lodging": {
        +          "description": "Maximum lodging rate for the requested date (USD)",
        +          "title": "Lodging",
        +          "type": "integer"
        +        },
        +        "lunch": {
        +          "description": "M&IE breakdown: lunch",
        +          "title": "Lunch",
        +          "type": "number"
        +        },
        +        "mie": {
        +          "description": "Meals & incidental expenses rate per full day (USD)",
        +          "title": "Mie",
        +          "type": "integer"
        +        },
        +        "post": {
        +          "description": "Post (location) as named by the State Dept; 'Other' = rest of the country",
        +          "title": "Post",
        +          "type": "string"
        +        },
        +        "seasons": {
        +          "description": "Seasons of this post (a season may wrap the year end, e.g. 10-01..04-30)",
        +          "items": {
        +            "properties": {
        +              "end": {
        +                "description": "Season end as MM-DD",
        +                "title": "End",
        +                "type": "string"
        +              },
        +              "lodging": {
        +                "description": "Maximum lodging rate per night (USD)",
        +                "title": "Lodging",
        +                "type": "integer"
        +              },
        +              "mie": {
        +                "description": "M&IE rate per day (USD)",
        +                "title": "Mie",
        +                "type": "integer"
        +              },
        +              "start": {
        +                "description": "Season start as MM-DD",
        +                "title": "Start",
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "start",
        +              "end",
        +              "lodging",
        +              "mie"
        +            ],
        +            "title": "GsaSeason",
        +            "type": "object"
        +          },
        +          "title": "Seasons",
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "post",
        +        "country_label",
        +        "lodging",
        +        "mie",
        +        "breakfast",
        +        "lunch",
        +        "dinner",
        +        "incidentals",
        +        "first_last_day",
        +        "seasons",
        +        "effective_from",
        +        "footnotes",
        +        "footnote_url"
        +      ],
        +      "title": "StateDetail",
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "us-state breakdown (only for regime us-state)"
        +}
    • Changedsearch_per_diem_locations4 fields changed
      • changedInput schema / properties / regime / enum
        Previous value: -[
        -  "de-bmf",
        -  "us-gsa",
        -  "uk-hmrc"
        -]New value: +[
        +  "de-bmf",
        +  "us-gsa",
        +  "us-state",
        +  "uk-hmrc"
        +]
      • changedOutput schema / properties / items / items / properties / country / description
        Previous value: -"ISO 3166-1 alpha-2"New value: +"ISO 3166-1 alpha-2 ('*' for the us-state 'Other Foreign Localities' rate)"
      • changedOutput schema / properties / items / items / properties / regime / enum
        Previous value: -[
        -  "de-bmf",
        -  "us-gsa",
        -  "uk-hmrc"
        -]New value: +[
        +  "de-bmf",
        +  "us-gsa",
        +  "us-state",
        +  "uk-hmrc"
        +]
      • changedOutput schema / properties / regime / enum
        Previous value: -[
        -  "de-bmf",
        -  "us-gsa",
        -  "uk-hmrc"
        -]New value: +[
        +  "de-bmf",
        +  "us-gsa",
        +  "us-state",
        +  "uk-hmrc"
        +]
  2. 4 tool updates
    • First observedcalculate_trip_allowance
    • First observedget_per_diem_rates
    • First observedlist_per_diem_regimes
    • First observedsearch_per_diem_locations

Publisher details

Operator
Not applicable
Vendor relationship
First-party
Trust center
Not applicable
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources