{"name":"io.github.theluckystrike/per-diem","slug":"theluckystrike-per-diem","title":null,"description":"Daily travel allowances from bundled public rate tables: Poland, HMRC and GSA CONUS.","url":"https://mcp.market/server/theluckystrike-per-diem","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"maps","tags":["maps"],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-19T00:07:33.000Z","license":"MIT"},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/theluckystrike/mcp-servers","website":"https://mcp.zovo.one/s/per-diem","version":"0.22.0","remotes":[{"type":"streamable-http","url":"https://mcp.zovo.one/mcp/per-diem","headers":[{"description":"Bearer <Pro license key or anonymous token from GET https://mcp.zovo.one/mcp/token>","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[{"registryType":"mcpb","identifier":"https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/per-diem.mcpb","version":"0.22.0","fileSha256":"4fcc49827c093862b0d9182aac4ac166081cbbdb8da65b0917dbcff6ad27cd1d","transport":{"type":"stdio"},"environmentVariables":[{"description":"Optional Pro license key (MCPL1....). Verified offline.","isSecret":true,"name":"MCP_LICENSE_KEY"}]}],"tools":[{"name":"license_activate","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"name":"license_status","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"perdiem_calc","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"name":"perdiem_rates","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"name":"perdiem_report","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"name":"trip_delete","description":"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.","write_action":true,"price_micros":0,"input_schema":{"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#"}},{"name":"trip_export","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"name":"trip_list","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"name":"trip_record","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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#"}}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-19T00:28:26.495Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T00:28:26.445Z","components":{"code":{"score":-1,"max":25,"notes":["package could not be scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 192ms"]},"poisoning":{"score":15,"max":15,"notes":["9 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.zovo.one/mcp/per-diem","reachable":true,"authRequired":false,"latencyMs":192,"serverInfo":{"name":"mcp-per-diem","version":"0.22.0"}}],"packages":[],"repo":{"found":true,"owner":"theluckystrike","repo":"mcp-servers","archived":false,"pushedAt":"2026-09-19T00:07:33Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/51033404?v=4","ownerCreatedAt":"2019-05-25T20:35:39Z","license":"MIT"},"icon":{"url":"https://mcp.zovo.one/favicon.ico","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-19T00:07:33.000Z","score":23}}}},"grade_history":[{"kind":"restore","fromGrade":"C","toGrade":"A","reason":"score 88","createdAt":"2026-09-19T00:28:28.330Z"}],"reviews":[]}