mcpField
T
taxsort-mcp

taxsort-mcp

Remote
github.com/lonnievFinance0Updated today
Repository

About taxsort-mcp

taxsort-mcp is an MCP server for classifying personal US Schedule A and C tax transactions. It imports bank CSVs, uses Claude AI for classification, and supports review, custom rules, and IRS line-item summaries.

Key features

  1. 01Import bank and payment CSVs
  2. 02Classify transactions with Claude AI
  3. 03Review and override classifications
  4. 04Summarize by IRS line item
  5. 05Create rules and apply classifications in bulk

Use cases

  1. 01Organize transactions for a personal tax year
  2. 02Review and correct AI-generated classifications
  3. 03Summarize spending by account, month, or tax line
  4. 04Apply custom rules to recurring transaction types

MCP support

The MCP server provides tools for tax sessions, CSV imports, transaction classification, and summaries. Its web frontend uses the same MCP tools, and the service bills through Tollbooth DPYC prepaid Lightning balances.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://taxsort-mcp.fastmcp.app/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

88
ParameterTypeRequiredDescription
npubstringYesThe Nostr public key (npub1...) whose balance to check.
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.

Details

From the project README

taxsort-mcp

MCP server for personal tax transaction classification (US Schedule A & C). Built on FastMCP, monetized via Tollbooth DPYC™ Lightning micropayments.

Don't Pester Your Customer™ (DPYC™) — API monetization for Entrepreneurial Bitcoin Advocates

Inspired by The Phantom Tollbooth by Norton Juster, illustrated by Jules Feiffer (1961).

What It Does

Import bank CSV exports (SoFi, Chase, Schwab, US Bank, PayPal, Coinbase), classify transactions into IRS tax categories using Claude AI, review and override classifications, generate tax summaries grouped by IRS line item, and track API usage costs.

Tools

Domain tools take the patron's npub and nothing else for identity: the connection proves it, either by signing each request with the npub's key (NIP-98) or as an OAuth holder connection that earned a grant through request_npub_proof / receive_npub_proof. The patron chooses the grant's lifetime, up to 30 days.

Sessions
ToolDescription
create_sessionCreate a tax session for a year
list_sessionsList your sessions
get_sessionSession details + stats
session_heartbeatPresence heartbeat; returns who else is active in the session
Verification & Unlock
ToolDescription
request_npub_proofStart npub verification via Secure Courier DM; returns a nonce (standard tool)
receive_npub_proofComplete npub verification with that nonce; the connection then holds the npub (standard tool)
verify_passphraseVerify a passphrase to unlock a timed-out session
request_unlockRequest a session unlock after timeout
check_unlockCheck if the unlock response is valid
Import
ToolDescription
import_csvImport CSV — idempotent, preserves user edits
get_import_statsImport sources, date ranges, ambiguous counts
Transactions
ToolDescription
get_transactionsFilter by category, month, account, date range, search, unclassified-only
get_transactions_pagedServer-side filtered, grouped, sorted, paginated transactions
save_classificationsBulk write classifications from the FE (JSON array)
delete_classificationRemove a single classification, reverting to unclassified
clear_transactionsDelete all transactions and classifications for a session
delete_account_transactionsDelete all transactions for a specific imported account
reset_classificationsDelete all classifications but keep the imported transactions
get_amount_neighborsFetch transactions with the same amount within ±N days (duplicate detection)
Accounts
ToolDescription
get_accountsList all accounts in a session with types and transaction counts
set_account_typeSet an account's type: bank, card, investment, or loan
Summaries
ToolDescription
get_summaryGrouped spending totals by IRS line, category, month, account
Rules
ToolDescription
get_rulesGet patron's classification rules
save_ruleCreate a description-pattern + optional amount-filter → subcategory rule
delete_ruleDelete a rule by ID
apply_rulesRe-apply all rules to unclassified transactions
count_rule_matchesLive preview of how many transactions match a rule pattern
Custom Categories
ToolDescription
get_custom_categoriesGet custom categories defined by this user
save_custom_categoryAdd a custom category/subcategory
delete_custom_categoryDelete a custom category
Sharing
ToolDescription
create_share_tokenGenerate a token to share session with spouse
load_share_tokenLoad a shared session via token
AI Advisors
ToolDescription
ask_advisorAsk the Financial Advisor about using TaxSort
ask_tax_researcherAsk the Tax Code Researcher about IRS provisions
API Usage & Feedback
ToolDescription
report_api_usageReport Anthropic API usage from FE classification for cost tracking
get_api_usage_statsGet aggregated API usage statistics for cost analysis
get_anthropic_keyGet the Anthropic API key for FE-driven classification
get_github_tokenGet the GitHub token for creating feedback issues
create_feedback_issueCreate a GitHub issue for bug reports, feature requests, or feedback
list_feedback_issuesList feedback issues submitted by this patron
Standard DPYC™ (from tollbooth-dpyc wheel)

register_standard_tools() mounts the wheel's full set, including session_status, check_balance, account_statement, purchase_credits, check_payment, check_price, service_status, request_credential_channel, receive_credentials, forget_credentials, request_npub_proof, receive_npub_proof, check_proof_status, held_identities, the pricing-model and coupon tools, request_adoption, report_issue, and the delegated oracle_* tools. See the tollbooth-dpyc README for the list.

Server-Side Pagination

get_transactions_paged performs filtering, grouping, sorting, and pagination entirely on the server. This is more efficient than fetching all transactions and processing client-side.

  • group_by: none, category, subcategory, account, month
  • group_sort: asc or desc (controls group ordering)
  • sort_col + sort_dir: row ordering within each group
  • page + page_size: zero-indexed pagination

Amount Filter Expressions

Rules (save_rule, count_rule_matches) support compound filters with amount_operator and amount_value:

OperatorMeaning
ltLess than (<-95 matches debits over $95)
lteLess than or equal
gtGreater than (gte 50 matches amounts $50+)
gteGreater than or equal
eqExact match (!33 style negation not supported — use neq)
neqNot equal

Examples: <-95 (debits exceeding $95), [0..10) (range via two rules), gte 50.

Dual Classification

  • save_classifications — bulk write from the frontend. Accepts a JSON array of {id, category, subcategory, ...} objects. Used during AI classification and manual review.
  • delete_classification — single revert. Removes one classification, returning the transaction to unclassified state.

Architecture

  • Pure MCP — no custom REST endpoints. Horizon exposes Streamable HTTP (JSON-RPC 2.0)
  • Web app — frontend/ (React + Vite on Cloudflare Pages, https://taxsort-app.pages.dev) calls the same MCP tools
  • One env var — TOLLBOOTH_NOSTR_OPERATOR_NSEC. Neon database provisioned automatically by Authority. BTCPay, the Anthropic API key and an optional GitHub token (for feedback issues) delivered via Secure Courier
  • Per-npub isolation — each patron's transactions, rules, and sessions are keyed by their Nostr public key
  • NeonVault — all persistence via Neon's HTTP SQL API (httpx, no asyncpg)
  • Tollbooth DPYC™ — pre-funded Lightning balances, Authority-certified purchases, constraint-driven pricing

Getting Started

pip install -e ".[dev]"
export TOLLBOOTH_NOSTR_OPERATOR_NSEC=nsec1...
python server.py

The domain schema is created automatically the first time the vault is used.

Operator Onboarding
  1. Generate a Nostr keypair, set TOLLBOOTH_NOSTR_OPERATOR_NSEC
  2. Deploy to Horizon
  3. Get adopted by an Authority: call request_adoption(authority_npub=..., service_url=...) on your own MCP, signed with your operator nsec; the Authority's owner approves it
  4. Deliver credentials via Secure Courier (request_credential_channel(sender_npub=<operator npub>, service=...) returns a nonce; reply to the DM, then receive_credentials(sender_npub=..., service=..., nonce=...)):
    {
      "btcpay_host": "https://btcpay.example.com",
      "btcpay_api_key": "...",
      "btcpay_store_id": "...",
      "anthropic_api_key": "sk-ant-...",
      "github_token": "(optional) token that can open issues for feedback"
    }
    

DPYC™ Social Contract

Part of the DPYC™ Social Contract — a network of monetized MCP services where AI agents pay for what they use via Bitcoin Lightning.

Other Operators in the Network
RepoWhat it does
tollbooth-dpycShared Python SDK — vault, auth, pricing, Lightning, Nostr identity
dpyc-communityGovernance registry — membership, advisories, threat model
dpyc-oracleCommunity concierge — free onboarding and member lookup
tollbooth-authorityCertification backbone — Schnorr-signed certificates
tollbooth-sampleSample Operator (canonical template) — weather stats reference
tollbooth-pricing-studioiOS pricing-model editor / operator console
cypher-mcpMonetized graph answers — named Cypher templates over Neo4j/AuraDB
schwab-mcpCharles Schwab brokerage data — positions, quotes, options, orders
thebrain-mcpTheBrain knowledge graph — thoughts, links, attachments
excalibur-mcpX (Twitter) posting — social media automation with OAuth2
optionality-mcpOptions-trading practice game
goodearth-mcpRegion-scoped climate analytics for small farms
beesknees-mcpThe Bee's Knees — a multiplayer race to the queen
roastify-mcpRoastify coffee catalog and packaging artwork
ChartRemotely-mcpPuts a security on a desktop chart remotely
tollbooth-webShared browser SDK for operator front ends
tollbooth-oauth2-collectorOAuth2 callback handler — advocate service
tollbooth-shortlinksURL shortener utility

License

Apache License 2.0. Copyright 2026 Lonnie VanZandt.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.