MCP stdio server exposing Electronics RFQ Agent's core capabilities as tools for parsing RFQ documents, looking up parts in ERP systems, and auditing quotes
Three tools with complete input schemas and descriptions, but descriptions are minimal (10-20 chars baseline) and lack LLM-optimized guidance. quote_rfq and lookup_part accept mock/margin parameters with defaults but no validation constraints documented. audit_quote has no parameters but good error handling. No output schemas documented. Tools follow verb_noun naming but descriptions do not explain WHEN to use each tool or dependencies between them. Error responses are structured but lack recovery guidance.
Read a saved quote JSON file and return a found/substituted/not-found breakdown.
Look up a single part in the ERP catalog by exact part number.
Parse an RFQ document (PDF, Excel, Word, or plain text) and return a draft quote.
Descriptions lack LLM-optimized guidance. 'Parse an RFQ document...' (45 chars) does not explain WHEN to call quote_rfq vs lookup_part, what file formats are supported, or what the output structure contains. Baseline: 50-200 chars with WHAT/WHEN/WHY.
Output schemas not documented. quote_rfq returns dict[str, Any] with no field documentation. LLMs cannot plan downstream calls or extract required data (e.g., quote_id, total_price) without seeing the schema.
Parameter constraints not documented. margin defaults to 0.15 but no min/max bounds stated. mock parameter has no guidance on when to use mock vs real ERP. LLMs may pass invalid margin values (e.g., 5.0 = 500%).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Error responses lack recovery guidance. quote_rfq returns {"error": "file not found: ..."} but does not suggest next steps (e.g., 'Check the file path or use mock=true to test with sample data'). Baseline: errors must tell LLM what to do next.
No tool composition guidance. Descriptions do not explain that lookup_part is for single parts while quote_rfq handles bulk RFQ parsing, or that audit_quote requires output from quote_rfq. LLMs must infer dependencies.