Exposes supply chain sustainability tools via Model Context Protocol for querying supplier data, ESG scores, regulations, and risk assessments
EcoSupplyAI exhibits significant quality gaps across definition rubric dimensions. Tool definitions are present but lack rigor. Schema completeness is inconsistent: tools 1-3, 5 have basic JSON schemas with required fields and property types, but lack descriptions for most parameters (e.g., search_suppliers has 'query', 'country', 'industry' properties but only 'query' has a description). Parameters 'country' and 'industry' are completely undescribed. Tools 4, 6 show duplicate tool naming (both 'search_regulations') suggesting either registration errors or poor tool hygiene. Tool descriptions are present but brief (avg ~70 chars), below the 194-char production baseline. No evidence of output schema documentation, what fields does get_supplier_details return? Are they paginated? No description answers these questions. Error handling is absent from all visible definitions, there is no recovery guidance, no error categorization. The tool generate_report is marked WRITE but lacks confirmation/dry-run pattern. Tool naming shows minor issues: tools 4 and 6 are duplicates; 'search_regulations' appears twice with slightly different descriptions (one mentions 'EU sustainability regulations', the other 'EU sustainability regulations and compliance documents'). No parameter descriptions for most tools prevent LLMs from inferring valid input ranges or formats. Risk classification is present (READ_ONLY vs WRITE) but not integrated into descriptions as required by pattern:command-tool.
Calculate composite ESG score with breakdown for a supplier
Predict future Scope 3 emissions for a supplier
Trigger generation of a sustainability report
Get the ESG risk score for a specific supplier
Get risk assessment (low/medium/high/critical) for a supplier
Get full details for a specific supplier by ID
Search EU sustainability regulations by keyword
Duplicate tool registration: 'search_regulations' defined at tools 4 and 6 with nearly identical purpose. LLM cannot distinguish which to invoke; creates ambiguity in tool selection.
Missing parameter descriptions: Tools 1 (country, industry), 2 (supplier_id), 3 (supplier_id), 5 (supplier_id), and others lack descriptions for input parameters. LLMs cannot infer parameter meaning or valid formats without explicit descriptions.
No output schema documentation across all tools. Tool descriptions do not specify what fields are returned, structure, pagination support, or what IDs/references are included for downstream tool chaining.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 37 | - | v1 |
Search EU sustainability regulations and compliance documents
Look up supplier information by name or ID
Search the supplier database by name, country, or industry
No error handling or recovery guidance: Tools lack descriptions of failure modes, error categories (retryable vs fatal), or what the LLM should do when a call fails.
Missing enum constraints: generate_report 'report_type' description says 'quarterly or annual' but schema has no enum constraint. forecast_emissions 'months_ahead' lacks min/max bounds. LLMs cannot reliably select from free-form strings.
Overlapping tool functionality: search_suppliers (tool 1) and search_supplier_database (tool 9) both search suppliers; calculate_esg_score (tool 3) and get_esg_score (tool 7) both retrieve ESG scores. LLM wastes reasoning cycles deciding between near-duplicate tools.
Example values in parameter descriptions: get_esg_score shows 'e.g., SUP-001' in supplier_id description. LLMs latch onto examples and reuse them literally in subsequent calls, causing incorrect API calls.
No confirmation/dry-run for write operation: generate_report (WRITE risk) lacks any description of state modification or confirmation step. Agents should confirm before destructive actions.