mcp-finance-assistant
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., "@mcp-finance-assistantHow much did I spend on food this 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.
๐ฐ Personal Finance Assistant โ MCP + Gemini
An AI-powered personal finance assistant that allows users to analyze and manage expenses using natural language. The system combines Google Gemini, Model Context Protocol (MCP), SQL data, and machine learning tools to transform a conversational request into real database queries, predictions, and anomaly detection.
๐ Live Demo: https://mcp-finance-assistant-z6txg3k6xparsajcsvftrr.streamlit.app/
๐ Overview
Traditional expense trackers require users to navigate filters, categories, and dashboards manually.
This project provides a conversational interface where users can simply ask:
"How much did I spend on food this month?"
"Compare my spending in August and July."
"Show me my recent expenses."
"Add an expense of โน250 for Uber to the airport."
"What will I spend on food next month?"
Instead of generating answers from predefined responses, Gemini determines which application tool is required, invokes it through MCP, receives the actual result, and generates a natural-language response.
The system also performs automatic anomaly detection to identify unusual spending patterns.
Related MCP server: Expense Tracker MCP Server
๐ฏ Key Objectives
Enable natural-language interaction with structured financial data.
Integrate an LLM with real application tools using Model Context Protocol (MCP).
Provide expense analysis using a SQL database.
Apply machine learning for spending forecasting and anomaly detection.
Support multi-step tool execution for requests requiring multiple operations.
Validate inputs and handle tool-level errors reliably.
Provide automated tests for core financial calculations and tool behavior.
๐๏ธ System Architecture
โโโโโโโโโโโโโโโโ
โ User โ
โโโโโโโโฌโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโ
โ Streamlit UI โ
โโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโ
โ Google Gemini โ
โ Tool Selection โ
โโโโโโโโโโโฌโโโโโโโโโโโ
โ
MCP Protocol
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโ
โ MCP Server โ
โ server.py โ
โโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ SQLite โ โ Forecasting โ โ Anomaly โ
โ Database โ โ ML โ โ Detection โ
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โผ
Tool Results
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโ
โ Google Gemini โ
โ Response Generationโ
โโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
Natural Language
ResponseMulti-step Tool Calling
Some requests require more than one operation.
For example:
"Add โน250 for Uber to the airport."
The system can perform a sequence such as:
User Request
โ
Identify missing category
โ
Retrieve available categories
โ
Gemini determines appropriate category
โ
Add expense to database
โ
Return confirmationThis demonstrates how an LLM can interact with application capabilities rather than simply generating text.
โจ Features
1. Natural-Language Expense Analysis
Users can ask questions about their expenses without manually writing SQL queries or navigating filters.
Example:
"How much did I spend on food this month?"The system retrieves the relevant financial data and returns the result in natural language.
2. MCP-Based Tool Integration
The application exposes financial operations as MCP tools that Gemini can discover and invoke.
The project currently provides 7 tools for:
Expense totals
Monthly comparisons
Recent expense retrieval
Adding expenses
Category retrieval
Spending forecasts
Anomaly detection
3. Machine Learning Forecasting
The forecast_next_month tool uses scikit-learn Linear Regression to estimate future spending based on historical spending trends.
This allows the assistant to answer questions such as:
"What will I spend on food next month?"4. Anomaly Detection
The system uses Isolation Forest, an unsupervised machine-learning algorithm, to identify potentially unusual spending patterns.
Instead of relying only on a manually defined spending threshold, the model identifies observations that differ from the learned pattern.
5. LLM-Based Categorization
When an expense is entered without an explicit category, Gemini can infer the appropriate category using available category information.
Example:
"Add โน250 for Uber to the airport."The system can identify the relevant category before storing the transaction.
6. Proactive Insights
The application performs an automatic anomaly check when the interface loads, allowing unusual transactions to be highlighted without requiring the user to explicitly ask.
7. Conversational Context
Follow-up questions can use information from the ongoing conversation.
Example:
User: How much did I spend on food in August?
Assistant: โน4,850.
User: What about July?
Assistant: โน4,120.8. Input Validation and Error Handling
Tools validate inputs and handle invalid requests before performing database or model operations.
9. Automated Testing
The project includes a pytest test suite covering:
Financial calculations
Error handling
Tool behavior
Machine-learning tool execution
๐ Dataset
The application uses 240+ transaction records, including 231 records imported and cleaned from a public Kaggle personal-expense dataset.
The dataset is stored and queried through SQLite for application-level financial analysis.
๐ ๏ธ Tech Stack
Category | Technology |
Language | Python |
LLM | Google Gemini |
AI Tool Integration | Model Context Protocol (MCP) |
Database | SQLite |
Machine Learning | scikit-learn |
Forecasting | Linear Regression |
Anomaly Detection | Isolation Forest |
Frontend | Streamlit |
Testing | pytest |
Logging | Python logging |
๐งช Testing
Run the test suite using:
pytest test_server.py -vThe tests verify core calculations, error handling, and ML-related tool behavior against known data.
โถ๏ธ Running Locally
1. Clone the repository
git clone https://github.com/srushtikochare/mcp-finance-assistant
cd mcp-finance-assistant2. Install dependencies
pip install -r requirements.txt3. Configure the Gemini API key
Create a .env file:
GOOGLE_API_KEY=your_api_key_here4. Run the application
streamlit run app.py๐ง Technical Challenge
During development, the MCP Python SDK had changed from the API structure described in several available examples.
Instead of relying on outdated documentation, I inspected the installed package and its available API surface to determine the appropriate server implementation.
This required adapting the implementation to the actual installed SDK version and testing the integration against the current API.
This experience highlighted an important practical aspect of AI application development: LLM and AI infrastructure libraries evolve rapidly, so applications need to be developed against the actual SDK/API behavior rather than relying solely on older tutorials.
๐ Current Limitations
This is currently designed as a single-user personal finance application.
It does not yet include:
User authentication
Separate financial profiles
Receipt/statement OCR
Advanced forecasting models for strong seasonal patterns
Distributed deployment
Advanced API rate limiting
These are potential directions for future development.
๐ฎ Future Improvements
Multi-user authentication and isolated financial profiles
Receipt and bank-statement OCR
More advanced forecasting models
Automatic recurring-expense detection
Interactive spending dashboards
Retry mechanisms with exponential backoff
More extensive evaluation datasets
Containerized deployment
๐ก What This Project Demonstrates
This project demonstrates practical experience with:
LLM tool calling
Model Context Protocol (MCP)
Agent-style application workflows
SQL database integration
Machine-learning integration
Natural-language interfaces
Anomaly detection
Time-series-style spending forecasting
API integration
Input validation and error handling
Automated testing
Application logging
Debugging evolving AI SDKs
๐ฉโ๐ป Author
Srushti Kochare B.Tech โ Artificial Intelligence & Data Science Yeshwantrao Chavan College of Engineering (YCCE), Nagpur
This server cannot be deployed
Maintenance
Related MCP Connectors
Personal finance by conversation: expenses, receipts, statement import, budgets, net worth.
Personal finance: log expenses in plain language, track accounts, budgets and spending
Chat with your bank data: balances, transactions, budgets, bills. Reads only, never moves money.
Ask questions in plain language, get answers from your business database. No SQL required.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables financial professionals to interact with QuickBooks Online using natural language for reports, journal entries, bills, expenses, and more.36262 npm13MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI-driven expense tracking and budget management, including adding expenses, setting budgets, analyzing trends, forecasting, and managing savings goals via natural language.-
- FlicenseNot gradedqualityDmaintenanceEnables users to manage personal finances using natural language, including tracking expenses, income, budgets, and generating financial summaries.-
- AlicenseNot gradedqualityCmaintenanceLets you query your personal finances in plain language, log expenses, and correct transaction categories through a secure MCP endpoint.MIT