Odometry Mileage Log
Server Details
Mileage log and reimbursement
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools have clearly separate jobs: one handles a quick reimbursement/deduction calculation, while the other builds a full trip-by-trip mileage log. Their descriptions explicitly cross-reference each other and state when not to use the other tool, leaving little room for misselection.
Both names use the same snake_case verb_noun pattern: calculate_mileage_reimbursement and generate_mileage_log. The verbs are distinct and accurately describe each tool's action.
Two tools is slightly below the typical 3-15 range, but each is a substantial, well-scoped operation rather than a trivial wrapper. The surface is intentionally narrow and avoids unnecessary fragmentation.
The set covers both a quick calculation workflow and a full log-generation workflow, including IRS rate handling, rate changes, odometer conversion, CSV/XLSX input, and PDF/XLSX output. Explicitly excluded features like distance lookup and tax advice are reasonable out-of-scope boundaries, though there is little room for editing or managing saved logs.
Available Tools
2 toolscalculate_mileage_reimbursementCalculate mileage reimbursementARead-onlyIdempotentInspect
Use this when the user asks for a mileage reimbursement calculator, mileage deduction, or the IRS mileage rate 2026 applied to a number of miles ("how much can I deduct for 4,200 business miles", "my employer pays 0.70 a mile how much do I get", "odometer 41230 to 46890 how many business miles"). Applies the IRS standard mileage rate for the date driven (2025: 70 cents; Jan-Jun 2026: 72.5 cents; Jul-Dec 2026: 76 cents per business mile; medical/moving 21, 20.5, 23.5 cents; charity 14 cents), splits miles across the July 1, 2026 rate change, compares a custom employer rate with the IRS rate, and turns odometer readings into miles. Does not build a trip-by-trip log (use generate_mileage_log), look up distances, or give tax advice.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | When the miles were driven, YYYY-MM-DD or YYYY-MM, e.g. "2026-08-15" or "2026-03". Picks the IRS rate for that date. Default: today. | |
| miles | No | Miles to reimburse or deduct, e.g. 4200. Leave out when odometer_start and odometer_end are given. | |
| category | No | business (default), medical, moving (Armed Forces only) or charity. | |
| segments | No | Miles split by date when they straddle a rate change, e.g. [{"miles":1800,"date":"2026-05"},{"miles":2400,"date":"2026-09"}]. | |
| odometer_end | No | Odometer reading at the end, e.g. 46890. | |
| odometer_start | No | Odometer reading at the start, e.g. 41230. | |
| personal_miles | No | Personal or commuting miles inside the odometer range to subtract, e.g. 900. | |
| custom_rate_per_mile | No | Employer or contract rate in US dollars per mile, e.g. 0.70 or 0.60. The IRS amount is shown next to it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| lines | Yes | |
| miles | Yes | |
| notes | Yes | |
| amount | Yes | |
| custom | Yes | |
| category | Yes | |
| odometer | Yes | |
| irs_amount | Yes | |
| rate_basis | Yes | |
| amount_text | Yes | |
| alternatives | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral detail beyond that: the exact rate table by period and category, the July 1, 2026 rate-change splitting behavior, and the fact that a custom rate is shown alongside the IRS amount rather than replacing it. For a computation tool with an output schema, this is meaningful extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The trigger condition and routing exclusions are front-loaded in the first and last sentences, with operational detail in between. It is dense with parentheticals and enumerated rates, which is justified by the domain but makes it heavier than a two-sentence ideal, so not a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, all-optional computation tool with an output schema, the description covers trigger conditions, rate values by period and category, odometer conversion, segment splitting, and rate comparison, plus explicit exclusions. Nothing an agent needs to call it correctly is missing, and return values are left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with defaults and examples, so the schema carries the parameter burden and baseline is 3. The description goes further by explaining the semantics of the date field (picks the rate for that date), the either/or relationship between miles and odometer fields, and the split-across-rate-change purpose of segments, adding real meaning beyond field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource and spells out the distinct computations it performs: applying the IRS rate by date, splitting miles across the July 2026 rate change, comparing a custom employer rate, and converting odometer readings to miles. It also explicitly names what it is not, routing trip logging to the sibling generate_mileage_log, so an agent can differentiate without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger phrase ('use this when the user asks...') and backs it with three realistic paraphrase examples covering deduction, employer rate, and odometer inputs. It also names the alternatives and exclusions ('does not build a trip-by-trip log (use generate_mileage_log), look up distances, or give tax advice'), leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_mileage_logGenerate mileage logARead-onlyIdempotentInspect
Use this when the user wants a mileage log, mileage log template, mileage log for taxes, printable mileage log, mileage log in Excel, or mileage reimbursement report from trips they drove ("turn these trips into a mileage log for my taxes", "reconstruct my mileage log from my calendar"). Takes typed trips (date, from, to, purpose, miles or odometer start/end), recurring trips (for example weekdays in a month) and/or an attached CSV/XLSX file. Applies the IRS standard mileage rate for each trip's date (2025: 70 cents; Jan-Jun 2026: 72.5 cents; Jul-Dec 2026: 76 cents per business mile; medical, moving and charity rates) or a custom employer rate, checks odometer continuity, flags commuting and missing purposes, and totals by month, purpose and client. Returns a PDF mileage log and an XLSX file. Does not look up distances between addresses, track GPS, or give tax advice. Do not use for a single quick mileage total with no trip list (use calculate_mileage_reimbursement).
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Optional trip spreadsheet the user attached (CSV, TSV or XLSX) with columns such as Date, From, To, Purpose, Miles, or Odometer start and Odometer end, e.g. trips.xlsx. | |
| trips | No | Typed trips, one per drive, e.g. [{"date":"2026-10-05","from":"Office","to":"Client A","purpose":"Sales meeting","miles":12.4}]. | |
| vehicle | No | Optional vehicle description printed on the log, e.g. "2021 Toyota Camry". No VIN or plate needed. | |
| log_title | No | Title printed on the log, e.g. "October 2026 mileage". | |
| recurring | No | Repeating trips, e.g. "every weekday in October, 18 mi to the clinic" -> [{"start_date":"2026-10-01","end_date":"2026-10-31","to":"Clinic","purpose":"Patient visits","miles":18}]. | |
| skip_dates | No | Dates to leave out of recurring trips (holidays, PTO), YYYY-MM-DD, e.g. ["2026-10-12"]. | |
| driver_name | No | Optional driver name printed on the log, e.g. "Dana Lee". | |
| regular_workplace | No | Name of the user's regular office or workplace, e.g. "Main St office", to flag home-to-office commuting. | |
| year_end_odometer | No | Odometer at the end of the year (or of the log period), e.g. 52120. | |
| year_start_odometer | No | Odometer at the start of the year (or of the log period), e.g. 38500. With year_end_odometer it gives total miles and business-use percentage. | |
| custom_rate_per_mile | No | Employer or contract reimbursement rate in US dollars per mile for business trips, e.g. 0.60. Leave out to use the IRS standard mileage rate for each trip date. | |
| home_office_is_principal_place | No | true if the user's home office is their principal place of business (then trips from home are not flagged as commuting). |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| flags | Yes | |
| notes | Yes | |
| title | Yes | |
| period | Yes | |
| source | Yes | |
| totals | Yes | |
| preview | Yes | |
| by_month | Yes | |
| by_client | Yes | |
| downloads | Yes | |
| by_purpose | Yes | |
| rate_basis | Yes | |
| rates_used | Yes | |
| vehicle_use | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover read-only/idempotent/non-destructive, so the description goes well beyond them: it discloses the IRS rate schedule applied per trip date (70c 2025, 72.5c Jan-Jun 2026, 76c Jul-Dec 2026), odometer continuity checks, commuting and missing-purpose flagging, monthly/purpose/client totals, and the two output artifacts. It also states boundaries (no distance lookup, no GPS, no tax advice), which is exactly the context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the 'Use this when' trigger list, then inputs, then processing behavior, then outputs, then exclusions โ good ordering. The synonym-heavy trigger list is long but functional for routing; a few phrasings ('mileage log', 'mileage log template', 'printable mileage log') are borderline redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter tool with nested objects and an output schema, the description covers what inputs are accepted, what processing occurs, what is returned, and what is out of scope. Nothing an agent needs to decide or call correctly is missing, and return-value detail is appropriately left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description earns above baseline by explaining how the parameter families combine (typed trips + recurring occurrences + attached CSV/XLSX) and by naming the custom employer rate as an alternative to the IRS rate. It does not restate per-field syntax, which the schema already handles thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb+resource and enumerates the concrete deliverables (PDF mileage log, XLSX file) produced from typed trips, recurring trips, or an attached spreadsheet. It explicitly names the sibling tool calculate_mileage_reimbursement as the wrong fit for a single quick total, so an agent can distinguish the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit trigger utterances ("turn these trips into a mileage log for my taxes", "reconstruct my mileage log from my calendar") plus an explicit when-not ("Do not use for a single quick mileage total with no trip list (use calculate_mileage_reimbursement)"). It also enumerates out-of-scope capabilities (distance lookup, GPS tracking, tax advice).
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.
2 tool updates
- First observed
calculate_mileage_reimbursement - First observed
generate_mileage_log
Related MCP Connectors
Travel allowance worksheets
Mileage log for deductible driving: trips, effective-dated rates, summaries and CSV export.
Czech mileage logbook (kniha jizd): AI journey drafts, statutory reimbursement, XLSX export
Related MCP Servers
- AlicenseAqualityBmaintenanceLogs deductible driving trips, manages effective-dated mileage rates, computes per-category summaries, and exports CSV for accountants, all locally with no network calls.9MIT
- AlicenseNot gradedqualityBmaintenanceEnables drivers to keep a spoken car logbook by starting and ending trips, recording odometer readings, purposes and destinations, and tracking business-use percentage and period rules for the Australian ATO 12-week logbook or the US IRS mileage log, with CSV export. It supports status checks, trip listing, late-entry flagging and closing a logbook.MIT
- AlicenseNot gradedqualityDmaintenanceEnables tracking business trip expenses and calculating settlements using Google Sheets, with natural language parsing of expenses.5 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables employee eligibility checks, trip validation, and reimbursement calculations for corporate travel policies.-
Glama MCP Gateway
Add one secure layer between your agents and this server.