{
  "markdown": "<div align=\"center\">\n\n# 📊 TaxFormatter\n\n### _Crypto CSVs and bank statement PDFs, parsed into tax-ready data._\n\n**REST API · MCP Server · Node SDK · Python SDK · Consumer Dashboard**\n\n[![API](https://img.shields.io/badge/API-api.taxformatter.com-059669?style=flat-square)](https://api.taxformatter.com)\n[![MCP](https://img.shields.io/badge/MCP-@taxformatter%2Fmcp--server-8B5CF6?style=flat-square)](https://www.npmjs.com/package/@taxformatter/mcp-server)\n[![Node SDK](https://img.shields.io/badge/npm-@taxformatter%2Fsdk-CB3837?style=flat-square)](https://www.npmjs.com/package/@taxformatter/sdk)\n[![License](https://img.shields.io/badge/License-Private-1a365d?style=flat-square)](#license)\n\n</div>\n\n---\n\n## 🚀 What It Does\n\nTaxFormatter turns messy financial exports into structured, tax-ready data — for humans _and_ for AI agents.\n\nDrop 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.\n\n```\n   Exchange CSV                        Clean, normalized\n   Bank PDF              →             transactions (JSON / CSV)\n   XLSX / ZIP / TAR.GZ                 + AI-generated insights\n```\n\n---\n\n## ✨ Features\n\n### 🔌 Developer REST API\nShip a crypto-tax or bank-ingestion feature into your product in an afternoon.\n\n- `POST /v1/parse` — upload a CSV or PDF, get structured JSON back\n- `GET  /v1/sources` — list every supported exchange, bank, and output format\n- `GET  /v1/usage` — monthly quota, RPM limit, current consumption\n- `GET  /v1/health` — liveness probe\n- **Auth:** `X-API-Key` header with `tf_live_*` keys (SHA-256 hashed at rest)\n- **Host:** `https://api.taxformatter.com`\n\n### 🤖 MCP Server for AI Agents\nGive Claude, Cursor, Windsurf, or any MCP-compatible agent the ability to parse crypto and bank data directly.\n\n```bash\nnpx @taxformatter/mcp-server\n```\n\n| Tool | What it does |\n|------|---------------|\n| `parse_crypto_csv` | Auto-detects the exchange, returns normalized transactions |\n| `parse_bank_statement` | Extracts transactions from bank statement PDFs |\n| `list_supported_sources` | Queries every supported source + output format |\n\n### 📦 Official SDKs\n- **Node.js** → [`@taxformatter/sdk`](packages/sdk-node) — promise-based, fully typed\n- **Python** → [`taxformatter`](packages/sdk-python) — idiomatic, type-hinted\n\n### 🏦 14 Exchanges · 7+ Banks · 4 Tax Software Formats\n\n**Exchanges:** Coinbase · Kraken · Gemini · Binance · Robinhood · Crypto.com · PayPal · Cash App · Venmo · KuCoin · Bybit · FTX · Bitfinex · OKX\n\n**Banks:** Chase · Mercury · Navy Federal · Bank of America · Wells Fargo · Citi · Capital One\n\n**Export formats:** Koinly · TurboTax (Form 8949) · CoinLedger · ZenLedger\n\n### 🧠 Tiered AI Insights\nEvery parsed file comes back with actionable analysis — scaled to your plan.\n\n| Tier | Model | Output |\n|------|-------|--------|\n| Free / Starter | Gemini 2.5 Flash | Quick stats + basic flagging |\n| Growth | Claude Sonnet 4.6 | Balanced analysis, breakdowns |\n| Business | Claude Opus 4.7 | Deep analysis + tax suggestions |\n\n### 🖥️ Consumer Dashboard\nNot a developer? The web app at [taxformatter.com](https://taxformatter.com) is a full drag-and-drop experience with real-time job status, exchange auto-detection, transformation previews, and one-click downloads.\n\n---\n\n## 🏗️ Tech Stack\n\n| Layer | Technology |\n|-------|------------|\n| **Frontend** | Next.js 16 · React 19 · TypeScript · Tailwind v4 |\n| **Auth** | NextAuth (Google OAuth + email/password + 2FA) |\n| **Database** | Neon (serverless PostgreSQL) |\n| **Storage** | AWS S3 (presigned URLs) |\n| **Queue** | AWS SQS + DLQ |\n| **Compute** | AWS Lambda × 4 (scanner, processor, webhook, api) |\n| **Edge** | AWS API Gateway + WAF + CloudFront |\n| **Payments** | Stripe (consumer + developer tiers) |\n| **Email** | AWS SES / Nodemailer |\n| **Monitoring** | Sentry + CloudWatch |\n| **IaC** | Terraform |\n\n---\n\n## 📁 Repo Layout\n\n```\ntrw/\n├── app/                 # Next.js App Router (marketing, dashboard, /v1 admin)\n│   ├── api/             # Internal API routes (NextAuth, uploads, jobs, dev keys)\n│   ├── dashboard/       # Authenticated user area + /dashboard/developer\n│   ├── docs/            # MDX-powered docs site\n│   └── upload/          # Anonymous bank statement → CSV landing page\n│\n├── backend/             # Python processing layer (AWS Lambda)\n│   ├── handlers/        # scanner · processor · webhook · api\n│   ├── services/\n│   │   ├── engine.py            # CSV parsing (14 exchange parsers)\n│   │   ├── format_converter.py  # Koinly → TurboTax/CoinLedger/ZenLedger\n│   │   ├── fingerprinting.py    # Exchange auto-detection\n│   │   ├── ai_insights.py       # Tiered AI analysis\n│   │   ├── api_auth.py          # API key validation + rate limiting\n│   │   └── bank_statement/      # PDF extraction pipeline\n│   ├── configs/banks/*.yaml     # YAML-driven bank configs\n│   └── terraform/               # Infra as code\n│\n├── packages/\n│   ├── mcp-server/      # @taxformatter/mcp-server (npm)\n│   ├── sdk-node/        # @taxformatter/sdk (npm)\n│   └── sdk-python/      # taxformatter (PyPI)\n│\n├── components/          # React components (marketing, dashboard, ui)\n├── lib/                 # Business logic (auth, api-keys, stripe, email)\n├── db/                  # PostgreSQL schema + migrations\n└── docs/                # Setup guides\n```\n\nFull architectural reference: **[ARCHITECTURE.md](ARCHITECTURE.md)**\n\n---\n\n## ⚡ Quick Start\n\n### Run the web app\n\n```bash\nnpm install\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000).\n\n### Try the API\n\n```bash\ncurl -X POST https://api.taxformatter.com/v1/parse \\\n  -H \"X-API-Key: tf_live_...\" \\\n  -F \"file=@coinbase.csv\"\n```\n\n### Use the MCP server with Claude Code\n\n```json\n{\n  \"mcpServers\": {\n    \"taxformatter\": {\n      \"command\": \"npx\",\n      \"args\": [\"@taxformatter/mcp-server\"],\n      \"env\": { \"TAXFORMATTER_API_KEY\": \"tf_live_...\" }\n    }\n  }\n}\n```\n\n### Install the Node SDK\n\n```bash\nnpm install @taxformatter/sdk\n```\n\n```ts\nimport { TaxFormatter } from \"@taxformatter/sdk\";\n\nconst tf = new TaxFormatter({ apiKey: process.env.TF_API_KEY! });\nconst result = await tf.parse({ file: fs.createReadStream(\"./coinbase.csv\") });\n```\n\n---\n\n## 🧪 Testing\n\n```bash\nnpm test              # Jest unit tests (160+ across API, MCP, keys, UI)\nnpm run test:e2e      # Playwright end-to-end tests\nnpm run typecheck     # TypeScript strict mode\nnpm run lint          # ESLint\n```\n\n---\n\n## 💳 Pricing\n\nOne plan, two ways to use it — drop a file in the dashboard or call our API. Same quota, same AI insights.\n\n| Tier | Price | Quota | RPM | AI Insights | Highlights |\n|------|-------|-------|-----|-------------|------------|\n| Free | $0 | 25 files | 10 | Gemini 2.5 Flash | All 14 exchanges · No credit card |\n| Starter | $29/mo | 100 files | 30 | Gemini 2.5 Flash | All 14 exchanges |\n| Growth | $99/mo | 500 files | 60 | Claude Sonnet 4.6 | + Bank PDF parsing |\n| Business | $249/mo | 2,000 files | 120 | Claude Opus 4.7 | + Custom integrations · SLA |\n\n---\n\n## 🔒 Security Highlights\n\n- **Stateless API processing** — file content lives in Lambda RAM only, never written to disk\n- **Zero payload logging** — `api_requests` stores metadata only (hash, status, bytes, timing)\n- **API keys SHA-256 hashed** at rest, prefixed `tf_live_` for easy identification\n- **TLS 1.3** enforced everywhere\n- **AES-256** encryption on all stored uploads\n- **AWS WAF** — DDoS shield, SQL injection, XSS mitigation\n- **User-controlled retention** — 1 year default, or delete-after-download\n\nFull disclosure at [taxformatter.com/security](https://taxformatter.com/security).\n\n---\n\n## 📚 Documentation\n\n- **[ARCHITECTURE.md](ARCHITECTURE.md)** — Full system design\n- **[content/docs/api/index.md](content/docs/api/index.md)** — API reference\n- **[packages/mcp-server/README.md](packages/mcp-server/README.md)** — MCP setup guide\n- **[RELIABILITY.md](RELIABILITY.md)** — SLOs, incident playbooks\n- **[docs/](docs/)** — Stripe, Sentry, and deployment guides\n\n---\n\n## License\n\nPrivate — Quantum Transfer Group. All rights reserved.\n",
  "bytes": 8176,
  "sha": "b47a8e67ce434beb35e14f4803b645232deec2b0be68c534d17be9806b5f480d",
  "repo_slug": "sean-bravo/trw",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_sean_bravo_taxformatter_b9f0dfbc/readme"
}