Zovo Per Diem Calculator
Travel allowance worksheets
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"zovo-per-diem-calculator": {
"url": "https://per-diem.zovo.one/mcp"
}
}
}遠端端點
https://per-diem.zovo.one/mcpstreamable-http它能做什麼
工具清單
工具(2)
🟢calculate_per_diem(trips)
Use this when the user wants a per diem calculator, gsa per diem calculator, or travel per diem calculator with per diem meal deduction and a downloadable XLSX/CSV expense worksheet. Covers bundled GSA CONUS FY2026/FY2027 only; up to 10 trips, 10 contiguous stops per trip, 92 days between arrival and departure, and 400 day rows per call. Furnished government or registration meals reduce allowances; common-carrier meals and complimentary hotel breakfasts are not deductions. Same-day travel requires more than 12 hours; no times are taken. Do not use for OCONUS, lodging taxes, agency policies or FY2028.
輸入結構描述
{
"type": "object",
"properties": {
"trips": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Optional trip label, without personal details. Example: DC conference.",
"type": "string",
"maxLength": 60
},
"stops": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"location": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "Five-digit ZIP or City, ST. Example: 20001 or Austin, TX."
},
"county": {
"description": "County to resolve an ambiguous ZIP or city. Example: Hampden.",
"type": "string",
"maxLength": 100
},
"arrive": {
"type": "string",
"maxLength": 10,
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Arrival day, inclusive. Example: 2026-10-27."
},
"depart": {
"type": "string",
"maxLength": 10,
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Departure day, inclusive for meals; no lodging. Example: 2026-10-29."
},
"nightly_lodging_cost": {
"description": "Actual room cost before taxes in USD, at most two decimals. Example: 250.50; omit for the maximum.",
"type": "number",
"minimum": 0,
"maximum": 5000
}
},
"required": [
"location",
"arrive",
"depart"
]
},
"description": "One to ten contiguous stops in date order. Example: [{location:\"20001\",arrive:\"2026-10-27\",depart:\"2026-10-29\"}]."
},
"meals_provided": {
"description": "Furnished meals; duplicate dates merge. Example: [{date:\"2026-10-28\",lunch:true}].",
"maxItems": 60,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"maxLength": 10,
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Day of furnished meals. Example: 2026-10-28."
},
"breakfast": {
"description": "Government or registration-fee breakfast provided. Example: true.",
"type": "boolean"
},
"lunch": {
"description": "Government or registration-fee lunch provided. Example: true.",
"type": "boolean"
},
"dinner": {
"description": "Government or registration-fee dinner provided. Example: false.",
"type": "boolean"
}
},
"required": [
"date"
]
}
}
},
"required": [
"stops"
]
},
"description": "One to ten trips. Example: [{name:\"DC\",stops:[{location:\"20001\",arrive:\"2026-10-27\",depart:\"2026-10-29\"}]}]."
}
},
"required": [
"trips"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"worksheet",
"rates"
]
},
"source": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"item": {
"type": "number"
},
"name": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"item",
"name",
"message"
],
"additionalProperties": false
}
},
"downloads": {
"type": "object",
"properties": {
"xlsx": {
"type": "string"
},
"csv": {
"type": "string"
}
},
"required": [
"xlsx",
"csv"
],
"additionalProperties": false
},
"trips": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"days": {
"type": "number"
},
"nights": {
"type": "number"
},
"first_day": {
"type": "string"
},
"totals": {
"type": "object",
"properties": {
"lodging_maximum": {
"type": "string"
},
"lodging_allowed": {
"type": "string"
},
"mie_allowed": {
"type": "string"
},
"total": {
"type": "string"
}
},
"required": [
"lodging_maximum",
"lodging_allowed",
"mie_allowed",
"total"
],
"additionalProperties": false
},
"preview": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"date": {
"type": "string"
},
"day_type": {
"type": "string"
},
"destination": {
"type": "string"
},
"lodging_allowed": {
"type": [
"string",
"null"
]
},
"mie_allowed": {
"type": "string"
},
"total": {
"type": "string"
}
},
"required": [
"date",
"day_type",
"destination",
"lodging_allowed",
"mie_allowed",
"total"
],
"additionalProperties": false
},
{
"type": "array",
"items": [
{
"type": "number"
},
{
"type": [
"number",
"null"
]
},
{
"type": "number"
}
],
"additionalItems": false,
"minItems": 3,
"maxItems": 3
}
]
}
}
},
"required": [
"name",
"days",
"nights",
"totals",
"preview"
],
"additionalProperties": false
}
},
"totals": {
"type": "object",
"properties": {
"lodging_maximum": {
"type": "string"
},
"lodging_allowed": {
"type": "string"
},
"mie_allowed": {
"type": "string"
},
"total": {
"type": "string"
}
},
"required": [
"lodging_maximum",
"lodging_allowed",
"mie_allowed",
"total"
],
"additionalProperties": false
},
"rates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"location": {
"type": "string"
},
"destination": {
"type": "string"
},
"state": {
"type": "string"
},
"location_defined": {
"type": "string"
},
"fiscal_year": {
"type": "number"
},
"lodging": {
"type": "array",
"items": {
"type": "number"
}
},
"mie": {
"type": "number"
},
"breakfast": {
"type": "number"
},
"lunch": {
"type": "number"
},
"dinner": {
"type": "number"
},
"incidentals": {
"type": "number"
},
"first_last_day": {
"type": "string"
},
"matched_by": {
"type": "string"
},
"warning": {
"type": "string"
}
},
"required": [
"location",
"destination",
"state",
"location_defined",
"fiscal_year",
"lodging",
"mie",
"breakfast",
"lunch",
"dinner",
"incidentals",
"first_last_day",
"matched_by",
"warning"
],
"additionalProperties": false
}
},
"fiscal_year": {
"type": "number"
},
"preview_columns": {
"type": "array",
"items": {
"type": "string"
}
},
"preview_destinations": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": [
{
"type": "string"
}
],
"additionalItems": false,
"minItems": 1,
"maxItems": 1
},
{
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
]
}
},
"note": {
"type": "string"
}
},
"required": [
"kind",
"source",
"errors",
"downloads",
"note"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢find_per_diem_rates(locations, fiscal_year)
Use this when the user wants gsa per diem rates, federal per diem rates, per diem rates 2027 or m&ie rates by month, with XLSX and CSV downloads. Looks up 1 to 25 ZIP codes or City, ST locations in bundled GSA CONUS FY2026/FY2027 tables. The default fiscal year uses today in America/New_York. Ambiguous ZIPs return an item error; use calculate_per_diem with county to disambiguate. Do not use for OCONUS or FY2028.
輸入結構描述
{
"type": "object",
"properties": {
"locations": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "ZIP or City, ST. Example: 10001."
},
"description": "One to 25 locations. Example: [\"10001\",\"Austin, TX\",\"Smalltown, KS\"]."
},
"fiscal_year": {
"description": "Federal fiscal year, defaulting to today in America/New_York. Example: 2027.",
"anyOf": [
{
"type": "number",
"const": 2026
},
{
"type": "number",
"const": 2027
}
]
}
},
"required": [
"locations"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"worksheet",
"rates"
]
},
"source": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"item": {
"type": "number"
},
"name": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"item",
"name",
"message"
],
"additionalProperties": false
}
},
"downloads": {
"type": "object",
"properties": {
"xlsx": {
"type": "string"
},
"csv": {
"type": "string"
}
},
"required": [
"xlsx",
"csv"
],
"additionalProperties": false
},
"trips": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"days": {
"type": "number"
},
"nights": {
"type": "number"
},
"first_day": {
"type": "string"
},
"totals": {
"type": "object",
"properties": {
"lodging_maximum": {
"type": "string"
},
"lodging_allowed": {
"type": "string"
},
"mie_allowed": {
"type": "string"
},
"total": {
"type": "string"
}
},
"required": [
"lodging_maximum",
"lodging_allowed",
"mie_allowed",
"total"
],
"additionalProperties": false
},
"preview": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"date": {
"type": "string"
},
"day_type": {
"type": "string"
},
"destination": {
"type": "string"
},
"lodging_allowed": {
"type": [
"string",
"null"
]
},
"mie_allowed": {
"type": "string"
},
"total": {
"type": "string"
}
},
"required": [
"date",
"day_type",
"destination",
"lodging_allowed",
"mie_allowed",
"total"
],
"additionalProperties": false
},
{
"type": "array",
"items": [
{
"type": "number"
},
{
"type": [
"number",
"null"
]
},
{
"type": "number"
}
],
"additionalItems": false,
"minItems": 3,
"maxItems": 3
}
]
}
}
},
"required": [
"name",
"days",
"nights",
"totals",
"preview"
],
"additionalProperties": false
}
},
"totals": {
"type": "object",
"properties": {
"lodging_maximum": {
"type": "string"
},
"lodging_allowed": {
"type": "string"
},
"mie_allowed": {
"type": "string"
},
"total": {
"type": "string"
}
},
"required": [
"lodging_maximum",
"lodging_allowed",
"mie_allowed",
"total"
],
"additionalProperties": false
},
"rates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"location": {
"type": "string"
},
"destination": {
"type": "string"
},
"state": {
"type": "string"
},
"location_defined": {
"type": "string"
},
"fiscal_year": {
"type": "number"
},
"lodging": {
"type": "array",
"items": {
"type": "number"
}
},
"mie": {
"type": "number"
},
"breakfast": {
"type": "number"
},
"lunch": {
"type": "number"
},
"dinner": {
"type": "number"
},
"incidentals": {
"type": "number"
},
"first_last_day": {
"type": "string"
},
"matched_by": {
"type": "string"
},
"warning": {
"type": "string"
}
},
"required": [
"location",
"destination",
"state",
"location_defined",
"fiscal_year",
"lodging",
"mie",
"breakfast",
"lunch",
"dinner",
"incidentals",
"first_last_day",
"matched_by",
"warning"
],
"additionalProperties": false
}
},
"fiscal_year": {
"type": "number"
},
"preview_columns": {
"type": "array",
"items": {
"type": "string"
}
},
"preview_destinations": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": [
{
"type": "string"
}
],
"additionalItems": false,
"minItems": 1,
"maxItems": 1
},
{
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
]
}
},
"note": {
"type": "string"
}
},
"required": [
"kind",
"source",
"errors",
"downloads",
"note"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}社群
證據