Charged per owner per month regardless of tax owed, which is the part that surprises people
One command on the Penalties and safe harbours server, callable over MCP as calculate_entity_penalty, filed in the registry as Partnership or S corporation late filing. 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 |
|---|---|---|---|
entity_type | Entity one of partnership, s_corporation | A partnership and an S corporation carry different per-owner monthly figures. | defaults to partnership |
owners | Partners or shareholders | The penalty is charged per partner or shareholder, which is why it grows with the owner count rather than with the tax. | defaults to 8 |
months_late | Months late | The charge is per month and capped, so the count sets both the total and whether the cap bites. | defaults to 4 |
Requests it answers
- “What does a late partnership return cost?”
- “Is the penalty charged per partner or per return?”
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 complianceThe same command is exposed by taxagent-compliance, 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. Interest is never computed: the rate is set quarterly and compounds daily, so no rate is stored here.
Scripted cases that exercise it
1 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 |
|---|---|---|---|
comp-partnership-penalty | A partnership that owes no tax at all | $8,320 for eight partners and four months. The penalty is per owner per month and does not depend on tax owed. | completed |
Limits it inherits from taxagent-compliance
- Interest. The underpayment rate is set quarterly and compounds daily, so no rate is stored here and these figures are penalties only.
- Reasonable cause, first-time abatement and the fraud rate, any of which changes the result substantially.
- Whether estimated payments were timely by quarter, as opposed to sufficient in total.
The server, its other 3 commands and what it deliberately leaves alone are on the Penalties and safe harbours page.