Monthly Expense MCP Server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation5/5
Each tool targets a distinct action or resource: adding, listing, deleting expenses, summarizing months, setting budgets, and listing categories. There is no meaningful overlap that would cause an agent to select the wrong tool.
Naming Consistency4/5Most tools follow a clear verb_noun pattern: add_expense, list_expenses, delete_expense, set_budget, list_categories. The one deviation is monthly_summary, which uses a noun phrase instead of a verb_prefix, but it is still readable and predictable.
Tool Count5/5Six tools is well-scoped for a monthly expense management server. Each tool covers a necessary part of the domain without redundancy or bloat.
Completeness4/5The tool surface covers creating, reading, and deleting expenses, plus monthly summaries and budgeting. The main gap is the lack of an update_expense tool, but users can work around it by deleting and re-adding an expense.
Average 3.6/5 across 6 of 6 tools scored. Lowest: 2.9/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 2 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that a new expense entry is added, which implies a write operation, but it does not disclose permissions, idempotency, duplicate handling, validation behavior, or what the response will contain. This is thinner than expected for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: two short sentences with no wasted words. However, the second sentence largely repeats a constraint already present in the schema pattern, and the overall terseness contributes to the missing parameter guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and no schema descriptions, the description leaves important context uncovered: valid categories, amount meaning, expected response, and error behavior. It is minimally viable but not complete enough for an agent to invoke the tool with full confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only clarifies the date format, which the schema's regex already encodes. It does not explain whether category must match an existing category, what amount represents, or that description is optional. The parameter semantics are mostly left to the agent's inference from names and schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Add') and the resource ('a new expense entry'), so its purpose is unambiguous. It is naturally distinguishable from sibling tools like list_expenses and delete_expense, though it does not explicitly name or contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the phrase 'Add a new expense entry,' but the description provides no explicit guidance about when to prefer this tool over alternatives or any caveats. There are no exclusions or alternative tool references, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'Delete an expense,' which reveals the basic action but not the destructive permanence, potential cascading effects, idempotency, or error behavior. The agent is not warned that this operation likely cannot be undone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It front-loads the verb and resource, making it instantly scannable. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, this description is too thin. It tells the agent what action to perform but not what happens after success or failure, what a response would look like, or whether there are side effects. The low parameter complexity mitigates this somewhat, but the missing behavioral context leaves the definition incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description merely restates that the operation uses an ID without adding any new meaning beyond the parameter name 'id.' It does not clarify the source of the ID, how to obtain it, or any special constraints beyond the schema's integer and exclusiveMinimum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action verb 'Delete' and names the resource 'expense' plus the identifying mechanism 'by its ID.' This unambiguously distinguishes it from sibling tools like add_expense, list_expenses, and monthly_summary, leaving no doubt about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is clear enough that an agent can infer when to use it: any time an expense needs to be removed. However, the description gives no explicit guidance on when to prefer this over alternatives, no prerequisites, and no mention of what happens if the expense does not exist. The usage context is implied rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It accurately conveys that this is a listing operation with optional filters, but it does not mention ordering, pagination, authentication requirements, or what the returned expense objects look like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It front-loads the core operation ('List expenses') and immediately follows with the relevant optional filtering semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two optional parameters and no output schema, the description covers the essential call semantics. However, it does not explain return shape, sorting, or how to choose between this and monthly_summary/list_categories, leaving some selection context to the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds the expected month format (YYYY-MM) and clarifies that filters are optional and combinable via 'and/or', but it gives no useful meaning for 'category' beyond the raw property name—such as valid values or where categories come from.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('expenses') and clarifies the optional month/category filters. It is reasonably distinguishable from siblings like monthly_summary and list_categories by the resource named, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context that this tool lists item-level expenses and can be filtered, so an agent can infer when it applies. However, it provides no explicit guidance on when to prefer list_expenses over monthly_summary or list_categories, leaving alternative selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does disclose the upsert-like behavior by saying 'Set (or update)', which is a useful trait beyond the tool name. However, it does not mention what happens to an existing budget beyond updating it, nor auth requirements, return value, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence that states the core behavior and the key month format up front. Every word adds value, with no filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two scalar parameters and no output schema, so the description is close to sufficient for basic invocation. Still, without annotations or an output schema, it leaves the exact effect on an existing budget and the response behavior unspecified, which are gaps an agent might need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that 'month' is in YYYY-MM format and implies that 'amount' is the budget amount. It does not explicitly describe the amount's units or meaning beyond the word 'budget', leaving a minor semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set (or update)') and a clear resource ('the budget') tied to a month, with the month format included. This separates it from the sibling expense-management tools, which operate on expenses, categories, and summaries rather than budgets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly establishes the intended context: creating or updating a monthly budget for a given YYYY-MM month. There are no hidden alternatives among the siblings, so explicit when-not guidance is not necessary; the resource 'budget' is enough to route the agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the report's contents and the conditional budget-status behavior, and 'Get' clearly signals a read-only operation. It does not state exact response shape or behavior when no expenses are present, but these are minor for a simple summary tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence with the core purpose front-loaded and the conditional budget detail at the end. Every element earns its place and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only reporting tool with no output schema, the description covers the required month format and the key return values. The only minor ambiguity is how the tool behaves when no budget has been set, but this does not block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter and the schema already enforces its format via the YYYY-MM pattern. The description repeats this format but adds little semantic meaning beyond the schema, so it is adequate rather than additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource ('Get a summary ... for a given month') and specifies the exact output contents (total plus per-category breakdown). This clearly separates it from the sibling tools, which are line-item, mutation, or configuration operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied ('Get a summary... for a given month') and the budget-status condition is noted, but no alternatives are named and no when-not-to-use guidance is given. With siblings like list_expenses and set_budget, explicitly routing to this tool for aggregate views rather than itemized lists would improve the guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It signals a non-destructive read operation through 'list,' and adds meaningful behavioral detail by stating the result is 'distinct' and 'currently in use'—meaning only categories appearing in actual expense records are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the action, the object, and the filtering scope with no wasted words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only listing tool, this description is nearly complete. It lacks only an explicit statement of the return format, but the meaning of 'list all categories' is clear enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to document. The description correctly omits parameter details, and the baseline of 4 applies because no clarification is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('list') and resource ('distinct expense categories'), and clarifies the scope with 'currently in use.' This clearly distinguishes it from sibling tools like list_expenses, which would list expense records rather than categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied: call this when you need the existing expense categories. However, it provides no explicit when-to-use guidance or comparison with alternatives such as list_expenses or monthly_summary, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/Harshitnehra/mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server