Server definition
- Hash
- sha256:5ebee19c46e487c982f53ccd5df84a0113d272103b0fed6a3138b0d2cfb8816d
- What it is
- What a remote MCP server returned when asked what it offers: 5 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Finds the smallest gross pay (to the cent) whose net pay reaches the target, by bisection over the same engine\nas /net. Returns the full breakdown for that gross pay and the remaining difference to the target.",
"inputSchema": {
"properties": {
"country": {
"description": "DE or UK (GB is accepted as UK)",
"enum": [
"DE",
"UK",
"GB"
],
"title": "Country",
"type": "string"
},
"de": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"annual_tax_allowance": {
"default": 0,
"description": "Tax allowance (Freibetrag) on the tax card, EUR per year",
"maximum": 1000000,
"minimum": 0,
"title": "Annual Tax Allowance",
"type": "number"
},
"birth_year": {
"anyOf": [
{
"maximum": 2015,
"minimum": 1900,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Year of birth: childless surcharge only from 23, age relief from 65; 67+ is rejected",
"title": "Birth Year"
},
"child_allowances": {
"anyOf": [
{
"maximum": 20,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Kinderfreibeträge on the tax card in 0.5 steps (default: children); 0.5 per child when the parents split them",
"title": "Child Allowances"
},
"children": {
"default": 0,
"description": "Children under 25: care-insurance discounts from the 2nd child and, by default, the child allowances",
"maximum": 20,
"minimum": 0,
"title": "Children",
"type": "integer"
},
"church": {
"default": false,
"description": "Member of a church that levies church tax",
"title": "Church",
"type": "boolean"
},
"factor": {
"anyOf": [
{
"exclusiveMaximum": 1,
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Faktorverfahren factor for tax class IV, three decimals (e.g. 0.912)",
"title": "Factor"
},
"health_insurance": {
"default": "statutory",
"description": "Only statutory health insurance is supported so far",
"enum": [
"statutory",
"private"
],
"title": "Health Insurance",
"type": "string"
},
"health_insurance_addon_rate": {
"anyOf": [
{
"maximum": 10,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "The fund's add-on rate (Zusatzbeitrag) in %, e.g. 2.9; default the official average of the year",
"title": "Health Insurance Addon Rate"
},
"parent": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Has ever had a child, so no childless surcharge in care insurance (default: children > 0)",
"title": "Parent"
},
"state": {
"default": "NW",
"description": "Bundesland code of the workplace: BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH (church-tax rate; SN = Saxony care-insurance split)",
"maxLength": 2,
"minLength": 2,
"title": "State",
"type": "string"
},
"tax_class": {
"default": 1,
"description": "Steuerklasse 1-6 (I single, II single parent, III/V married split, IV married, VI second job)",
"maximum": 6,
"minimum": 1,
"title": "Tax Class",
"type": "integer"
}
},
"title": "DEProfileIn",
"type": "object"
},
{
"type": "null"
}
],
"description": "German profile (used when country is DE)"
},
"net": {
"description": "Target net pay for the period, in EUR (DE) or GBP (UK)",
"examples": [
3000
],
"exclusiveMinimum": 0,
"maximum": 5000000,
"title": "Net",
"type": "number"
},
"period": {
"default": "month",
"description": "Pay period of the amount: year, month, week, day (DE only), fortnight or four_weeks (UK only)",
"enum": [
"year",
"month",
"week",
"day",
"fortnight",
"four_weeks"
],
"title": "Period",
"type": "string"
},
"uk": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"ni_category": {
"default": "A",
"description": "National Insurance category letter (A standard, B reduced, C over State Pension age, H apprentice <25, J deferred, M under 21, V veteran, Z under 21 deferred)",
"enum": [
"A",
"B",
"C",
"H",
"J",
"M",
"V",
"Z"
],
"title": "Ni Category",
"type": "string"
},
"period_number": {
"anyOf": [
{
"maximum": 52,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Tax week or month number for the cumulative basis; omit for a stand-alone (week 1/month 1) period",
"title": "Period Number"
},
"previous_pay": {
"anyOf": [
{
"maximum": 100000000,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Taxable pay in this tax year before this period (cumulative basis)",
"title": "Previous Pay"
},
"previous_tax": {
"anyOf": [
{
"maximum": 100000000,
"minimum": -10000000,
"type": "number"
},
{
"type": "null"
}
],
"description": "Tax deducted in this tax year before this period (cumulative basis)",
"title": "Previous Tax"
},
"region": {
"default": "england",
"description": "Where the employee lives for income tax (Scotland and Wales set their own rates)",
"enum": [
"england",
"northern-ireland",
"scotland",
"wales"
],
"title": "Region",
"type": "string"
},
"tax_code": {
"anyOf": [
{
"maxLength": 12,
"type": "string"
},
{
"type": "null"
}
],
"description": "PAYE tax code, e.g. 1257L, S1257L, C1257L, K475, BR, D0, NT, 0T, '1257L M1' (default: 1257L with the region's prefix)",
"title": "Tax Code"
}
},
"title": "UKProfileIn",
"type": "object"
},
{
"type": "null"
}
],
"description": "UK profile (used when country is UK)"
},
"year": {
"default": 2026,
"description": "Tax year. UK: the year the tax year starts in (2026 = 2026-27)",
"maximum": 2100,
"minimum": 2000,
"title": "Year",
"type": "integer"
}
},
"required": [
"country",
"net"
],
"type": "object"
},
"name": "calculate_gross_salary",
"outputSchema": {
"properties": {
"annual": {
"description": "The period's figures scaled to a year (periods per year × amount)",
"properties": {
"employer_cost": {
"description": "Employer cost × periods per year",
"title": "Employer Cost",
"type": "number"
},
"gross": {
"description": "Gross × periods per year",
"title": "Gross",
"type": "number"
},
"net": {
"description": "Net × periods per year",
"title": "Net",
"type": "number"
}
},
"required": [
"gross",
"net",
"employer_cost"
],
"title": "Annual",
"type": "object"
},
"country": {
"description": "DE or UK",
"title": "Country",
"type": "string"
},
"currency": {
"description": "EUR or GBP",
"title": "Currency",
"type": "string"
},
"deduction_rate": {
"description": "Employee deductions in % of gross",
"title": "Deduction Rate",
"type": "number"
},
"difference": {
"description": "net - target_net (0 when the target is reachable to the cent)",
"title": "Difference",
"type": "number"
},
"disclaimer": {
"title": "Disclaimer",
"type": "string"
},
"employee_deductions": {
"description": "Sum of the employee lines",
"title": "Employee Deductions",
"type": "number"
},
"employer_contributions": {
"description": "Sum of the employer lines",
"title": "Employer Contributions",
"type": "number"
},
"employer_cost": {
"description": "Gross plus employer contributions",
"title": "Employer Cost",
"type": "number"
},
"gross": {
"description": "Gross pay for the period",
"title": "Gross",
"type": "number"
},
"lines": {
"description": "Every deduction and contribution with rule and source",
"items": {
"properties": {
"amount": {
"description": "Amount for the period (negative = refund on the UK cumulative basis)",
"title": "Amount",
"type": "number"
},
"base": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Amount the rate applies to (after contribution ceilings) or taxable pay",
"title": "Base"
},
"key": {
"description": "income_tax, solidarity_surcharge, church_tax, health_insurance, care_insurance, pension_insurance, unemployment_insurance, insolvency_levy, national_insurance",
"title": "Key",
"type": "string"
},
"label": {
"description": "Name of the deduction in the country's terms",
"title": "Label",
"type": "string"
},
"payer": {
"description": "Who bears it: employee (deducted from gross) or employer (on top)",
"enum": [
"employee",
"employer"
],
"title": "Payer",
"type": "string"
},
"rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Rate in % of base, where a single rate applies",
"title": "Rate"
},
"rule": {
"description": "The rule applied, in words",
"title": "Rule",
"type": "string"
},
"source": {
"description": "Official source of the rule and rate",
"title": "Source",
"type": "string"
}
},
"required": [
"key",
"label",
"amount",
"payer",
"rule",
"source"
],
"title": "Line",
"type": "object"
},
"title": "Lines",
"type": "array"
},
"net": {
"description": "Net pay: gross minus all employee deductions",
"title": "Net",
"type": "number"
},
"notes": {
"description": "Assumptions and what is not included",
"items": {
"type": "string"
},
"title": "Notes",
"type": "array"
},
"period": {
"description": "Pay period of all amounts",
"title": "Period",
"type": "string"
},
"profile": {
"additionalProperties": true,
"description": "The profile as applied, including defaults that were filled in",
"title": "Profile",
"type": "object"
},
"sources": {
"description": "Official publications used",
"items": {
"properties": {
"license": {
"title": "License",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"url": {
"title": "Url",
"type": "string"
}
},
"required": [
"name",
"url",
"license"
],
"title": "Source",
"type": "object"
},
"title": "Sources",
"type": "array"
},
"target_net": {
"description": "The net pay that was asked for",
"title": "Target Net",
"type": "number"
},
"tax_year": {
"description": "Tax year label, e.g. 2026 or 2026-27",
"title": "Tax Year",
"type": "string"
},
"year": {
"description": "Tax year (UK: year the tax year starts)",
"title": "Year",
"type": "integer"
}
},
"required": [
"country",
"year",
"tax_year",
"period",
"currency",
"gross",
"net",
"employee_deductions",
"employer_contributions",
"employer_cost",
"deduction_rate",
"annual",
"lines",
"profile",
"notes",
"sources",
"disclaimer",
"target_net",
"difference"
],
"title": "GrossOut",
"type": "object",
"x-fastmcp-top-level-schema": "GrossOut"
}
},
{
"description": "Computes net pay from gross pay for one pay period with the country's official payroll algorithm.\nReturns every employee deduction and employer contribution as a line with the rule applied and its source,\nthe employer's total cost, annualised figures and the assumptions made.",
"inputSchema": {
"properties": {
"country": {
"description": "DE or UK (GB is accepted as UK)",
"enum": [
"DE",
"UK",
"GB"
],
"title": "Country",
"type": "string"
},
"de": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"annual_tax_allowance": {
"default": 0,
"description": "Tax allowance (Freibetrag) on the tax card, EUR per year",
"maximum": 1000000,
"minimum": 0,
"title": "Annual Tax Allowance",
"type": "number"
},
"birth_year": {
"anyOf": [
{
"maximum": 2015,
"minimum": 1900,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Year of birth: childless surcharge only from 23, age relief from 65; 67+ is rejected",
"title": "Birth Year"
},
"child_allowances": {
"anyOf": [
{
"maximum": 20,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Kinderfreibeträge on the tax card in 0.5 steps (default: children); 0.5 per child when the parents split them",
"title": "Child Allowances"
},
"children": {
"default": 0,
"description": "Children under 25: care-insurance discounts from the 2nd child and, by default, the child allowances",
"maximum": 20,
"minimum": 0,
"title": "Children",
"type": "integer"
},
"church": {
"default": false,
"description": "Member of a church that levies church tax",
"title": "Church",
"type": "boolean"
},
"factor": {
"anyOf": [
{
"exclusiveMaximum": 1,
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Faktorverfahren factor for tax class IV, three decimals (e.g. 0.912)",
"title": "Factor"
},
"health_insurance": {
"default": "statutory",
"description": "Only statutory health insurance is supported so far",
"enum": [
"statutory",
"private"
],
"title": "Health Insurance",
"type": "string"
},
"health_insurance_addon_rate": {
"anyOf": [
{
"maximum": 10,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "The fund's add-on rate (Zusatzbeitrag) in %, e.g. 2.9; default the official average of the year",
"title": "Health Insurance Addon Rate"
},
"parent": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Has ever had a child, so no childless surcharge in care insurance (default: children > 0)",
"title": "Parent"
},
"state": {
"default": "NW",
"description": "Bundesland code of the workplace: BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH (church-tax rate; SN = Saxony care-insurance split)",
"maxLength": 2,
"minLength": 2,
"title": "State",
"type": "string"
},
"tax_class": {
"default": 1,
"description": "Steuerklasse 1-6 (I single, II single parent, III/V married split, IV married, VI second job)",
"maximum": 6,
"minimum": 1,
"title": "Tax Class",
"type": "integer"
}
},
"title": "DEProfileIn",
"type": "object"
},
{
"type": "null"
}
],
"description": "German profile (used when country is DE)"
},
"gross": {
"description": "Gross pay for the period, in EUR (DE) or GBP (UK)",
"examples": [
4500
],
"exclusiveMinimum": 0,
"maximum": 10000000,
"title": "Gross",
"type": "number"
},
"period": {
"default": "month",
"description": "Pay period of the amount: year, month, week, day (DE only), fortnight or four_weeks (UK only)",
"enum": [
"year",
"month",
"week",
"day",
"fortnight",
"four_weeks"
],
"title": "Period",
"type": "string"
},
"uk": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"ni_category": {
"default": "A",
"description": "National Insurance category letter (A standard, B reduced, C over State Pension age, H apprentice <25, J deferred, M under 21, V veteran, Z under 21 deferred)",
"enum": [
"A",
"B",
"C",
"H",
"J",
"M",
"V",
"Z"
],
"title": "Ni Category",
"type": "string"
},
"period_number": {
"anyOf": [
{
"maximum": 52,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Tax week or month number for the cumulative basis; omit for a stand-alone (week 1/month 1) period",
"title": "Period Number"
},
"previous_pay": {
"anyOf": [
{
"maximum": 100000000,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Taxable pay in this tax year before this period (cumulative basis)",
"title": "Previous Pay"
},
"previous_tax": {
"anyOf": [
{
"maximum": 100000000,
"minimum": -10000000,
"type": "number"
},
{
"type": "null"
}
],
"description": "Tax deducted in this tax year before this period (cumulative basis)",
"title": "Previous Tax"
},
"region": {
"default": "england",
"description": "Where the employee lives for income tax (Scotland and Wales set their own rates)",
"enum": [
"england",
"northern-ireland",
"scotland",
"wales"
],
"title": "Region",
"type": "string"
},
"tax_code": {
"anyOf": [
{
"maxLength": 12,
"type": "string"
},
{
"type": "null"
}
],
"description": "PAYE tax code, e.g. 1257L, S1257L, C1257L, K475, BR, D0, NT, 0T, '1257L M1' (default: 1257L with the region's prefix)",
"title": "Tax Code"
}
},
"title": "UKProfileIn",
"type": "object"
},
{
"type": "null"
}
],
"description": "UK profile (used when country is UK)"
},
"year": {
"default": 2026,
"description": "Tax year. UK: the year the tax year starts in (2026 = 2026-27)",
"maximum": 2100,
"minimum": 2000,
"title": "Year",
"type": "integer"
}
},
"required": [
"country",
"gross"
],
"type": "object"
},
"name": "calculate_net_salary",
"outputSchema": {
"properties": {
"annual": {
"description": "The period's figures scaled to a year (periods per year × amount)",
"properties": {
"employer_cost": {
"description": "Employer cost × periods per year",
"title": "Employer Cost",
"type": "number"
},
"gross": {
"description": "Gross × periods per year",
"title": "Gross",
"type": "number"
},
"net": {
"description": "Net × periods per year",
"title": "Net",
"type": "number"
}
},
"required": [
"gross",
"net",
"employer_cost"
],
"title": "Annual",
"type": "object"
},
"country": {
"description": "DE or UK",
"title": "Country",
"type": "string"
},
"currency": {
"description": "EUR or GBP",
"title": "Currency",
"type": "string"
},
"deduction_rate": {
"description": "Employee deductions in % of gross",
"title": "Deduction Rate",
"type": "number"
},
"disclaimer": {
"title": "Disclaimer",
"type": "string"
},
"employee_deductions": {
"description": "Sum of the employee lines",
"title": "Employee Deductions",
"type": "number"
},
"employer_contributions": {
"description": "Sum of the employer lines",
"title": "Employer Contributions",
"type": "number"
},
"employer_cost": {
"description": "Gross plus employer contributions",
"title": "Employer Cost",
"type": "number"
},
"gross": {
"description": "Gross pay for the period",
"title": "Gross",
"type": "number"
},
"lines": {
"description": "Every deduction and contribution with rule and source",
"items": {
"properties": {
"amount": {
"description": "Amount for the period (negative = refund on the UK cumulative basis)",
"title": "Amount",
"type": "number"
},
"base": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Amount the rate applies to (after contribution ceilings) or taxable pay",
"title": "Base"
},
"key": {
"description": "income_tax, solidarity_surcharge, church_tax, health_insurance, care_insurance, pension_insurance, unemployment_insurance, insolvency_levy, national_insurance",
"title": "Key",
"type": "string"
},
"label": {
"description": "Name of the deduction in the country's terms",
"title": "Label",
"type": "string"
},
"payer": {
"description": "Who bears it: employee (deducted from gross) or employer (on top)",
"enum": [
"employee",
"employer"
],
"title": "Payer",
"type": "string"
},
"rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Rate in % of base, where a single rate applies",
"title": "Rate"
},
"rule": {
"description": "The rule applied, in words",
"title": "Rule",
"type": "string"
},
"source": {
"description": "Official source of the rule and rate",
"title": "Source",
"type": "string"
}
},
"required": [
"key",
"label",
"amount",
"payer",
"rule",
"source"
],
"title": "Line",
"type": "object"
},
"title": "Lines",
"type": "array"
},
"net": {
"description": "Net pay: gross minus all employee deductions",
"title": "Net",
"type": "number"
},
"notes": {
"description": "Assumptions and what is not included",
"items": {
"type": "string"
},
"title": "Notes",
"type": "array"
},
"period": {
"description": "Pay period of all amounts",
"title": "Period",
"type": "string"
},
"profile": {
"additionalProperties": true,
"description": "The profile as applied, including defaults that were filled in",
"title": "Profile",
"type": "object"
},
"sources": {
"description": "Official publications used",
"items": {
"properties": {
"license": {
"title": "License",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"url": {
"title": "Url",
"type": "string"
}
},
"required": [
"name",
"url",
"license"
],
"title": "Source",
"type": "object"
},
"title": "Sources",
"type": "array"
},
"tax_year": {
"description": "Tax year label, e.g. 2026 or 2026-27",
"title": "Tax Year",
"type": "string"
},
"year": {
"description": "Tax year (UK: year the tax year starts)",
"title": "Year",
"type": "integer"
}
},
"required": [
"country",
"year",
"tax_year",
"period",
"currency",
"gross",
"net",
"employee_deductions",
"employer_contributions",
"employer_cost",
"deduction_rate",
"annual",
"lines",
"profile",
"notes",
"sources",
"disclaimer"
],
"title": "NetOut",
"type": "object",
"x-fastmcp-top-level-schema": "NetOut"
}
},
{
"description": "Runs up to 8 gross-to-net scenarios and returns them side by side: net, deductions, employer cost and the\nsplit into income tax and social contributions. Amounts stay in each country's currency (no FX conversion).",
"inputSchema": {
"properties": {
"scenarios": {
"description": "Up to 8 gross-to-net scenarios",
"items": {
"additionalProperties": false,
"properties": {
"country": {
"description": "DE or UK (GB is accepted as UK)",
"enum": [
"DE",
"UK",
"GB"
],
"title": "Country",
"type": "string"
},
"de": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"annual_tax_allowance": {
"default": 0,
"description": "Tax allowance (Freibetrag) on the tax card, EUR per year",
"maximum": 1000000,
"minimum": 0,
"title": "Annual Tax Allowance",
"type": "number"
},
"birth_year": {
"anyOf": [
{
"maximum": 2015,
"minimum": 1900,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Year of birth: childless surcharge only from 23, age relief from 65; 67+ is rejected",
"title": "Birth Year"
},
"child_allowances": {
"anyOf": [
{
"maximum": 20,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Kinderfreibeträge on the tax card in 0.5 steps (default: children); 0.5 per child when the parents split them",
"title": "Child Allowances"
},
"children": {
"default": 0,
"description": "Children under 25: care-insurance discounts from the 2nd child and, by default, the child allowances",
"maximum": 20,
"minimum": 0,
"title": "Children",
"type": "integer"
},
"church": {
"default": false,
"description": "Member of a church that levies church tax",
"title": "Church",
"type": "boolean"
},
"factor": {
"anyOf": [
{
"exclusiveMaximum": 1,
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Faktorverfahren factor for tax class IV, three decimals (e.g. 0.912)",
"title": "Factor"
},
"health_insurance": {
"default": "statutory",
"description": "Only statutory health insurance is supported so far",
"enum": [
"statutory",
"private"
],
"title": "Health Insurance",
"type": "string"
},
"health_insurance_addon_rate": {
"anyOf": [
{
"maximum": 10,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "The fund's add-on rate (Zusatzbeitrag) in %, e.g. 2.9; default the official average of the year",
"title": "Health Insurance Addon Rate"
},
"parent": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Has ever had a child, so no childless surcharge in care insurance (default: children > 0)",
"title": "Parent"
},
"state": {
"default": "NW",
"description": "Bundesland code of the workplace: BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH (church-tax rate; SN = Saxony care-insurance split)",
"maxLength": 2,
"minLength": 2,
"title": "State",
"type": "string"
},
"tax_class": {
"default": 1,
"description": "Steuerklasse 1-6 (I single, II single parent, III/V married split, IV married, VI second job)",
"maximum": 6,
"minimum": 1,
"title": "Tax Class",
"type": "integer"
}
},
"title": "DEProfileIn",
"type": "object"
},
{
"type": "null"
}
],
"description": "German profile (used when country is DE)"
},
"gross": {
"description": "Gross pay for the period, in EUR (DE) or GBP (UK)",
"examples": [
4500
],
"exclusiveMinimum": 0,
"maximum": 10000000,
"title": "Gross",
"type": "number"
},
"period": {
"default": "month",
"description": "Pay period of the amount: year, month, week, day (DE only), fortnight or four_weeks (UK only)",
"enum": [
"year",
"month",
"week",
"day",
"fortnight",
"four_weeks"
],
"title": "Period",
"type": "string"
},
"uk": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"ni_category": {
"default": "A",
"description": "National Insurance category letter (A standard, B reduced, C over State Pension age, H apprentice <25, J deferred, M under 21, V veteran, Z under 21 deferred)",
"enum": [
"A",
"B",
"C",
"H",
"J",
"M",
"V",
"Z"
],
"title": "Ni Category",
"type": "string"
},
"period_number": {
"anyOf": [
{
"maximum": 52,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Tax week or month number for the cumulative basis; omit for a stand-alone (week 1/month 1) period",
"title": "Period Number"
},
"previous_pay": {
"anyOf": [
{
"maximum": 100000000,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Taxable pay in this tax year before this period (cumulative basis)",
"title": "Previous Pay"
},
"previous_tax": {
"anyOf": [
{
"maximum": 100000000,
"minimum": -10000000,
"type": "number"
},
{
"type": "null"
}
],
"description": "Tax deducted in this tax year before this period (cumulative basis)",
"title": "Previous Tax"
},
"region": {
"default": "england",
"description": "Where the employee lives for income tax (Scotland and Wales set their own rates)",
"enum": [
"england",
"northern-ireland",
"scotland",
"wales"
],
"title": "Region",
"type": "string"
},
"tax_code": {
"anyOf": [
{
"maxLength": 12,
"type": "string"
},
{
"type": "null"
}
],
"description": "PAYE tax code, e.g. 1257L, S1257L, C1257L, K475, BR, D0, NT, 0T, '1257L M1' (default: 1257L with the region's prefix)",
"title": "Tax Code"
}
},
"title": "UKProfileIn",
"type": "object"
},
{
"type": "null"
}
],
"description": "UK profile (used when country is UK)"
},
"year": {
"default": 2026,
"description": "Tax year. UK: the year the tax year starts in (2026 = 2026-27)",
"maximum": 2100,
"minimum": 2000,
"title": "Year",
"type": "integer"
}
},
"required": [
"country",
"gross"
],
"title": "NetIn",
"type": "object"
},
"maxItems": 8,
"minItems": 1,
"title": "Scenarios",
"type": "array"
}
},
"required": [
"scenarios"
],
"type": "object"
},
"name": "compare_net_salaries",
"outputSchema": {
"properties": {
"disclaimer": {
"title": "Disclaimer",
"type": "string"
},
"notes": {
"items": {
"type": "string"
},
"title": "Notes",
"type": "array"
},
"rows": {
"items": {
"properties": {
"annual_net": {
"title": "Annual Net",
"type": "number"
},
"country": {
"title": "Country",
"type": "string"
},
"currency": {
"title": "Currency",
"type": "string"
},
"deduction_rate": {
"title": "Deduction Rate",
"type": "number"
},
"employee_deductions": {
"title": "Employee Deductions",
"type": "number"
},
"employer_cost": {
"title": "Employer Cost",
"type": "number"
},
"gross": {
"title": "Gross",
"type": "number"
},
"income_tax": {
"description": "Income/wage tax plus surcharges (solidarity, church)",
"title": "Income Tax",
"type": "number"
},
"label": {
"description": "Country, tax year and main profile setting",
"title": "Label",
"type": "string"
},
"net": {
"title": "Net",
"type": "number"
},
"period": {
"title": "Period",
"type": "string"
},
"social_contributions": {
"description": "Employee social insurance or National Insurance",
"title": "Social Contributions",
"type": "number"
},
"tax_year": {
"title": "Tax Year",
"type": "string"
}
},
"required": [
"label",
"country",
"tax_year",
"currency",
"period",
"gross",
"net",
"employee_deductions",
"employer_cost",
"deduction_rate",
"annual_net",
"income_tax",
"social_contributions"
],
"title": "CompareRow",
"type": "object"
},
"title": "Rows",
"type": "array"
}
},
"required": [
"rows",
"notes",
"disclaimer"
],
"title": "CompareOut",
"type": "object",
"x-fastmcp-top-level-schema": "CompareOut"
}
},
{
"description": "Allowances, tax bands, contribution rates and ceilings the engine uses for the country and year, each with\nits official source.",
"inputSchema": {
"properties": {
"country": {
"description": "DE or UK (GB is accepted)",
"enum": [
"DE",
"UK",
"GB"
],
"title": "Country",
"type": "string"
},
"year": {
"default": 2026,
"description": "Tax year (UK: start year, 2026 = 2026-27)",
"maximum": 2100,
"minimum": 2000,
"title": "Year",
"type": "integer"
}
},
"required": [
"country"
],
"type": "object"
},
"name": "get_payroll_parameters",
"outputSchema": {
"properties": {
"country": {
"title": "Country",
"type": "string"
},
"currency": {
"title": "Currency",
"type": "string"
},
"parameters": {
"items": {
"properties": {
"key": {
"title": "Key",
"type": "string"
},
"label": {
"title": "Label",
"type": "string"
},
"source": {
"title": "Source",
"type": "string"
},
"unit": {
"title": "Unit",
"type": "string"
},
"value": {
"title": "Value",
"type": "number"
}
},
"required": [
"key",
"label",
"value",
"unit",
"source"
],
"title": "ParameterRow",
"type": "object"
},
"title": "Parameters",
"type": "array"
},
"tax_year": {
"title": "Tax Year",
"type": "string"
},
"year": {
"title": "Year",
"type": "integer"
}
},
"required": [
"country",
"year",
"tax_year",
"currency",
"parameters"
],
"title": "ParametersOut",
"type": "object",
"x-fastmcp-top-level-schema": "ParametersOut"
}
},
{
"description": "Coverage: which countries and tax years are available, which pay periods and profile fields they accept, the\nofficial test data each engine is checked against, and which countries are planned next.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "list_salary_countries",
"outputSchema": {
"properties": {
"countries": {
"items": {
"properties": {
"conformance": {
"description": "Ground truth the engine is tested against",
"title": "Conformance",
"type": "string"
},
"country": {
"description": "Country code",
"title": "Country",
"type": "string"
},
"currency": {
"title": "Currency",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"periods": {
"items": {
"type": "string"
},
"title": "Periods",
"type": "array"
},
"profile_fields": {
"items": {
"type": "string"
},
"title": "Profile Fields",
"type": "array"
},
"status": {
"enum": [
"available",
"planned"
],
"title": "Status",
"type": "string"
},
"years": {
"description": "Supported tax years (UK: start year)",
"items": {
"type": "integer"
},
"title": "Years",
"type": "array"
}
},
"required": [
"country",
"name",
"status",
"currency",
"years",
"periods",
"profile_fields",
"conformance"
],
"title": "CountryInfo",
"type": "object"
},
"title": "Countries",
"type": "array"
}
},
"required": [
"countries"
],
"title": "CountriesOut",
"type": "object",
"x-fastmcp-top-level-schema": "CountriesOut"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:5ebee19c46e487c982f53ccd5df84a0113d272103b0fed6a3138b0d2cfb8816d | sha256sum