Terminal Tax
REMOTE · MCP.TERMINAL.TAX
Tax software: your AI agent sends the facts, we calculate and e-file; you review and sign.
Available components
Last scanned (17 hours ago)
Scores higher than 53% of remote servers
Reachable. Last reached 4 Nov 2026.
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (create_filing_session). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability58
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1251 tokens (~417/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management25
- Stability check failed: schema churn in the 15 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 0 additions. See how to fix → Fail
Tool Coverage92
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 71% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 3 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 4 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 22 to 25.
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 15 to 18.
- 1 Nov 26 0
- Server version: 0.335.0 → 0.337.0 functional
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 8 to 12.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 2 to 5.
- 26 Oct 26 0
- Endpoint reachability: reachable → behind authorisation ▼ security
- Stability: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Transport: pass → unverified ▼ security
- HSTS header: pass → fail ▼ security
- Authorization: The endpoint enforces authorisation, but returns a challenge with no valid RFC 9728 metadata, so a client cannot discover where to get a token. security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “create_filing_session” rewrote its description, which is the text the model reads security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Endpoint reachability: behind authorisation → reachable ▲ functional
- First check of Schema quality: unverified functional
- Server version: 0.334.0 → 0.335.0 functional
- 25 Oct 26 0
- Server version: 0.332.0 → 0.334.0 functional
- 24 Oct 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “continue_filing_session” rewrote its description, which is the text the model reads security
- Tool “create_filing_session” rewrote its description, which is the text the model reads security
- Schema quality: 1931 → 403 ▲ functional
- Server version: 0.319.0 → 0.332.0 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://mcp.terminal.tax/v1/hosted-mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| SERIALNUMBER=0451501195,CN=terminal.tax,O=TERMINAL TAX LLC,ST=New Jersey,C=US,2.5.4.15=#131450726976617465204f7267616e697a6174696f6e,1.3.6.1.4.1.311.60.2.1.2=#130a4e6577204a6572736579,1.3.6.1.4.1.311.60.2.1.3=#13025553 | CN=Sectigo Public Server Authentication CA EV R36,O=Sectigo Limited,C=GB | 5 Oct 2026 | 21 Apr 2027 | RSA 2048 | SHA256-RSA | e70ba5dbb74cc7e36aac904e2d62c224 |
| SANs: terminal.tax, mcp.terminal.tax, www.terminal.tax | ||||||
| CN=Sectigo Public Server Authentication CA EV R36,O=Sectigo Limited,C=GB (CA) | CN=Sectigo Public Server Authentication Root R46,O=Sectigo Limited,C=GB | 22 Mar 2021 | 21 Mar 2036 | RSA 3072 | SHA384-RSA | 6d4f7cad335377c8c6e001dde2e2c88e |
| CN=Sectigo Public Server Authentication Root R46,O=Sectigo Limited,C=GB (CA) | CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US | 22 Mar 2021 | 18 Jan 2038 | RSA 4096 | SHA384-RSA | d27fbbc1de359e5216ad6149586099c4 |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.terminal.tax. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| tax. | present | 3385 | 8 | Verified |
| terminal.tax. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000 |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.terminal.tax/v1/hosted-mcp | Verified | 200 | |
| http (plaintext) | http://mcp.terminal.tax/v1/hosted-mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
continue_filing_session Continue filing session ~491
Checks the taxpayer's completed draft packet for a federal return and, when it passes, holds it as an unsigned draft and returns the link to the filing page; otherwise returns a list of problems to correct. This call files nothing and sends nothing to the IRS: the taxpayer reviews, signs and files on the filing page. Inputs: the filing session's continuationHandle, completedReturnPacketJson (the whole packet as one JSON string, in this server's packet schema) and packetSchemaSha256 (that schema's digest); other arguments are refused by name. The tax year is return.taxYear=2025 inside the packet. The packet carries the facts the taxpayer stated in this chat and the figures printed on documents the taxpayer gave in it; a fact the taxpayer has not stated is left out rather than written as no, none or 0, and a required fact that is left out comes back as a blocker asking for the taxpayer's answer. Output: status filing_session_ready with a filingSessionUrl when the packet is accepted; the taxpayer opens that link to give permission, review the return and sign it. Otherwise, blockers (each with a path, a rule and a plain detail) and no link; that packet is not kept, and the same handle accepts a corrected packet. Nothing is filed or charged through a link that expires or is left unfinished, and the same packet sent again with a new filing session's handle returns a fresh link. An accepted packet is held until the taxpayer gives permission on the filing page; declining there, or expiry, erases it. Federal returns: no state, territory or local return is filed. The return has no taxpayer identity fields: the taxpayer's own details go in the packet's separate, required agentIdentity section, which the filing page shows for the taxpayer to confirm. Business identifiers printed on each source form, such as an employer's or payer's name and EIN, are packet fields.
| Name | Type | Req | Description |
|---|---|---|---|
| completedReturnPacketJson | string | – | The complete return packet as one JSON string, in this server's packet schema. Its values are the facts the taxpayer stated and the figures printed on the taxpayer's documents. |
| continuationHandle | string | – | – |
| packetSchemaSha256 | string | – | The current digest returned by get_packet_schema. The server checks it against the current packet schema; packet-schema-stale means the submitted digest no longer matches that schema. |
| Name | Type | Req | Description |
|---|---|---|---|
| blockers | array | – | – |
| filingSessionUrl | string | – | – |
| readBackToTaxpayer | string | – | With the filing link: the packet's own answers to the which-apply questions, in plain words, to read to the taxpayer before they open the link. |
| status | string | – | – |
No examples provided.
create_filing_session Start filing session ~185
Starts a filing session for a US federal individual income tax return when the taxpayer asks to file. Input: none. Output: a continuationHandle that identifies this filing session in later calls, and packetRules, the packet rules as text. This call receives no tax facts and creates no return and no link; the filing link comes with an accepted packet. A new filing session is also how a fresh link replaces one that expired or was left unfinished, through which nothing was filed or charged: the same packet sent on the new handle returns the new link. Covered returns: one original tax year 2025 US federal individual income tax return (Form 1040 or 1040-SR, and some Form 1040-SS and Form 1040-NR situations), with no state or local return. The packet rules this call returns list each covered and refused situation.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| blockers | array | – | – |
| continuationHandle | string | – | – |
| packetRules | string | – | – |
No examples provided.
get_packet_schema Get packet schema ~342
Takes the filing session's continuationHandle. Returns the packet schema a completed return packet is checked against (the packet holds no Social Security number, ITIN or PIN: the taxpayer types those on the filing page): requestPacketSchema=true returns the schema digest (packetSchemaSha256, sent with the completed packet), an outline whose larger parts are named sections, the section list and the packetStarterTemplates list; packetSchemaSection=<name> returns one section and packetStarterTemplate=<id> one complete starter packet, in which each taxpayer-specific value is the placeholder REPLACE_WITH_TAXPAYER_VALUE, refused by path until replaced, with its askTheTaxpayer messages (the questions for the taxpayer) and each preset answer listed in presets with how it is settled. Read-only: no tax facts are sent here and no return is written. The tax year is return.taxYear=2025 inside the packet, not a tool argument; any other argument is refused by name.
| Name | Type | Req | Description |
|---|---|---|---|
| continuationHandle | string | – | – |
| packetSchemaSection | string | – | One section of the packet schema, by a name from packetSchemaSections. Returns that section's members exactly as they sit in the full schema, where the outline shows {"x-terminalTaxSchemaSection":"<n… |
| packetStarterTemplate | string | – | One complete starter packet, by an id from packetStarterTemplates.templates, with its askTheTaxpayer messages and its presets. |
| requestPacketSchema | boolean | – | Returns the packet schema outline, its section list and digest, and the starter-template list; no tax facts are sent and no return is written. |
| Name | Type | Req | Description |
|---|---|---|---|
| blockers | array | – | – |
| packetSchemaOutline | object | – | The packet JSON Schema with each sectioned member replaced by {"x-terminalTaxSchemaSection":"<section name>"}. |
| packetSchemaRetrieval | string | – | – |
| packetSchemaSection | object | – | One section: name, covers, parentPointer (JSON Pointer of the properties object its members belong to), sha256 and members. |
| packetSchemaSections | array | – | Every schema section left out of the outline: name, what it covers, its size in characters and the sha256 of its members. |
| packetSchemaSha256 | string | – | SHA-256 of the compact JSON serialization of the FULL packet schema: the outline with every section's members put back in place of its marker. |
| packetStarterTemplate | object | – | One starter template: id, shape, askTheTaxpayer, packet and presets. |
| packetStarterTemplates | object | – | How to use a starter template, the presets every template carries, and the list of templates; a template's packet comes back with packetStarterTemplate. |
No examples provided.
How do I install the Terminal Tax MCP server?
Terminal Tax is a hosted endpoint at https://mcp.terminal.tax/v1/hosted-mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.terminal.tax
claude mcp add --transport http tax-terminal-filing 'https://mcp.terminal.tax/v1/hosted-mcp'
What is the Terminal Tax MCP server?
Terminal Tax is an MCP server listed in the public MCP registry as tax.terminal/filing. Tax software: your AI agent sends the facts, we calculate and e-file; you review and sign. This page covers its hosted endpoint (https://mcp.terminal.tax/v1/hosted-mcp).
Is the Terminal Tax MCP server safe to use?
Terminal Tax scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Terminal Tax MCP server expose?
Terminal Tax exposes 3 tools: create_filing_session, get_packet_schema, continue_filing_session. Their descriptions and schemas cost roughly 1,018 tokens of context every time the server is loaded.
Does the Terminal Tax MCP server require authentication?
No. We connected to Terminal Tax without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Terminal Tax MCP server still maintained?
Terminal Tax is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.