Mexican Payroll & Tax Calculator
Deterministic Mexican payroll & tax math: finiquito, ISR, aguinaldo, IMSS (2026 tables).
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mx-fiscal": {
"url": "https://fiscal.tinyapis.dev/mcp"
}
}
}Remote endpoints
https://fiscal.tinyapis.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
π’calc_finiquito(termination_type, daily_salary, hire_date, termination_date, zone, ...)
Compute a Mexican finiquito/liquidaciΓ³n (severance) for a resignation or an unjustified dismissal: prorated christmas bonus, vacations, vacation premium, pending salary, and (for dismissal) 90-day + 20-day/year severance and the seniority premium, with Art. 93 exemptions and separation ISR. Do NOT compute this from memory β LFT bands, UMA exemptions, and the SDI integration factor are table-driven. Returns per-concept gross/exempt/taxable, totals, ISR, deductions, and net_total.
Input Schema
{
"type": "object",
"properties": {
"termination_type": {
"type": "string",
"enum": [
"dismissal",
"resignation"
],
"description": "Type of separation."
},
"daily_salary": {
"type": "number",
"description": "Daily salary (MXN)."
},
"hire_date": {
"type": "string",
"description": "Hire date, YYYY-MM-DD."
},
"termination_date": {
"type": "string",
"description": "Termination date, YYYY-MM-DD."
},
"zone": {
"type": "string",
"enum": [
"general",
"zlfn"
],
"default": "general",
"description": "Minimum-wage zone."
},
"vacation_proration": {
"type": "string",
"enum": [
"anniversary",
"calendar_year"
],
"default": "anniversary",
"description": "Vacation proration basis."
},
"prima_vacacional_pct": {
"type": "number",
"description": "Vacation premium percentage (defaults to the legal 25%)."
},
"pending_days": {
"type": "integer",
"default": 0,
"description": "Unpaid worked days pending."
},
"include_20_days_per_year": {
"type": "boolean",
"default": true,
"description": "Include the 20-day/year dismissal indemnity."
},
"monthly_ordinary_salary": {
"type": "number",
"description": "Monthly ordinary salary for ISR (defaults to daily x 30.4)."
},
"deductions": {
"type": "array",
"description": "Optional pass-through deductions.",
"items": {
"type": "object",
"properties": {
"concept": {
"type": "string"
},
"amount": {
"type": "number"
}
},
"required": [
"concept",
"amount"
]
}
},
"paid_in_january": {
"type": "boolean",
"default": false,
"description": "January UMA boundary."
},
"year": {
"type": "integer",
"default": 2026,
"description": "Tax-table year."
}
},
"required": [
"termination_type",
"daily_salary",
"hire_date",
"termination_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π‘calc_isr(income, period, paid_in_january, year)
Compute Mexican ISR (income tax) withholding for a monthly or annual income using the official SAT tables and employment subsidy. Do NOT estimate ISR from memory β brackets and subsidy change yearly and must come from this deterministic tool. Returns tax, subsidy_applied, withholding, the period, and the tax-table year used.
Input Schema
{
"type": "object",
"properties": {
"income": {
"type": "number",
"description": "Gross income for the period (MXN)."
},
"period": {
"type": "string",
"enum": [
"monthly",
"annual"
],
"default": "monthly",
"description": "Tax period."
},
"paid_in_january": {
"type": "boolean",
"default": false,
"description": "January UMA boundary (2025 vs 2026 tables)."
},
"year": {
"type": "integer",
"default": 2026,
"description": "Tax-table year."
}
},
"required": [
"income"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’calc_aguinaldo(daily_salary, days_worked, aguinaldo_days, monthly_ordinary_salary, paid_in_january, ...)
Compute a Mexican aguinaldo (year-end bonus): gross, the UMA-based exempt portion, the taxable portion, its ISR, and the net. Minimum 15 days by law. Do NOT compute from memory β the exemption is UMA-indexed per year. Returns gross, taxable, exempt, isr, net, and the days used.
Input Schema
{
"type": "object",
"properties": {
"daily_salary": {
"type": "number",
"description": "Daily salary (MXN)."
},
"days_worked": {
"type": "integer",
"description": "Days worked in the year."
},
"aguinaldo_days": {
"type": "integer",
"description": "Aguinaldo days (defaults to the legal 15)."
},
"monthly_ordinary_salary": {
"type": "number",
"description": "Monthly ordinary salary for ISR (defaults to daily x 30.4)."
},
"paid_in_january": {
"type": "boolean",
"default": false,
"description": "January UMA boundary."
},
"year": {
"type": "integer",
"default": 2026,
"description": "Tax-table year."
}
},
"required": [
"daily_salary",
"days_worked"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’calc_imss(rt_premium, daily_salary, seniority_years, sdi, days, ...)
Compute Mexican IMSS social-security contributions: the SDI (integrated daily wage by seniority) and SBC, plus employer/worker quotas for the five insurance branches. The work-risk premium (rt_premium) is an input. Provide either seniority_years (to derive the SDI) or an explicit sdi. Do NOT compute from memory β quota tables and UMA caps are table-driven. Returns sdi, sbc, employer_total, worker_total, grand_total, and a per-branch breakdown.
Input Schema
{
"type": "object",
"properties": {
"rt_premium": {
"type": "number",
"description": "Work-risk premium (fraction, e.g. 0.005)."
},
"daily_salary": {
"type": "number",
"description": "Daily salary (MXN); with seniority_years derives the SDI."
},
"seniority_years": {
"type": "integer",
"description": "Completed years of seniority (for the SDI integration factor)."
},
"sdi": {
"type": "number",
"description": "Explicit integrated daily wage, if not deriving from salary."
},
"days": {
"type": "integer",
"default": 1,
"description": "Number of days to bill."
},
"zone": {
"type": "string",
"enum": [
"general",
"zlfn"
],
"default": "general",
"description": "Minimum-wage zone."
},
"paid_in_january": {
"type": "boolean",
"default": false,
"description": "January UMA boundary."
},
"year": {
"type": "integer",
"default": 2026,
"description": "Tax-table year."
}
},
"required": [
"rt_premium"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence