Documentation

Connect your agent to the NEM.

NEM Explorer is a remote MCP server that gives Claude, Codex, Cursor and any other MCP client a curated warehouse of AEMO market data: spot and FCAS prices, generation, interconnector flows, constraints, demand and bids.

Connect

MCP server URL

https://chat.scadaminer.com/mcp

Add this URL to your agent as a remote MCP server (some apps call it a connector). You sign in to NEM Explorer the first time it's used; there's no key to paste.

  1. 1In claude.ai or the Claude desktop app, open Settings → Connectors.
  2. 2Click Add → Add custom connector, name it NEM Explorer and paste the URL.
  3. 3Click Connect and sign in. When Claude first asks to use a tool, choose Always allow: every NEM Explorer query tool is read-only.

Free plans can add one custom connector. On Team and Enterprise, an Owner adds it first under Organization settings → Connectors → Add → Custom → Web, then each member connects it.

Don't see your agent? Most agents can add a remote MCP server by URL. Ask yours how: “How do I add a remote MCP server at https://chat.scadaminer.com/mcp?”

Authentication

Every tool requires authentication. NEM Explorer uses OAuth 2.0 (via WorkOS) with Dynamic Client Registration, so MCP clients register themselves and you never paste a client ID or secret. The connector uses your existing account, and sign-in happens in a browser window the first time a tool is called.

Tools

The recommended flow is start_question → search_entities → get_data_freshness → run_capability (preferred) or execute_sql → build_chart.

Orient

Work out what the question refers to and where the data lives.

start_question
Register the question you are about to answer; returns a question_id that groups a turn’s tool calls into one auditable trace.
search_entities
Resolve a term to NEM entities (DUID, station, region, interconnector or fuel type) with ranked, scored candidates.
get_data_freshness
The latest available SETTLEMENTDATE and current NEM time, for clamping date ranges. Scan-free.
list_tables
The warehouse table catalogue with summaries, domains, time columns and data-availability bounds.
search_columns
Find columns by keyword when you know the measure but not the table.
get_table_schema
Full column metadata for one table (units, valid values) plus curated caveats and join hints.
get_concept
An authoritative explainer for an AEMO market mechanism, read before describing how it works.
get_writing_style
The house writing guide for published analysis.

Query

Validated capabilities first, raw SQL when nothing fits.

list_capabilities
Validated, deterministic query builders for common question shapes, with a recommended match for your question.
run_capability
Build and optionally run a capability. Returns pre-validated SQL, a chart and often a deterministic answer.
execute_sql
Run one read-only ClickHouse statement (CTEs, window functions and joins included). Large results come back as a preview plus a result handle.
fetch_result_rows
Page through the full rows of a parked result.
store_result
Save a SELECT into a private scratch table to re-query and JOIN in later calls (when the scratchpad is enabled).
list_results
The scratch tables stored for the current question.
report_gap
Tell us what the user needed that the tools could not deliver. Optional and free.

Present & share

Turn results into charts, pages, downloads and live URLs.

build_chart
Turn a query result into a web-ready Plotly chart.
share_artifact
Publish a public page. Pass its token back to update that page in place.
export_data
Save a query result as a private, expiring CSV download.
pin_live_query
Keep a live data link alive. It re-runs the SQL and serves the latest rows as JSON or CSV.
list_live_queries
The live data links you own.

Dashboards

Saved dashboards that re-run against live data on every view.

get_dashboard_guide
How to write a dashboard spec.
list_dashboards
Your saved dashboards.
get_dashboard
Read one dashboard’s spec.
save_dashboard
Create or update a dashboard of named queries and panels.
delete_dashboard
Remove a dashboard.
share_dashboard
Mint or revoke a dashboard’s public link.

Limits

  • Queries are read-only. Writes and DDL are rejected.
  • A query returns at most 10,000 rows. Past the first 100, or about 20 KB of rows when they are wide, the rows are parked behind a result handle: page through them with fetch_result_rows or download them as CSV, so they never flood the agent's context.
  • Each query has resource and timeout caps. Scans predicted to read too much are rejected before they run; add a time filter, or use get_data_freshness and list_tables for coverage.
  • All times are NEM time: a fixed UTC+10, with no daylight saving.

Troubleshooting

No tools appear, or sign-in loops
Remove and re-add the connector, and check the URL ends in /mcp.
Claude asks to approve every tool call
That is Claude’s permission gate for custom connectors. Choose Always allow on the first prompt for the read-only tools, or set the read-only group to Always allow under Settings → Connectors → NEM Explorer. Tools that write (share_artifact, export_data, store_result) stay behind a prompt by design.
“Connector unavailable”
The service may be briefly down. Retry, or check chat.scadaminer.com.
Empty results for recent dates
Data lands with a short lag. Call get_data_freshness and clamp the range to the latest available date.

Support

For help, bug reports and feature requests, email support@scadaminer.com. Common questions are answered in the FAQ. See also the Privacy Policy and Terms of Service.