AmexAnalysis-MCP
...
Analyzes American Express credit card statements to provide spending insights, subscription detection, fraud alerts, and vendor unmasking from CSV exports.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AmexAnalysis-MCP Show me recurring payments from last month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Point it at an Amex activity CSV. It unmasks processor descriptors, splits charges from credits and payments, and answers follow-up questions from the statement already in memory.
There is no HTTP server and no database. The file you name is the only data it sees.
Statement line | Vendor | Processor |
| Grubhub | PayPal |
| Blue Bottle | Square |
| Substack | Stripe |
| Corner Cafe | Toast |
Features
Vendor unmasking. PayPal, Square, Stripe, Toast, Venmo, Cash App, Zelle, Clover, Shop Pay, Klarna, Afterpay, Apple Pay, and Google Pay. Specific merchant maps only — COFFEE does not become “Local Coffee Shop.”
Honest totals. Card payments (ONLINE PAYMENT THANK YOU, autopay, and similar) are never counted as spend. Credits stay credits. Sign convention is detected from the file, because Amex exports come both ways.
One load per session. Call load_statement once. Later tools omit csvPath and reuse the parsed file until it changes on disk.
Subscriptions. Known services plus recurring amount and interval. “Unused” is measured from the statement end date, not today’s clock.
Two surfaces. Ask Claude, or run analyze / unmask in a terminal. Excel, CSV, and JSON export from both.
Not in scope. It does not log into American Express, fetch receipts, read Chase or Citi files, or train a model on your data.
Related MCP server: Excel Analytics MCP Server
Install
Requires Node.js 18.18 or newer and an Amex activity CSV with Date, Description, and Amount.
git clone https://github.com/ogprotege/amex-anaylsis-mcp.git
cd amex-anaylsis-mcp
npm install
npm test
npm run buildnpm test and npm run test-unmasking generate their own sample CSV. You do not need to put a personal statement in the repo.
Claude Desktop
Add the server, then restart Claude Desktop.
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"amex-analysis": {
"command": "node",
"args": ["/absolute/path/to/dist/amex-mcp-server.js"]
}
}
}Then:
Load ~/Downloads/activity.csv
What are my subscriptions this period?
Unmask the PayPal and Square charges
Search Uber over $20After load_statement, later tools can omit csvPath. You can also read amex://statement/summary or use the review_subscriptions prompt.
{
"mcpServers": {
"amex-analysis-enhanced": {
"command": "node",
"args": ["/absolute/path/to/dist/amex-mcp-server-enhanced.js"]
}
}
}Both can be registered at once. Dev without building: npm run dev (standard) or npm run dev:enhanced. Details: ENHANCED_SERVER_GUIDE.md.
CLI
npx tsx src/cli.ts --help
npx tsx src/cli.ts unmask "PAYPAL *GRUBHUB"
npx tsx src/cli.ts analyze data/amex.csv
npx tsx src/cli.ts analyze data/amex.csv --format excel --out output/report.xlsx
npx tsx src/cli.ts serve --mode enhancedAfter npm run build, the same commands are node dist/src/cli.js .... If the package is linked, amex-analysis is the binary name.
$ npx tsx src/cli.ts unmask "PAYPAL *GRUBHUB"
PAYPAL *GRUBHUB
Vendor: Grubhub
Processor: PayPal
Confidence: 90%
Needs review: noThe analyze sample is the project fixture CSV, not a live account. Payments are listed on their own line. They are not spend.
How a session works
flowchart LR
CSV[Amex activity CSV] --> Load[load_statement]
Load --> Cache[Session cache]
Cache --> Tools[Tools]
Cache --> Res[amex://statement/*]
Cache --> Prompts[Prompts]The cache keys on path and mtime. Edit the CSV and the next tool call reloads it. Paths are resolved from the server’s working directory, not from Claude’s UI.
Mode | Start | Catalog |
Basic |
|
|
Standard |
| Basic, plus unmask, search, trends, duplicates, period compare |
Enhanced |
| Full catalog |
Tools
Standard mode (the default) is enough for everyday review.
Tool | Does |
| Read the CSV once |
| Summary, JSON, Excel, or CSV. Optional date and min-amount filters |
| Recurring services and monthly equivalent |
| One merchant, including unmasked processor charges |
| Unusual amounts and same-day duplicates |
| Category totals |
| Processor-masked descriptors in the loaded file |
| Text and amount search |
| Spend over the statement window |
| Same vendor, same day, same amount |
| Two date ranges in one file |
| Write Excel / CSV / JSON |
Enhanced mode adds tax buckets, accounting export, budget alerts, unused-subscription checks, and the rest of the catalog. Those are analysis helpers, not tax advice. See ENHANCED_SERVER_GUIDE.md.
Resources after a load: amex://statement/summary, subscriptions, categories, anomalies, unmasked.
Prompts: review_subscriptions, find_waste, unmask_processors, monthly_review.
CSV format
Official Amex activity exports work, including a title row before the header.
Required | Optional, used when present |
| Extended details, statement description, city/state, category, card member |
Dates parse as M/D/YYYY or YYYY-MM-DD in UTC. Account-number columns are ignored.
If Claude says the file was not found, the path is wrong relative to the MCP server’s cwd.
Library
import { AmexSpendingAnalyzer } from './amex-mcp-server.js';
const analyzer = new AmexSpendingAnalyzer();
await analyzer.parseAmexCsv('data/amex.csv');
const results = analyzer.analyze();results includes vendors, charge / credit / payment totals, subscriptions, categories, and anomalies.
Tests
npm test # parser, unmasker, analyzer, session, CLI, catalog
npm run test-unmasking
npm run build
npm run demo # writes a sample CSV and an Excel filePrivacy
Statements are read from the path you pass. Nothing is uploaded. Nothing is stored after the process exits, other than files you explicitly export.
License
MIT. See LICENSE.
Available Tools
6 toolsanalyze_amex_spendingB
Analyze Amex credit card spending from CSV file
Inputs: csvPath (required), outputPath, outputFormat.
analyze_vendorC
Get detailed analysis of a specific vendor
Inputs: csvPath (required), vendorName (required).
export_analysisC
Export comprehensive spending analysis
Inputs: format (required), csvPath (required), outputPath (required).
find_anomaliesC
Find spending anomalies and potential fraud
Inputs: csvPath (required), severityThreshold.
find_subscriptionsB
Find all subscriptions in Amex transactions
Inputs: csvPath (required).
spending_by_categoryB
Analyze spending broken down by category
Inputs: csvPath (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a distinct analytical aspect: overall spending, subscriptions, specific vendors, anomalies, category breakdown, and export. No meaningful overlap exists between them.
Five of six tools follow a clear verb_noun convention (analyze_*, find_*, export_*). The outlier, spending_by_category, uses a noun phrase but is still readable and not jarringly inconsistent.
Six tools is a well-scoped count for a specialized spending-analysis server. Each tool covers a distinct need without redundancy or bloat.
The surface covers the core analysis lifecycle: overall analysis, drill-downs (vendor, category), anomaly detection, and export. Minor gaps like time-period comparison or raw transaction listing could be added, but the current set supports typical workflows.
Maintenance
Related MCP Connectors
Ask Claude about your income and spending, and import bank statements. No bank login.
Turn bank statement PDFs, CSVs, XLSX and OFX into categorised transactions plus a summary.
Amazon Seller Central and Ads inside Claude, ChatGPT or Grok. Fees from your own settlements.
Amazon Seller Central and Ads inside Claude, ChatGPT or Grok. Fees from your own settlements.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables users to analyze AWS costs, track spending trends, and detect anomalies directly within Claude Desktop using the AWS Cost Explorer API. It provides tools to identify major cost drivers and compare usage across different time periods through natural language queries.MIT
- AlicenseBqualityDmaintenanceEnables users to analyze local Excel and CSV files through natural language queries and a web dashboard while keeping data local. It supports saving specific analyses as reusable tools and building a custom analytics toolkit within Claude Desktop.10MIT
- AlicenseNot gradedqualityDmaintenanceAI-powered personal finance analysis through Claude AI using Plaid integration, enabling natural language queries about transactions, subscriptions, budgets, and spending trends.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying your own local bank and credit card statement files (CSV or PDF) in plain language, so you can discover forgotten recurring subscriptions, compare spending across months and quarters, and look up transactions without any bank logins or network calls.MIT