FinChat

FinChat

Enables AI agents to manage personal finances through MCP tools for transaction management, spending analytics, and goal tracking.

Category
Visit Server

README

FinChat - MCP-Powered Personal Finance Assistant

FinChat is an AI-powered personal finance assistant built using the Model Context Protocol (MCP). It exposes financial management and analytics capabilities as reusable tools that can be discovered and executed by MCP-compatible AI clients.

The project demonstrates how Large Language Models (LLMs) can interact with external systems through structured tools to perform tasks such as transaction management, spending analysis, financial insights generation, and savings goal tracking.

Note: This project currently uses synthetic/dummy financial data for demonstration purposes. It does not connect to real bank accounts or personal financial information.


✨ Features at a Glance

  • Transaction Management – Add, retrieve, and query financial transactions
  • Spending Analytics – Analyze spending by category and generate financial insights
  • Goal Tracking – Set, update, and monitor progress toward savings goals
  • MCP Integration – Discover and execute tools through standardized protocol
  • AI-Ready – Works seamlessly with MCP-compatible AI clients (Claude, Cursor, etc.)

🚀 Project Overview

Traditional chatbots can answer questions but often lack access to user-specific data and external capabilities.

FinChat addresses this by providing an MCP server that exposes financial tools to AI agents. Instead of hardcoding every workflow, the AI agent can understand user requests, select the appropriate tool, execute it, and generate meaningful responses.

Example User Interaction:

User: "How much did I spend on groceries in July?"

Agent Workflow:
  User Request → AI Agent → MCP Tool Discovery → 
  get_spending_summary() → Financial Analysis → Response

🏗️ Architecture

         User Input
            |
            ▼
   MCP-Compatible AI Client
   (Claude / Cursor / Agent)
            |
            ▼
       MCP Protocol
            |
            ▼
    FinChat MCP Server
            |
    ┌───────┼───────┐
    ▼       ▼       ▼
Transactions Analytics Goals
    |       |       |
    └───────┼───────┘
            ▼
   Financial Data Storage
      (Synthetic JSON)

🔌 Why Model Context Protocol (MCP)?

MCP provides a standardized interface for AI applications to discover and interact with external tools.

Benefits:

  • ✓ Standardized tool discovery and execution
  • ✓ Structured tool inputs and outputs
  • ✓ Separation between AI reasoning and application logic
  • ✓ Reusable tools across different AI clients
  • ✓ Easier development of agent-based applications

🧠 MCP Server Design

The project follows a clean separation-of-concerns architecture:

mcp_server.py          tools/
├─ Register tools      ├─ add_transactions.py
├─ Expose schemas      ├─ query_transactions.py
└─ Handle I/O          ├─ spending_summary.py
                       ├─ financial_insights.py
                       ├─ set_financial_goal.py
                       ├─ update_financial_goal.py
                       └─ get_goal_progress.py

This keeps the MCP layer independent from the underlying financial logic.


🛠️ Tech Stack

Category Technology
Protocol Model Context Protocol (MCP)
Framework FastMCP
Language Python 3.8+
Data Storage JSON (development), SQLite (planned)
IDE VS Code

🔌 Available MCP Tools

Transaction Management

add_transactions

Adds financial transactions into the system.

Example:

User: "Add a $50 grocery expense at Walmart today"

get_transactions

Retrieves stored financial transactions with filtering capabilities.

Example queries:

  • "Show my transactions from July"
  • "Show all restaurant expenses"

📊 Spending Analytics

get_spending_summary

Generates spending summaries and category-based analysis.

Example queries:

  • "How much did I spend this month?"
  • "Show my grocery spending in July"
  • "Break down expenses by category"

get_financial_insights

Analyzes spending behavior and generates financial observations.

Example queries:

  • "Where am I spending the most?"
  • "What expenses can I reduce?"
  • "Analyze my spending patterns"

🎯 Financial Goal Management

set_financial_goal

Creates new financial goals.

Example:

User: "I want to save $50,000 by 2028"

Stores:

  • Goal name
  • Target amount
  • Current savings
  • Target date

update_financial_goal

Updates an existing financial goal.

Example:

User: "I saved another $5,000 toward my savings goal"

get_goal_progress

Tracks progress toward financial goals.

Example queries:

  • "How much progress have I made?"
  • "How much do I need to save monthly?"

📂 Project Structure

FinChat/
│
├── mcp_server.py              # MCP server entry point
│
├── tools/                      # Business logic & calculations
│   ├── add_transactions.py
│   ├── query_transactions.py
│   ├── spending_summary.py
│   ├── financial_insights.py
│   ├── set_financial_goal.py
│   ├── update_financial_goal.py
│   └── get_goal_progress.py
│
├── data/                       # Data storage
│   ├── transactions.json
│   └── financial_goals.json
│
├── requirements.txt
├── pyproject.toml
└── README.md

⚙️ Installation & Setup

1. Clone the repository:

git clone <repository-url>
cd FinChat

2. Create and activate virtual environment:

Windows (PowerShell):

python -m venv .venv
.venv\Scripts\activate

macOS/Linux:

python -m venv .venv
source .venv/bin/activate

3. Install dependencies:

pip install -r requirements.txt

▶️ Running the MCP Server

python mcp_server.py

The MCP server runs using stdio transport and communicates with MCP-compatible AI clients.


💡 Quick Usage Example

Once the server is running, connect via an MCP client:

# Example: Query spending by category
user_message = "How much did I spend on groceries in July?"

# Agent discovers available tools → selects get_spending_summary
# → executes with filters → returns analysis

🔐 Data Privacy & Security

Current implementation (development only):

  • ✓ Synthetic financial data only
  • ✗ No real bank connections
  • ✗ No personal financial records
  • ✗ No external financial APIs

Production requirements:

  • Secure authentication (OAuth 2.0)
  • Encrypted data storage
  • Database-level access control
  • Banking API integrations
  • Compliance & regulatory review

⚠️ Current Limitations

  • Uses local JSON storage (single-user)
  • Designed for demonstration purposes
  • Does not connect to banking providers
  • Does not provide regulated financial advice
  • Requires manually provided transaction data

🔮 Future Improvements

  • [ ] Replace JSON with SQLite/PostgreSQL
  • [ ] Add multi-user support with authentication
  • [ ] Integrate real banking APIs (Plaid, etc.)
  • [ ] Build automated savings recommendations
  • [ ] Add interactive web dashboard
  • [ ] Implement advanced financial planning
  • [ ] Add budget forecasting
  • [ ] Generate monthly financial reports

👨‍💻 About This Project

Built as a hands-on exploration of:

  • Model Context Protocol (MCP) architecture
  • LLM tool integration and function calling
  • AI agent design patterns
  • Structured data interaction with AI systems

Learning Goals:

  • Understand how AI agents discover and execute external tools
  • Build production-ready MCP servers
  • Design AI-ready application architectures
  • Implement secure tool orchestration

📝 License

MIT License


Built as a portfolio project to demonstrate AI/ML capabilities and modern LLM application architecture.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured