
Taxsort Mcp
io.github.lonnievPublished by GitHub account lonnievv0.31.0Updated Nov 4, 2026
TaxSort — Tollbooth-monetized MCP server for personal tax transaction classification
Overview
Remote MCP server that imports bank CSV exports, classifies transactions into US IRS tax categories, and produces Schedule A/C summaries.
- What you can do
- Create, list and inspect yearly tax sessions, with heartbeats and timed-out session unlock
- Import bank CSV exports and review import stats, accounts and account types
- Filter, page, group and sort transactions; save, delete or reset classifications and detect duplicate amounts
- Manage description-pattern rules with amount filters and custom categories
- Generate spending summaries grouped by IRS line, category, month or account
- Share a session by token, ask built-in advisor and tax-researcher assistants, and track API usage or file feedback issues
- When to use it
- Useful for US taxpayers or preparers who want an assistant to sort personal bank, card, investment and crypto transactions into IRS Schedule A and C categories and roll them up into tax summaries, instead of classifying rows by hand in a spreadsheet.
- Requirements
- A remote endpoint reached over Streamable HTTP with OAuth sign-in; identity is a Nostr npub proven by NIP-98 signing or an OAuth grant obtained through the npub proof tools. A pre-funded Lightning balance is used for paid calls. No local install or environment variables are needed for end users.
Installation
In SourceWeft
- Open Taxsort Mcp in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.lonniev%2Ftaxsort-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"taxsort": {
"type": "http",
"url": "https://taxsort-mcp.fastmcp.app/mcp"
}
}
}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
Verification & Unlock
Import
Transactions
Accounts
Summaries
Rules
Custom Categories
Sharing
AI Advisors
API Usage & Feedback
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,monthgroup_sort:ascordesc(controls group ordering)sort_col+sort_dir: row ordering within each grouppage+page_size: zero-indexed pagination
Amount Filter Expressions
Rules (save_rule, count_rule_matches) support compound filters with amount_operator and amount_value:
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
The domain schema is created automatically the first time the vault is used.
Operator Onboarding
- Generate a Nostr keypair, set
TOLLBOOTH_NOSTR_OPERATOR_NSEC - Deploy to Horizon
- 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 - Deliver credentials via Secure Courier (
request_credential_channel(sender_npub=<operator npub>, service=...)returns anonce; reply to the DM, thenreceive_credentials(sender_npub=..., service=..., nonce=...)):
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
License
Apache License 2.0. Copyright 2026 Lonnie VanZandt.
Source: README.md at commit fe796cd
Tools
0Version history
2- v0.31.0LatestOct 21, 2026
- v0.30.7Sep 16, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts