Deterministic multi-criteria decision analysis (MCDA) for AI agents: score, rank, and explain options against weighted criteria with weighted-sum, weighted-product, or TOPSIS. Exact decimals, never floats.
DecisionMatrix MCP demonstrates solid definition quality with well-structured schemas and clear descriptions. All 6 tools have explicit JSON Schema definitions with proper type declarations and parameter descriptions. Tool names follow verb_noun conventions (create_decision, score_options, sensitivity_analysis, compare_two, list_methods, health_check). Descriptions are substantive (100-200 chars typical, well above the 20-char floor). However, several parameter descriptions lack detail about constraints, valid ranges, or format specifications. Output schemas are not explicitly documented in the source code, we can infer structure from descriptions but lack formal response schema declarations. Error handling is minimal; tools may fail but recovery guidance is not evident in the definitions.
Head-to-head comparison of exactly two options. Returns the winner, score margin, how many criteria each option wins, and a per-criterion breakdown. Pass option_a/option_b (names) or a 2-element options array, plus criteria and scores.
Rank named options against weighted criteria and return the winner, full ranking, per-criterion breakdowns, methodology, weights used, and a plain-language explanation. Main tool. method defaults to weighted_sum (also weighted_product, topsis). 100% deterministic.
Server health, version, and capabilities.
List scoring methods (weighted_sum, weighted_product, topsis) with normalization details, score ranges, and when to use each.
Score options against criteria when the score matrix is supplied separately. Returns the full normalized scored matrix + ranking, without the narrative winner explanation.
Test how robust the winner is to criteria-weight changes. Sweeps each weight +/- 'variation' (default 0.2) over 'steps' (default 10), recomputes the ranking, and reports a robustness score, the criteria most likely to flip the result, and flip points.
Output schemas not documented. Tool descriptions explain what is returned in narrative form (e.g., 'Returns the winner, full ranking, per-criterion breakdowns...') but no formal JSON Schema response types are provided. LLMs cannot reliably extract structured data from narrative descriptions.
Parameter descriptions lack detail on constraints. 'variation' defaults to 0.2 but no description explains valid range (0.0 - 1.0?), whether it's a percentage or coefficient, or what happens if negative. 'steps' defaults to 10 but no guidance on min/max. LLMs will guess and may pass invalid values.
Criteria 'direction' parameter has a default ('benefit') but the description does not highlight this. Newer LLMs may omit defaults, causing ambiguity about whether criteria are benefit or cost.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
No error handling guidance in tool definitions. Tools may fail (e.g., invalid score matrix, zero weights, mismatched options/scores). Error responses should guide recovery ('Supply scores for all options and criteria' vs bare JSON error).
compare_two tool has optional 'option_a' and 'option_b' parameters but description states 'exactly two options'. Unclear which input method is preferred. Parameter relationship documentation is missing.