delete_expense
Remove an expense record from your expense tracker by providing its unique ID.
Instructions
Delete an expense by its id.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| expense_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| deleted | Yes | ||
| expense_id | Yes | ||
| remaining_expense_count | Yes |
Implementation Reference
- main.py:40-43 (schema)Pydantic model defining the return schema for delete_expense (deleted bool, expense_id str, remaining_expense_count int).
class DeleteExpenseResult(BaseModel): deleted: bool expense_id: str remaining_expense_count: int - main.py:257-272 (handler)The delete_expense tool handler: normalizes the expense_id, loads all expenses, filters out the matching expense, saves the remaining list, and returns a DeleteExpenseResult.
@mcp.tool def delete_expense(expense_id: str) -> DeleteExpenseResult: """Delete an expense by its id.""" normalized_id = _normalize_text(expense_id, "expense_id") expenses = _load_expenses() remaining = [expense for expense in expenses if expense.id != normalized_id] if len(remaining) == len(expenses): raise ValueError(f"No expense found with id {normalized_id}.") _save_expenses(remaining) return DeleteExpenseResult( deleted=True, expense_id=normalized_id, remaining_expense_count=len(remaining), ) - main.py:257-258 (registration)The delete_expense function is registered as an MCP tool via the @mcp.tool decorator on line 257.
@mcp.tool def delete_expense(expense_id: str) -> DeleteExpenseResult: