Expense Tracker MCP Server
A Model Context Protocol (MCP) server for tracking expenses, built with fastmcp.
Features
This server provides tools to manage expenses in a local SQLite database (expenses.db) and exposes categories via a resource.
Tools
add_expense: Add a new expense.- Arguments:
date(YYYY-MM-DD),amount,category,subcategory(optional),note(optional).
- Arguments:
list_expenses: List expenses within a date range.- Arguments:
start_date,end_date.
- Arguments:
summarize: Summarize expenses by category.- Arguments:
start_date,end_date,category(optional filter).
- Arguments:
edit_expense: Edit an existing expense.- Arguments:
id,date,amount,category,subcategory,note.
- Arguments:
delete_expense: Delete an expense by ID.- Arguments:
id.
- Arguments:
add_credit: Add credit to a user account (default user).- Arguments:
amount,user_name(optional, default="default").
- Arguments:
Resources
expense://categories: Returns the content ofcategories.json.
Prerequisites
- Python >= 3.12
uv(recommended for dependency management)
Installation & Usage
Using uv (Recommended)
You can run the server directly using uv:
uv run main.py
Manual Installation
-
Create a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate -
Install dependencies:
pip install fastmcp -
Run the server:
python main.py
Configuration for Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"expense-tracker": {
"command": "uv",
"args": [
"run",
"--with",
"fastmcp",
"c:\\Users\\LOQ\\Downloads\\ExpenseTracker_MCP_Server\\main.py"
]
}
}
}
Note: Update the path to main.py to match your local path.
