MCP server providing tools for a shopkeeper's expense/income tracking and financial management system. Exposes tools for logging expenses, income, credit transactions, vendor/customer dues management, and financial reporting.
Server has 10 tools with consistent naming (verb_noun pattern) and reasonable descriptions (avg ~120 chars). All tools have input schemas with types and descriptions. However, output schemas are not documented, LLMs cannot predict return structure. Error handling is absent; tools do not guide recovery. Parameter descriptions lack format constraints (e.g., date format stated but no validation guidance). No tool annotations (readOnlyHint/destructiveHint). Missing idempotency guarantees for write operations. Composition is sound (single responsibility per tool), but chaining metadata (IDs needed for downstream calls) is not explicitly documented in responses.
Record that the shop gave a customer goods or money on credit (udhaar given)
Record that the shop now has an accounts payable to a vendor (bought on credit / to pay later)
Get a summary of expenses over a specified date range, optionally grouped by category
Get a summary of income over a specified date range, optionally grouped by category or time period
Get a profit summary (income minus expenses) over a specified date range
List all pending dues (accounts payable to vendors or money owed by customers)
Log a customer repaying money they previously owed (udhaar repayment)
No output schemas documented. LLMs cannot predict return structure (fields, types, pagination). Forces agents to guess what data is available after each call.
No error handling guidance. Tools do not indicate what to do on failure (retry, ask user, abort). Agents cannot recover from errors intelligently.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes or know which operations are idempotent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Log an expense transaction for the shop (money paid out for inventory, rent, electricity, salary, transport, or miscellaneous costs)
Log an income transaction (a sale or money received, either cash or online payment)
Record that the shop is paying a vendor back money it already owed (settling a bill that was recorded earlier as vendor_credit)
Date parameters lack validation guidance. Description says 'YYYY-MM-DD format, defaults to today' but does not specify: what happens if format is wrong? Can dates be in the past? Future? Range limits?
list_pending_dues returns unspecified structure. No documentation of fields (customer_name, amount, due_date, etc.). Agents cannot extract or chain data reliably.