Pole exceeds structural capacity — pick a fix
45 ft pole, 6.5 ft buried, 38.5 ft above ground
Harnesses
Every domain ships a real MCP toolset alongside its REST API — the same compliance and engineering-compute functions, exposed as tools any MCP-compatible agent can call directly. Point an agent at a domain and your team has a working assistant for it, not an empty HTTP client. Five illustrative examples below show what that looks like in practice.
The same real, cited domain endpoints as any API plan — nothing different underneath.
Every function in the domain, exposed as a tool over the open MCP protocol — works with Claude, Claude Code, or any MCP-compatible agent you already use.
Layer your own utility-specific standards on top with StandardsPack — same mechanism as any API plan.
Pick a domain, get a scoped key, and connect any MCP client you already run — no separate onboarding. Use the SDK to make it yours from there.
Want a real chat interface deployed and wired to your team's equipment and workflows, not just a toolset? We'll build and deploy that layer on the same API and MCP tools — you still own the customization on top.
This is what the assisted build looks like in practice. You ask for an analysis of a whole line. The harness runs a structural check and a framing check and proposes fixes: a deeper set, a larger class, a down-guy. Nothing is written back until a person approves it, and a dismissed fix leaves the design untouched. Watch one run, then hover a card to see where its fix lands and approve or dismiss it yourself. It replays on its own until you touch it.
Overhead harness
Loaded north_feeder.spida — 13 poles, 12 spans. Also reads O-Calc and PLS-POLE files.
Run a strength analysis on the entire line.
Overhead harness
Ran the structural check on all 13 poles — 1 pole fails strength, and 3 framing fixes are proposed on Loc 2. Nothing is applied until you approve it.
45 ft pole, 6.5 ft buried, 38.5 ft above ground
3 fixes · 3 pending
Framing on CrossArm#1 at 35.5 ft requires a guy at 346°; no existing guy falls within tolerance. A down-guy sized for the unbalanced load is recommended.
PROPOSED: Add down-guy at 346°, attach at 35.5 ft (crossarm CrossArm#1).
Framing on CrossArm#2 at 30.0 ft requires a guy at 346°; no existing guy falls within tolerance. A down-guy sized for the unbalanced load is recommended.
PROPOSED: Add down-guy at 346°, attach at 30.0 ft (crossarm CrossArm#2).
Framing on CrossArm#3 at 18.0 ft requires a guy at 346°; no existing guy falls within tolerance. A down-guy sized for the unbalanced load is recommended.
PROPOSED: Add down-guy at 346°, attach at 18.0 ft (crossarm CrossArm#3).
Export the approved changes.
Overhead harness
Exported 3 approved changes (1 dismissed, not applied) to north_feeder_revised.spida.
Saved ✓ · illustrative, no file is downloaded
Scripted, not live. Every number, id and fix here is made up to show the interaction; the status lines flip by a scripted rule. In a real session the harness only proposes. A person approves or dismisses each fix, and nothing is written back until it is committed. The export formats shown (.spida, .pplx, .pol) are illustrative; which formats are available varies by harness, and no file is produced here.
When a person approves a fix, the harness makes the change inside the open design file, through the design application’s own automation interface. Each session below shows what that application itself offers for reversing a change, including one case where it offers none.
Check clearances and guying on the open project and fix what fails.
Harness (Claude)
Two problems on the open pole: Wire#3 sits at 22.0 ft, and the pole needs a down-guy at 346 deg.
Harness (Claude)
The window reloads the project with the edit, then autosaves to a session file beside the original. Discard Draft#1 in the application to undo; Measured was never changed. In this desktop path, reviewing the Draft in the application is the gate.
The secondary box is at the wrong depth. Fix it.
Harness (Claude)
In the open layout the secondary box is at Z 0.0 ft; it should sit at Z −4.0 ft.
Proposal cards as in the overhead harness; in the raceway, substation and plant sessions the finding is conversational today.
Harness (Claude)
1 step in the application’s own undo.
Undo it in the application: one step of its own undo. The chat has no Undo of its own for this edit.
Add foundation blocks under the disconnect stand, and turn the stand 90 degrees.
Harness (Claude)
Two blocks can be added under the disconnect stand today. Rotating the stand cannot be done through the tools yet.
No update tool today: delete in the application and re-place.
Proposal cards as in the overhead harness; in the raceway, substation and plant sessions the finding is conversational today.
Harness (Claude)
The application’s own undo reverted the placed symbols when tried; some underlying records can survive it.
The honest-limits beat: the harness can add to the drawing today, not move or rotate what is already there.
Remove the wrong elbow run and connect the unit on the real port.
Harness (Claude)
A wrong elbow run feeds the connector; the connector should land on the real port.
Proposal cards as in the overhead harness; in the raceway, substation and plant sessions the finding is conversational today.
Harness (Claude)
A delete made through the bridge cannot be undone through it; the application’s undo never recorded it.
No undo via the bridge: check the removal before you approve it.
Scripted, not live. The windows are drawings, not the applications. Every file name, value and step is made up to show the interaction; the tool calls named are real tools of the harness servers, and a chip marked built or planned says what is not yet verified or does not exist today.
Requires the licensed design application installed, licensed and open on your machine. The harness attaches through the application’s own automation interface and does not replace, bundle or redistribute it.
Design edits run locally on your machine; analysis that proposes a fix sends the design data to the harness API.
Proposal cards as in the overhead harness; in the raceway, substation and plant sessions the finding is conversational today.
Any MCP-capable model can call these tools. The selector includes local models; verified so far: Claude against all applications shown; gemma4 26B and 12B and muse-glimmer 30B via a local server against the compute harnesses only, not yet against the desktop applications. Other hosted models are available in the selector and have not been independently evaluated.
| Model | What was tested | Result | Caveats |
|---|---|---|---|
| Claude | Live against the desktop applications shown (pole-analysis, raceway, substation and plant sessions). | Not formally scored. | Live use only; no scored evaluation of the desktop tools. |
| gemma4 26B (local server) | Tool-calling eval against the compute harnesses’ tool schemas. | 100% on transmission, underground, substation, DER and building-service; 60–70% on overhead. | Compute harnesses only, not the desktop applications. Slow over the full 103-tool overhead set on a local machine; results vary run to run even at temperature 0. |
| gemma4 12B (local server) | Same eval, same tool schemas. | 100% on transmission, building-service, substation and DER; 67% on underground; 40% on overhead. | Compute harnesses only. A four-turn overhead chain needed a longer request timeout than the default. |
| muse-glimmer 30B (local server) | Same eval, same tool schemas. | Raw: 100% transmission, 78% underground, 60% overhead; 11% substation, 0% DER, 75% building-service. Projected 100% on those last three after a dispatch normalisation fix, which is deployed. | Compute harnesses only. The 100% is projected from the model’s captured outputs, not a re-run score. |
| Other hosted models | Nothing. | Available in the model selector. | Not independently evaluated. |
A short screen recording of the harness editing a scratch design file goes here.
A generation plant and then its substation, walked through their design stages. The design basis is entered once; each stage says valid, incomplete, failed, stale or missing, and nothing passes by default. The plant’s fault contribution reaches the substation as a versioned hand-off, and a breaker that was adequate on the grid alone turns out not to be with the plant. A short coda runs the same pattern on a transmission line. It replays on its own until you touch it.
Assistant
Design basis loaded. Nothing has been run.
Start the plant design and size the step-up transformer.
Generation design
Plant design started and the generator stage run. The nameplate, 31.25 MVA at 0.8 power factor, gives 25 MW and 18.75 Mvar, and 8.716 kA subtransient at the generator terminals. The manual’s multiplier is outside its tabulated range for this unit, so it is reported, not judged.
Generation design
Step-up transformer: 35 MVA against 29.25 MVA net output, a ratio of 1.12, so it does not limit the plant. On the 34.5 kV side the generator contributes 141.129 MVA, 2.3618 kA. That figure is generator-only: the grid is not in it.
Generation design
Station service: the 2.5 MVA auxiliary transformer is 8% of the generator MVA and covers the 2.2 MVA required. The stage stays incomplete: motor starting, load classification and a standby transformer are not evaluated.
Generation design
Grid interface: the governor droop and deadband pass FERC Order 842 (5% droop, 0.036 Hz) and the generation_to_substation hand-off is built. The stage stays incomplete: reactive capability at the point of interconnection, plant X/R and stability are not evaluated.
141.129 MVA, 2.3618 kA at 34.5 kV, generator-only: the substation adds its grid source to it.
Contract v1 has no field for the state of the stage the hand-off came from, so the receiver has to check that itself. It is a JSON object passed between the two designs, not a pipeline.
Draft, unvalidated harness · illustrative values.
Start the 34.5/12.47 kV station design with that hand-off.
Substation design
Station design started. The stages run on the grid source alone first (1000 MVA), so what the plant changes can be seen on its own. A ring bus with 4 circuits implies 4 breakers. The HV fault level at 34.5 kV is 16.735 kA.
Substation design
Then the transformer, the LV fault study (12.191 kA at 12.47 kV) and the equipment ratings. The illustrative 17.23 kA HV breaker covers the grid-only duty: adequate on the duties evaluated, margin +0.495 kA. The stage stays incomplete, never valid: asymmetry is not evaluated.
Substation design
Now the plant. The hand-off goes into the design basis, and every stage computed from the old basis is stale (upstream object of stage ’design_basis’ changed). Re-run in order, the plant’s 141.129 MVA is added to the grid’s 1000 MVA: 1141.129 MVA, and the HV fault level rises to 19.097 kA (+2.362 kA). The same 17.23 kA breaker is now inadequate: capability 17.23 kA against 19.0966 kA required, margin -1.867 kA. Equipment ratings is failed.
Substation design
The harness proposes one fix, verified by re-running the stages on the patched basis.
Minimum found: HV ≥ 19.10 kA. Select a catalog breaker at or above 19.10 kA: a minimum is not a product.
Needs selection: a catalog breaker rated at or above the minimum (the RUS preferred-rating tables are not yet transcribed in this harness).
Verification (re-ran design_basis, upstream stages and equipment_ratings on the patched basis)
before failed: HV: capability 17.23 kA < available three-phase fault 19.0966 kA; NOT EVALUATED duty dimension: asymmetry (S-factor / X/R); …
after incomplete; no new findings
Consequences
Draft, unvalidated harness · breaker rating illustrative.
Substation design
Applied. The design basis is patched (hv_breaker_interrupting_ka 17.23 to 19.5) and nothing else is re-run for you: electrical_topology, fault_study, transformer, lv_fault_study and equipment_ratings are all stale. Next recommended: electrical_topology, fault_study, transformer. Running them in order.
Substation design
Equipment ratings re-run: the HV breaker at 19.5 kA against 19.097 kA required, adequate on the duties evaluated, margin +0.403 kA. The stage is still incomplete, never valid: asymmetry and X/R duty, single-line-to-ground duty and the voltage factor are not evaluated. 19.5 kA is a minimum, not a product.
Same tools, a line: DRAKE at 138 kV, 150 MVA.
Line design
The same stages for a line. Conductor ampacity: 627.55 A required against 972 A rated (64.56%): valid. Sag and tension at an 800 ft ruling span: initial sag 17.504 ft. The heavy case is 10,989.8 lb, 34.89% of rated breaking strength, within the 60% limit; the bare case is 15.87%, within 35%; the hot case sags 25.43 ft and is reported only. The stage stays incomplete: post-creep tension is not evaluated.
Line design
Edit the ruling span from 800 to 900 ft: conductor ampacity and sag_tension are stale (upstream object of stage ’design_basis’ changed). Next recommended: conductor_ampacity, sag_tension, structure_span. Re-run at 900 ft: initial sag 22.154 ft, heavy case 35.1% of rated breaking strength. There is no hand-off from this line to the station yet.
Summarize the station design.
Substation design
Station design summary. This is the state the stages built up, not a verdict.
disclosure DRAFT / UNVALIDATED. Derived design values, not a licensed-engineer sign-off. INCOMPLETE stages were not fully evaluated; do not read them as passed.
Draft, unvalidated harness.
Substation design
Design summary exported.
Saved ✓ · illustrative, no file is downloaded
Scripted, not live. Every number here comes from running the harness design workflow offline (generation, substation and transmission, run in-process at export time). The routes behind the chips are live in the REST API, but this demo does not call them, and the cards are scripted. The fault-study and sag-tension stages call sibling harnesses; whether the deployed gateway can reach them is not verified, so no working REST chain is claimed. The breaker ratings are illustrative: 19.5 kA is a minimum the harness found, not a product. The hand-off is a JSON object a person passes between two designs, and contract version 1 has no field for the state of the stage it came from. The status card never shows an overall verdict, and the export (.json) is illustrative: no file is produced. The loop runs about 100 seconds.
Harness maturity: generation, substation and transmission design workflows are draft, unvalidated harnesses; stages marked incomplete were not fully evaluated and should not be read as passed.
A grid-fed datacenter hall, reviewed from the tap line to the cooling loop. Each harness checks its own stage and hands a result to the next. Two problems only show up when the stages are read together: the available fault current against the service device, and a hall that is redundant behind a station that feeds it on one circuit. Watch one run, then hover a card to see where its fix lands and approve or dismiss it yourself. It replays on its own until you touch it.
Gateway
Loaded green_valley_dc.design.json: a grid-fed datacenter hall, six stages from the tap line to the cooling loop. Nothing has been checked yet.
Review the whole design, grid to rack.
Gateway
Six harnesses will review this design, one stage at a time: tap line, station, duct bank, hall, service gear and cooling. Each stage hands its result to the next. Nothing is applied until you approve it.
Transmission harness
Tap line first. A class 1 pole at a 500 ft span exceeds its capacity at heavy loading.
55 ft pole, heavy loading. Maximum span for class 1: 423.0 ft.
Draft, unvalidated harness · composite of bulletin worked examples (illustrative geometry).
Substation harness
Station next. Breaker-and-a-half with 4 circuits has 6 breakers (pass). The fence is the finding.
Raising the insulation level to BIL 900 kV asks for more fence clearance than the existing fence gives.
PROPOSED: Move the fence out to 16.0 ft (15.4 ft required).
Draft, unvalidated harness · illustrative station.
Underground harness
Underground. Four feeders in one row derate the whole bank.
Four 350 AL feeders. Alone, one conduit carries 263.5 A; the row derates all four.
Draft, unvalidated harness · grouping factors secondary-sourced · separate banks treated as thermally independent (a demo assumption).
Datacenter harness
Hall. The cooling pumps pass N-1 only partly.
Two duty pumps and no standby: when one trips, the duty count is not met.
PROPOSED: Add a standby pump (2+1). N-1 duty is then kept.
v0.1 draft, unvalidated harness.
Service harness
Service gear, checked on its own at the 5 MVA source entered earlier: the 22 kA device is within the 13.9 kA available.
Gateway
That changes once the station result is handed over. The station study puts a 10 MVA source behind the service.
Handed from the station study: a 10 MVA source (illustrative) gives 27.8 kA at the service. A 25 kA device also exceeds it.
PROPOSED: Swap to a 42 kA device (within).
Draft, unvalidated harness · X/R not gated.
Gateway
One more finding, only visible across the fence between hall and station.
The hall passes N-1 on its own. If the outer breaker on that circuit fails to clear, the circuit is lost (the station study leaves 3 of 4 circuits), and the hall loses its only feed. Adding a fifth circuit cannot be checked: the breaker count is incomplete, with no exact target for 5 circuits. Six circuits need 9 breakers.
PROPOSED: Add a second feed circuit to the hall (a capital decision).
Draft, unvalidated harness.
Thermal harness
Cooling. Lose CDU-2 and the survivors still carry the heat, but their legs run too fast.
Capacity holds with two units (2000 kW against 1920 kW demand), but each survivor’s 4 in leg now carries half the row flow.
PROPOSED: Use 6 in legs: 1.261 m/s, within the limit.
v0.1 draft, unreviewed harness · ASHRAE limits via secondary sources · illustrative placeholders.
Export the cross-domain review.
Gateway
Exported the review.
Saved ✓ · illustrative, no file is downloaded
Scripted, not live. Every id, name and sequence here is made up to show the interaction; the numbers are values from the harnesses’ own worked examples and are illustrative. In a real session each harness only proposes: a person approves or dismisses every fix, and the dismissed station-feed risk stays open. The status card never shows an overall verdict, and the export formats (.pdf, .json, .csv) are illustrative: no file is produced. The loop runs about 90 seconds. The station-to-service source-strength hand-off is by contract between harnesses, not a shipped pipeline.
Harness maturity: tap line, station, duct bank and service gear: draft, unvalidated harness (the tap line scene is a composite of bulletin worked examples; duct-bank grouping factors are secondary-sourced, and treating separate banks as thermally independent is a demo assumption; the service check does not gate on X/R). Hall: v0.1 draft, unvalidated harness. Cooling: v0.1 draft, unreviewed harness (velocity limits are ASHRAE guidance via secondary sources).
This isn't a separate product from the API — it's the same domain, the same key, the same SDK. The only choice is how much of the front end you want to build yourself versus have us build for you.