Skip to main content
Glama

Jock Taxes Developer MCP

Match MLB after-tax salary

equivalent_mlb_salary

Find the gross salary on a comparison MLB team that matches the after-tax income of a known salary on a baseline team. Ask for the baseline team, comparison team, filing status, and either baseline_salary or base_salary. Do not invent team codes. Call list_tax_calculator_inputs for allowed values. Present the result as a calculation, not as tax or legal advice. Required before this call: baseline_team, comparison_team, and baseline_salary or base_salary. Match a player with list_team_players only after league, team, and season_id are known. Repeat inputs and defaults from the result in the reply. Results are income tax only unless the user asks for take-home: then send include_payroll_taxes, agent_fee_pct, retirement_contribution (401(k), or RRSP on a Canadian club) or rca_contribution (Canadian clubs), and report result.net_pay. Comparisons then match on net_pay.net_economic, which counts an RCA after its estimated payout tax (rca_payout_tax_rate; default 25% Canadian withholding on the US-duty-day share and the US federal marginal rate on the rest, or 25% on all of it for a US person).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "baseline_team": "<baseline_team>",
      "comparison_team": "<comparison_team>"
    },
    "name": "equivalent_mlb_salary"
  }
}

Input Schema

NameRequiredDescriptionDefault
season_idNoSchedule season as eight digits, such as 20252026. Defaults to the latest season for the league when omitted.
toleranceNoDollar tolerance for the equivalent-salary search. Defaults to 1.
base_salaryNoDuty-day base in whole dollars before signing and performance bonuses. Send this with the bonus fields to match Salary + Bonuses. Leave it out when sending baseline_salary.
agent_fee_pctNoAgent fee as a percent of gross pay (0-10), treated as a non-deductible cost. Default 0.
baseline_teamYesTeam that pays the known salary.
birth_countryNoBirth country code used with is_us_person.
filing_statusNoSingle or Married_Joint. Defaults to Single when omitted.
signing_bonusNoSigning bonus in whole dollars. The site adds this into the season total. On NFL it also includes other inducement pay.
baseline_salaryNoOne season total on the baseline team, taxed entirely as duty-day pay. Leave this out when sending base_salary.
comparison_teamYesTeam whose gross pay is solved to match baseline after-tax income.
contract_seasonNoContract season label, such as 2025-26.
primary_domicileNoResident tax home: a state, a city, or a mode such as local_jurisdiction. Defaults to local_jurisdiction when omitted.
rca_contributionNoSalary deferred into a Retirement Compensation Arrangement by a Canadian club, in USD. Excluded from Canadian employment income until paid out: from worldwide income for a Canadian resident and in full from Canadian-source pay for a non-resident (Martin v. The King, 2024 TCC 153). US tax is unchanged. Not applied for US clubs. Comparisons count it after the estimated tax at payout (see rca_payout_tax_rate). Default 0.
performance_bonusNoPerformance bonus in whole dollars. Included in the total only when include_performance_bonus_in_jock_tax is true.
rca_payout_tax_rateNoEstimated tax on the RCA when it is paid out, as a percent (0-100). Default models a player who retires to a no-tax US state and draws the RCA and its refundable tax account down at once: the US-duty-day share, already taxed by the US when contributed, bears Canada's 25% non-resident withholding, and the rest bears the US federal marginal rate on it (37% for a high earner). For a US person, who pays US tax on the whole contribution now, the default is the 25% withholding alone. Lowers net_pay.net_economic, which comparisons match on.
retirement_catch_upNonone (default), 50_plus (+$8,000) or 60_to_63 (+$11,250). Catch-up contributions are always Roth for athletes (prior-year FICA wages over $150,000).
include_payroll_taxesNoOpt in to employee payroll taxes for each team's employer: FICA (Social Security, Medicare, Additional Medicare) and the home state's disability or paid-leave levy for US clubs; CPP/QPP, EI and QPIP for Canadian clubs. Default false. For a Canadian resident it also applies the CPP/QPP and EI credits and the enhanced CPP/QPP deduction on the Canadian return. With any take-home option set, the match uses net_pay.net_economic and the response adds baseline_ and comparison_ net_pay, payroll_taxes, agent_fee and retirement_contribution.
art_xvi4_inducement_sbNoOpt in to Canada–U.S. Treaty Art. XVI(4) on an exempt signing bonus from a Canadian club.
estimated_playoff_gamesNoExtra postseason games. Use 0 when there are none.
retirement_contributionNoAnnual retirement contribution in USD. On a US club it is a 401(k) elective deferral capped at the 2026 limit ($24,500 plus catch-up). On a Canadian club it is an RRSP contribution capped at C$33,810, deducted from Canadian taxable income only. Default 0.
comparison_primary_domicileNoResident tax home modeled for the comparison team.
retirement_contribution_typeNo401(k) only: pretax (default) lowers income-tax wages except in Pennsylvania, Philadelphia, Pittsburgh, Ohio cities, Kansas City and St. Louis; roth lowers nothing. RRSP contributions are always deductible.
exempt_signing_bonus_from_jock_taxNoWhen true, the signing bonus is taxed in the player's domicile and left out of duty-day allocation.
include_performance_bonus_in_jock_taxNoWhen true, performance_bonus is part of the season total and of duty-day pay.

Output Schema

NameRequiredDescriptionDefault
sportYes
inputsYes
resultYes
defaultsYes
disclaimerYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / agent_fee_pct
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Agent fee as a percent of gross pay (0-10), treated as a non-deductible cost. Default 0.",
      +  "title": "Agent Fee Pct"
      +}
    • addedInput schema / properties / include_payroll_taxes
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Opt in to employee payroll taxes for each team's employer: FICA (Social Security, Medicare, Additional Medicare) and the home state's disability or paid-leave levy for US clubs; CPP/QPP, EI and QPIP for Canadian clubs. Default false. For a Canadian resident it also applies the CPP/QPP and EI credits and the enhanced CPP/QPP deduction on the Canadian return. With any take-home option set, the match uses net_pay.net_economic and the response adds baseline_ and comparison_ net_pay, payroll_taxes, agent_fee and retirement_contribution.",
      +  "title": "Include Payroll Taxes"
      +}
    • addedInput schema / properties / rca_contribution
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Salary deferred into a Retirement Compensation Arrangement by a Canadian club, in USD. Excluded from Canadian employment income until paid out: from worldwide income for a Canadian resident and in full from Canadian-source pay for a non-resident (Martin v. The King, 2024 TCC 153). US tax is unchanged. Not applied for US clubs. Comparisons count it after the estimated tax at payout (see rca_payout_tax_rate). Default 0.",
      +  "title": "Rca Contribution"
      +}
    • addedInput schema / properties / rca_payout_tax_rate
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Estimated tax on the RCA when it is paid out, as a percent (0-100). Default models a player who retires to a no-tax US state and draws the RCA and its refundable tax account down at once: the US-duty-day share, already taxed by the US when contributed, bears Canada's 25% non-resident withholding, and the rest bears the US federal marginal rate on it (37% for a high earner). For a US person, who pays US tax on the whole contribution now, the default is the 25% withholding alone. Lowers net_pay.net_economic, which comparisons match on.",
      +  "title": "Rca Payout Tax Rate"
      +}
    • addedInput schema / properties / retirement_catch_up
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "none (default), 50_plus (+$8,000) or 60_to_63 (+$11,250). Catch-up contributions are always Roth for athletes (prior-year FICA wages over $150,000).",
      +  "title": "Retirement Catch Up"
      +}
    • addedInput schema / properties / retirement_contribution
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Annual retirement contribution in USD. On a US club it is a 401(k) elective deferral capped at the 2026 limit ($24,500 plus catch-up). On a Canadian club it is an RRSP contribution capped at C$33,810, deducted from Canadian taxable income only. Default 0.",
      +  "title": "Retirement Contribution"
      +}
    • addedInput schema / properties / retirement_contribution_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "401(k) only: pretax (default) lowers income-tax wages except in Pennsylvania, Philadelphia, Pittsburgh, Ohio cities, Kansas City and St. Louis; roth lowers nothing. RRSP contributions are always deductible.",
      +  "title": "Retirement Contribution Type"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavioral context beyond the annotations: result framing as a calculation rather than advice, repeating inputs and defaults, switching from income-tax matching to net_pay.net_economic when take-home options are set, and RCA payout-tax handling. It does not contradict readOnlyHint=false or destructiveHint=false, and the remaining gaps are minor given the rich schema descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the description is a dense paragraph that repeats the required baseline_salary/base_salary condition after having already stated it, and the RCA/payout sentence is difficult to parse. Some legal and tax detail duplicates schema text, reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 24 parameters, an output schema, and full schema descriptions, the description supplies the missing workflow context: prerequisites, allowed-value lookup, player-matching sequence, take-home branching, and result presentation. An agent has enough guidance to call this tool correctly and explain the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 24 parameters. The description still adds useful semantics by clarifying that baseline_salary and base_salary are alternatives, and by naming the take-home parameter set and the result field to report. This is meaningful but not exhaustive beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a precise verb and resource: find the gross salary on a comparison MLB team that matches the after-tax income of a known baseline salary. The scope and matching logic are clear enough to distinguish it from sibling tools like equivalent_nba_salary and calculate_mlb_tax.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states required inputs, forbids inventing team codes, routes allowed values to list_tax_calculator_inputs, and clarifies that list_team_players should only be used after league, team, and season_id are known. It also distinguishes the base income-tax comparison from the take-home variant with specific parameters to add.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources