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.0
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.0.tar.gz | 4.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| personal_finance_mcp_sanketk-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.8 kB
Release files / personal_finance_mcp_sanketk-0.1.0.tar.gz
| Download URL | personal_finance_mcp_sanketk-0.1.0.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb157d7457acf2fb86cda01ce9d82d920092349aa3a6040894f2f190213a06c0
|
|
BLAKE2b-256 checksum How to use checksums |
7dfcb0bb144da5744f46440781d3beab8c730d51c05d4d431714364cbaccf1b5
|
| 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.0-py3-none-any.whl
| Download URL | personal_finance_mcp_sanketk-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
93a34b2c96daa0ec6860e35cad746a9223ba60faf4d25f4c0ff2c69c929b6626
|
|
BLAKE2b-256 checksum How to use checksums |
f7ec75298be399ed0fbacf2a792bdbf74d78a7377f5c1be75a1bceb8794382e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|