Federal tax on the same income both ways, over rates you supply
One command on the Business entity tax server, callable over MCP as calculate_entity_comparison, filed in the registry as C corporation versus pass-through. 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 |
|---|---|---|---|
business_income | Business income | Both routes are computed on the same income, which is what makes the comparison mean anything. | defaults to 1000000 |
owner_marginal_rate | Owner's marginal rate (e.g. 0.37) | The pass-through route is taxed at the owner's rate, which this calculation never guesses. | defaults to 0.37 |
distribution_fraction | Fraction of profit distributed | A C corporation is taxed twice only on what it distributes, so the fraction drives the second layer. | defaults to 1.00 |
qualified_dividend_rate | Dividend rate | Distributed profit is taxed again at the dividend rate the owner actually faces. | defaults to 0.20 |
passthrough_deduction | Section 199A deduction | A section 199A deduction applies to the pass-through side alone, so it has to be supplied to compare fairly. | defaults to 0 |
Requests it answers
- “Would a C corporation cost less tax than an LLC?”
- “How do distributions change the C corporation answer?”
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-entity-close-call | C corporation versus pass-through, fully distributed | $368,000 against $370,000 — close enough that payroll or state tax, neither of which is included, would decide it. | completed |
biz-entity-retained | The same income, nothing distributed | Only the corporate layer is paid this year. The second layer is deferred, not avoided, and the comparison flips. | completed |
biz-rejects-rate-over-one | A rate given as 37 instead of 0.37 | Refused rather than taxing the income at 3,700%. The fraction is range-checked at the boundary. | VALIDATION_FAILED |
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.