Skip to main content
Glama
Bigred97

aemo-mcp

get_data

Retrieve AEMO NEM observations for dispatch price, generation, or interconnector flows. Apply filters by region, fuel type, or time period.

Instructions

Query an AEMO NEM dataset and return observations.

Examples: # Latest NSW dispatch price (preferred over latest() if you want # a window) resp = await get_data("dispatch_price", filters={"region": "NSW1"})

# Whole-day NSW dispatch price for a specific day
resp = await get_data(
    "dispatch_price",
    filters={"region": "NSW1"},
    start_period="2026-05-13",
    end_period="2026-05-13"
)

# Generation by fuel for QLD, current
resp = await get_data("generation_scada", filters={"region": "QLD1"})

# All 6 interconnectors right now
resp = await get_data("interconnector_flows")

Returns: DataResponse with records, units, period bounds, NEMWEB source URL, and AEMO attribution.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataset_idYesDataset ID like 'dispatch_price'. Use the search endpoint or search tool to discover.
filtersNoDict of filter key → value(s). Common filters: 'region' (NSW1/QLD1/SA1/TAS1/VIC1), 'interconnector' (V-SA/Basslink/...), 'duid' (unit ID), 'fuel' (black_coal/gas/wind/solar/battery/...). Each dataset's valid filter keys + allowed values are listed in the dataset's detail metadata.
start_periodNoInclusive start of the period window in AEMO market time (UTC+10). Accepts 'YYYY', 'YYYY-MM', 'YYYY-MM-DD', or 'YYYY-MM-DD HH:MM'. Defaults to None which fetches just the most recent NEMWEB file for the dataset.
end_periodNoInclusive end. Same format as start_period.
formatNoResponse shape. 'records' (default): flat list of observations. 'series': observations grouped by dimensions. 'csv': returns the result as a CSV string in the `csv` field.records

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataset_idYes
dataset_nameYes
queryNo
interval_startNo
interval_endNo
periodNoCanonical {start, end} period bounds for cross-sister consumers. Populated alongside aemo-specific interval_start/interval_end.
unitNo
row_countNoNumber of observation rows in records.
recordsNo
csvNo
sourceNoAustralian Energy Market Operator
attributionNoSource: Australian Energy Market Operator (AEMO), NEMWEB. Used under AEMO's Copyright Permissions (general permission for any purpose with accurate attribution). https://aemo.com.au/privacy-and-legal-notices/copyright-permissions
source_urlYes
retrieved_atYes
staleNo
stale_reasonNo
truncated_atNo
server_versionNo
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes the return type (DataResponse with fields) and mentions that it queries data without side effects. However, it lacks explicit statements about read-only nature, authentication, rate limits, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear opening sentence and bullet-pointed examples. While longer due to examples, each sentence adds value and the structure aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, output schema exists), the description covers the return type, common filter patterns, and period formatting. It could mention pagination or error handling but is otherwise adequate for agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds significant value through extensive examples showing how parameters combine in real queries (e.g., filters with start/end periods). This clarifies usage beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Query') and resource ('AEMO NEM dataset'), with multiple examples showing typical use. While it doesn't explicitly distinguish siblings, the examples implicitly separate it from search, describe, and list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides examples that illustrate common use cases but does not explicitly state when to use this tool versus alternatives like search_datasets or describe_dataset. Usage is implied rather than directly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Bigred97/aemo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server