expense-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CURRENCY | No | Currency symbol | ₹ |
| DATABASE_URL | No | SQLite or PostgreSQL URL | sqlite:///expenses.db |
| DEFAULT_USER | No | User ID for multi-user setups | default |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| expense_addA | Save a new expense or income transaction. Args: params: AddExpenseInput with amount, category, description, type, date. Returns: Confirmation string with saved details and optional budget alert. |
| expense_searchA | Search and filter expenses with flexible criteria. Args: params: SearchInput with optional query, category, dates, amounts, type, limit. Returns: Formatted list of matching transactions with total. |
| expense_summaryA | Get spending summary for a time period. Args: period: 'today', 'week', 'month', or 'year'. Returns: Summary with totals, balance, and category breakdown. |
| expense_deleteA | Permanently delete an expense by ID. Asks for confirmation first. Args: expense_id: The ID of the expense to delete (from expense_search results). Returns: Confirmation or cancellation message. |
| budget_setA | Set or update a monthly budget for a spending category. Args: params: BudgetInput with category, amount, and optional month. Returns: Confirmation of budget set. |
| budget_listA | Get all budgets and current spending for this month. Returns: Formatted budget list with usage percentages and status indicators. |
| goal_createA | Create a new savings goal. Args: params: GoalInput with name, target amount, and deadline. Returns: Confirmation of goal creation. |
| goal_updateB | Add money toward a savings goal. Args: params: UpdateGoalInput with goal name and amount to add. Returns: Updated goal progress. |
| goal_listA | Get all savings goals with progress bars. Returns: Formatted list of goals with progress and deadline. |
| expense_insightsA | Get spending patterns and insights for the current month. Returns: Key spending metrics: top category, daily average, biggest day, anomalies. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| monthly_review | Start a monthly expense review session. |
| budget_setup | Set up budgets based on recent spending. |
| savings_plan | Create a savings plan for a specific goal. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| resource_month_summary | Current month expense summary. |
| resource_budgets | Current month budgets and usage. |
| resource_goals | All savings goals with progress. |
TDQS
Scored across 10 tools
Each tool has a distinct purpose: budgeting, expenses, and goals are clearly separated. Even similar tools like expense_summary and expense_insights provide different outputs (summary vs. patterns), so no confusion.
All tools follow a consistent verb_noun pattern using snake_case, e.g., expense_add, goal_list, budget_set. The naming conventions are uniform across the entire set.
10 tools cover the three main domains (budgets, expenses, goals) without being excessive. Each tool contributes a necessary operation, making the set well-scoped for an expense management server.
The tool surface covers core CRUD operations for expenses (add, delete, search) and goals (create, list, update), but misses an expense update tool. Budgets have list and set, which covers creation and reading, but no delete. Minor gaps exist.