Forensic scheduling MCP for Primavera P6 (XER): AACE windows, DCMA-14, Monte Carlo, TIA.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
An open-source CPM engine with AACE-aligned methodology and a published Daubert disclosure. Open source. AACE-aligned. Daubert-disclosed. 1,273 JS unit tests, plus JS/Python parity on 1009 of 1015 enumerated cross-validation comparisons; the remaining 6 are not compared because neither engine emits the field on a completed activity (see DAUBERT.md Β§3.1).
Court-facing usage: pair this engine with the analyst-application discipline in FORENSIC_USE_SOP.md, the verification chain in VERIFY_RELEASE.md, the per-release receipts in release-evidence/, and the field-level P6 comparison framework in validation/p6-comparison/. Do NOT cite README in a court-facing report β cite the documents listed in DAUBERT.md and FORENSIC_USE_SOP.md Β§Required pairing.
Maintained by Critical Path Partners β a forensic-scheduling consultancy.
The npm package lags this repository. npm latest is 2.9.19, published 2026-05-17 β that is the number the npm badge above renders, and nothing has been published to npm since, while 22 tagged releases have shipped here. npm install cpp-cpm-engine therefore does not give you the engine described by DAUBERT.md, by the release-evidence/ packets, or by any version reference in these docs. Install from the git tag:
The engine has zero runtime dependencies, so a clone is all it needs. This is the same install path VERIFY_RELEASE.md gives an opposing expert.
That's it. Forward pass, backward pass, total float, free float, calendar arithmetic, P6-conventional date math, multi-jurisdiction holidays β all done.
| Capability | cpm-engine |
|---|---|
| Open source | yes |
| AACE-canonical method labels (29R-03 / 49R-06 / 52R-06) | yes |
Daubert / FRE 702 disclosure (built-in DAUBERT.md) | yes |
| JS-Python bit-identical parity on enumerated CPM surface | yes |
| Topology fingerprint hash (SHA-256, copy-detection signal) | yes |
| Kinematic delay dynamics (pre-publication, JS-only) | yes |
| Bayesian update with hierarchical pooling (pre-publication, JS-only) | yes |
66 default holiday rule sets (multi-jurisdiction; framework-aligned defaults, not legally certified β see docs/jurisdictions.md) | yes |
| MIT licensed | yes |
(Vendor comparison removed in the v2.9.33 audit cycle. Comparisons against specific commercial CPM tools should be supplied by an independent reviewer, not authored by the engine's maintainer.)
The engine math is a commodity. What carries a forensic schedule analysis is the workflow, the methodology discipline, and the Daubert disclosure posture β not the forward pass itself. Critical Path Partners open-sources the engine so any academic, any solo forensic scheduler, any contractor's internal scheduler can build on a transparent, citable foundation.
computeBayesianUpdate); per-iteration CPM (runCPM) suitable as an inner loop for Monte Carlo wrappers built on top of this engine. Full Monte Carlo / QRAMM scoring lives in the CPP forensic skill suite (schedule-risk-analysis), built atop this primitive.docs/jurisdictions.md for the per-jurisdiction reference table and forensic-use verification guidance. They are not legally certified calendars; for forensic use, override with the project's contract calendar via opts.calendar.The engine implements the math behind these AACE Recommended Practices:
| RP | Title | Method labels emitted |
|---|---|---|
| 29R-03 | Forensic Schedule Analysis | MIP 3.3 / 3.6 / 3.7 / 3.8 |
| 49R-06 | Identifying the Critical Path | LPM, TFM, MFP |
| 52R-06 | Prospective Time Impact Analysis | MIP 3.6 (Single Base) / MIP 3.7 (Multiple Base) |
| 122R-22 | Quantitative Risk Analysis Maturity Model (QRAMM) | (badge surface) |
| PPG #20 (2nd Ed 2024) | Forensic Schedule Analysis Practice Guide | (general acceptance) |
Method labels are emitted in result.manifest.methodology β exactly the strings AACE peer-reviewers and opposing experts expect.
Every computation emits a manifest:
Plus, for forensic provenance, every input carries a SHA-256 topology hash:
This is the engine's network-topology fingerprint. Bid-collusion signal, retroactive-manipulation signal, and copy-detection signal across XERs all rely on it. It is also the foundation that lets opposing counsel verify topology-level integrity of a CPP analysis post-hoc β they can recompute the hash from the same XER and confirm the activity/relationship network was not altered between submission and review.
The engine has a Python sibling (_cpp_common/scripts/cpm.py) used by every CPP forensic skill. The two implementations are kept bit-identical via cross-validation:
Plus a 282-activity real-XER stress test reports 0 mismatches. That XER is a single non-public reference file, is not committed, and the run is not independently reproducible from this repo (see DAUBERT.md Β§2).
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/cpp-cpm-engine)<a href="https://allmcps.com/mcp/cpp-cpm-engine"><img src="https://allmcps.com/api/badge/cpp-cpm-engine?style=directory" alt="Cpp Cpm Engine on AllMCPs" /></a>