Servidor MCP

decisionmatrix-mcp

io.github.inity13/decisionmatrix-mcp
Datos y analítica Productividad Público y accesible MCP 2026-07-28

Qué hace este MCP

Performs deterministic multi-criteria decision analysis, ranking options, comparing alternatives, and testing sensitivity to criteria weights.

compare_two
Direct head-to-head comparison of exactly two options. Returns the winner, the score margin, how many criteria each option wins, and a per-criterion breakdown of who each criterion favours. Pass option_a and option_b (names) or a 2-element options array, plus criteria and scores.
Esquema de entrada
{'type': 'object', 'required': ['criteria', 'scores'], 'properties': {'method': {'enum': ['weighted_sum', 'weighted_product', 'topsis'], 'type': 'string', 'default': 'weighted_sum'}, 'scores': {'type': 'object', 'description': 'Score matrix. Object form: {"Option A": {"Criterion 1": 8, ...}, ...}. Array form: [{"option":"Option A","scores":{...}}]. Or inline scores on each option object.'}, 'options': {'type': 'array', 'items': {'type': ['string', 'object']}, 'description': 'Named alternatives. Strings ["A","B"] or objects [{"name":"A","scores":{...}}].'}, 'criteria': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'weight'], 'properties': {'name': {'type': 'string'}, 'weight': {'type': 'number'}, 'direction': {'enum': ['benefit', 'cost'], 'type': 'string', 'default': 'benefit'}}}, 'description': "Weighted criteria. Each: {name, weight (relative, >=0), direction: 'benefit' (higher better, default) | 'cost' (lower better)}."}, 'option_a': {'type': 'string'}, 'option_b': {'type': 'string'}}}
create_decision
Rank named options against weighted criteria and return the winner, full ranking, per-criterion score breakdowns, methodology, the weights used, and a plain-language explanation. This is the main tool. Provide options, criteria [{name, weight, direction}], and a scores matrix. method defaults to weighted_sum (also: weighted_product, topsis). 100% deterministic.
Esquema de entrada
{'type': 'object', 'required': ['options', 'criteria', 'scores'], 'properties': {'method': {'enum': ['weighted_sum', 'weighted_product', 'topsis'], 'type': 'string', 'default': 'weighted_sum'}, 'scores': {'type': 'object', 'description': 'Score matrix. Object form: {"Option A": {"Criterion 1": 8, ...}, ...}. Array form: [{"option":"Option A","scores":{...}}]. Or inline scores on each option object.'}, 'options': {'type': 'array', 'items': {'type': ['string', 'object']}, 'description': 'Named alternatives. Strings ["A","B"] or objects [{"name":"A","scores":{...}}].'}, 'criteria': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'weight'], 'properties': {'name': {'type': 'string'}, 'weight': {'type': 'number'}, 'direction': {'enum': ['benefit', 'cost'], 'type': 'string', 'default': 'benefit'}}}, 'description': "Weighted criteria. Each: {name, weight (relative, >=0), direction: 'benefit' (higher better, default) | 'cost' (lower better)}."}}}
health_check
Server health, version, and capabilities. No parameters.
Esquema de entrada
{'type': 'object', 'properties': {}}
list_methods
List the available scoring methods (weighted_sum, weighted_product, topsis) with descriptions, normalization details, score ranges, and when to use each. No parameters.
Esquema de entrada
{'type': 'object', 'properties': {}}
score_options
Score options against criteria when the score matrix is supplied separately. Returns the full normalized scored matrix (per-option, per-criterion) plus a ranking, without the narrative winner explanation. Use create_decision if you want a winner + explanation.
Esquema de entrada
{'type': 'object', 'required': ['options', 'criteria', 'scores'], 'properties': {'method': {'enum': ['weighted_sum', 'weighted_product', 'topsis'], 'type': 'string', 'default': 'weighted_sum'}, 'scores': {'type': 'object', 'description': 'Score matrix. Object form: {"Option A": {"Criterion 1": 8, ...}, ...}. Array form: [{"option":"Option A","scores":{...}}]. Or inline scores on each option object.'}, 'options': {'type': 'array', 'items': {'type': ['string', 'object']}, 'description': 'Named alternatives. Strings ["A","B"] or objects [{"name":"A","scores":{...}}].'}, 'criteria': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'weight'], 'properties': {'name': {'type': 'string'}, 'weight': {'type': 'number'}, 'direction': {'enum': ['benefit', 'cost'], 'type': 'string', 'default': 'benefit'}}}, 'description': "Weighted criteria. Each: {name, weight (relative, >=0), direction: 'benefit' (higher better, default) | 'cost' (lower better)}."}}}
sensitivity_analysis
Test how robust the winner is to changes in criteria weights. Sweeps each criterion's weight +/- 'variation' (default 0.2 = 20%) over 'steps' (default 10) increments, recomputes the ranking, and reports a robustness score, which criteria are most likely to flip the result, and the flip points.
Esquema de entrada
{'type': 'object', 'required': ['options', 'criteria', 'scores'], 'properties': {'steps': {'type': 'integer', 'default': 10, 'description': 'Number of weight steps per criterion (2-100).'}, 'method': {'enum': ['weighted_sum', 'weighted_product', 'topsis'], 'type': 'string', 'default': 'weighted_sum'}, 'scores': {'type': 'object', 'description': 'Score matrix. Object form: {"Option A": {"Criterion 1": 8, ...}, ...}. Array form: [{"option":"Option A","scores":{...}}]. Or inline scores on each option object.'}, 'options': {'type': 'array', 'items': {'type': ['string', 'object']}, 'description': 'Named alternatives. Strings ["A","B"] or objects [{"name":"A","scores":{...}}].'}, 'criteria': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'weight'], 'properties': {'name': {'type': 'string'}, 'weight': {'type': 'number'}, 'direction': {'enum': ['benefit', 'cost'], 'type': 'string', 'default': 'benefit'}}}, 'description': "Weighted criteria. Each: {name, weight (relative, >=0), direction: 'benefit' (higher better, default) | 'cost' (lower better)}."}, 'variation': {'type': 'number', 'default': 0.2, 'description': 'Fractional weight sweep, 0<v<=1. 0.2 = +/-20%.'}}}
Añadido
health_check
17 de September de 2026 a las 12:42
Añadido
list_methods
17 de September de 2026 a las 12:42
Añadido
compare_two
17 de September de 2026 a las 12:42
Añadido
sensitivity_analysis
17 de September de 2026 a las 12:42
Añadido
score_options
17 de September de 2026 a las 12:42
Añadido
create_decision
17 de September de 2026 a las 12:42