FinanceIQ — AI-Powered Finance Tracker Built with Notion MCP
What I Built
FinanceIQ is an AI-powered personal finance tracker that turns Notion into a fully automated financial command center. It ingests your bank's CSV exports, categorizes every transaction using AI, detects suspicious or anomalous spending, generates monthly financial reports, and fires budget alerts — all written directly into Notion via the Notion MCP.
No spreadsheet juggling. No manual tagging. Your finances, organized and analyzed — living right inside Notion.
Video Demo
Show Us the Code
🔗 github.com/himanshu748/dev-challenge-2
How I Used Notion MCP
Notion MCP is the backbone of FinanceIQ. Rather than building a standalone dashboard that lives in isolation, I wanted all financial data to live natively in Notion — so it's searchable, shareable, and editable like any other Notion page.
Here's exactly how Notion MCP powers each part of the workflow:
1. One-Click Workspace Setup
On first run, FinanceIQ uses Notion MCP to automatically create:
- An Expenses database with the right properties (date, amount, category, anomaly flag, etc.)
- A Reports page where monthly summaries will be written
No manual Notion setup required — the agent handles it entirely through MCP.
2. Transaction Import & AI Categorization
When a user uploads a CSV (from Chase, Bank of America, Wells Fargo, or Mint), FinanceIQ:
- Parses each transaction
- Sends it to a HuggingFace-hosted Mistral model (via
MCPClient) for categorization into 10 spending categories - Flags anomalies: transactions that are 3x the category average, duplicates, or suspiciously round amounts
- Writes each transaction as a new row in the Notion Expenses database via MCP
3. Monthly Report Generation
The /report endpoint aggregates data from Notion, runs it through the AI, and writes a structured monthly report page back into Notion including:
- Income vs. expenses summary
- Category-by-category breakdown
- AI-generated spending recommendations
4. Budget Alerts
Users can set monthly budget limits per category. FinanceIQ compares actuals against limits and — when thresholds are exceeded — creates a dedicated Budget Alert page in Notion via MCP with details on which categories overspent and by how much.
What Notion MCP Unlocks
The key insight: Notion MCP lets an AI agent treat Notion as a live, writable database — not just a document viewer. That means FinanceIQ can autonomously create structure, push data, and generate reports without any manual copy-pasting. The financial intelligence stays inside Notion where users already live and work.
Tech Stack
| Layer | Technology |
|---|---|
| Backend | FastAPI + Python |
| AI / LLM | HuggingFace (Mistral-Small-3.1-24B) via MCPClient |
| Data store | Notion (via Notion MCP) |
| Frontend | Vanilla HTML/CSS/JS — newspaper-inspired design |
Getting Started
# 1. Clone the repo
git clone https://github.com/himanshu748/dev-challenge-2
# 2. Install dependencies
pip install -r requirements.txt
# 3. Configure environment variables
cp .env.example .env
# Add your HF_API_KEY and NOTION_TOKEN
# 4. Start the server
uvicorn main:app --reload
Then open http://localhost:8000 in your browser.
Required environment variables:
| Variable | Description |
|---|---|
HF_API_KEY |
Your HuggingFace API key |
NOTION_TOKEN |
Your Notion integration token |
NOTION_PARENT_PAGE_ID |
(Optional) Parent page ID for the workspace |
HF_MODEL |
(Optional) Defaults to mistralai/Mistral-Small-3.1-24B-Instruct-2503
|
Top comments (0)