Skip to content

Untax

by mooshee · remote · no sign-in to list tools · v0.4.1 · published by GitHub user mooshee

Property assessment research, free private veteran review PDFs and consented VA requirements checks.

Deletes · 1Changes · 7

20 tools: 1 can delete or cancel things, 7 change things and 12 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http untax https://untax.io/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "generate_veteran_packet" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "generate_veteran_packet" says "generate": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

20 tools

Deletes or cancels 1Claude Code: deny
  • disconnect_va_connectionDisconnect only this assistant's access to this account's shared VA verification when the user requests it.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Disconnect only this assistant's access to this account's shared VA verification when the user requests it. Requires owner:va. The saved account verification remains until the owner removes it in Account. Does not disconnect another account or assistant, submit a claim or alter VA records.

    Annotations the server declares

    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: false
Changes things 7Claude Code: ask
  • audit_microtransactionResearch an explicitly selected property and identify evidence requirements for a requested property-record service.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Research an explicitly selected property and identify evidence requirements for a requested property-record service. Returns source observations and service capabilities; does not establish savings, quote a payable fee, inspect payment methods, charge, generate a filing packet or submit a correction. Sandbox checkout uses separate authenticated sandbox tools.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • complete_tax_sandbox_orderVerify fresh Stripe TEST payment for your own sandbox order and release its hash-bound draft packet and receipt.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Verify fresh Stripe TEST payment for your own sandbox order and release its hash-bound draft packet and receipt. Records a simulated submission only; never submits a real appeal or changes county records. Requires owner:sandbox sign-in and a completed test checkout. Show the returned test checkout link when payment is pending. When an order_id is known, read the same order after checkout or an uncertain failure before retrying. If starting checkout fails before an order_id is returned, retry start_tax_sandbox with the original idempotency_key; do not create a new key for the same attempt. get_tax_sandbox_order and complete_tax_sandbox_order take only order_id. Report test payment, draft generation, download availability and external delivery as separate observed states. Do not claim the draft is available until the order confirms its artifact is available; a payment or download URL alone is not proof. A sandbox receipt or simulated submission is not county filing, external email delivery or permission for live payments.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: false
  • generate_veteran_packetGenerate a real free private Veteran REVIEW/DRAFT PDF from an explicitly selected saved review.1 finding

    Why it is in this group

    • The name "generate_veteran_packet" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "generate_veteran_packet" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "generate_veteran_packet" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Generate a real free private Veteran REVIEW/DRAFT PDF from an explicitly selected saved review. Requires owner:read. Missing answers remain visible review questions; no VA connection is required. Supplemental answers remain reported and are not saved to the customer review. Optional connected VA facts require additional owner:va permission and explicit use for this applicant. Returns an expiring authenticated download of exact compiled bytes, not an official application, eligibility decision, savings estimate or filing.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • recheck_property_opportunitiesRecheck possible tax-reduction routes against current retained property records and a few owner-reported categories.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Recheck possible tax-reduction routes against current retained property records and a few owner-reported categories. Returns research and next questions; answers never establish eligibility, verified evidence, savings, owner authority, payment or filing readiness. Do not send exact income, ages, identifiers, documents or a caller-supplied audit. For a property audit or a request to find tax-reduction routes, review opportunity_screen before concluding. A weak or held comparable-property analysis does not rule out independent relief, record corrections or billing research. Ask the next relevant unanswered targeted_questions item one at a time; use available_questions for relevant follow-ups. Accept none, not sure or skip, and do not repeat answered or skipped questions in this conversation unless the user changes the facts. After an answer, call recheck_property_opportunities for the same selected property and county with the accumulated explicit owner_answers and skipped_question_ids. Rechecks are stateless: resend still-applicable prior answers, preserve explicit false and empty arrays, and omit unknown or skipped fields instead of sending null or inventing a negative answer. Resend stable skipped_question_ids until the user supplies an answer or asks to revisit the question. Skips suppress prompts only and leave requirements unresolved. Do not transfer property-specific answers or skips to another property. When the user is done or skips the remaining questions, summarize supported research routes and missing evidence without treating unknowns as a denial. For a fact-only lookup, answer the requested fact and offer relevant screening without requiring an unrelated intake. Owner answers do not verify eligibility, savings, authority, payment or filing readiness.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • review_veteran_requirementsContinue a property-specific requirements conversation with accumulated explicit answers and, only when requested, the connected applicant's saved VA verification.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Continue a property-specific requirements conversation with accumulated explicit answers and, only when requested, the connected applicant's saved VA verification. Requires owner:va. Disclose va_source.verified_at and freshness; a saved snapshot is not a current provider check. Ask returned questions one at a time; accept unknown or skip, preserve explicit false, and never reuse property-specific answers for another property. No eligibility decision, savings, generated application or filing.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • start_tax_sandboxStart an explicitly requested test-only appeal or property-record service checkout for one source-backed property.No findings

    Why it is in this group

    • The name "start_tax_sandbox" says "start": a word for a change.
    Description, as the server wrote it
    Start an explicitly requested test-only appeal or property-record service checkout for one source-backed property. Requires owner:sandbox sign-in. Uses Stripe TEST mode and isolated orders; does not establish ownership, eligibility, savings or an open appeal window. Never charges real money or files with a county. Show the returned test checkout link when payment is pending. When an order_id is known, read the same order after checkout or an uncertain failure before retrying. If starting checkout fails before an order_id is returned, retry start_tax_sandbox with the original idempotency_key; do not create a new key for the same attempt. get_tax_sandbox_order and complete_tax_sandbox_order take only order_id. Report test payment, draft generation, download availability and external delivery as separate observed states. Do not claim the draft is available until the order confirms its artifact is available; a payment or download URL alone is not proof. A sandbox receipt or simulated submission is not county filing, external email delivery or permission for live payments.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: false
  • start_va_connectionStart an explicitly requested VA connection for this signed-in account and assistant.No findings

    Why it is in this group

    • The name "start_va_connection" says "start": a word for a change.
    Description, as the server wrote it
    Start an explicitly requested VA connection for this signed-in account and assistant. Requires owner:va permission. Show connection_url to confirm the account and selected fields, review an existing saved verification or complete a new official VA sign-in, and approve this app's sharing separately. Verification is saved to the account only after approval. Return to this conversation and call get_va_connection afterward. The link itself grants no access; never request passwords, tokens, SSNs or full VA documents in chat.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
Only reads 12Claude Code: allow
  • find_va_facilitiesFind official VA facilities in an explicit state, optionally filtered by city and facility type.No findings

    Why it is in this group

    • The name "find_va_facilities" says "find": a word for reading.
    Description, as the server wrote it
    Find official VA facilities in an explicit state, optionally filtered by city and facility type. Public information only. If location is missing, ask the returned question; do not infer a state or treat a VA facility as a county tax office or accredited VSO. Sandbox results are sample data.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • find_va_formsFind official VA forms by an explicit form number or search text.No findings

    Why it is in this group

    • The name "find_va_forms" says "find": a word for reading.
    Description, as the server wrote it
    Find official VA forms by an explicit form number or search text. Ask what form or purpose is needed when query is missing. Show returned revision information and official PDF links; this does not complete or submit a claim.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • get_appeal_lifecycleRead a general assessment-review checklist.No findings

    Why it is in this group

    • The name "get_appeal_lifecycle" says "get": a word for reading.
    Description, as the server wrote it
    Read a general assessment-review checklist. Takes no property inputs and does not check a filing window, deadline, fee, eligibility or outcome. Personal procedures require official property, jurisdiction and year review.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • get_microtransactions_catalogInspect an evidence-gated research inventory of property-tax review routes and actual session tool availability.No findings

    Why it is in this group

    • The name "get_microtransactions_catalog" says "get": a word for reading.
    Description, as the server wrote it
    Inspect an evidence-gated research inventory of property-tax review routes and actual session tool availability. Each route reports held/unavailable/evidence_required and not_screened applicability; no eligibility, pricing, savings, automatic refund or filing readiness is established.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • get_owner_review_detailsRead one explicitly selected saved property review using the same source-bound service as the website.No findings

    Why it is in this group

    • The name "get_owner_review_details" says "get": a word for reading.
    Description, as the server wrote it
    Read one explicitly selected saved property review using the same source-bound service as the website. Requires both identifiers from get_owner_workspace and a live owner:read grant. Honor source_context_current and reconfirmation_required; never silently reuse stale previous_owner_answers. Ask relevant unanswered questions without repeating current answered or skipped items. User reports remain separate from county facts; changes and sensitive evidence belong in the protected browser review.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • get_owner_workspaceRead the signed-in owner's actual saved property reviews with a revocable owner:read grant.No findings

    Why it is in this group

    • The name "get_owner_workspace" says "get": a word for reading.
    Description, as the server wrote it
    Read the signed-in owner's actual saved property reviews with a revocable owner:read grant. Returns explicit property and review identifiers; no active property is assumed. Ask the user to select a review when the target is ambiguous. Does not establish ownership, benefit eligibility, savings or filing authority.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • get_property_assessmentGet retained county assessment observations and source provenance for a supported address or parcel ID.No findings

    Why it is in this group

    • The name "get_property_assessment" says "get": a word for reading.
    Description, as the server wrote it
    Get retained county assessment observations and source provenance for a supported address or parcel ID. Missing facts stay unavailable; commercial source area is not finished living area. Any comparison is a draft with evidence holds and does not establish personal tax savings or filing readiness. For a property audit or a request to find tax-reduction routes, review opportunity_screen before concluding. A weak or held comparable-property analysis does not rule out independent relief, record corrections or billing research. Ask the next relevant unanswered targeted_questions item one at a time; use available_questions for relevant follow-ups. Accept none, not sure or skip, and do not repeat answered or skipped questions in this conversation unless the user changes the facts. After an answer, call recheck_property_opportunities for the same selected property and county with the accumulated explicit owner_answers and skipped_question_ids. Rechecks are stateless: resend still-applicable prior answers, preserve explicit false and empty arrays, and omit unknown or skipped fields instead of sending null or inventing a negative answer. Resend stable skipped_question_ids until the user supplies an answer or asks to revisit the question. Skips suppress prompts only and leave requirements unresolved. Do not transfer property-specific answers or skips to another property. When the user is done or skips the remaining questions, summarize supported research routes and missing evidence without treating unknowns as a denial. For a fact-only lookup, answer the requested fact and offer relevant screening without requiring an unrelated intake. Owner answers do not verify eligibility, savings, authority, payment or filing readiness.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • get_tax_sandbox_orderRead your own isolated Untax test order.No findings

    Why it is in this group

    • The name "get_tax_sandbox_order" says "get": a word for reading.
    Description, as the server wrote it
    Read your own isolated Untax test order. Requires owner:sandbox sign-in. Payment and draft delivery statuses are separate from production eligibility or county filing. Show the returned test checkout link when payment is pending. When an order_id is known, read the same order after checkout or an uncertain failure before retrying. If starting checkout fails before an order_id is returned, retry start_tax_sandbox with the original idempotency_key; do not create a new key for the same attempt. get_tax_sandbox_order and complete_tax_sandbox_order take only order_id. Report test payment, draft generation, download availability and external delivery as separate observed states. Do not claim the draft is available until the order confirms its artifact is available; a payment or download URL alone is not proof. A sandbox receipt or simulated submission is not county filing, external email delivery or permission for live payments.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • get_va_connectionRead the dated, minimized VA verification explicitly shared with this account and assistant.No findings

    Why it is in this group

    • The name "get_va_connection" says "get": a word for reading.
    Description, as the server wrote it
    Read the dated, minimized VA verification explicitly shared with this account and assistant. Requires owner:va and live sharing permission; browser sign-in alone does not grant access. The saved account snapshot survives provider-session expiry and server restart. Disclose verified_at and freshness; saved facts are not a live provider check and may need reverification. Expired or revoked app permission stops sharing. These facts do not establish property ownership, primary residence, tax eligibility or filing authority.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • get_va_facilityRead one official VA facility selected by its returned id.No findings

    Why it is in this group

    • The name "get_va_facility" says "get": a word for reading.
    Description, as the server wrote it
    Read one official VA facility selected by its returned id. Returns available address, telephone and website information with source and environment. No Veteran records or eligibility determination.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • get_va_formLook up an explicit VA form number, such as 21-0966, and return available title, revision information and official PDF link.No findings

    Why it is in this group

    • The name "get_va_form" says "get": a word for reading.
    Description, as the server wrote it
    Look up an explicit VA form number, such as 21-0966, and return available title, revision information and official PDF link. Use form_name from search results for this lookup; the separate catalog id is not a form number. If form_name is missing, ask for the form number. A form link is not a completed application, submission or proof of eligibility.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • suggest_addressesSearch retained county-roll address candidates for partial queries and typos.No findings

    Why it is in this group

    • The description's first verb is "search": a word for reading.
    Description, as the server wrote it
    Search retained county-roll address candidates for partial queries and typos. If the intended property is ambiguous, show the relevant candidates and ask the user to select one before continuing with property-specific conclusions or actions. Similarity scores and is_auto_match are matching hints, not a user selection, verified owner authority or financial eligibility.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.4.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http untax https://untax.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__untax__suggest_addresses",
      "mcp__untax__get_property_assessment",
      "mcp__untax__get_owner_workspace",
      "mcp__untax__get_owner_review_details",
      "mcp__untax__find_va_facilities",
      "mcp__untax__get_va_facility",
      "mcp__untax__find_va_forms",
      "mcp__untax__get_va_form",
      "mcp__untax__get_va_connection",
      "mcp__untax__get_microtransactions_catalog",
      "mcp__untax__get_appeal_lifecycle",
      "mcp__untax__get_tax_sandbox_order"
    ],
    "ask": [
      "mcp__untax__recheck_property_opportunities",
      "mcp__untax__start_va_connection",
      "mcp__untax__review_veteran_requirements",
      "mcp__untax__generate_veteran_packet",
      "mcp__untax__audit_microtransaction",
      "mcp__untax__start_tax_sandbox",
      "mcp__untax__complete_tax_sandbox_order"
    ],
    "deny": [
      "mcp__untax__disconnect_va_connection"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as untax. Review it before you use it.