Expense Manager MCP Server
Expense Manager MCP Server
An MCP server for managing personal expenses using Python, FastMCP, and SQLite.
Connect it to Claude Desktop and manage your expenses using natural language.
Features
Add, update, and delete expenses
Search expenses
List expenses by date range
Summarize spending by category
Store data locally using SQLite
Expose expense categories through an MCP resource
Tech Stack
Python 3.11+
FastMCP
Model Context Protocol (MCP)
SQLite
uv
Setup
git clone https://github.com/sonali1103/expense-manager-mcp-server.git
cd expense-manager-mcp-server
uv syncConnect to Claude Desktop
1. Find your project path
From the project directory, run:
pwdCopy the path returned. You'll need it in the Claude configuration.
2. Open Claude Desktop configuration
In Claude Desktop:
Settings → Developer → Edit Config
This opens claude_desktop_config.json.
On macOS, the file is located at:
~/Library/Application Support/Claude/claude_desktop_config.json3. Add the MCP server
Add the following inside mcpServers:
{
"mcpServers": {
"expense-manager": {
"command": "uv",
"args": [
"--directory",
"/YOUR/PATH/expense-manager-mcp-server",
"run",
"main.py"
]
}
}
}Replace:
/YOUR/PATH/expense-manager-mcp-serverwith the path you copied from pwd.
4. Restart Claude Desktop
Completely quit and reopen Claude Desktop.
Then click the Connectors icon near the chat box and verify that expense-manager is connected. Claude Desktop will show the MCP tools provided by the server.
Try It
Once connected, ask Claude:
"Add a $45 grocery expense for today."
"Show me my expenses for this month."
"How much did I spend on food this month?"
"Find my travel expenses."
"Delete expense 12."
MCP Tools
Tool | Description |
| Add an expense |
| List expenses by date range |
| Summarize spending |
| Update an expense |
| Delete an expense |
| Search expenses |
Database
Expenses are stored locally in:
expenses.dbThe database and expenses table are created automatically when the server starts.
Project Structure
expense-manager-mcp-server/
├── main.py
├── categories.json
├── pyproject.toml
├── uv.lock
└── .gitignoreThis project demonstrates how Model Context Protocol connects an AI assistant to real application functionality and data through standardized tools.