io.github.lonniev/taxsort-mcp
TaxSort — Tollbooth-monetized MCP server for personal tax transaction classification
* hosting country is best-effort behind CDNs · Unknown facts are omitted here and listed as pending in the profile.
Trust verdict
No blockers found across the assessed dimensions.
Profile
What this server is — descriptive, not a rating. The verdict above judges it; this describes it.
Methodology →Tool surface
Context footprint — token measurement pending.
taxsort_account_statementGenerate a patron's account statement at this operator.Returns the patron's purchase history, active credit tranches,per-tool usage breakdown, and recent daily usage logs. This isthe patron's spending account — not the operator's Authoritytax balance.Free — no credits consumed. Proof of npub ownership is requiredto prevent statement-scraping of arbitrary patrons.Args: npub: The patron's Nostr public key (npub1...). dpop_token: A kind-27235 Nostr event signed by npub for this tool. days: Number o…
Adoption
Not applicable — this server has no package distribution, so registry adoption signals (downloads, maintainers) don't exist for it.
Connect
https://taxsort-mcp.fastmcp.app/mcpSources
Every verdict and label is attributable to its source and recomputed from our own landed copy, never read live on this page.
taxsort_account_statement_infographicGenerate a visual SVG infographic of your account statement.Returns the same data as account_statement, rendered as a dark-themedSVG graphic with balance hero, metrics cards, health gauge, tranchetable, and tool usage breakdown. Costs 1 api_sat per call. Proof isverified by ``debit_or_deny`` before any cost is incurred.Args: npub: The Nostr public key (npub1...) whose statement to render. dpop_token: A kind-27235 Nostr event signed by npub for this tool. days: Number of days of daily usage histo…
taxsort_adoption_statusCheck this operator's adoption-request status at a chosen Authority.Free. Polls the Authority MCP-to-MCP for the status of this operator'srequest (pending / approved / rejected / provisioned).
taxsort_apply_rulesApply rules to unclassified transactions in a session.
taxsort_ask_advisorAsk the Financial Advisor about using TaxSort.
taxsort_ask_tax_researcherAsk the Tax Code Researcher about IRS provisions.
taxsort_check_authority_balanceCheck this operator's tax balance at the Authority.Returns the sats available for certifying patron credit purchases.When this balance reaches zero, patron top-ups cannot be certifiedand the operator must call purchase_credits on the Authority.This is the operator's own funding — not a patron balance. Free.
taxsort_check_balanceCheck a patron's credit balance at this operator.This is the patron's spending balance — credits purchased viaLightning for tool calls at this operator. For the operator'sown balance at the Authority (needed to certify patron purchases),use authority_check_balance instead.Free — no credits required. Proof of npub ownership is requiredto prevent anyone-with-the-registry from enumerating balances.Args: npub: The Nostr public key (npub1...) whose balance to check. dpop_token: A kind-27235 Nostr eve…
taxsort_check_paymentCheck the payment status of a Lightning invoice.Call after paying the invoice from purchase_credits.Free — no credits required. Proof of npub ownership is requiredto prevent credit-grant front-running by an observer of theinvoice ID.Args: invoice_id: The invoice ID returned by purchase_credits. npub: The Nostr public key (npub1...) that purchased the invoice. dpop_token: A kind-27235 Nostr event signed by npub for this tool.
taxsort_check_pricePreview the effective cost of a tool call.Shows the base cost and any constraint effects (discounts, freetrials, surge pricing). Free — no credits required.Args: tool_id: Either the tool's UUID (from the pricing model) or a bare capability string (e.g. ``"deal_scenario"``). FE callers usually have the capability name; this resolves both so the FE doesn't need to derive UUIDs locally. tool_kwargs: Optional JSON object with tool call parameters for ad valorem / categorical-multiplier pricing previ…
taxsort_check_proof_statusCheck whether a previously-cached dpop_token is still valid.Mirrors ``check_oauth_status`` for the npub-proof flow: a callingagent can ask "will my next paid call accept this dpop_token?"before burning credits on a guaranteed failure.Free, no side effects — does not evict the cache or touch relays.Args: patron_npub: Required. The patron's npub (npub1...). dpop_token: Required. The dpop_token phrase returned by ``request_npub_proof`` / ``receive_npub_proof``.
taxsort_check_unlockCheck if the unlock response is valid.
taxsort_clear_transactionsDelete all transactions and classifications for a session, so CSVs can be re-imported.
taxsort_count_rule_matchesCount how many transactions match a rule pattern (live preview).
taxsort_create_feedback_issueCreate a GitHub issue for bug reports, feature requests, or feedback.
taxsort_create_sessionCreate a new TaxSort session for a tax year.
taxsort_create_share_tokenCreate a share token so another user can access this session.
taxsort_delete_account_transactionsDelete all transactions and classifications for a specific imported account.
taxsort_delete_classificationRemove a classification, reverting the transaction to unclassified.
taxsort_delete_couponDelete a coupon. Cascades to all patron redemptions.Any chain step referencing the deleted coupon_id becomes ano-op (the constraint returns neutral on unknown ids) — theStudio surfaces orphan references as warnings.RESTRICTED to operator — requires proof.
taxsort_delete_custom_categoryDelete a custom category.
taxsort_delete_patron_credentialRemove a single patron credential field.Deletes one field from stored credentials without affectingother fields. Free. Proof of npub ownership is required —this is a write to the patron's sensitive credential vault.Args: npub: The patron's Nostr public key (npub1...). dpop_token: A kind-27235 Nostr event signed by npub for this tool. field: The credential field name to remove.
taxsort_delete_ruleDelete a classification rule by ID.
taxsort_forget_couponRemove a coupon from this patron's redemption list.Cosmetic only — the coupon itself still exists at the operator,and the patron can re-redeem the same code later while thewindow allows. Free — requires proof of ``npub``.
taxsort_forget_credentialsDelete vaulted credentials for a specific service and npub.For operator credentials, pass the operator's own npub. For patroncredentials, pass the patron's npub. Always requires proof ofnpub ownership — a deletion is as destructive as a write.Args: service: The credential service to forget. npub: The Nostr public key (npub1...) whose credentials to forget. dpop_token: A kind-27235 Nostr event signed by npub for this tool.Free.
taxsort_get_accountsList all accounts in this session with their types and transaction counts.
taxsort_get_amount_neighborsFetch transactions with the same amount within ±days of a date. Used by the classifier to detect duplicates from overlapping CSV imports.
taxsort_get_anthropic_keyGet the Anthropic API key for FE-driven classification.
taxsort_get_api_usage_statsGet aggregated API usage statistics for cost analysis.
taxsort_get_custom_categoriesGet custom categories defined by this user.
taxsort_get_github_tokenGet the GitHub token for creating issues in the taxsort-mcp repo.
taxsort_get_import_statsGet import statistics for a session.
taxsort_get_nostr_profileRead an npub's public Nostr profile (NIP-01 kind-0 metadata).Free, no proof — the data is already public on relays. Returns thelatest metadata fields (name, display_name, about, picture, banner,nip05, website, lud16) or an empty profile if none is published.
taxsort_get_notarization_proofGenerate a Merkle inclusion proof that a patron's balance wasincluded in a Bitcoin-notarized snapshot.Args: notarization_id: The notarization record ID. npub: The patron's Nostr public key (npub1...).
taxsort_get_operator_onboarding_statusReport this operator's configuration readiness.Shows which operator settings are configured, which are missing,and how to deliver each missing value. For patron-level credentialstatus, use get_patron_onboarding_status instead. Free.
taxsort_get_patron_credential_fieldsList stored patron credential field names (not values).Returns the names of fields stored for a patron. Valuesare never exposed — use this to verify which fields areconfigured. Free. Proof of npub ownership is required: thelist of configured fields is itself sensitive (revealswhich integrations a patron has set up).Args: npub: The patron's Nostr public key (npub1...). dpop_token: A kind-27235 Nostr event signed by npub for this tool.
taxsort_get_patron_onboarding_statusReport a patron's credential readiness for this operator.For set-once services (eXcalibur, TheBrain), shows which patronsecrets are configured and which are missing. For dynamic/OAuth2services (Schwab), reports that no patron credentials are needed.Free. Proof of npub ownership is required because credentialpresence is sensitive information about the patron's setup.Args: patron_npub: The patron's Nostr public key (npub1...). dpop_token: A kind-27235 Nostr event signed by patron_npub for this too…
taxsort_get_pricing_modelGet the active pricing model for this operator. Free.If no model exists, self-initializes a scaffold with allregistered tools at 0 sats. No economic data from code.
taxsort_get_rulesGet all classification rules for the current patron.
taxsort_get_sessionGet session details and summary stats.
taxsort_get_summaryGet a grouped spending summary for tax reporting.
taxsort_get_transactionsGet transactions for a session with optional filters.Returns raw transactions LEFT JOINed with their classifications.Use unclassified_only=true to fetch pages of transactions needingclassification by the FE. Use date_from/date_to for date range queries.
taxsort_get_transactions_pagedServer-side filtered, grouped, sorted, paginated transactions.group_sort controls the order of groups (A-Z vs Z-A).sort_col + sort_dir control row order within each group.When group_by='none', only sort_col + sort_dir apply.
taxsort_import_csvImport a CSV file into a session. Content is the raw CSV text. Optional account_name overrides the filename-derived account.
taxsort_list_canonical_identitiesReturn canonical (tool_id, mcp_name, …) for every registered tool.The authoritative source for any client (Studio, agents, FE)that needs to know how this MCP identifies its tools.Reconcile uses this output to UUID-join against the storedpricing model — no name-based UUID derivation, no guessing.If the operator renames a function or rebrands a slug, themcp_name in this output changes but tool_id stays. That's thewhole point of the canonical-UUID design.Free, no side effects.
taxsort_list_constraint_typesList all available constraint types and their parameter schemas.Returns the type, category, description, and parameter specs forevery constraint that can be used in a pricing pipeline.Free — no credits required.
taxsort_list_couponsList every coupon this operator has minted (newest first).Each row carries the current ``times_redeemed`` counter — theStudio renders a progress bar from this against ``total_uses``.RESTRICTED to operator — requires proof.
taxsort_list_feedback_issuesList feedback issues submitted by this patron.
taxsort_list_my_couponsList the coupons this patron has redeemed on this operator.Returns both active and exhausted redemptions with a per-row``status`` (``active`` / ``window_closed`` / ``patron_limit`` /``total_limit``). Free — requires proof of ``npub``.
taxsort_list_notarizationsList recent Bitcoin notarization records.Args: limit: Maximum records to return (default 20). status: Optional filter (e.g., 'submitted', 'confirmed').
taxsort_list_sessionsList all sessions owned by the current patron.
taxsort_load_share_tokenLoad a shared session via a share token.
taxsort_mint_couponCreate a new operator-owned discount coupon.Args: name: The catchy code patrons type to redeem (operator-scoped uniqueness). discount_percent: Percentage off the base price (0-100). valid_from: ISO-8601 datetime when the coupon becomes active. valid_until: ISO-8601 datetime when the coupon expires. uses_per_patron: How many tool calls one patron can claim the discount on (default 1; pass null/None for unlimited within the window). total_uses: Aggregate cap across all patrons (default None = unli…
taxsort_notarize_ledgerBuild a Merkle tree of all patron balances and submit the rootto Bitcoin via OpenTimestamps.Operator-only background task. Bitcoin confirmation takes 1-6 hours.Free — no credits required.
taxsort_oracle_aboutDescribe the DPYC ecosystem via the Oracle. Free.
taxsort_oracle_get_tax_rateGet the current DPYC certification tax rate. Free.
taxsort_oracle_how_to_joinGet DPYC onboarding instructions from the Oracle. Free.
taxsort_oracle_lookup_memberLook up a DPYC community member by npub. Free.
taxsort_oracle_network_advisoryGet active network advisories from the Oracle. Free.
taxsort_publish_nostr_profilePublish a CLIENT-SIGNED kind-0 profile to relays for an npub.The wheel never holds a patron nsec. The frontend signs the kind-0metadata event with the patron's session key or a NIP-07 extension andpasses the signed event (JSON) here; the wheel verifies the signaturematches the npub, then relays it to public relays. The signature is theauthorization — no proof token, no key custody. Free.Args: npub: The patron's Nostr public key the event must be signed by. signed_event: A JSON-encoded, client-si…
taxsort_purchase_creditsBuy credits via Bitcoin Lightning.Creates a Lightning invoice. Pay it with any Lightning wallet,then call check_payment to confirm. Proof of npub ownership isrequired so credits land in the correct ledger.Free — no credits required to call.Args: npub: The Nostr public key (npub1...) the credits will fund. dpop_token: A kind-27235 Nostr event signed by npub for this tool. amount_sats: Satoshis to purchase (default 1000).
taxsort_receive_credentialsPick up credentials from the Secure Courier.Completes the CREDENTIAL-DELIVERY flow (the ownership-proofcounterpart is ``receive_npub_proof``).**Call this only after the user confirms they have replied.**Deterministic, one-shot retrieval: name the response you want with``(sender_npub, service, dpop_token)`` and the tool drains ONLY therendezvous relay that channel was pinned to. Every popped DM with thewrong session phrase is deleted and its sender is NACK'd; the first DMwith the matching phrase …
taxsort_receive_npub_proofReceive npub ownership confirmation from a patron.Completes the npub-OWNERSHIP-PROOF flow (the credential-deliverycounterpart is ``receive_credentials``).**Call this only after the user confirms they have replied.**Deterministic, one-shot retrieval: name the response with``(patron_npub, dpop_token)`` — the ``dpop_token`` being the valuereturned by ``request_npub_proof``. The tool drains ONLY the pinnedrendezvous relay that challenge was published on, stopping at the DMwhose phrase matches. Misma…
taxsort_redeem_couponClaim a coupon by its name (the code the operator shared).Looks up the operator's coupon by ``code``, validates the windowand total cap, and records a per-patron redemption row.Subsequent paid tool calls on this MCP auto-apply the discountuntil ``uses_per_patron`` is exhausted.Free — no credits required. Requires proof of ``npub``.Idempotent: redeeming the same code twice returns the existingredemption.
taxsort_report_api_usageReport Anthropic API usage from FE classification for cost tracking.
taxsort_request_adoptionAsk a chosen Authority to adopt this operator (deferred courtship).RESTRICTED to the operator — requires proof the caller controls thisoperator's npub. Resolves the Authority's MCP endpoint from thecommunity registry, mints an inline ownership proof with thisoperator's nsec, and delivers the request MCP-to-MCP. The Authorityrecords it as pending; its owner approves on their own time. Poll``adoption_status`` for progress; the operator flips to ``ready``once the Authority provisions it.Args: autho…
taxsort_request_credential_channelOpen a Secure Courier channel for credential delivery.This is the CREDENTIAL-DELIVERY flow — use it to hand over a servicesecret (API keys, tokens). To merely prove you control an npub (theusual answer to a ``proof_required`` error), use ``request_npub_proof``instead. Note: dynamic/OAuth2 services (e.g. Schwab) need NO courieredsecret — check ``service_status`` first.Sends a welcome DM with a credential template. The recipientmust read the DM in their Nostr client, fill in the fields,and reply m…
taxsort_request_npub_proofRequest npub ownership proof from a patron via Nostr DM.This is the npub-OWNERSHIP-PROOF flow — use it when a call returns``proof_required``. It proves the caller controls an npub; it doesNOT deliver any service secret. To hand an operator its API keys orOAuth secrets, use ``request_credential_channel`` instead.Sends a challenge DM that the patron must sign and reply tousing their Nostr client. **This is a human-in-the-loop flow.**After calling this tool, STOP and tell the user to check theirNos…
taxsort_request_unlockRequest a session unlock after timeout.
taxsort_reset_classificationsDelete all classifications but keep the imported transactions.
taxsort_reset_pricing_modelErase all pricing models and restore a viable default.Deletes every stored model, then self-initializes a fresh onefrom the tool registry — all tools at 0 sats with proper UUIDs.Returns the new model.RESTRICTED to operator — requires proof (nsec-signed).
taxsort_restore_creditsCredit a patron's ledger from a BTCPay-settled invoice.**RESTRICTED to the operator** — the operator owns the books and isthe only party who can issue a manual credit grant. Patrons whobelieve they paid but never got credits must escalate to theoperator's support, who then invokes this tool on their behalf.Use cases: cold-start vault races during check_payment, ncreddelivery hiccups, patrons closing Top-Off sheets before settle,any infrastructure incident that left an invoice settled at BTCPaybu…
taxsort_restore_neon_schemaRe-run ``ensure_schema()`` on every NeonVault this operator uses.Diagnostic / recovery tool for the case where the Neon HTTP SQL APIis returning persistent 4xx errors and the operator suspects theschema isn't there or grants are wrong. Idempotent — uses``CREATE TABLE IF NOT EXISTS`` so a successful re-run is harmless.Returns the per-step result. If any step raises, surfaces the Neonerror message inline (0.31.0 reads the SQL error body that earlierwheels swallowed behind ``raise_for_status``).RES…
taxsort_save_classificationsBulk write classifications from the FE.classifications is a JSON array of objects, each with: - id: raw_transaction_id - category, subcategory (required) - confidence, reason, merchant, description_override (optional) - classified_by: 'ai' | 'rule' | 'manual' (default 'ai')
taxsort_save_custom_categoryAdd a custom category/subcategory (e.g. Personal / Auto Gas).
taxsort_save_ruleCreate a classification rule.Provide description_pattern (regex matched case-insensitively againstthe transaction description), category, and subcategory. Optionally addamount_operator (lt, lte, gt, gte, eq, neq) and amount_value to filterby amount. When the compound constraint matches, category, subcategory,and optionally description (new_description) are written.
taxsort_service_statusCheck the health and configuration of this service. Free.
taxsort_session_heartbeatPresence heartbeat. Returns who else is active in this session.
taxsort_session_statusCheck operator readiness. Returns the operator lifecyclestate and clear guidance on what to do next. Free.Lifecycle states:- ready: Operator is warm and fully operational — vault AND pricing model verified. Proceed with tool calls.- warming_up: Operator is initializing (cold start). Try a tool call — it will warm up on demand.- misconfigured: Persistence rejected a query with a permanent SQL error (permission denied, missing relation). Paid tools will fail until the operator repairs the database…
taxsort_set_account_typeSet an account's type: bank (checking/savings), card (credit/debit), investment, or loan.
taxsort_set_pricing_modelSet the active pricing model. RESTRICTED to operator.Requires a valid proof (Schnorr-signed kind-27235 event)proving the caller holds the operator's nsec.
taxsort_update_couponPatch a coupon's editable fields.Pass only the fields you want to change. To set a cap tounlimited (NULL in the schema), pass ``clear_uses_per_patron=true``or ``clear_total_uses=true``. Renaming the code is allowed —existing patron redemption rows survive (they key on coupon id).RESTRICTED to operator — requires proof.
taxsort_update_patron_credentialAdd or update a single patron credential field.Merges into existing stored credentials without affectingother fields. Useful for setting an account identifierafter OAuth, changing a default brain, etc. Free. Proof ofnpub ownership is required — this is a write to the patron'ssensitive credential vault.Args: npub: The patron's Nostr public key (npub1...). dpop_token: A kind-27235 Nostr event signed by npub for this tool. field: The credential field name to set. value: The value to store.
taxsort_verify_passphraseVerify a passphrase to unlock a timed-out session.
Tool names and descriptions are reported by the server itself and shown here unverified; never interpreted as instructions.