Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.lonniev/taxsort-mcp

REMOTE · TAXSORT-MCP.FASTMCP.APP

TaxSort — Tollbooth-monetized MCP server for personal tax transaction classification

0 this week 36 Trust /100

Last scanned (9 hours ago)

Scores higher than 19% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Finance and Payments

Recent critical change

Authorization (15 Oct 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

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 Security89
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
  • Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
  • Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified

Unverified: 6 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.

Changelog

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.

  • 18 Oct 26 −40
    • Endpoint reachability: reachable → behind authorisation ▼ security
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Transport: pass → unverified ▼ security
    • Authorization: fail → pass ▲ security
    • First check of Authorization: partial security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • First check of Schema quality: unverified functional
  • 15 Oct 26 +4
    • Authorization: unverified → fail ▼ critical
    • Judged manipulation: unverified → pass ▲ security
    • Schema quality: 128 → 193 ▼ functional
    • Tool coverage: 41% → 100% ▲ functional
    • Schema quality: good → excellent functional
    • Destructive annotations: All 13 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation. functional
  • 10 Oct 26 −1
    • Judged manipulation: pass → unverified ▼ security
  • 5 Oct 26 0
    • Judged manipulation: pass → unverified ▼ security
  • 30 Sept 26 0
    • Tool “taxsort_check_proof_status” rewrote its description, which is the text the model reads security
    • Tool “taxsort_receive_npub_proof” rewrote its description, which is the text the model reads security
    • Tool “taxsort_request_npub_proof” rewrote its description, which is the text the model reads security
    • “taxsort_check_proof_status” reworded the description of “dpop_token” cosmetic
  • 29 Sept 26 0
    • Tool “taxsort_restore_neon_schema” rewrote its description, which is the text the model reads security
  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

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 5 Nov 2026 · Probed https://taxsort-mcp.fastmcp.app/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.fastmcp.app CN=Amazon RSA 2048 M04,O=Amazon,C=US 17 Jun 2026 31 Dec 2026 RSA 2048 SHA256-RSA a1583bafd89c7b58780ef1a0a0d2ad7
SANs: *.fastmcp.app
CN=Amazon RSA 2048 M04,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 773124f2a952e3ed18a58bdb85d1bc0ce5f27
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of taxsort-mcp.fastmcp.app. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
app. present 23684 8 Verified
fastmcp.app. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On connection
HTTP status 401

WWW-Authenticate challenge Bearer resource_metadata="https://taxsort-mcp.fastmcp.app/.well-known/oauth-protected-resource/mcp"

Bearer resource_metadata="https://taxsort-mcp.fastmcp.app/.well-known/oauth-protected-resource/mcp"
Header Value
www-authenticate Bearer resource_metadata="https://taxsort-mcp.fastmcp.app/.well-known/oauth-protected-resource/mcp"

Protected resource metadata

Document https://taxsort-mcp.fastmcp.app/.well-known/oauth-protected-resource/mcp
Retrieved Yes
Resource https://taxsort-mcp.fastmcp.app/mcp
Authorisation server https://taxsort-mcp.fastmcp.app/

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://taxsort-mcp.fastmcp.app/mcp Auth required 401
http (plaintext) http://taxsort-mcp.fastmcp.app/mcp HTTPS enforced 301 https://taxsort-mcp.fastmcp.app/mcp
MCP tools · 88 exposed · ~16,374 tokens

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 →

Tool Tokens
taxsort_account_statement ~181

Generate 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 is the patron's spending account — not the operator's Authority tax balance. Free — no credits consumed. Proof of npub ownership is required to prevent statement-scraping of arbitrary patrons.

NameTypeReqDescription
daysinteger–Number of days of daily usage history to include (default 30).
dpop_tokenstringyesProof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
npubstringyesThe patron's Nostr public key (npub1...).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_account_statement_infographic ~181

Generate a visual SVG infographic of your account statement. Returns the same data as account_statement, rendered as a dark-themed SVG graphic with balance hero, metrics cards, health gauge, tranche table, and tool usage breakdown. Costs 1 api_sat per call. Proof is verified by ``debit_or_deny`` before any cost is incurred.

NameTypeReqDescription
daysinteger–Number of days of daily usage history to include (default 30).
dpop_tokenstringyesProof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
npubstringyesThe Nostr public key (npub1...) whose statement to render.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_adoption_status ~132

Check this operator's adoption-request status at a chosen Authority. Free. Polls the Authority MCP-to-MCP for the status of this operator's request (pending / approved / rejected / provisioned).

NameTypeReqDescription
authority_npubstringyesThe npub of the Authority the request was sent to.
dpop_tokenstring–Proof that the caller holds the operator's npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by the operator whose `u` tag is this tool's name.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_apply_rules ~195

Apply your classification rules to the transactions in a session. Each transaction takes the first matching rule (global and session-scoped, in rule-id order); its classification is written, replacing any it already had.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_ask_advisor ~235

Ask the Financial Advisor about using TaxSort. The question goes to Anthropic's Claude with a summary of the session's classified totals.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
historystring–Earlier turns as a JSON array string of {"role": "user"|"assistant", "text": "..."}; the last 6 are used. Empty for a new conversation.
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
questionstringyesThe question, in plain words.
session_idstring–TaxSort session id whose classified totals ground the answer; empty for none.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_ask_tax_researcher ~238

Ask the Tax Code Researcher about IRS provisions. The question goes to Anthropic's Claude with a summary of the session's classified totals.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
historystring–Earlier turns as a JSON array string of {"role": "user"|"assistant", "text": "..."}; the last 6 are used. Empty for a new conversation.
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
questionstringyesThe question, in plain words.
session_idstring–TaxSort session id whose classified totals ground the answer; empty for none.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_check_authority_balance ~73

Check 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 certified and the operator must call purchase_credits on the Authority. This is the operator's own funding — not a patron balance. Free.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_check_balance ~167

Check a patron's credit balance at this operator. This is the patron's spending balance — credits purchased via Lightning for tool calls at this operator. For the operator's own balance at the Authority (needed to certify patron purchases), use authority_check_balance instead. Free — no credits required. Proof of npub ownership is required to prevent anyone-with-the-registry from enumerating balances.

NameTypeReqDescription
dpop_tokenstringyesProof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
npubstringyesThe Nostr public key (npub1...) whose balance to check.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_check_payment ~153

Check the payment status of a Lightning invoice. Call after paying the invoice from purchase_credits. Free — no credits required. Proof of npub ownership is required to prevent credit-grant front-running by an observer of the invoice ID.

NameTypeReqDescription
dpop_tokenstringyesProof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
invoice_idstringyesThe invoice ID returned by purchase_credits.
npubstringyesThe Nostr public key (npub1...) that purchased the invoice.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_check_price ~247

Preview the effective cost of a tool call. Shows the base cost and any constraint effects (discounts, free trials, surge pricing). Free — no credits required.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
npubstring–Optional patron npub; with it, the preview includes that patron's coupons and constraint effects.
tool_idstringyesEither 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 deriv…
tool_kwargsstring–Optional JSON object with tool call parameters for ad valorem / categorical-multiplier pricing preview (e.g. '{"amount_sats": 5000}' or '{"difficulty": "sovereign", "mode": "live"}').

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_check_proof_status ~172

Check whether a proof grant is still valid. Mirrors ``check_oauth_status`` for the npub-proof flow: a calling agent can ask "will my next paid call accept this dpop_token?" before burning credits on a guaranteed failure. Expiry is read from the grant itself; the only store consulted is the patron's revocation watermark. Free, no side effects — touches no relay.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
patron_npubstring–Required. The patron's npub (npub1...).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_check_unlock ~176

Check if the unlock response is valid. A valid response spends the challenge and unlocks the patron's session.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
responsestringyesThe patron's reply to the unlock DM; "Approve Unlock" (any case) unlocks.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_clear_transactions ~170

Delete all transactions and classifications for a session, so CSVs can be re-imported.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_count_rule_matches ~242

Count how many transactions match a rule pattern (live preview).

NameTypeReqDescription
amount_operatorstring–Optional amount test: lt, lte, gt, gte, eq or neq; empty for no amount test.
amount_value––Signed amount in dollars the amount_operator compares against (negative for money out).
description_patternstringyesRegular expression matched case-insensitively against the transaction's description, merchant and description override.
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_create_feedback_issue ~264

Create a GitHub issue for bug reports, feature requests, or feedback. The issue opens in the taxsort-mcp GitHub repo, prefixed "[Feedback]". Without an operator GitHub token, a prefilled new-issue link is returned instead.

NameTypeReqDescription
bodystring–Issue body, Markdown.
categorystring–One of feedback, bug, feature or question; also becomes a "cat:<category>" label.
contactstring–Optional way to reach the reporter (e.g. an email or Nostr handle), added to the issue body; empty to stay anonymous.
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
titlestringyesIssue title, plain text.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_create_session ~186

Create a new TaxSort session for a tax year.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
labelstring–Display name for the session; empty means "<tax_year> Taxes".
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
tax_yearinteger–Four-digit tax year (e.g. 2025); 0 means the current calendar year.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_create_share_token ~189

Create a share token so another user can access this session.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
expires_daysinteger–Days until the token expires (default 30); 0 means it never expires.
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_delete_account_transactions ~180

Delete all transactions and classifications for a specific imported account.

NameTypeReqDescription
accountstringyesThe account name exactly as get_accounts lists it.
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_delete_classification ~196

Remove a classification, reverting the transaction to unclassified.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).
transaction_idstringyesThe transaction's id as get_transactions returns it (e.g. "tx-1a2b3c4d").

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_delete_coupon ~146

Delete a coupon. Cascades to all patron redemptions. Any chain step referencing the deleted coupon_id becomes a no-op (the constraint returns neutral on unknown ids) — the Studio surfaces orphan references as warnings. RESTRICTED to operator — requires proof.

NameTypeReqDescription
coupon_idstringyesThe id of the coupon to delete (from list_coupons).
dpop_tokenstring–Proof that the caller holds the operator's npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by the operator whose `u` tag is this tool's name.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_delete_custom_category ~155

Delete a custom category.

NameTypeReqDescription
category_idintegeryesThe custom category's numeric id, as get_custom_categories returns it.
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_delete_operator_credential ~266

Remove a single operator secret field. Deletes one key from the operator's encrypted credential blob without touching the others — the field-level counterpart to ``forget_credentials``, which wipes the whole row. Use it to retire a leftover after an SDK cutover (a Prefect key after Modal, or a stored but untemplated orphan like ``anthropic_api_key``) without taking the operator down for a full re-delivery. Stored-but-untemplated fields are first-class: the delete is keyed on what is vaulted, not on what the current template declares. Idempotent — already-absent fields report ``removed: false`` without rewriting the vault. RESTRICTED to the operator — requires the operator's proof (a kind-27235 event or a proof grant); patron proofs are rejected. A deletion is as destructive as a write.

NameTypeReqDescription
dpop_tokenstringyesProof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
fieldstringyesThe operator credential field to remove (templated or not).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_delete_patron_credential ~143

Remove a single patron credential field. Deletes one field from stored credentials without affecting other fields. Free. Proof of npub ownership is required — this is a write to the patron's sensitive credential vault.

NameTypeReqDescription
dpop_tokenstringyesProof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
fieldstringyesThe credential field name to remove.
npubstringyesThe patron's Nostr public key (npub1...).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_delete_rule ~154

Delete a classification rule by ID.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
rule_idintegeryesThe rule's numeric id, as get_rules returns it.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_forget_coupon ~163

Remove 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 the window allows. Free — requires proof of ``npub``.

NameTypeReqDescription
coupon_idstringyesThe id of the redeemed coupon to remove (from list_my_coupons).
dpop_tokenstring–Proof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
npubstringyesThe patron's Nostr public key (npub1...).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_forget_credentials ~154

Delete vaulted credentials for a specific service and npub. For operator credentials, pass the operator's own npub. For patron credentials, pass the patron's npub. Always requires proof of npub ownership — a deletion is as destructive as a write.

NameTypeReqDescription
dpop_tokenstringyesProof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
npubstringyesThe Nostr public key (npub1...) whose credentials to forget.
servicestringyesThe credential service to forget.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_accounts ~165

List all accounts in this session with their types and transaction counts.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_amount_neighbors ~272

Fetch transactions with the same amount within ±days of a date. Used by the classifier to detect duplicates from overlapping CSV imports.

NameTypeReqDescription
amountnumberyesThe exact signed transaction amount in dollars to match (negative for money out, positive for money in).
datestringyesCenter date of the window, as YYYY-MM-DD.
daysinteger–Half-width of the window in days on each side of date (default 14).
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
exclude_idstring–A transaction id to leave out of the results, usually the one being checked; empty to exclude nothing.
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_anthropic_key ~142

Get the Anthropic API key for FE-driven classification.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_api_usage_stats ~162

Get aggregated API usage statistics for cost analysis.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstring–TaxSort session id to total just that session; empty totals all your sessions.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_custom_categories ~137

Get custom categories defined by this user.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_github_token ~146

Get the GitHub token for creating issues in the taxsort-mcp repo.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_import_stats ~160

Get import statistics for a session.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_nostr_profile ~102

Read an npub's public Nostr profile (NIP-01 kind-0 metadata). Free, no proof — the data is already public on relays. Returns the latest metadata fields (name, display_name, about, picture, banner, nip05, website, lud16) or an empty profile if none is published.

NameTypeReqDescription
npubstring–The Nostr public key (npub1...) whose profile to read.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_notarization_proof ~70

Generate a Merkle inclusion proof that a patron's balance was included in a Bitcoin-notarized snapshot.

NameTypeReqDescription
notarization_idstringyesThe notarization record ID.
npubstringyesThe patron's Nostr public key (npub1...).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_operator_onboarding_status ~57

Report this operator's configuration readiness. Shows which operator settings are configured, which are missing, and how to deliver each missing value. For patron-level credential status, use get_patron_onboarding_status instead. Free.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_patron_credential_fields ~192

List stored patron credential field names (not values). Returns the names of fields stored for a patron, plus each field's ``delivered_at`` ISO-8601 timestamp when known (null for secrets vaulted before timestamps were recorded). Values are never exposed — use this to verify which fields are configured and how old each one is. Free. Proof of npub ownership is required: the list of configured fields is itself sensitive (reveals which integrations a patron has set up).

NameTypeReqDescription
dpop_tokenstringyesProof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
npubstringyesThe patron's Nostr public key (npub1...).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_patron_onboarding_status ~169

Report a patron's credential readiness for this operator. For set-once services (eXcalibur, TheBrain), shows which patron secrets are configured and which are missing. For dynamic/OAuth2 services (Schwab), reports that no patron credentials are needed. Free. Proof of npub ownership is required because credential presence is sensitive information about the patron's setup.

NameTypeReqDescription
dpop_tokenstringyesProof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
patron_npubstringyesThe patron's Nostr public key (npub1...).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_pricing_model ~51

Get the active pricing model for this operator. Free. If no model exists, self-initializes a scaffold with all registered tools at 0 sats. No economic data from code.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_rules ~170

Get all classification rules for the current patron.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstring–TaxSort session id; when given, returns your global rules plus the rules scoped to this session. Empty returns all your rules.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_session ~159

Get session details and summary stats.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_summary ~292

Get a grouped spending summary for tax reporting. Expenses are money out (negative amounts) and income is money in, in dollars.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
group_bystring–Grouping: taxline, subcategory, category, month or account, or two joined by "+" (e.g. "category+month").
monthstring–Only this month, as YYYY-MM; empty for the whole session.
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
scopestring–Which categories to total: "tax" (Schedule C and Schedule A), "all" (everything except Duplicate), or one category: "Schedule C", "Schedule A", "Internal Transfer", "Personal" or "Duplicate". Anythin…
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_transactions ~444

Get transactions for a session with optional filters. Returns raw transactions LEFT JOINed with their classifications. Use unclassified_only=true to fetch pages of transactions needing classification by the FE. Use date_from/date_to for date range queries.

NameTypeReqDescription
accountstring–Only transactions from this account name, as get_accounts lists it; empty for all.
categorystring–Only transactions classified in this category (e.g. "Schedule C", "Schedule A", "Personal", "Internal Transfer", "Duplicate"); empty for all. Ignored when unclassified_only is true.
date_fromstring–Earliest transaction date to include, as YYYY-MM-DD; empty for no lower bound.
date_tostring–Latest transaction date to include, as YYYY-MM-DD; empty for no upper bound.
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
limitinteger–Maximum number of transactions to return (default 200).
monthstring–Only transactions in this month, as YYYY-MM; empty for all.
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
offsetinteger–Number of matching transactions to skip, for paging (default 0).
searchstring–Case-insensitive regular expression matched against the description, merchant and description override; empty for no search.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).
subcategorystring–Only transactions with this exact subcategory (e.g. "Office Supplies"); empty for all.
unclassified_onlyboolean–True to return only transactions with no classification yet.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_get_transactions_paged ~509

Server-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.

NameTypeReqDescription
accountstring–Only transactions from this account name, as get_accounts lists it; empty for all.
categorystring–Only transactions classified in this category (e.g. "Schedule C", "Personal"); empty for all.
classified_onlyboolean–True to return only transactions that have a classification.
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
group_bystring–How rows are grouped: none, category, subcategory, taxline, month, account or merchant, or two joined by "+" (e.g. "month+category").
group_sortstring–Order of the groups: "asc" (A-Z) or "desc" (Z-A).
monthstring–Only transactions in this month, as YYYY-MM; empty for all.
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
pageinteger–Zero-based page number.
page_sizeinteger–Rows per page (default 200).
searchstring–Case-insensitive regular expression matched against the description, merchant and description override; empty for no search.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).
sort_colstring–Column that orders rows within each group: date, description, amount, account or category.
sort_dirstring–Row order within each group: "asc" or "desc".
subcategorystring–Only transactions with this exact subcategory (e.g. "Office Supplies"); empty for all.
unclassified_onlyboolean–True to return only transactions with no classification yet; takes precedence over classified_only.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_import_csv ~330

Import a CSV file into a session. The bank format (Chase, US Bank, Schwab, SoFi, PayPal, Coinbase, a checkbook register, or generic) is detected from the header row. Rows already in the session are skipped. A checkbook register also writes its payee and category onto matching bank transactions (same amount, within one day).

NameTypeReqDescription
account_namestring–Account name to file these transactions under; empty means the filename without its extension.
contentstringyesThe whole CSV file as text, header row first; comma- or tab-delimited.
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
filenamestringyesThe file's name (e.g. "chase-4821-2025.csv"); its stem names the account unless account_name is given, and a 20xx year in it dates checkbook rows that lack a year.
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.
session_idstringyesTaxSort session id (the UUID string create_session returns; list_sessions lists yours).

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_list_canonical_identities ~250

Return canonical (tool_id, mcp_name, …) for every tool the wheel exposes. 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 stored pricing model — no name-based UUID derivation, no guessing. Includes both ToolIdentity-seeded tools and any UUID recorded by ``@paid_tool`` that is missing from the registry. The latter appear with ``registered: false`` (and in the top-level ``unregistered`` array) so Reconcile can flag deploy drift instead of silently reporting clean when a live tool was never seeded (#174). If the operator renames a function or rebrands a slug, the mcp_name in this output changes but tool_id stays. That's the whole point of the canonical-UUID design. Also diffs the live FastMCP wire surface against the registry. Tools exposed on the wire but absent from the registry appear in ``unregistered`` so Reconcile can flag deploy drift instead of silently under-reporting (issue #175). Free, no side effects.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_list_constraint_types ~51

List all available constraint types and their parameter schemas. Returns the type, category, description, and parameter specs for every constraint that can be used in a pricing pipeline. Free — no credits required.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_list_coupons ~122

List every coupon this operator has minted (newest first). Each row carries the current ``times_redeemed`` counter — the Studio renders a progress bar from this against ``total_uses``. RESTRICTED to operator — requires proof.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds the operator's npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by the operator whose `u` tag is this tool's name.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_list_feedback_issues ~138

List feedback issues submitted by this patron.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content "", a `u` tag holding this tool's exa…
npubstring–The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it.

Structured output declared, but exposes no named fields.

No examples provided.

taxsort_list_my_coupons ~148

List 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``.

NameTypeReqDescription
dpop_tokenstring–Proof that the caller holds npub: the grant envelope from receive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed by npub whose `u` tag is this tool's name.
npubstringyesThe patron's Nostr public key (npub1...).

Structured output declared, but exposes no named fields.

No examples provided.

Install

How do I install the io.github.lonniev/taxsort-mcp server?

io.github.lonniev/taxsort-mcp is a hosted endpoint at https://taxsort-mcp.fastmcp.app/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 · taxsort-mcp.fastmcp.app

# add to Claude Code
claude mcp add --transport http lonniev-taxsort-mcp 'https://taxsort-mcp.fastmcp.app/mcp'
Common questions

What is the io.github.lonniev/taxsort-mcp server?

io.github.lonniev/taxsort-mcp is listed in the public MCP registry as io.github.lonniev/taxsort-mcp. TaxSort, Tollbooth-monetized MCP server for personal tax transaction classification. This page covers its hosted endpoint (https://taxsort-mcp.fastmcp.app/mcp).

Is the io.github.lonniev/taxsort-mcp server safe to use?

io.github.lonniev/taxsort-mcp scores 36 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 io.github.lonniev/taxsort-mcp server expose?

io.github.lonniev/taxsort-mcp exposes 88 tools: taxsort_check_balance, taxsort_purchase_credits, taxsort_check_payment, taxsort_restore_credits, taxsort_account_statement, and 83 more. Their descriptions and schemas cost roughly 16,374 tokens of context every time the server is loaded.

Does the io.github.lonniev/taxsort-mcp server require authentication?

Yes. io.github.lonniev/taxsort-mcp asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the io.github.lonniev/taxsort-mcp server still maintained?

io.github.lonniev/taxsort-mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.