MuhammadDastgeer/First_Remote-_Mcp_Server_App
If you are the rightful owner of First_Remote-_Mcp_Server_App and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Expense Tracker MCP Server is a FastMCP-based server designed for tracking personal expenses with AI integration via the Model Context Protocol (MCP).
Expense Tracker MCP Server
A FastMCP-based server for tracking personal expenses with AI integration via the Model Context Protocol (MCP).
Description
This project provides an expense tracking system that can be interacted with by AI models through MCP tools. It allows adding, listing, summarizing, editing, and deleting expense entries, organized by categories and subcategories.
Features
- Expense Management: Add, list, edit, and delete expense entries
- Summarization: Get expense summaries by category and date range
- Category Organization: Predefined categories with subcategories loaded from
categories.json
- SQLite Database: Persistent storage using SQLite, stored in the system's temporary directory
- MCP Integration: Exposes tools and resources for AI model interaction
Installation
-
Clone the repository:
git clone <repository-url> cd remote-mcp
-
Install dependencies using uv:
uv sync
If you don't have uv installed, install it first:
pip install uv
Usage
Run the MCP server:
python main.py
The server will start on http://0.0.0.0:8000
by default.
Tools
add_expense
Add a new expense entry.
Parameters:
date
(string): Date in YYYY-MM-DD formatamount
(number): Expense amountcategory
(string): Main categorysubcategory
(string, optional): Subcategorynote
(string, optional): Additional notes
list_expenses
List expense entries within a date range.
Parameters:
start_date
(string): Start date in YYYY-MM-DD formatend_date
(string): End date in YYYY-MM-DD format
summarize
Summarize expenses by category within a date range.
Parameters:
start_date
(string): Start date in YYYY-MM-DD formatend_date
(string): End date in YYYY-MM-DD formatcategory
(string, optional): Filter by specific category
edit_expense
Edit an existing expense entry.
Parameters:
expense_id
(integer): ID of the expense to editdate
(string, optional): New dateamount
(number, optional): New amountcategory
(string, optional): New categorysubcategory
(string, optional): New subcategorynote
(string, optional): New note
delete_expense
Delete an expense entry.
Parameters:
expense_id
(integer): ID of the expense to delete
Resources
categories
Provides the expense categories and subcategories in JSON format.
URI: expense:///categories
MIME Type: application/json
Database
The application uses SQLite for data storage. The database file is created in the system's temporary directory (tempfile.gettempdir()
) as expenses.db
. The database is initialized automatically when the server starts.
Dependencies
fastmcp >= 2.12.4
: Framework for building MCP serversaiosqlite >= 0.21.0
: Asynchronous SQLite driver for Python
License
[Add license information here]