Utilizes Google's Gemini AI to enable a natural language interface for expense management, subscription analysis, and intelligent transaction categorization.
Integrates with Supabase to provide persistent storage for expenses, hierarchical categories, and transaction tags, utilizing pgvector for similarity-based categorization and JWT for authentication.
Click on "Install 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., "@Expense Tracker MCPI spent $45 on dinner at Olive Garden last night"
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.
Expense Tracker Backend
AI-powered expense tracking system with natural language interface, intelligent categorization, and real-time sync.
Architecture
The system uses a two-server architecture:
MCP Server: Core expense tracking tools exposed via Model Context Protocol
Gemini AI Server: FastAPI server providing chat interface with authentication
Features
š¤ Natural language expense management via Gemini AI
š§ Intelligent categorization using embeddings and similarity search
š JWT authentication with Supabase
š Hierarchical categories for organization
š·ļø Predefined tag system
š Real-time data sync
š Learning system that improves over time
Quick Start
Prerequisites
Environment Setup
Database Setup
Execute the SQL scripts in your Supabase SQL Editor:
Run Both Servers
Terminal 1 - MCP Server:
Terminal 2 - Gemini AI Server:
Initialize Data
API Endpoints
Chat Interface
POST /chat- Send natural language commandsPOST /auth/refresh- Refresh JWT token
MCP Tools (via chat)
Create expenses from natural language
Auto-categorize transactions
Get spending summaries
Analyze subscriptions
View recent transactions
Flutter Client
refer https://github.com/keyurgit45/expense-tracker-client
Testing
Project Structure
AI Categorization
The system uses a hybrid approach:
Generates embeddings for transactions using Sentence Transformers
Finds similar past transactions using pgvector
Uses weighted voting to predict categories
Falls back to rule-based matching
Learns from user confirmations
Development
API docs: http://localhost:8000/docs
Frontend integration: Configure CORS in Gemini server
MCP tools can be tested directly via chat interface