MCP server for pmcontrols: validated project scheduling and earned value tools for AI agents.
Strong domain-specific tool set with well-structured schemas and clear descriptions. All 10 tools have explicit input schemas with typed parameters and field descriptions. Tool names follow verb_noun convention (critical_path, schedule_risk, crash_schedule, earned_value, gantt_chart, network_chart, evm_chart). Descriptions are substantive (100-250 chars), explaining what each tool does and when to use it. However, output schemas are not documented, LLMs cannot predict return structure. Error handling is absent; tools will fail silently on invalid input. No pagination or result-limiting guidance despite tools accepting arrays. Tool annotations present (readOnlyHint) but not leveraged for safety messaging.
Render the Monte Carlo completion-time histogram as a PNG image.
Minimum-cost schedule compression to a target completion time. Returns the globally optimal crash amount per activity, the resulting schedule, and the total crash cost, solved as a linear program rather than by greedy marginal-cost crashing.
Critical path analysis (CPM) of an activity-on-node network. Runs the forward and backward pass and returns earliest/latest start and finish, total slack, and the zero-float critical path.
Render the Monte Carlo per-activity criticality bars as a PNG image.
Lipke earned schedule (ES) for a given earned value. ``periods`` and ``pv`` define the cumulative planned-value curve. Returns the time at which the plan had earned what has now been earned, by linear interpolation on the curve.
Earned value status against a time-phased planned-value baseline. ``periods`` and ``pv`` define the cumulative planned-value curve. Given earned value ``ev``, actual cost ``ac`` and actual time ``at``, returns the full indicator set (CV, SV, CPI, SPI, the EAC family, TCPI, VAC) plus Lipke's earned schedule (ES, SPI(t), IEAC(t)) and any threshold alerts.
Output schemas not documented. Tools return bytes (PNG images) or dicts with undocumented structure. LLMs cannot predict what fields to extract or how to chain results.
No error handling or validation guidance. Tools accept arrays of activities but do not document constraints (e.g., min/max array size, required fields, valid duration ranges). Invalid input will fail silently.
Chart rendering tools (gantt_chart, network_chart, evm_chart, criticality_chart, completion_histogram) have minimal descriptions (70 chars). LLMs cannot distinguish when to use network_chart vs gantt_chart or what visual differences to expect.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Render the earned value S-curve (PV/EV/AC + forecast) as a PNG image.
Render the critical-path schedule as a Gantt chart image (PNG). The critical path is highlighted and total float is shown, so the agent can present the schedule visually instead of describing it.
Render the activity network with the critical path as a PNG image.
PERT three-point analysis with a Monte Carlo schedule-risk simulation. Returns the analytic expected duration and standard deviation, the simulated completion distribution (p50/p80/p95), and a per-activity criticality index. Pass ``seed=null`` for a fresh random draw.
No pagination or result-limiting guidance for array inputs. Tools accept unbounded lists of activities; no documentation of performance implications or recommended max sizes.
Tool annotations present (readOnlyHint=true) but not leveraged. No destructiveHint or idempotentHint guidance, even though all tools are read-only and safe to retry.