per-diem
Daily travel allowances from bundled public rate tables: Poland, HMRC and GSA CONUS.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"per-diem": {
"command": "uvx",
"args": [
"https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/per-diem.mcpb"
]
}
}
}실행 가능한 패키지
0.22.0stdio원격 엔드포인트
https://mcp.zovo.one/mcp/per-diemstreamable-http할 수 있는 일
도구 목록
도구 (9)
🟢perdiem_rates(scheme, country, city)
List a scheme's bundled daily allowance rates with the authority, instrument, source URL and effective date they came from. Filter by country or city. Free and unlimited.
입력 스키마
{
"type": "object",
"properties": {
"scheme": {
"type": "string",
"enum": [
"pl",
"uk",
"us"
],
"description": "\"pl\" Polish delegation regulation, \"uk\" HMRC benchmark scale rates, \"us\" GSA CONUS standard. Omit for every scheme"
},
"country": {
"type": "string",
"description": "Country name or ISO code, e.g. Germany or DE. Matched exactly first, then as a substring"
},
"city": {
"type": "string",
"description": "City or locality name, for the schemes that publish per-city rates"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢perdiem_calc(scheme, destination, start, end, timezone, ...)
Calculate the daily travel allowance for one trip: the amount per day and the total in the scheme's currency, with the partial-day fraction and the meal deductions the scheme's own rule applies. Free and unlimited.
입력 스키마
{
"type": "object",
"properties": {
"scheme": {
"type": "string",
"enum": [
"pl",
"uk",
"us"
],
"description": "\"pl\" Polish delegation regulation, \"uk\" HMRC benchmark scale rates, \"us\" GSA CONUS standard"
},
"destination": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Country or locality, e.g. \"Germany\", \"Poland\", \"United Kingdom\", \"United States\""
},
"start": {
"type": "string",
"minLength": 1,
"description": "When the trip began, ISO 8601 WITH a zone: \"2026-03-28T22:00:00+01:00\", or \"2026-03-28T22:00\" together with timezone"
},
"end": {
"type": "string",
"minLength": 1,
"description": "When it ended, same form as start. It must be after start as an instant"
},
"timezone": {
"type": "string",
"description": "IANA id such as \"Europe/Warsaw\". Required when start or end carries no offset; also the zone the US scheme counts calendar days in"
},
"meals_provided": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string",
"enum": [
"breakfast",
"lunch",
"dinner"
]
}
},
"description": "Per day, in order: the free meals the traveller was given that day, e.g. [[\"breakfast\"],[\"breakfast\",\"lunch\"]]. Each one reduces that day's allowance by the scheme's own percentage or amount"
},
"meals_provided_daily": {
"$ref": "#/properties/meals_provided/items",
"description": "The same free meals on every day. Ignored for any day that meals_provided already names"
},
"lodging_nights": {
"type": "integer",
"minimum": 0,
"maximum": 366,
"description": "Nights of accommodation. What this pays depends on the scheme and the answer says so"
},
"late_evening": {
"type": "array",
"items": {
"type": "boolean"
},
"description": "UK only, per day: the journey was ongoing at 8pm and a meal was bought after it, which adds the 10.00 GBP supplement"
},
"fiscal_year": {
"type": "string",
"description": "US only, e.g. \"FY2025\". Defaults to the current bundled fiscal year"
}
},
"required": [
"scheme",
"destination",
"start",
"end"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡trip_record(name, scheme, destination, start, end, ...)
Calculate a trip and save it under a name, traveller taken from the shared business profile; returns the TRIP-YYYY-NNNN id. An identical record is refused and named, spending no slot. Free: 5 trips a calendar month.
입력 스키마
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "What to call it, e.g. \"Berlin client workshop\""
},
"scheme": {
"type": "string",
"enum": [
"pl",
"uk",
"us"
],
"description": "\"pl\" Polish delegation regulation, \"uk\" HMRC benchmark scale rates, \"us\" GSA CONUS standard"
},
"destination": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Country or locality, e.g. \"Germany\", \"Poland\", \"United Kingdom\", \"United States\""
},
"start": {
"type": "string",
"minLength": 1,
"description": "When the trip began, ISO 8601 WITH a zone: \"2026-03-28T22:00:00+01:00\", or \"2026-03-28T22:00\" together with timezone"
},
"end": {
"type": "string",
"minLength": 1,
"description": "When it ended, same form as start. It must be after start as an instant"
},
"timezone": {
"type": "string",
"description": "IANA id such as \"Europe/Warsaw\". Required when start or end carries no offset; also the zone the US scheme counts calendar days in"
},
"meals_provided": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string",
"enum": [
"breakfast",
"lunch",
"dinner"
]
}
},
"description": "Per day, in order: the free meals the traveller was given that day, e.g. [[\"breakfast\"],[\"breakfast\",\"lunch\"]]. Each one reduces that day's allowance by the scheme's own percentage or amount"
},
"meals_provided_daily": {
"$ref": "#/properties/meals_provided/items",
"description": "The same free meals on every day. Ignored for any day that meals_provided already names"
},
"lodging_nights": {
"type": "integer",
"minimum": 0,
"maximum": 366,
"description": "Nights of accommodation. What this pays depends on the scheme and the answer says so"
},
"late_evening": {
"type": "array",
"items": {
"type": "boolean"
},
"description": "UK only, per day: the journey was ongoing at 8pm and a meal was bought after it, which adds the 10.00 GBP supplement"
},
"fiscal_year": {
"type": "string",
"description": "US only, e.g. \"FY2025\". Defaults to the current bundled fiscal year"
},
"traveller": {
"type": "string",
"maxLength": 200,
"description": "Who travelled. Defaults to the shared business profile's name"
},
"purpose": {
"type": "string",
"maxLength": 2000,
"description": "Why the trip happened; kept on the record and carried onto the expense payload"
},
"project": {
"type": "string",
"maxLength": 200,
"description": "Project or client this belongs to; carried onto the expense payload"
}
},
"required": [
"name",
"scheme",
"destination",
"start",
"end"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢trip_list(scheme, destination, traveller, project, from, ...)
List saved trips with the scheme, destination, dates and total on each, and a total per currency. Filter by scheme, destination, traveller, project and start date range. Free and unlimited.
입력 스키마
{
"type": "object",
"properties": {
"scheme": {
"type": "string",
"enum": [
"pl",
"uk",
"us",
"all"
],
"description": "Default \"all\""
},
"destination": {
"type": "string",
"description": "Only trips to a destination containing this text"
},
"traveller": {
"type": "string",
"description": "Only trips by this traveller"
},
"project": {
"type": "string",
"description": "Only trips on this project"
},
"from": {
"type": "string",
"description": "YYYY-MM-DD, earliest start date"
},
"to": {
"type": "string",
"description": "YYYY-MM-DD, latest start date"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴trip_delete(trip)
Delete one saved trip and free the free-tier slot it held that month. A trip that has been exported or has an expense booked against it is refused with the blocker named, and nothing is written. Free and unlimited.
입력 스키마
{
"type": "object",
"properties": {
"trip": {
"type": "string",
"minLength": 1,
"description": "Trip id such as TRIP-2026-0001, or an exact or partial trip name. A partial name matching more than one trip is refused with the list"
}
},
"required": [
"trip"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢trip_export(trip, category, billable, split_lodging, mark_exported)
Return the exact expense_add arguments for a saved trip: one payload for subsistence and, with split_lodging, one for lodging. It writes nothing in the expense-tracker server; only mark_exported changes this trip. Pro.
입력 스키마
{
"type": "object",
"properties": {
"trip": {
"type": "string",
"minLength": 1,
"description": "Trip id such as TRIP-2026-0001, or an exact or partial trip name"
},
"category": {
"type": "string",
"maxLength": 200,
"description": "Expense category to put on the payload. Default \"travel\""
},
"billable": {
"type": "boolean",
"description": "Rebillable to the client. Default: true when the trip has a project, false otherwise"
},
"split_lodging": {
"type": "boolean",
"description": "Return lodging as its own expense rather than folded into the subsistence total. Default true"
},
"mark_exported": {
"type": "boolean",
"description": "Stamp exported_at on the trip so a later export can see it already went out. Default false"
}
},
"required": [
"trip"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢perdiem_report(from, to, scheme, traveller)
Total saved trips per scheme and calendar month, bucketed by start date: trips, days, subsistence and lodging, each in the scheme's own currency, with the trip ids behind every figure. Pro.
입력 스키마
{
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "YYYY-MM, earliest month by start date"
},
"to": {
"type": "string",
"description": "YYYY-MM, latest month by start date"
},
"scheme": {
"type": "string",
"enum": [
"pl",
"uk",
"us",
"all"
],
"description": "Default \"all\""
},
"traveller": {
"type": "string",
"description": "Only this traveller"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢license_status
Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪license_activate(key)
Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
입력 스키마
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "License key from checkout, MCPL1.<payload>.<signature>"
}
},
"required": [
"key"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}커뮤니티
증거