Expense Tracker MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Expense Tracker MCP ServerAdd an expense of ₹200 for lunch yesterday."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Expense Tracker MCP Server
A simple Expense Tracker MCP server built with FastMCP and SQLite.
Features
Add expenses
List expenses by date range
Summarize expenses by category
Expose expense categories as an MCP resource
Compatible with Claude Desktop and MCP Inspector
Related MCP server: Expense Tracker MCP Server
Tech Stack
Python 3.14+
FastMCP 3.4.0
SQLite
Installation
Clone the repository and install dependencies:
uv syncor
uv add fastmcpProject Structure
.
├── main.py
├── expenses.db
├── categories.json
├── pyproject.toml
├── uv.lock
└── README.mdAvailable Tools
add_expense
Add a new expense record.
Parameters:
date
amount
category
subcategory (optional)
note (optional)
Example:
{
"date": "2026-06-01",
"amount": 600,
"category": "transport",
"subcategory": "cab_ride_hailing",
"note": "Cab ride to Delhi"
}list_expenses
List expenses within a date range.
Parameters:
start_date
end_date
summarize
Summarize expenses by category.
Parameters:
start_date
end_date
category (optional)
Available Resources
expense://categories
Returns the contents of categories.json.
Example categories:
food
transport
housing
utilities
health
education
entertainment
shopping
travel
investments
and more
Running the MCP Server
Start the server:
uv run fastmcp run main.pyMCP Inspector
Launch the MCP Inspector for local testing:
uv run fastmcp dev inspector main.pyClaude Desktop Integration
Install the server into Claude Desktop:
uv run fastmcp install claude-desktop main.pyRestart Claude Desktop after installation.
Example Prompts
Add an expense:
Add an expense of ₹600 for a cab ride to Delhi last Sunday.List expenses:
Show all expenses between 2026-06-01 and 2026-06-30.Summarize expenses:
Summarize my expenses for June 2026.Available Tools
3 toolsadd_expenseC
Add a new expense entry to the database.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| amount | Yes | ||
| category | Yes | ||
| subcategory | No | ||
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only implies a write operation ('add') but provides no details on side effects, permissions, idempotency, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the purpose, but it is overly brief and lacks necessary detail. It is concise but not optimally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, 3 required, no output schema), the description is severely incomplete. It fails to explain parameter semantics, return values, or behavioral constraints, making it insufficient for reliable agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description adds no meaning to the parameters. Agents receive no guidance on valid values for date, amount, category, or optional fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Add') and object ('expense entry'), making the purpose explicit. However, it does not differentiate from sibling tools like list_expenses or summarize, missing an opportunity to clarify its specific role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. The description merely states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_expensesB
List expense entries within an inclusive date range.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | Yes | ||
| end_date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description simply states the listing action without disclosing behavioral traits such as read-only nature, pagination, rate limits, or authentication requirements. Since no annotations are provided, the description carries the full burden and is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no unnecessary words or repetition. It is as concise as possible while conveying the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal and does not address return value shape, ordering, pagination, or error cases. Given low complexity and no output schema, more context would be needed for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not add details about parameter format, types, or constraints beyond implying the date range. The phrase 'inclusive date range' gives some context but does not compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List expense entries within an inclusive date range', with a clear verb ('List') and resource ('expense entries'), and a specific constraint (date range). It distinguishes well from siblings 'add_expense' and 'summarize'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description lacks any explicit when-to-use or when-not-to-use statements, and does not mention sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarizeB
Summarize expenses by category within an inclusive date range.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | Yes | ||
| end_date | Yes | ||
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It only states the function, not whether the operation is safe (read-only), requires authentication, or has rate limits. The 'summarize' verb implies reading, but this is implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It efficiently conveys the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and three parameters, the description lacks details on output format, aggregation method, handling of multiple categories, and edge cases like empty ranges. It is minimally adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds partial meaning. 'Inclusive date range' clarifies that start_date and end_date are inclusive boundaries. 'By category' explains the category parameter's role. However, no format or defaults beyond the schema are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool summarizes expenses by category within a date range, using a specific verb and resource. It distinguishes from sibling tools 'add_expense' and 'list_expenses' by implying aggregation rather than listing or adding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the sibling tools. There is no mention of context or alternatives, leaving the agent to infer usage solely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.1.0- First observed
add_expense - First observed
list_expenses - First observed
summarize
TDQS
Each tool has a clearly distinct purpose: adding, listing, or summarizing expenses. No overlap or ambiguity.
Mostly consistent verb_noun pattern (add_expense, list_expenses), though 'summarize' lacks a direct object, which is a minor deviation.
Three tools is a reasonable scope for a basic expense tracker, covering core operations without being excessive.
Coverage is adequate for adding, listing, and summarizing expenses, but lacks update and delete functionality, leaving notable gaps in lifecycle management.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Track expenses, budgets, balances, transfers, and multi-currency reports with OAuth-secured tools.
- ManiloOAuthapp.ledgy.api
Log, query, and edit expenses, budgets, and accounts in Manilo (formerly Ledgy) from any MCP-compatible AI assistant.
Log, query, and edit expenses, budgets, and accounts in Ledgy from any MCP-compatible AI assistant.
Log expenses, receipts and mileage from chat: auto-categorise, split VAT, summarise, export, rebill.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables tracking of personal expenses with tools to add, list, update, delete, and summarize expenses by category.-
- FlicenseNot gradedqualityDmaintenanceEnables users to track expenses by adding, listing, and summarizing them with category support through natural language.-
- AlicenseCqualityCmaintenanceEnables tracking, categorizing, and summarizing personal and business expenses with support for date range queries and category grouping.3MIT
- FlicenseAqualityCmaintenanceStores and manages expenses in SQLite. Enables adding, removing, and listing expenses with filtering, and exposes expense categories via a resource.3-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NeelContractor/expense-tracker-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server