MCP server for financial data management and analysis with file upload, document processing, and integration with Gemini AI for intelligent financial assistance
The server defines 14 tools with basic input schemas and descriptions, but quality is inconsistent. Most tools lack depth in their descriptions (averaging ~60 chars vs. production baseline of 194 chars). Parameter descriptions are present but minimal. Output schemas are not documented, the code returns JSON strings, but the expected structure is not specified in tool definitions. Error handling guidance is absent. The server shows foundational structure (all tools have names, most have basic descriptions) but falls short of production standards in guidance, documentation, and composition patterns. This is a typical community server in the 40-55 range.
ACTION: Adds a new transaction manually.
ACTION: Categorizes an existing expense/transaction.
ACTION: Creates a new invoice.
Generates a monthly expense report for a specified month and year. Returns JSON summary.
Generates a Profit & Loss statement for a specified period. Returns JSON summary.
Retrieves the current balance for a specific account ID. Read-only.
Retrieves the full JSON content of an uploaded document by filename.
No output/return schemas documented. Tools return JSON strings, but the expected field structure is not declared. LLMs cannot infer what fields to expect downstream.
Descriptions are too brief (avg ~60 chars vs. production baseline 194 chars). Most lack context on WHEN to use the tool and what prerequisites exist. E.g., 'Generates a monthly expense report' does not explain required input format or expected output structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Retrieves the full details for a specific transaction ID. Read-only.
Lists all available account IDs and their names. Read-only.
Lists transactions, optionally filtering by account, category, month/year. Read-only.
Lists all uploaded documents and their converted JSON filenames.
Queries uploaded documents and financial data using semantic search based on keywords or natural language.
ACTION: Updates the status of an existing invoice.
ACTION: Uploads a document (TXT, CSV, Excel, PDF) and converts to JSON for knowledge base. Returns JSON filename.
No error recovery guidance. Tools return error JSON (e.g., {"error": "..."}) but do not tell the LLM what to do next. Should include 'Try X instead' or 'This is retryable'.
No parameter constraints (enums, min/max). 'month' accepts 1-12 but is not declared as an enum; 'category' is free-form (invites hallucinated values); 'status' in update_invoice_status has no enum constraint.
No pagination support on list tools. 'list_transactions' accepts a 'limit' parameter but does not document total_count, next_cursor, or how to fetch beyond the limit. Large result sets blow context window.
Write operations lack dry-run or confirmation pattern. Tools like 'add_manual_transaction', 'categorize_expense', 'create_invoice' modify state with no undo or review step. Agents risk unintended financial changes.
Tool composition gaps. 'upload_document' requires base64-encoded file content, no guidance on how an agent obtains that. Should the agent call an 'encode_file' tool? Or is base64 assumed to be available externally? Unclear.
Parameter naming inconsistencies. Some params accept IDs ('account_id', 'transaction_id') but descriptions do not clarify what format (e.g., 'acc-123' vs. UUID). Mixed naming conventions reduce clarity.
No audit logging or permission gates. Financial tools (add_manual_transaction, create_invoice, update_invoice_status) modify sensitive state with no indication of who called them or what permissions are required.