Personal Finance MCP Server
A local MCP server for exploring fictional personal-finance transactions using SQLite.
Features
get_transactions: filter transactions by date and categorycategorize_expense: suggest or update an expense categorymonthly_summary: income, expenses, net cash flow, category totalscompare_spending: compare spending between two months- Fictional sample data; no bank integration
Requirements
Python 3.11+
Install and run
Using uv:
uv sync
uv run python seed_db.py
uv run python -m finance_mcp.server
Using pip:
python -m venv .venv
# Windows PowerShell: .venv\Scripts\Activate.ps1
# macOS/Linux: source .venv/bin/activate
pip install -e .
python seed_db.py
python -m finance_mcp.server
The server uses MCP stdio transport, so it is normally launched by an MCP-compatible client rather than interacted with directly in a terminal.
MCP client configuration example
Adjust the directory to the location where you extracted this project:
{
"mcpServers": {
"personal-finance": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\personal_finance_mcp_server",
"run",
"python",
"-m",
"finance_mcp.server"
]
}
}
}
Tools
get_transactions(start_date?, end_date?, category?, limit=100)categorize_expense(transaction_id, category?)monthly_summary(year, month)compare_spending(year_a, month_a, year_b, month_b)
Dates use YYYY-MM-DD. The demo data uses INR and is fictional. Set FINANCE_DB_PATH to override the SQLite file location.
Tests
uv sync --extra dev
uv run pytest
Re-seed demo data with python seed_db.py --reset.
Metadata
Release files for personal-finance-mcp-sanketk 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| personal_finance_mcp_sanketk-0.1.1.tar.gz | 3.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| personal_finance_mcp_sanketk-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.5 MB
Release files / personal_finance_mcp_sanketk-0.1.1.tar.gz
| Download URL | personal_finance_mcp_sanketk-0.1.1.tar.gz |
|---|---|
| Size | 3.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ce61f533afe4ff8976ded1d55ca8673d4b23911c9943dc624e92fd62c690104
|
|
BLAKE2b-256 checksum How to use checksums |
32490856f3f06fbe55699145b033c21a1f47a3b8b9736d4a1a5ede931ee03de7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / personal_finance_mcp_sanketk-0.1.1-py3-none-any.whl
| Download URL | personal_finance_mcp_sanketk-0.1.1-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
afca4e6aafc24b2dda5d1f0ff64159a7941dfaddb80cec79e8e8b608e663e6b1
|
|
BLAKE2b-256 checksum How to use checksums |
7dfccad889177e77de0370e2c9f52a803e3574970e634e1e51800d7702732228
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|