Multi-component financial management system with MCP SQLite server for database queries, prompts, and resources. Includes Go-based web server for personal finance tracking and Python-based agent for AI financial analysis.
This evaluation is based on the tool definitions provided in the server metadata (6 tools declared). However, the actual source code provided is incomplete, it contains only Dockerfiles, Makefiles, and partial Go module declarations. The tool definitions themselves are sourced from metadata claims, NOT from verified source code inspection. Additionally, CRITICAL GAPS exist: (1) No input schemas are visible in the source code, cannot verify type definitions, constraints, or parameter structure. (2) Descriptions are present but extremely brief (19 - 33 characters), falling below the 20-character floor for quality scoring. (3) No output schemas documented. (4) No error handling guidance visible. (5) Security issues: tools like write_query and create_table expose dangerous SQL operations without clear permission gates, dry-run patterns, or destructive operation warnings. (6) The naming 'read_query' and 'write_query' is generic and does not clearly indicate what each does, 'execute_read_query' and 'execute_write_query' would be clearer. (7) No evidence of idempotency or confirmation patterns for destructive operations. The average of individual tool scores (all capped at 50 due to lack of source verification) yields 28 after applying penalties for missing schemas, short descriptions, and lack of error handling.
Adds a new business insight to the memo resource
Creates new tables in the database
Shows the schema for a specific table
Shows all existing tables
Executes SELECT queries to read data from the database
Executes INSERT, UPDATE, or DELETE queries to modify data
Tool definitions inferred from metadata, not verified in source code. Actual tool registration, schema definitions, and implementation are not visible.
No input schemas visible in source. Cannot verify parameter types, constraints, enums, or descriptions.
Tool descriptions are 12 - 33 characters, below the 20-character floor and well below the 194-char baseline. Examples: 'Shows all existing tables' (28 chars) does not explain WHEN to call it or how it relates to other discovery tools.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 27 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 26 | - | v1 |
Dangerous SQL operations (read_query, write_query, create_table) exposed without error handling guidance, destructive operation warnings, or permission gates. No dry-run, confirmation, or audit trail patterns visible. Per pattern:confirmation-request, irreversible operations should support a confirmation step.
Tool naming is generic. 'read_query' and 'write_query' do not follow verb_noun convention clearly. 'execute_select_query' and 'execute_modify_query' would be more explicit. Per pattern:tool, names should be unambiguous and self-documenting.
No output schemas documented. LLMs cannot plan downstream tool calls or extract necessary IDs. Per pattern:tool, 'Document the output schema. LLMs need to know what fields to expect.'
No security annotations or permission gates visible. Tools that modify data (write_query, create_table, append_insight) lack permission checks or scope declarations. Per pattern:scope-declaration, each tool should declare required permissions.
Parameter descriptions missing. The 'query' parameter in read_query and write_query has only 'SQL SELECT query to execute' and 'SQL INSERT, UPDATE, or DELETE query to execute', vague, no format rules, no injection warnings. 'columns' parameter in create_table lacks detail on expected structure.
No error handling guidance. No patterns for retryable vs fatal errors, no recovery suggestions, no field validation rules. Per pattern:recovery-guide, 'Error responses must tell the LLM what to do next.'