Skip to main content
Glama
AzeemWaqarRao

expense-tracker-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TZNoTimezone for date calculationsAsia/Karachi
EXPENSE_TRACKER_DBNoPath to the SQLite database file/data/expenses.db
EXPENSE_TRACKER_HOSTNoHost address to bind to0.0.0.0
EXPENSE_TRACKER_PORTNoPort number for HTTP server8000
EXPENSE_TRACKER_JOURNALNoSQLite journal mode (WAL or DELETE)WAL
EXPENSE_TRACKER_TRANSPORTNoTransport mode: http or stdiohttp
EXPENSE_TRACKER_BACKUP_DIRNoDirectory for daily backups/backups
EXPENSE_TRACKER_ALLOWED_HOSTSNoComma-separated allowed Host header valueslocalhost:8000,127.0.0.1:8000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
add_expenseA

Log an expense in PKR. Only amount is required.

date accepts YYYY-MM-DD, 'today', 'yesterday', '-3d', or a day number; it defaults to today. When category is omitted it is inferred from previous expenses at the same merchant. The returned record reflects what was actually saved, including anything inferred.

add_expensesA

Log several expenses at once. Each item takes the same fields as add_expense.

Items are validated individually: a bad entry is reported in errors while the rest still save.

update_expenseB

Edit an expense. Omitted fields are left alone; pass "" to clear a text field.

update_lastA

Correct the most recently logged expense without needing its id.

delete_expenseA

Delete an expense. Soft delete — undo_last() restores it.

undo_lastB

Restore the most recently deleted expense.

list_categoriesA

The valid category names. Expenses must use one of these.

query_expensesA

List individual expenses. Defaults to the current month.

For totals use summarize() instead — it is far cheaper than adding up rows here.

summarizeA

Spending totals, pre-computed. Never sum expenses by hand — call this.

group_by is one of category, merchant, month, day, tag. period is one of this_month, last_month, ytd, all; from_date/to_date override it.

search_expensesA

Free-text search across merchant and note, over all time.

set_budgetB

Set a monthly spending limit in PKR for a category.

budget_statusA

Budget vs. actual for a month ('YYYY-MM', default current), with burn pace.

add_recurringA

Add a monthly recurring expense (rent, internet, subscriptions).

It posts itself on day_of_month each month, tagged 'recurring'. A day past the end of a short month posts on that month's last day. If the day has already passed this month, it posts immediately.

list_recurringB

All active recurring expenses.

delete_recurringA

Stop a recurring expense. Already-posted expenses are left in place.

backup_nowA

Write a consistent snapshot of the database to the backups directory.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 16 tools

Disambiguation4/5

Most tools have clearly distinct roles: adding, editing, deleting, querying, summarizing, budgeting, and recurring expenses. Some pairs like add_expense/add_expenses and query_expenses/search_expenses could be confused, but the descriptions clarify the intended use.

Naming Consistency4/5

The majority of tools follow a consistent snake_case verb_noun pattern like add_expense, list_recurring, and delete_expense. A few outliers such as summarize, budget_status, undo_last, and update_last break the pattern slightly, but the overall style is predictable.

Tool Count4/5

At 16 tools, the set is slightly above the ideal 3-15 range but still well-scoped for an expense tracker. Each tool covers a meaningful part of the domain without obvious redundancy.

Completeness5/5

The tool surface covers the full expense lifecycle: single and bulk creation, updates, deletion, undo, querying, searching, summarizing, budgets, recurring expenses, and backup. Supporting workflows like recurring and budget management have matching setup, status, and teardown tools.

Maintenance

ActivitySlowing
ResponsivenessNo issues