Nempulse
Australian NEM battery (BESS) data for AI agents: revenue, dispatch, FCAS, events. Free, no auth.
Connect it
Settings → Connectors → Add custom connector
URL: https://nempulse.com.au/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://nempulse.com.au/mcp{
"mcpServers": {
"nempulse": {
"url": "https://nempulse.com.au/mcp"
}
}
}claude mcp add --transport http nempulse https://nempulse.com.au/mcp{
"servers": {
"nempulse": {
"type": "http",
"url": "https://nempulse.com.au/mcp"
}
}
}11 tools, verified live
list_bess_unitsread-onlyReference 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-onlyFleet-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-onlyDeep-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-onlyLast 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-onlyDaily 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-onlyActual 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-onlyList 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-onlyOne 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-onlyDaily 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-onlyModelled 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-onlyLeague 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 →TSTehProf SupportB
Helpdesk tickets from your AI: find, reply, take, hold, complete — within your own role. OAuth.
Moltline Agent GovernanceB
Audit MCP configs and skill files for over-broad scope and injection risk. 6 of 8 free.
AMAcp MCP ServerB
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
ABAPICK BusinessB
Korean business, parcel and simple-auth employment, income, pension, license and health data
CECatalyst Edge MCPB
Audited SEC catalyst signals for agents — ranked filing intel with a public track record.
ODOdooB
Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.