{"apiVersion":"v1","directorySlug":"nempulse-mcp-b030eff5f0","title":"NEMPulse","description":"Live 5-min dispatch, revenue and SOC for all grid-scale batteries in the Australian NEM. Filter by region, FCAS capability, and operating mode.","pageUrl":"https://www.mcpbundles.com/skills/nempulse-mcp-b030eff5f0","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://nempulse.com.au/mcp","hostedMcpUrl":null,"toolCount":8,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"au.com.nempulse/nempulse-mcp-b030eff5f0","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"list_bess_units","description":"List every NEM-registered grid-scale battery (DUID, station, region, MW/MWh, MLF, coordinates, is_commissioning, commercial_context, unit_class, peer_comparable). rev_per_mw_yr is trailing 365-day energy + FCAS revenue (NOT FPP), gross (no MLF), divided by Max Cap MW, then annualised over the days the unit actually had dispatch data — not over a fixed 365-day denominator. This is a rough simulator guide, NOT a performance ranking. It is distorted for any unit with is_commissioning=true or commis","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"logicalName":"list_bess_units","displayName":"list_bess_units","title":"list_bess_units","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_fleet_summary","description":"Fleet-wide snapshot: unit count, total capacity, revenue month-to-date, average spot price.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"logicalName":"get_fleet_summary","displayName":"get_fleet_summary","title":"get_fleet_summary","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_battery_detail","description":"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 cover the same window. Pass date_from and date_to (both required together) to scope this window exp","inputSchema":{"type":"object","required":["duid"],"properties":{"duid":{"type":"string"},"date_to":{"type":"string"},"date_from":{"type":"string"}},"additionalProperties":false},"logicalName":"get_battery_detail","displayName":"get_battery_detail","title":"get_battery_detail","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"query_nem_data","description":"Ask a natural-language question about NEM BESS data; returns generated SQL, result rows and a plain-English explanation. Scope each question to roughly one region-month or less — aggregates spanning more (e.g. a full year by region, or per-day top-N across all regions) risk the generated SQL exceeding its own 8s execution cap, which this tool's longer timeout does not extend. For per-day top-N / bottom-N questions, phrase them so the generated SQL uses a window function (ROW_NUMBER/RANK) rather","inputSchema":{"type":"object","required":["question"],"properties":{"question":{"type":"string"}},"additionalProperties":false},"logicalName":"query_nem_data","displayName":"query_nem_data","title":"query_nem_data","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_battery_revenue","description":"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_adjusted (null if the LP backcast hasn't run for that day yet, not zero) alongside the gross energy_rev,","inputSchema":{"type":"object","required":["duid","date_from","date_to"],"properties":{"duid":{"type":"string"},"date_to":{"type":"string"},"date_from":{"type":"string"}},"additionalProperties":false},"logicalName":"get_battery_revenue","displayName":"get_battery_revenue","title":"get_battery_revenue","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_battery_optimal","description":"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 days only (days where the solver failed are dropped from both), so the two tools' totals will not matc","inputSchema":{"type":"object","required":["date_from","date_to"],"properties":{"duid":{"type":"string"},"date_to":{"type":"string"},"date_from":{"type":"string"}},"additionalProperties":false},"logicalName":"get_battery_optimal","displayName":"get_battery_optimal","title":"get_battery_optimal","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_events","description":"List NEM spot-price events (negative, elevated, spike, extreme), optionally filtered by region.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer"},"region":{"type":"string"}},"additionalProperties":false},"logicalName":"list_events","displayName":"list_events","title":"list_events","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_event_detail","description":"Summary stats for one market price event by id (per-interval dispatch during the event is not exposed).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"logicalName":"get_event_detail","displayName":"get_event_detail","title":"get_event_detail","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=NEMPulse&config=eyJ1cmwiOiAiaHR0cHM6Ly9uZW1wdWxzZS5jb20uYXUvbWNwIn0%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22NEMPulse%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fnempulse.com.au%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22NEMPulse%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fnempulse.com.au%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=NEMPulse&connectorUrl=https%3A%2F%2Fnempulse.com.au%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"NEMPulse\" --url \"https://nempulse.com.au/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/nempulse-mcp-b030eff5f0","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/nempulse-mcp-b030eff5f0/tools/{tool}","mcpServerUrl":"https://nempulse.com.au/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/nempulse-mcp-b030eff5f0?live=1"}