Expense Tracker MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EXPENSE_TRACKER_DB_PATH | No | Path to the SQLite database file. | <project root>/expenses.db |
| EXPENSE_TRACKER_EXPORTS_DIR | No | Directory where CSV exports are written. | <project root>/exports/ |
| EXPENSE_TRACKER_CATEGORIES_PATH | No | Path to the categories JSON file. | <project root>/categories.json |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| add_expenseB | Add a new expense entry to the database. |
| get_expenseA | Fetch a single expense entry by id. |
| list_expensesA | List expense entries within an inclusive date range. |
| update_expenseA | Update one or more fields of an existing expense. Only the fields you pass are changed; everything else stays as-is. |
| delete_expenseA | Delete an expense entry by id. |
| summarizeA | Summarize expenses by category within an inclusive date range. |
| export_expensesA | Export expenses within an inclusive date range to a CSV file on disk and return its path. |
| list_categoriesA | Return the full category -> subcategory list as a tool call (mirrors the expense://categories resource). Use this to check valid values before calling add_expense or update_expense. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| categories | Serve the category/subcategory reference data, read fresh each call. |
TDQS
Scored across 8 tools
Each tool maps to a clearly distinct operation: expense CRUD, category listing, summarization, and CSV export. There is no functional overlap between list_expenses and summarize because one returns raw entries and the other aggregates them.
Most tools follow a clear verb_noun pattern (add_expense, get_expense, list_expenses, update_expense, delete_expense, export_expenses, list_categories). The lone 'summarize' deviates by omitting a noun object, which is a minor inconsistency but does not harm readability.
Eight tools is well-scoped for an expense tracker: the full expense lifecycle is covered with ADD/GET/LIST/UPDATE/DELETE, supplemented by category lookup, summary, and export. Each tool earns its place without redundancy.
The tool set provides complete CRUD coverage for expenses along with useful supporting operations like summarization, CSV export, and category validation. There are no obvious dead ends for the stated domain, and category management appears intentionally external.