taxformatter-mcp-server
Parse crypto exchange CSVs (Coinbase, Binance, Kraken, +11 more) and bank statement PDFs (Chase, BofA, +11 more) into Koinly, TurboTax, CoinLedger, or ZenLedger formats. Free tier: 25 files/month, no credit card required.
README
<div align="center">
๐ TaxFormatter
Crypto CSVs and bank statement PDFs, parsed into tax-ready data.
REST API ยท MCP Server ยท Node SDK ยท Python SDK ยท Consumer Dashboard
</div>
๐ 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 insights
โจ 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 probe- Auth:
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-server
| Tool | What it does |
|---|---|
parse_crypto_csv |
Auto-detects the exchange, returns normalized transactions |
parse_bank_statement |
Extracts transactions from bank statement PDFs |
list_supported_sources |
Queries every supported source + output format |
๐ฆ Official SDKs
- Node.js โ
@taxformatter/sdkโ promise-based, fully typed - Python โ
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 | Gemini 1.5 Flash | Quick stats + basic flagging |
| Pro | Claude Sonnet 4 | Balanced analysis, breakdowns |
| Premium | Claude Opus 4 | 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 guides
Full architectural reference: ARCHITECTURE.md
โก Quick Start
Run the web app
npm install
npm run dev
Open 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/sdk
import { 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
Consumer (dashboard)
| Tier | Price | Highlights |
|---|---|---|
| Free | $0 | 3 downloads/month ยท Gemini insights |
| Pro | $89/year | Unlimited ยท Claude Sonnet insights |
| Premium | $189/year | Everything + Claude Opus + priority support |
Developer (API)
| Tier | Price | Quota | RPM | Highlights |
|---|---|---|---|---|
| Free | $0 | 25 files | 10 | All 14 exchanges ยท No credit card |
| Starter | $29/mo | 100 files | 30 | All 14 exchanges |
| Growth | $99/mo | 500 files | 60 | + Bank PDF parsing |
| Business | $249/mo | 2,000 files | 120 | + 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 identification - TLS 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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.