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.2
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.2.tar.gz | 7.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| personal_finance_mcp_sanketk-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.2 MB
Release files / personal_finance_mcp_sanketk-0.1.2.tar.gz
| Download URL | personal_finance_mcp_sanketk-0.1.2.tar.gz |
|---|---|
| Size | 7.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d255376cbb5781a8a87eabddd9e0613765df22590a4f8e34a21a50a6249630ae
|
|
BLAKE2b-256 checksum How to use checksums |
5f5e418f24f99867933157878fc5ea052c5e42c0d63268db1a0040dae8bf2473
|
| 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.2-py3-none-any.whl
| Download URL | personal_finance_mcp_sanketk-0.1.2-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4c9639d655993d417004f344006ff0c6eb382e4b142f438ac5c18c691ba4ab05
|
|
BLAKE2b-256 checksum How to use checksums |
42ca9a7e1bfa9207fbf00872d1617d932bb803c89e14fb79b6b2fcf23395d644
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|