DEV Community

member_26847952
member_26847952 Subscriber

Posted on

How I Used Notion MCP to Build an Autonomous Personal Finance Tracker

Notion MCP Challenge Submission 🧠

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
Enter fullscreen mode Exit fullscreen mode

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)