Open-source Claude Code SDK for end-to-end Scope 1/2/3 decarbonisation workflows with multiple MCP servers for carbon accounting, calculation, execution, strategy, and swarm coordination
Critical gaps across all dimensions. Tool definitions lack proper schemas, input parameters are documented in descriptions but not in formal JSON Schema with type constraints. Descriptions are minimal (10-50 chars), well below the 50-200 char baseline for LLM-optimized tools. No output schemas documented. Tool names lack action verbs (e.g., 'calc.health' instead of 'check_calc_health'). No error handling guidance, no parameter validation rules, no recovery paths. All 13 tools exhibit the same structural deficiencies. This server is not production-ready.
Compute emissions for a given job with optional refresh
Retrieve records from calculation database collections
Calculate Data Quality Score for emissions calculation
Export calculation results in specified format
Normalize currency amounts using FX rates
Health check for calculation module
Identify top emission reduction opportunities
No formal JSON Schema for tool inputs. Parameters documented in descriptions only; no type constraints, enums, or validation rules visible in schema definitions.
Tool descriptions are too short (10-30 chars). LLMs cannot determine when/why to select tools. Baseline is 50-200 chars; these lack context for selection and prerequisites.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 29 | 2026-07-28+ | v2 |
Replay emissions calculation for a job
Health check for connectors module
Health check for execution module
Health check for Scope 1/2 accounting module
Health check for strategy module
Health check for swarm coordination module
Tool names lack action verbs. 'calc.health' should be 'check_calc_health' or 'get_calc_status'. Names like 'calc.db.get' use dot notation instead of verb_noun convention, reducing LLM parsing clarity.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields. Responses are unstructured.
No error handling guidance. Tools do not indicate what errors are retryable, user-fixable, or fatal. No recovery paths provided to LLM.