Tax MCP guidesDocs home · Quickstart · Capabilities

Build product behavior around safe response states.

These guides are for developers, product managers, and operators building real workflows on Tax MCP. Each guide starts with its target reader, job to be done, and supported-envelope boundary before examples.

Reference links: GET /api/mcp/tax-capabilities for the supported envelope, OpenAPI for request and response schema, roadmap feedback, changelog/release notes, support/contact, and terms.

First-user comprehension targets

Guide index

How to read a Tax MCP response

Reader: Developers and product managers wiring response envelopes into workflow state.

Job: Turn computed, decline, review, and error responses into safe product behavior without private explanation.

Open guide

How to design a deterministic-decline UI

Reader: Product designers, support owners, and frontend engineers building review queues.

Job: Explain why Tax MCP declined without making the user think the API failed or that a retry can bypass the boundary.

Open guide

How to use the supported envelope

Reader: Backend engineers deciding what to send to Tax MCP.

Job: Decide before runtime whether a workflow is modeled, deterministic-decline, needs_review, planned, or unsupported.

Open guide

How to handle billing, retries, and quota

Reader: Operators and backend engineers making production calls.

Job: Avoid duplicate billing, respect hard quota limits, and recover safely from retryable states.

Open guide

How to feed roadmap feedback

Reader: Product managers and support teams collecting unsupported-envelope evidence.

Job: Turn blocked workflows into roadmap signals without promising custom work or automatic support.

Open guide

Shared response-state table

StateHTTPBilledRetry safenext_actionClient display guidance
Computed200Yes on metered customer planstrue with the same Idempotency-KeynoneShow computed figures with derivation and provenance.
Deterministic decline200Yes on metered customer plansfalse for the same unsupported bodyreview_inputsShow the reason and route to review; do not show a tax estimate.
needs_review200Yes on metered customer planstrue for replay; human review is still requiredreview_inputsShow the review queue item, diff, reason, and provenance.
Validation error400Nofalse until request shape is fixedfix_request_and_resubmitShow a request-error state and tell the developer what field to fix.
Auth error401/403Nofalse until credentials are fixedcheck_credentialsAsk the operator to check, rotate, or unsuspend the API key.
Quota or rate limit429Noquota: false; rate: true after backoffupgrade_plan_or_wait_next_period or retry_after_backoffHard-stop quota or transient rate-limit message; do not overrun.
Idempotency replay200Once totalalready replayednoneShow the original result and reassure that replay did not double bill.
Idempotency mismatch409Nofalse with that keyuse_new_idempotency_keyClient bug: same key was used for a different body.
Idempotency in progress409Notrue with the same key after a short waitretry_after_inflight_completesShow in-progress and retry the same key.
Server failure500/503No500: false; 503: true after backofffix_request_and_resubmit or retry_after_backoffOpen support if persistent; do not show a computed result.

Comprehension map

First evaluators should be able to explain these states without private help before sending taxpayer-like payloads. Each row names the guide to read, the safe recovery behavior, and the privacy-safe telemetry event that can detect confusion.

State to understandExpected understandingPrimary guideSafe recoveryTelemetry hook
Computed 200A computed 200 can show figures, provenance, legal_notice, billed, retry_safe, and next_action.read-responseReplay the same Idempotency-Key for network uncertainty; do not change the body under the same key.docs_guides_computed_comprehension
Deterministic decline 200A computed:false 200 is a successful safety answer, not an outage or a free retry loop.deterministic-decline-uiShow code, reason, billed, retry_safe, and next_action; route to review or feedback without a tax estimate.docs_guides_decline_comprehension
needs_review 200needs_review is not a final computed tax answer; it is a human-review workflow state.read-responseShow diff, reason/provenance, billed, retry_safe, and next_action; route to a review queue.docs_guides_needs_review_comprehension
Validation errorA 400 validation failure is unbilled and should be fixed before resubmitting.billing-retries-quotaFix the request shape; do not ask support to infer a missing taxpayer fact.docs_guides_validation_recovery_view
Auth errorA 401/403 auth failure is unbilled and usually means the API key or account state needs attention.billing-retries-quotaCheck, rotate, or unsuspend the key; never paste keys or bearer tokens into support or feedback.docs_guides_auth_recovery_view
Quota or rate limitA 429 is unbilled; monthly quota is a hard cap, while per-minute rate limit can wait/back off.billing-retries-quotaWait, back off, or use account/billing support; do not expect silent overage.docs_guides_quota_recovery_view
Idempotency replaySame-key same-body replay returns the stored result and bills once total.billing-retries-quotaReuse the same key for uncertainty about the same logical POST.docs_guides_replay_comprehension
Idempotency mismatchSame-key different-body mismatch is a client bug, unbilled, and must not be retried with that key.billing-retries-quotaUse a new key only for a new logical request after fixing the client bug.docs_guides_mismatch_recovery_view
Idempotency in progressAn in-progress response is unbilled at failure time and may be retried with the same key after a short wait.billing-retries-quotaRetry the same key after the in-flight request settles.docs_guides_in_progress_recovery_view
Server failureA 500/503 is unbilled and must not produce a guessed tax result in the client UI.read-responseRetry only when the response class says retry is safe; open support if persistent.docs_guides_server_failure_recovery_view

Privacy-safe telemetry and support map

Privacy-safe guide telemetry may record only named events and coarse categories. It must never include API keys, bearer tokens, taxpayer documents, raw taxpayer PII, full unredacted request/response bodies, or unredacted support text.

EventSurfacePurposeSafe fields
docs_guide_index_view/docs/guidesDetect whether evaluators reach the guide index from docs or quickstart.session_id, surface, timestamp
docs_guides_comprehension_map_view/docs/guidesDetect whether first users see the response-class comprehension map before sending payloads.session_id, surface, timestamp
docs_guides_to_quickstart_click/docs/guides/*Measure guide-to-first-call continuity without recording request bodies or secrets.session_id, guide_slug, timestamp
docs_guides_support_click/docs/guides/*Route account or operational confusion to support without collecting raw support text.session_id, guide_slug, support_category, timestamp
docs_guides_feedback_click/docs/guides/*Route unsupported-envelope surprises to structured feedback without taxpayer PII.session_id, guide_slug, response_class, decline_or_error_code, timestamp
docs_guides_privacy_notice_view/docs/guides/*Confirm the no-secrets/no-PII support boundary is visible before support or feedback handoff.session_id, guide_slug, timestamp

Forbidden fields: api_key, bearer_token, raw_taxpayer_document, raw_taxpayer_pii, full_unredacted_request_body, full_unredacted_response_body, unredacted_free_form_support_text.

Workflow-specific guides should be added only after the underlying capability is accepted and documented. Planned roadmap work is visible on /roadmap, but planned work is not shipped support.