You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Wires the MCP side of EVPI: run_evpi drives ModelChoice's headless
MC_EVPI_Auto command via Application.Run and reads the MC_EVPI result
sheet, returning the full-tree EVPI, optimal EV, value-with-perfect-
information, and a plain-English interpretation.
bridge.run_evpi activates the workbook, runs the command, and reads the
sheet (clear errors if the add-in isn't loaded or no tree is active).
New EvpiResult schema. Unit-tested with a fake bridge; live verification
needs a ModelChoice build that includes MC_EVPI_Auto (AB#2558, pending
that side shipping). 23 tests; ruff + mypy clean. Bumped to 0.0.2 (not
released — release waits on the ModelChoice command being deployed).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ A sibling to [`modelrisk-mcp`](https://github.com/vosesoftware/modelrisk-mcp): w
14
14
|`get_tree`| Full structure of one tree — decision / chance / terminal nodes, branches, probabilities, values. |
15
15
|`roll_up`| Roll the tree back to its expected values and **optimal policy** — the decision recommendation, in plain English. |
16
16
|`verify_rollback`| Cross-check our rollback against the `MC_V_<id>` cells ModelChoice itself wrote — a correctness guarantee when the tree has been rendered. |
17
+
|`run_evpi`| Expected Value of Perfect Information for the active tree — the most you'd pay for perfect information before deciding. Drives ModelChoice's headless `MC_EVPI_Auto`. *(Needs a ModelChoice build that includes that command — Phase 2.)*|
17
18
18
19
Run it: `uv run python -m modelchoice_mcp` (stdio), or wire `modelchoice-mcp` into Claude Desktop like any MCP server.
19
20
@@ -31,7 +32,7 @@ The Python roller is validated against ModelChoice's own authoritative C# test (
31
32
-**Phase 0 (done):** the read + rollback engine — parse `_MC_Store`, reconstruct each tree, roll back to EV + optimal policy. Validated against ModelChoice's own C# rollback test.
32
33
-**Phase 1 (done):** the MCP server — `list_trees`, `get_tree`, `roll_up`, proven live against a real workbook.
33
34
-**Phase 1b (done):**`verify_rollback` cross-checks our EVs against the `MC_V_<id>` named ranges; CI (ruff + mypy + pytest) and a tag-driven PyPI release pipeline; wheel + sdist build. *(First publish awaits a PyPI trusted-publisher; the live `MC_V_` cross-check awaits a real rendered tree.)*
34
-
-**Phase 2:** drive analyses. ModelChoice's analyses (sensitivity, EVPI, EVII, strategy table, robustness) are currently UI/modal-dialog only; the clean path — since we own the source — is to add headless `[ExcelCommand]` entry points mirroring the existing `MC_RiskProfile_Auto`, then invoke + read them via `Application.Run`.
35
+
-**Phase 2 (in progress):** drive analyses. ModelChoice's analyses are UI/modal-dialog only; the clean path — since we own the source — is to add headless `[ExcelCommand]` entry points mirroring `MC_RiskProfile_Auto`, then invoke + read them via `Application.Run`. **EVPI** is the first vertical slice: `MC_EVPI_Auto` (ModelChoice, AB#2558) + the `run_evpi` tool here. Sensitivity, robustness, strategy table, and EVII follow.
35
36
-**Phase 3:** build/edit trees — write the model JSON into `_MC_Store` and trigger a re-render.
0 commit comments