A simple Expense Tracker MCP server built with FastMCP and SQLite, deployed on FastMCP Cloud.
This project demonstrates how to build, deploy, and connect an MCP server using FastMCP Cloud and Claude Desktop.
- add_expense — Add a new expense.
- list_expenses — View expenses within a date range.
- summarize — Generate expense summaries by category.
- expense:///categories — Returns available expense categories and subcategories.
- Python 3.14+
- FastMCP 3.4.0
- SQLite
- aiosqlite
- FastMCP Cloud
Run the server locally:
uv run python main.pyOpen MCP Inspector:
uv run fastmcp dev inspector main.pyThis project is deployed to FastMCP Cloud.
Remote MCP Endpoint (example url):
https://splendid-gold-dingo.fastmcp.app/mcp
Create a local proxy server:
from fastmcp import FastMCP
mcp = FastMCP.as_proxy(
"https://splendid-gold-dingo.fastmcp.app/mcp", # example url, get your url from fastmcp cloud
name="Neel Server Proxy"
)
if __name__ == "__main__":
mcp.run()Install the proxy into Claude Desktop:
uv run fastmcp install claude-desktop proxy.pyRestart Claude Desktop after installation.
Add an expense:
Add an expense for a cab ride to Delhi last Sunday. The fare was ₹600.
List expenses:
Show all expenses between 2026-06-01 and 2026-06-30.
Summarize expenses:
Summarize my expenses for June 2026.
The server supports categories such as:
- Food
- Transport
- Housing
- Utilities
- Health
- Education
- Entertainment
- Shopping
- Travel
- Business
- Investments
- Personal Care
- Taxes
- Miscellaneous
This project was created to learn:
- FastMCP fundamentals
- MCP tools and resources
- SQLite integration
- Async MCP tools with aiosqlite
- FastMCP Cloud deployment
- Claude Desktop integration via MCP