Skip to main content
Glama
archana-gurimitkala

financial-fraud-detection-mcp

README.md
# Financial Fraud Detection — MCP Demo

An AI-powered financial fraud detection system built with **Model Context Protocol (MCP)** and **Claude Opus 4.8**. Features a dark-themed Gradio dashboard where Claude autonomously calls fraud detection tools via MCP.

## Screenshots

| | |
|---|---|
| ![Dashboard](screenshots/mcp1_dashboard.png) | ![Risk Report](screenshots/mcp2_risk_report.png) |
| *Dashboard — MCP server connected, tools & prompts discovered* | *Full fraud risk report — HIGH risk, 7 accounts flagged* |
| ![Executive Summary](screenshots/mcp3_executive_summary.png) | ![Structuring](screenshots/mcp4_structuring.png) |
| *Executive summary with rule-based + statistical findings* | *Structuring / smurfing accounts (A1003, A1009)* |
| ![Velocity](screenshots/mcp5_velocity_abuse.png) | ![Non-Technical](screenshots/mcp6_nontechnical_summary.png) |
| *Velocity abuse — Account A1007, 6 transactions in 3 minutes* | *Plain-English summary for non-technical executives* |
| ![Deep Dive](screenshots/mcp7_account_deepdive.png) | ![Email](screenshots/mcp8_compliance_email.png) |
| *Account A1003 deep dive — structuring legal analysis* | *Auto-generated compliance escalation email* |
| ![Clean](screenshots/mcp9_clean_accounts.png) | |
| *Claude honestly explaining what its tools can and can't determine* | |

## What It Does

- Analyzes 30 simulated transactions across 11 accounts
- Detects fraud using two complementary methods:
  - **Rule-based pattern matching** — velocity abuse, duplicate charges, structuring (smurfing)
  - **Statistical anomaly detection** — IQR method to surface unusual transaction amounts
- Generates plain-English risk reports suitable for compliance officers
- Exports the full chat session as a formatted PDF

## MCP Architecture

```
Gradio UI (app.py)
    │
    └── MCP Client (stdio)
            │
            └── MCP Server (server.py)
                    ├── Tools (4)
                    │     ├── analyze_transactions
                    │     ├── detect_fraud_patterns
                    │     ├── flag_anomalies
                    │     └── generate_risk_report
                    ├── Resources (1)
                    │     └── transactions://sample
                    └── Prompts (2)
                          ├── fraud_analysis
                          └── stakeholder_report
```

Claude receives a user question, autonomously decides which tools to call, executes them via MCP, and synthesizes the results into a final answer — no hardcoded logic in the UI layer.

## Fraud Scenarios in Sample Data

| Pattern | Accounts | Description |
|---|---|---|
| Velocity Abuse | A1007 | 6 transactions in under 3 minutes ($480 total) |
| Duplicate Charges | A1004, A1006 | Identical amount + merchant within 60 seconds |
| Structuring / Smurfing | A1003, A1009 | Multiple transactions just under $10,000 (31 U.S.C. § 5324) |
| Statistical Anomalies | A1005, A1011 | Amounts exceeding IQR upper bound of ~$17,365 |

## Tech Stack

- [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) — `FastMCP` server + `stdio_client`
- [Anthropic Python SDK](https://github.com/anthropics/anthropic-sdk-python) — Claude Opus 4.8 agentic loop
- [Gradio](https://gradio.app) — dark dashboard UI
- [pandas](https://pandas.pydata.org) — transaction analysis and IQR statistics
- [fpdf2](https://py-fpdf2.readthedocs.io) — PDF export

## Setup

```bash
# Clone the repo
git clone https://github.com/archana-gurimitkala/financial-fraud-detection-mcp.git
cd financial-fraud-detection-mcp

# Install dependencies
pip install -r requirements.txt

# Set your Anthropic API key (the app reads it from the environment)
export ANTHROPIC_API_KEY=your_key_here

# Run the Gradio dashboard
python app.py
```

Open `http://localhost:7860` in your browser.

To use the terminal client instead:
```bash
python client.py
```

## Sample Questions to Try

- *"Give me a full fraud risk report"*
- *"Which accounts show structuring patterns?"*
- *"Are there any duplicate transactions?"*
- *"Which account has the highest velocity abuse?"*
- *"Summarize the findings for a non-technical executive"*

## Sample PDF Output

A full exported chat session is included as [`sample_output.pdf`](sample_output.pdf) — 8 pages covering the complete fraud analysis, structuring deep dive, velocity abuse breakdown, executive summary, and compliance escalation email.

## Course Context

Built to demonstrate concepts from Anthropic's **Introduction to MCP** course:
- MCP server with Tools, Resources, and Prompts primitives
- stdio transport
- Agentic tool-use loop (Claude decides when and what to call)
- Multi-turn conversation with tool results fed back into context

---

*Built by Archana Gurimitkala · Powered by Claude Opus 4.8 + MCP*