taxformatter-mcp-server
Enables parsing of Bank of America PDF statements into structured, tax-ready transactions.
Enables parsing of Binance CSV exports into normalized, tax-ready transactions.
Enables parsing of Cash App CSV exports into normalized, tax-ready transactions.
Enables parsing of Chase PDF statements into structured, tax-ready transactions.
Enables parsing of Coinbase CSV exports into normalized, tax-ready transactions.
Enables parsing of KuCoin CSV exports into normalized, tax-ready transactions.
Enables parsing of OKX CSV exports into normalized, tax-ready transactions.
Enables parsing of PayPal CSV exports into normalized, tax-ready transactions.
Enables parsing of Robinhood CSV exports into normalized, tax-ready transactions.
Enables parsing of Venmo CSV exports into normalized, tax-ready transactions.
Enables parsing of Wells Fargo PDF statements into structured, tax-ready transactions.
๐ TaxFormatter
Crypto CSVs and bank statement PDFs, parsed into tax-ready data.
REST API ยท MCP Server ยท Node SDK ยท Python SDK ยท Consumer Dashboard
๐ What It Does
TaxFormatter turns messy financial exports into structured, tax-ready data โ for humans and for AI agents.
Drop a CSV from Coinbase, a ZIP from Kraken, a .tar.gz from Binance, or a PDF statement from Chase, and get back a clean, normalized transaction set you can pipe into Koinly, TurboTax, CoinLedger, ZenLedger โ or straight into your own software.
Exchange CSV Clean, normalized
Bank PDF โ transactions (JSON / CSV)
XLSX / ZIP / TAR.GZ + AI-generated insightsRelated MCP server: kelnix-receipt-mcp-api
โจ Features
๐ Developer REST API
Ship a crypto-tax or bank-ingestion feature into your product in an afternoon.
POST /v1/parseโ upload a CSV or PDF, get structured JSON backGET /v1/sourcesโ list every supported exchange, bank, and output formatGET /v1/usageโ monthly quota, RPM limit, current consumptionGET /v1/healthโ liveness probeAuth:
X-API-Keyheader withtf_live_*keys (SHA-256 hashed at rest)Host:
https://api.taxformatter.com
๐ค MCP Server for AI Agents
Give Claude, Cursor, Windsurf, or any MCP-compatible agent the ability to parse crypto and bank data directly.
npx @taxformatter/mcp-serverTool | What it does |
| Auto-detects the exchange, returns normalized transactions |
| Extracts transactions from bank statement PDFs |
| Queries every supported source + output format |
๐ฆ Official SDKs
Node.js โ
@taxformatter/sdkโ promise-based, fully typedPython โ
taxformatterโ idiomatic, type-hinted
๐ฆ 14 Exchanges ยท 7+ Banks ยท 4 Tax Software Formats
Exchanges: Coinbase ยท Kraken ยท Gemini ยท Binance ยท Robinhood ยท Crypto.com ยท PayPal ยท Cash App ยท Venmo ยท KuCoin ยท Bybit ยท FTX ยท Bitfinex ยท OKX
Banks: Chase ยท Mercury ยท Navy Federal ยท Bank of America ยท Wells Fargo ยท Citi ยท Capital One
Export formats: Koinly ยท TurboTax (Form 8949) ยท CoinLedger ยท ZenLedger
๐ง Tiered AI Insights
Every parsed file comes back with actionable analysis โ scaled to your plan.
Tier | Model | Output |
Free / Starter | Gemini 2.5 Flash | Quick stats + basic flagging |
Growth | Claude Sonnet 4.6 | Balanced analysis, breakdowns |
Business | Claude Opus 4.7 | Deep analysis + tax suggestions |
๐ฅ๏ธ Consumer Dashboard
Not a developer? The web app at taxformatter.com is a full drag-and-drop experience with real-time job status, exchange auto-detection, transformation previews, and one-click downloads.
๐๏ธ Tech Stack
Layer | Technology |
Frontend | Next.js 16 ยท React 19 ยท TypeScript ยท Tailwind v4 |
Auth | NextAuth (Google OAuth + email/password + 2FA) |
Database | Neon (serverless PostgreSQL) |
Storage | AWS S3 (presigned URLs) |
Queue | AWS SQS + DLQ |
Compute | AWS Lambda ร 4 (scanner, processor, webhook, api) |
Edge | AWS API Gateway + WAF + CloudFront |
Payments | Stripe (consumer + developer tiers) |
AWS SES / Nodemailer | |
Monitoring | Sentry + CloudWatch |
IaC | Terraform |
๐ Repo Layout
trw/
โโโ app/ # Next.js App Router (marketing, dashboard, /v1 admin)
โ โโโ api/ # Internal API routes (NextAuth, uploads, jobs, dev keys)
โ โโโ dashboard/ # Authenticated user area + /dashboard/developer
โ โโโ docs/ # MDX-powered docs site
โ โโโ upload/ # Anonymous bank statement โ CSV landing page
โ
โโโ backend/ # Python processing layer (AWS Lambda)
โ โโโ handlers/ # scanner ยท processor ยท webhook ยท api
โ โโโ services/
โ โ โโโ engine.py # CSV parsing (14 exchange parsers)
โ โ โโโ format_converter.py # Koinly โ TurboTax/CoinLedger/ZenLedger
โ โ โโโ fingerprinting.py # Exchange auto-detection
โ โ โโโ ai_insights.py # Tiered AI analysis
โ โ โโโ api_auth.py # API key validation + rate limiting
โ โ โโโ bank_statement/ # PDF extraction pipeline
โ โโโ configs/banks/*.yaml # YAML-driven bank configs
โ โโโ terraform/ # Infra as code
โ
โโโ packages/
โ โโโ mcp-server/ # @taxformatter/mcp-server (npm)
โ โโโ sdk-node/ # @taxformatter/sdk (npm)
โ โโโ sdk-python/ # taxformatter (PyPI)
โ
โโโ components/ # React components (marketing, dashboard, ui)
โโโ lib/ # Business logic (auth, api-keys, stripe, email)
โโโ db/ # PostgreSQL schema + migrations
โโโ docs/ # Setup guidesFull architectural reference: ARCHITECTURE.md
โก Quick Start
Run the web app
npm install
npm run devOpen http://localhost:3000.
Try the API
curl -X POST https://api.taxformatter.com/v1/parse \
-H "X-API-Key: tf_live_..." \
-F "file=@coinbase.csv"Use the MCP server with Claude Code
{
"mcpServers": {
"taxformatter": {
"command": "npx",
"args": ["@taxformatter/mcp-server"],
"env": { "TAXFORMATTER_API_KEY": "tf_live_..." }
}
}
}Install the Node SDK
npm install @taxformatter/sdkimport { TaxFormatter } from "@taxformatter/sdk";
const tf = new TaxFormatter({ apiKey: process.env.TF_API_KEY! });
const result = await tf.parse({ file: fs.createReadStream("./coinbase.csv") });๐งช Testing
npm test # Jest unit tests (160+ across API, MCP, keys, UI)
npm run test:e2e # Playwright end-to-end tests
npm run typecheck # TypeScript strict mode
npm run lint # ESLint๐ณ Pricing
One plan, two ways to use it โ drop a file in the dashboard or call our API. Same quota, same AI insights.
Tier | Price | Quota | RPM | AI Insights | Highlights |
Free | $0 | 25 files | 10 | Gemini 2.5 Flash | All 14 exchanges ยท No credit card |
Starter | $29/mo | 100 files | 30 | Gemini 2.5 Flash | All 14 exchanges |
Growth | $99/mo | 500 files | 60 | Claude Sonnet 4.6 | + Bank PDF parsing |
Business | $249/mo | 2,000 files | 120 | Claude Opus 4.7 | + Custom integrations ยท SLA |
๐ Security Highlights
Stateless API processing โ file content lives in Lambda RAM only, never written to disk
Zero payload logging โ
api_requestsstores metadata only (hash, status, bytes, timing)API keys SHA-256 hashed at rest, prefixed
tf_live_for easy identificationTLS 1.3 enforced everywhere
AES-256 encryption on all stored uploads
AWS WAF โ DDoS shield, SQL injection, XSS mitigation
User-controlled retention โ 1 year default, or delete-after-download
Full disclosure at taxformatter.com/security.
๐ Documentation
ARCHITECTURE.md โ Full system design
content/docs/api/index.md โ API reference
packages/mcp-server/README.md โ MCP setup guide
RELIABILITY.md โ SLOs, incident playbooks
docs/ โ Stripe, Sentry, and deployment guides
License
Private โ Quantum Transfer Group. All rights reserved.
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sean-Bravo/trw'
If you have feedback or need assistance with the MCP directory API, please join our Discord server