My Finance MCP Server
# My Finance MCP Server
Bare-bones Model Context Protocol server that lets Claude store personal finance transactions and later query them via semantic search. Transactions are persisted in ChromaDB for vector search plus a JSON ledger for backup.
<a href="https://glama.ai/mcp/servers/@xinrong-meng/my-finance-mcp">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@xinrong-meng/my-finance-mcp/badge" alt="My Finance Server MCP server" />
</a>
Run it alongside Claude Desktop and you get an AI bookkeeper that remembers your receipts, statements, and portfolios—then answers natural language questions about spending trends, allocations, or anything else you upload.
## Setup
### Install
```bash
uv sync
```
### Run
```bash
uv run my_finance_mcp.py
```
### Configure Claude Desktop
Add to `~/.claude_desktop_config.json`:
```json
{
"mcpServers": {
"my-finance": {
"command": "uv",
"args": [
"run",
"--project",
"/path/to/my_finance",
"/path/to/my_finance/my_finance_mcp.py"
]
}
}
}
```
## Usage
Exposed tools:
- `store_transactions(transactions)` – ingest structured transactions (Claude will extract them from uploaded docs)
- `query_financial_history(query)` – run semantic search across everything stored
- `list_transactions(limit=20, offset=0, category=None)` – page through the JSON ledger to inspect what’s saved and see each transaction’s index
- `delete_transactions(indices=None, delete_all=False, confirm=False)` – delete entries by index or wipe them all (requires `confirm=True`)
1. Upload financial data to Claude
2. Say: "Store this transaction data"
3. Claude calls the MCP server to save it
4. Later ask: "How much did I spend on groceries last month?"
5. Claude searches your historical data via MCP
6. Use "Show me the stored transactions" or "Delete transaction xx" to invoke the management tools
### Example Claude Desktop interaction
```
User: Remember these portfolio positions for later analysis.
Claude: I'll help you store your portfolio positions from the uploaded CSV file for later analysis. Let me read the file and process the data..
Perfect! I've stored your portfolio positions from November 6, 2025 in your finance system. Here's a summary of what was recorded:...
User: List my stored transactions
Claude: Here are your current stored transactions (4 total):...
User: Delete VXUS - International Stock ETF transaction
Claude: The VXUS - International Stock ETF transaction has been successfully deleted from your stored transactions.
User: List all transactions
Claude: Here are your current stored transactions (3 total):...
```
## Data Storage
- `~/.my_finance_mcp/financial_data/` - ChromaDB vector database (created automatically)
- `~/.my_finance_mcp/transactions.json` - JSON backup of all transactions
Set the `MY_FINANCE_MCP_DIR` environment variable before launching Claude if you want to store data in a different directory.TDQS
Scored across 4 tools
Each tool has a distinct and non-overlapping purpose: list_transactions retrieves data, store_transactions adds new data, delete_transactions removes data, and query_financial_history performs semantic search. The descriptions clearly differentiate their functions, with no ambiguity in selection.
Three tools follow a consistent verb_noun pattern (list_transactions, store_transactions, delete_transactions), but query_financial_history deviates slightly with a different verb style. The naming is still readable and mostly predictable, with only minor inconsistency.
With only 4 tools, the set feels thin for a finance management server, lacking operations like update_transactions, get_transaction_by_id, or category management. While the tools cover basic CRUD and search, the scope suggests more functionality is needed for comprehensive financial handling.
There are significant gaps in the tool surface for a finance domain. The server supports create (store_transactions), read (list_transactions, query_financial_history), and delete (delete_transactions), but lacks update operations (e.g., modify_transaction) and essential features like budget tracking, reporting, or category CRUD, which will limit agent effectiveness.