MCP server for financial statement ingestion, reconciliation, and audit management. Exposes tools for importing bank statements (PDF/CSV/XLSX), categorizing transactions, applying corrections, and managing the canonical finance database.
Server has 14 well-structured tools with explicit schemas and descriptions. Naming follows verb_noun convention (finance_*). Descriptions are present and contextual (avg ~80 chars), exceeding the 20-char minimum. All tools have JSON Schema with type and required fields. However, parameter descriptions are MISSING, the schema shows property names but no 'description' field for individual parameters. This is a critical gap: LLMs cannot infer what 'period', 'run_id', 'confirm', or 'reason' mean without explicit descriptions. Error handling is present (MCPError class, confirm gates on destructive ops) but recovery guidance is minimal. Output schemas are not documented. Security is strong (path validation, account masking, audit logging via actor field), but parameter descriptions would elevate this to 75+.
Aplica correcciones de categoría/tipo/review_status al staging (auditadas).
Aprueba un statement REVIEW_REQUIRED (bloqueos blandos) con razón auditada.
Cobertura y conciliación de un mes (YYYY-MM).
Marca un mes como cerrado de forma persistente y auditable.
Incorpora atómicamente un run a la base. REQUIERE confirm=true.
Statements de un run que requieren revisión/aprobación y por qué.
Manifiesto de un run de staging (cuentas enmascaradas, sin texto original).
Parameter descriptions missing from all 14 tools. Schema defines properties (path, period, run_id, confirm, reason, etc.) but no 'description' field for each parameter. LLMs cannot infer what 'period' means (date range? fiscal period? string format?) or when 'confirm' is required without explicit text.
Output schemas not documented. Tools return complex objects (manifest, review_queue, corrections log) but no schema is provided to LLMs. Agents cannot plan downstream calls or extract fields reliably.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
Alias de preview_import (dry-run): extrae, concilia y deja vista previa.
Lista los estados de cuenta pendientes en statements/inbox.
Previsualiza (DRY-RUN) la importación de un archivo o carpeta; no incorpora.
Regenera la plantilla Excel con los datos actuales de la base.
Resuelve una cuarentena de transacción (anomalía detectada). REQUIERE confirm=true.
Revierte por completo una importación. REQUIERE confirm=true.
Estado e integridad de la base canónica (conteos, versión de esquema).
Error recovery guidance minimal. MCPError is raised for invalid inputs (e.g., 'run no encontrado', 'ruta fuera del proyecto'), but responses do not suggest next steps. E.g., 'run not found' should suggest 'Call finance_list_inbox() to see available runs' or 'Call finance_preview_import() to create a new run'.
Confirmation pattern (confirm=true) used on 3 destructive tools (finance_commit_import, finance_rollback_import, finance_resolve_quarantine) but not on finance_close_month, which is marked IRREVERSIBLE. Inconsistent safety gates.
finance_ingest_statement is an alias of finance_preview_import with identical behavior. Duplicate tool names confuse LLMs, they waste reasoning cycles deciding between them. Consolidate into one canonical tool or clearly document the distinction.