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.
| Input | What it asks for | Why it matters | If you omit it |
|---|---|---|---|
cost_placed_in_service | Cost placed in service | The dollar limit falls one-for-one with spending above the phase-out, so total cost sets the ceiling. | defaults to 4500000 |
elected_amount | Amount 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_income | Business 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 businessThe 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.
| Case | What it asks | What it shows | Outcome |
|---|---|---|---|
biz-179-phaseout | Spending that erodes its own deduction | The 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-eliminated | Enough spending removes the election entirely | Past a point there is no section 179 deduction at all, which is the opposite of what buying more usually does. | completed |
biz-179-income-limited | The second limit, and its carryforward | Capped 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.