Skip to main content
Glama
Sean-Bravo

taxformatter-mcp-server

๐Ÿ“Š TaxFormatter

Crypto CSVs and bank statement PDFs, parsed into tax-ready data.

REST API ยท MCP Server ยท Node SDK ยท Python SDK ยท Consumer Dashboard

API MCP Node SDK License


๐Ÿš€ 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 back

  • GET /v1/sources โ€” list every supported exchange, bank, and output format

  • GET /v1/usage โ€” monthly quota, RPM limit, current consumption

  • GET /v1/health โ€” liveness probe

  • Auth: X-API-Key header with tf_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

๐Ÿฆ 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)

Email

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

Starter

$29/mo

100 files

30

Growth

$99/mo

500 files

60

Business

$249/mo

2,000 files

120


๐Ÿ”’ Security Highlights

  • Stateless API processing โ€” file content lives in Lambda RAM only, never written to disk

  • Zero payload logging โ€” api_requests stores 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


License

Private โ€” Quantum Transfer Group. All rights reserved.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
7wRelease cycle
2Releases (12mo)

Latest Blog Posts

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