Multi-agent system for autonomous invoice auditing, compliance checking, discrepancy analysis, and settlement execution using Google Gemini and Vertex AI
Critical gaps across all dimensions. Tool definitions lack proper schemas, descriptions are minimal or missing, and parameter documentation is absent. Only 1 of 5 tools has a visible input schema in source code. No error handling guidance, no output schemas documented, and tool composition is unclear. The server appears to be a Streamlit dashboard with ad-hoc tool implementations rather than a production MCP server.
Analyze a FLAGGED audit verdict and produce a severity-ranked explanation with a recommended next action.
Audit extracted invoice data against company policy (MCP). Checks the spending limit, the allowed-vendor list, and the blocked-vendor list for the invoice's category.
Execute settlement for an APPROVED_PENDING_SETTLEMENT invoice: verify the vendor checkout via UCP and issue a signed AP2 payment mandate.
Extract structured invoice data from a GCS file using Gemini multimodal API.
Fetch the enterprise expense policy and spending limits for a given category via MCP.
No input schemas visible for 4 of 5 tools (audit_invoice, analyze_discrepancy, extract_invoice_data, execute_settlement). Only get_company_policy shows a schema in source code.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. Descriptions do not specify what fields are returned or their types.
execute_settlement is marked IRREVERSIBLE but has no confirmation step, dry-run option, or error recovery guidance. Agents can trigger payment mandates without safeguards.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | <=2025-11-25 | v2 |
Tool descriptions lack WHEN-to-use guidance and prerequisites. E.g., audit_invoice does not state whether it requires extract_invoice_data to run first, or what format invoice_json_str must be in.
No error handling or recovery guidance in any tool description. LLMs cannot determine if failures are retryable, user-fixable, or fatal.