NE

Nempulse

au.com.nempulse/nempulse

Australian NEM battery (BESS) data for AI agents: revenue, dispatch, FCAS, events. Free, no auth.

Yes, your AI can use this right now.Answered a live MCP handshake in 746 ms with no sign-in needed and exposes 11 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://nempulse.com.au/mcp

11 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
list_bess_unitsread-only

Reference list of every NEM-registered grid-scale battery. Call this first to turn a station name into the DUID the other tools need. Returns the whole fleet in one response (no filters): DUID, station, region, MW/MWh, MLF, coordinates, is_commissioning, commercial_context, unit_class, peer_comparable, rev_per_mw_yr. Caveats on the fields follow. rev_per_mw_yr is trailing 365-day energy + FCAS rev

get_fleet_summaryread-only

Fleet-wide snapshot for the NEM battery fleet: unit_count, active_unit_count, total_mw, total_mwh, fleet_rev_mtd, avg_efficiency_pct, last_interval and spot_prices (latest price per region, $/MWh). Covers month-to-date unless date_from and date_to are given. fleet_rev_mtd is gross spot revenue (energy + FCAS + FPP) over that window, whatever its length, despite the name. avg_efficiency_pct is doll

get_battery_detailread-only

Deep-dive metrics for one battery by DUID (e.g. HPR1 = Hornsdale): revenue, dispatch, SOC, FCAS. WARNING: rev_today, energy_rev_today, fcas_rev_today and contingency_fcas_rev_today are MONTH-TO-DATE by default, not daily (matching the rev_mtd keys in fcas_breakdown) — do not report them as 'today's revenue'. throughput_cycles, throughput_mwh, avg_dispatch_price, avg_charge_price and efficiency_pct

query_nem_dataread-only

Last resort for ad hoc questions the other tools cannot answer. Takes a plain-English question, generates SQL over NEMPulse's tables, and returns the SQL, the result rows and a short explanation. It is the slowest tool (can take close to a minute) and it is AI-generated, so check the returned SQL before relying on a number. Scope each question to about one region-month or less: wider aggregates (a

get_battery_revenueread-only

Daily gross-spot revenue by market (energy + FCAS) for one battery (DUID) over a date range. Daily grain only. This is the tool for total revenue questions — use get_battery_optimal only for the actual-vs-perfect-foresight benchmark, not as a revenue source (its 'actual' figure is MLF-adjusted and solved-days-only, so it will not match this tool's totals). Each day also carries energy_rev_mlf_adju

get_battery_optimalread-only

Actual vs LP-optimal dispatch revenue, per-DUID summary, over a date range (energy-only, perfect-foresight benchmark). NOT a revenue-total source — use get_battery_revenue for that. Both the 'actual' AND the 'optimal' figures here are MLF-adjusted (get_battery_revenue's is gross) — the LP's objective is solved on MLF-adjusted prices, not just settled at them afterward — and both cover solved LP da

list_eventsread-only

List NEM spot-price events, newest first. An event is a run of 5-minute intervals in one region where the price stays above $500/MWh or below -$200/MWh (short gaps are bridged), typed by its peak price: negative (below -$200), elevated (peak $500 to $1,000), spike ($1,000 to $5,000) or extreme ($5,000 and above). Each event has event_id, region, event_type, started_at, ended_at, duration_min, peak

get_event_detailread-only

One price event by event_id (take the id from list_events), with the response of every battery that was online, ranked by est_revenue. Event fields are as in list_events. Each battery row has duid, station, region, response (DISCH = discharging, CHRG = charging, IDLE, OFFLINE = no availability), avg_mw (positive is discharge), peak_mw, est_revenue (energy only, sum of MW times price over the event

get_regional_pricesread-only

Daily minimum, maximum and mean regional reference price (RRP, $/MWh) for one NEM region over a date range. Daily summary only: the raw 5-minute price series is not exposed (it is published by AEMO on NEMWEB). Use it for price context around revenue or events. For individual price spikes use list_events.

get_simulator_revenueread-only

Modelled revenue for a hypothetical 1 MW battery of a given duration in one region (not a real unit), from NEMPulse's optimal-dispatch model on real prices. Returns P10/P50/P90 revenue for three tiers: realistic (forecast-informed result scaled by the capture ratio real batteries achieve, the only tier to use as a project case), forecast_informed (idealised execution on AEMO's public price forecas

get_rankingsread-only

League table of merchant NEM batteries over a date range, ranked by capture rate by default (actual revenue as a share of the forecast-informed benchmark; capture_perfect_pct is the share of the perfect-foresight ceiling). Each row has rank, duid, station, region, capacity, duration_band, capture_fc_pct, capture_perfect_pct, rev_per_mw_day, rev_per_mwh_day, total_rev, cycles_per_day and movement a

Alternatives in Security

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”