The dollar limit falling one-for-one with spending, and the separate business income limit with its carryforward

One command on the Business entity tax server, callable over MCP as calculate_section_179, filed in the registry as Section 179 expensing. Every result carries the method it used, the rule pack it was pinned to, what is still missing and whether coverage was complete, for a licensed professional to review.

What it needs, and why

Every input is checked before anything is calculated. Nothing is required to start, and a field left blank means do not apply this rather than zero.

InputWhat it asks forWhy it mattersIf you omit it
cost_placed_in_serviceCost placed in serviceThe dollar limit falls one-for-one with spending above the phase-out, so total cost sets the ceiling.defaults to 4500000
elected_amountAmount elected (blank = all)Expensing is an election. Left blank, the whole eligible cost is treated as elected.blank means do not apply it
business_taxable_incomeBusiness taxable income (blank = skip that limit)A second limit caps the deduction at business income and carries the rest forward. Left blank, that limit is skipped rather than guessed.blank means do not apply it

Requests it answers

  • “How much equipment can I expense under section 179?”
  • “Does heavy spending phase out the section 179 limit?”

An agent with these skills loaded picks the command from phrasing like that, asks for whatever input is missing, and reports the figures with the method that produced them.

Run it

scripts/mcp_server.sh --server business

The same command is exposed by taxagent-business, so Claude, Claude Code, Codex, Cursor and any other MCP client can call it directly. Analysis only. No tool in this server places orders, modifies custodian records or files returns. This server holds no client data: every figure arrives in the call and nothing is stored. Results are estimates over those figures, not a return and not tax advice. The comparison is arithmetic over rates the caller supplies. Entity choice is not a calculation and this server does not pretend it is.

Scripted cases that exercise it

3 of the 71 console cases call this command on a real server over JSON-RPC and assert the outcome. Every one runs on every build, and all of them are listed on the case inventory.

CaseWhat it asksWhat it showsOutcome
biz-179-phaseoutSpending that erodes its own deductionThe dollar limit falls one-for-one with spending above the threshold, so deferring a purchase across the year end can restore it.completed
biz-179-eliminatedEnough spending removes the election entirelyPast a point there is no section 179 deduction at all, which is the opposite of what buying more usually does.completed
biz-179-income-limitedThe second limit, and its carryforwardCapped at business income, with the excess carried forward rather than lost. Two different limits that are easily confused.completed

Limits it inherits from taxagent-business

  • Entity choice. The comparison is arithmetic over rates you supply; the decision turns on exit plans, qualified small business stock, payroll, fringe benefits and the cost of changing later.
  • Bonus depreciation, the section 163(j) interest limitation, basis and at-risk limits, and recapture on disposition.
  • Reasonable compensation, which is usually the larger number in an S corporation and is a facts-and-circumstances question.
  • State entity-level taxes and franchise taxes.

The server, its other 2 commands and what it deliberately leaves alone are on the Business entity tax page.