Read-only FastMCP server exposing synthetic supplier fixture facts for procurement decision support
Four read-only tools with minimal descriptions and no parameter descriptions. All tools follow a consistent verb_noun naming pattern (get_*) and accept a single supplier_id parameter with basic type info. However, descriptions are generic (10-30 chars), parameter descriptions are absent, output schemas are undocumented, and error handling is minimal. No tool annotations, no pagination, no structured output guidance. The server is functionally simple but lacks the documentation depth required for LLM-driven agent selection and error recovery.
Return the budget status for a supplier. Read-only.
Return the compliance status for a supplier. Read-only.
Return spend and budget amounts for a supplier. Read-only.
Return the risk level for a supplier. Read-only.
Parameter descriptions missing. All four tools accept supplier_id but provide no description of what it is, how to obtain it, or expected format (e.g., 'The unique supplier identifier (string, e.g., SUPP-001)').
Tool descriptions are too brief (10-30 chars). 'Return the risk level for a supplier. Read-only.' lacks context on when to call this vs other tools, what the risk levels mean, or what the output format is. Descriptions should be 50-200 chars with actionable context.
Output schemas undocumented. Tools return plain strings (e.g., 'risk level: high') but LLMs have no schema to parse structured fields. Document return types: {risk_level: string, supplier_id: string, timestamp?: string}.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Error handling is minimal. When supplier_id is not found, tools return a plain string 'unknown supplier: {id}' with no guidance on recovery (e.g., 'Try search_suppliers() with a partial name'). Errors should be actionable.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint metadata. All four are read-only and idempotent, annotate them to help agents reason about safety and retry logic.