Skip to main content

A production-ready Model Context Protocol (MCP) server for private personal finance management.

Project description

Finance Intelligence MCP Server

Python Version FastMCP License: MIT MCP Specification Database

Finance Intelligence MCP is a production-ready Model Context Protocol (MCP) server that enables AI assistants (like Claude, Cursor, and others) to securely manage and analyze personal finances through natural language.

Released under the MIT License and designed to be extended with additional finance tools.


๐Ÿ” Overview

Unlike standard cloud-based personal finance apps, Finance Intelligence MCP keeps all financial data under your absolute control.

  • No Accounts / Subscriptions: Direct connection to your private database with zero SaaS dependencies.
  • Zero Telemetry: Your financial logs never go to external analytic APIs.
  • Full AI Context: Your AI assistant can query history, check budget status, make charts, and answer financial questions instantly.

๐Ÿ› ๏ธ Architecture

   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚           MCP Client           โ”‚
   โ”‚  (Claude Desktop, Cursor, etc) โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                   โ”‚
                   โ”‚ (STDIO Transport Protocol)
                   โ–ผ
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚  Finance Intelligence Server   โ”‚
   โ”‚           (Local)              โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                   โ”‚
                   โ”‚ (Direct SQL Pool Connection)
                   โ–ผ
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚       PostgreSQL Database      โ”‚
   โ”‚ (Supabase, Local, RDS, etc)    โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โœจ Features

  • Expense Operations: Create, view, edit, and bulk-delete expense entries.
  • Multi-level Budgeting: Set limits for overall spending, specific category thresholds, or down to nested subcategory targets.
  • Analytics Breakdowns: Aggregate expenses by category, subcategory, notes, or dates over weekly/monthly/yearly time blocks.
  • Visual Charts: Exposes tools that generate Matplotlib line/bar charts of historical spending automatically.
  • Excel Spreadsheet Export: Truncates long list responses and generates download-ready Excel spreadsheets for massive datasets.
  • Financial Health Scoring: Calculates a deterministic financial health score grade based on 6 core personal finance KPIs.

โš™๏ธ Requirements & Compatibility

  • Transport: stdio
  • Supported Platforms:
    • Windows
    • macOS
    • Linux
  • Python Compatibility: Python 3.10, 3.11, and 3.12 (Tested)
  • Database: PostgreSQL 12+ (e.g. Supabase, RDS, or local Postgres)
  • Supported Clients:
    • Claude Desktop
    • Cursor
    • Compatible with any MCP client supporting stdio.

๐Ÿ’พ Installation & Setup

1. Quick Setup (Shortcut)

If you have uv installed, get started in 2 lines:

git clone https://github.com/Ronit-019/Finance-Intelligence-MCP.git
cd Finance-Intelligence-MCP
uv sync

2. Detailed Installation

Step A: Get a PostgreSQL Connection URL

The easiest, free option is Supabase:

  1. Go to Supabase and create a free project.
  2. Go to Project Settings (gear icon) > Database.
  3. Under Connection string, select URI and copy the string.
    • Example: postgresql://postgres.[your-project-ref]:[your-password]@aws-0-us-east-1.pooler.supabase.com:5432/postgres
    • (Replace [your-password] with your database password).

Step B: Clone the Repository

Clone the codebase to a directory on your machine:

git clone https://github.com/Ronit-019/Finance-Intelligence-MCP.git
cd Finance-Intelligence-MCP

Copy the absolute path of this directory (e.g. C:/Users/Admin/Desktop/Finance-Intelligence-MCP). Note: Always use forward slashes (/) for paths in JSON configs.

Step C: Install Dependencies

If you do not have uv installed, install from the project metadata:

pip install -e .

3. Client Integration

Claude Desktop Setup

  1. Open your Claude configuration file (claude_desktop_config.json):
    • Windows: Press Win + R, paste %APPDATA%\Claude\claude_desktop_config.json and press Enter.
    • macOS: Paste ~/Library/Application Support/Claude/claude_desktop_config.json in Finder's Go to Folder.
  2. Add this entry to mcpServers:
{
  "mcpServers": {
    "finance-intelligence": {
      "command": "uv",
      "args": [
        "--directory",
        "REPLACE_WITH_ABSOLUTE_PATH_TO_CLONED_DIRECTORY",
        "run",
        "python",
        "main.py"
      ],
      "env": {
        "DATABASE_URL": "REPLACE_WITH_YOUR_SUPABASE_CONNECTION_STRING"
      }
    }
  }
}
  1. Save and completely restart Claude Desktop.

Cursor IDE Setup

  1. Go to Settings > Features > MCP.
  2. Click + Add New MCP Server:
    • Name: Finance Intelligence
    • Type: command
    • Command:
      uv --directory "REPLACE_WITH_ABSOLUTE_PATH_TO_CLONED_DIRECTORY" run python main.py
      
  3. Click + Add Env Var:
    • Key: DATABASE_URL
    • Value: REPLACE_WITH_YOUR_SUPABASE_CONNECTION_STRING
  4. Click Save and refresh.

๐Ÿ’ฌ Example Prompts

Once configured, try talking to your AI assistant:

  • "Add โ‚น250 for lunch today under food."
  • "Show my spending breakdown this month."
  • "Generate an Excel report of all my expenses between May and July."
  • "Am I exceeding my monthly budget limit?"
  • "How much did I spend on dining out this week?"
  • "Calculate my monthly financial health score and give me feedback."
  • "Generate a spending chart for the last 30 days."

๐Ÿ› ๏ธ Available Tools

The server registers 12 core tools on the client:

Tool Name Parameters Description
add_expense date, amount, category, subcategory, note Inserts a new expense transaction.
list_expenses start_date, end_date Lists transactions, exports to Excel if count > 50.
expense_breakdown start_date, end_date, group_by, breakdown, category, subcategory Aggregates spending sums and counts.
delete_expenses expense_ids, start_date, end_date, category, subcategory Deletes expenses matching filters.
update_expenses expense_ids, filter_..., date, amount, category, subcategory, note Edits expense records.
create_budget budget_type, amount, period, start_date, end_date, category, subcategory, budgets Registers new spending limits.
list_budgets budget_type, category, subcategory, period Returns registered budgets.
update_budgets budget_ids, filter_..., budget_type, amount, period, start_date, end_date, category, subcategory Modifies active budgets.
delete_budgets budget_ids, start_date, end_date, budget_type, category, subcategory, period Deletes target budget limits.
compare_budget_vs_expenses reference_date, budget_type, category, subcategory, period Compares budget vs actual spending.
expense_summary period, group_by, category, subcategory, start_date, end_date Generates a Matplotlib line/bar chart.
financial_health_score reference_month Evaluates 6 key personal finance indicators.

๐Ÿ’ก Troubleshooting

1. uv: command not found

If the client cannot locate uv, update your config file to run standard Python:

  • Ensure you ran pip install -e . inside the repository.
  • Update config:
"finance-intelligence": {
  "command": "python",
  "args": [
    "REPLACE_WITH_ABSOLUTE_PATH_TO_CLONED_DIRECTORY/main.py"
  ],
  "env": {
    "DATABASE_URL": "REPLACE_WITH_YOUR_SUPABASE_CONNECTION_STRING"
  }
}

2. Invalid DATABASE_URL / PostgreSQL Connection Errors

  • Make sure you replaced [your-password] with your actual database password in the Supabase URI string.
  • Ensure there are no surrounding spaces or special characters in the URL string.
  • Verify your Supabase instance is active and not paused.

3. Claude Not Detecting the Server

  • Double check that the folder paths in claude_desktop_config.json use forward slashes (/), even on Windows.
  • Check the logs at %APPDATA%\Claude\logs\mcp*.log (Windows) or ~/Library/Logs/Claude/mcp*.log (macOS) to see the exact startup error.

๐Ÿ“ Repository Structure

โ”œโ”€โ”€ src/                       # Helper packages
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ budget.py              # Budget database operations
โ”‚   โ”œโ”€โ”€ analytics.py           # Breakdown aggregations & Matplotlib routines
โ”‚   โ””โ”€โ”€ health.py              # KPIs and financial health calculator
โ”œโ”€โ”€ main.py                    # FastMCP Server application
โ”œโ”€โ”€ categories.json            # Category mapping catalog
โ”œโ”€โ”€ pyproject.toml             # Dependencies
โ”œโ”€โ”€ LICENSE                    # MIT License file
โ””โ”€โ”€ README.md                  # This file

๐Ÿค Contributing

Contributions, bug reports, and feature requests are welcome! Please open an issue before submitting major changes or pull requests.


๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ‘จโ€๐Ÿ’ป Author

Ronit Rajput

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finance_intelligence_mcp-0.1.0.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finance_intelligence_mcp-0.1.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file finance_intelligence_mcp-0.1.0.tar.gz.

File metadata

File hashes

Hashes for finance_intelligence_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f8404ac331d1ab47fdf57568468d60bea9eaf37f58678cef7385fd138e5abcae
MD5 456d8a966d256d29e879cbefec3a95a2
BLAKE2b-256 400e2d9b3aaad0ce4f9197547e32c44614c36f0794bd353273b60f70a3c7b88d

See more details on using hashes here.

File details

Details for the file finance_intelligence_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for finance_intelligence_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f184c6a427838dc90202b6b41b6f5eebc50e2c94f2a3abb334487d5411fd721e
MD5 38c5e2ca37691def202b989213d6ef78
BLAKE2b-256 891ac7ac644c77b18642b7d20f7f0963f273048384188d9bb0145b4ddb2de91e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page