CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
bigred97 avatar

Aemo Mcp

bigred97/aemo-mcp
STDIOregistry active
Summary

Connects Claude to Australia's National Electricity Market data via the ausdata.io API. You can query 5-minute spot prices, demand, generation by fuel type, and rooftop solar output across NEM regions in plain English. Useful when you're analyzing electricity markets, building energy dashboards, or need real-time grid data without writing SQL or wrestling with AEMO's raw CSV files. The underlying API consolidates Australian government datasets with a clean REST interface, so you get structured responses instead of scraping spreadsheets. Free tier gives you 500 calls per month, which covers most exploratory work and prototyping.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →

aemo-mcp

mcp-name: io.ausdata/aemo-mcp

PyPI Python License Tests CodeQL Glama MCP server quality

Ask Claude about Australia's electricity market and get real, current numbers — 5-minute spot prices, regional demand, generation by fuel, interconnector flows, rooftop solar — not "I don't have access to that data." This MCP server gives Claude (and other MCP clients like Cursor) live access to the Australian Energy Market Operator (AEMO) NEMWEB feeds, with curated mappings for the most-asked indicators.

Hosted access? For cross-source queries, webhooks, an always-on REST API, and a uniform response envelope across all 9 sources, see ausdata.io — free tier available (500 calls/mo, no card).

Companion to abs-mcp (ABS macro stats), rba-mcp (RBA interest + FX rates), ato-mcp (ATO tax + ACNC charity), apra-mcp (banking + superannuation), aihw-mcp (health & welfare), asic-mcp (companies + financial advisers), and au-weather-mcp (Australian weather) — together they cover the most-asked Australian official data.

What you can ask

Once installed, your LLM can answer questions like:

QuestionWhat the tool does
What's the current NSW spot price?latest("dispatch_price", filters={"region":"NSW1"})
Did SA hit negative pricing in the last 24 hours?get_data("dispatch_price", filters={"region":"SA1"}, start_period=…) and filter value < 0
Generation by fuel type right now in QLDlatest("generation_scada", filters={"region":"QLD1"}), aggregated by fuel
Weekly average dispatch price for VIC, last 4 weeksget_data("dispatch_price", filters={"region":"VIC1"}, start_period=…)
Rooftop PV forecast for tomorrowget_data("rooftop_pv", filters={"section":"forecast"}, start_period="<tomorrow>")
What's the current flow across Heywood (VIC ↔ SA)?latest("interconnector_flows", filters={"interconnector":"V-SA"})
Total NEM demand right nowlatest("dispatch_region")

Every answer comes with the interval timestamp (AEMO market time, UTC+10), units (MW, $/MWh), and a link back to the NEMWEB source. The MCP wraps NEMWEB's CSV/ZIP feeds and exposes them through 5 plain-English tools.

Install

# After publish:
uvx --upgrade aemo-mcp

# Local dev:
uv pip install -e .

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "aemo": {
      "command": "uvx",
      "args": ["--upgrade", "aemo-mcp"]
    }
  }
}

Why --upgrade? uvx aemo-mcp (without the flag) uses whatever wheel is cached and never adopts new PyPI releases on its own. --upgrade makes uvx check PyPI on each launch and pull a newer release if one exists. Recommended for everyone except offline-first / pinned-version workflows. To verify which version is currently serving you, look at the server_version field on any DataResponse.

If you also have rba-mcp / abs-mcp installed, all servers run side-by-side. Claude disambiguates with the server prefix (aemo:get_data, rba:get_data, abs:get_data).

For local dev (pre-PyPI):

{
  "mcpServers": {
    "aemo": {
      "command": "uv",
      "args": ["run", "--directory", "/absolute/path/to/aemo-mcp", "aemo-mcp"]
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (or workspace .cursor/mcp.json):

{
  "mcpServers": {
    "aemo": {
      "command": "uvx",
      "args": ["--upgrade", "aemo-mcp"]
    }
  }
}

Tools

ToolWhat it does
search_datasets(query, limit=10)Fuzzy-search the 7 curated NEM datasets by name, topic, or region.
describe_dataset(dataset_id)Schema, filters, source URL, cadence, and example queries for one dataset.
get_data(dataset_id, filters, start_period, end_period, format)Query data. Records / series / csv format.
latest(dataset_id, filters)Most recent 5-min or 30-min interval for time-series feeds.
list_curated()The 7 curated dataset IDs.

Curated datasets

The 7 datasets cover ~95% of typical NEM analytic queries:

dataset_idCadenceSourceUse case
dispatch_price5 minDispatchIS / DISPATCHPRICECurrent spot price per region; negative-pricing detection
dispatch_region5 minDispatchIS / DISPATCHREGIONSUMDemand + scheduled + semi-scheduled gen + net interchange
interconnector_flows5 minDispatchIS / DISPATCHINTERCONNECTORRESMW flow + losses across NEM interconnectors
generation_scada5 minDispatch_SCADADUID-level MW (every unit), aggregable by fuel
rooftop_pv30 minROOFTOP_PV/ACTUAL + FORECASTRegional rooftop solar (actual + forecast)
predispatch_30min30 minPredispatchIS30-min forecast, ~40h horizon
daily_summaryDailyDaily_ReportsYesterday's full data in one drop

Use list_curated() to enumerate, describe_dataset(dataset_id) to learn the filters available on each.

Regions

NSW1 (New South Wales), QLD1 (Queensland), SA1 (South Australia), TAS1 (Tasmania), VIC1 (Victoria). Western Australia (WEM) and the Northern Territory are not on the NEM and are out of scope.

Trust contract

Every DataResponse carries:

  • source = "Australian Energy Market Operator"
  • attribution — AEMO Copyright Permissions verbatim attribution string
  • source_url — the NEMWEB folder the data came from
  • retrieved_at — UTC timestamp of the fetch
  • interval_start / interval_end — period covered
  • stale — True if the latest interval is older than 2× the feed cadence
  • server_version — the wheel that served the call

Licence + attribution

This package is MIT-licensed (see LICENSE).

The AEMO data it fetches is published under AEMO's Copyright Permissions policy: AEMO grants general permission to use AEMO Material for any purpose (commercial included) on the sole condition of accurate attribution of the relevant material and AEMO as its author. See https://aemo.com.au/privacy-and-legal-notices/copyright-permissions.

End-users redistributing data fetched via this server must credit AEMO. The canonical attribution string is on every DataResponse.attribution.

Worked examples

"What's the current NSW spot price?"

latest(dataset_id="dispatch_price", filters={"region": "NSW1"})

→ {"records": [{"period": "2026-05-14T10:05:00+10:00", "value": 87.5, "dimensions": {"region": "NSW1", "metric": "rrp"}, "unit": "$/MWh"}], ...}

"NSW spot price for the last 24 hours"

get_data(dataset_id="dispatch_price", filters={"region": "NSW1"},
         start_period="2026-05-13", end_period="2026-05-14")

"Did SA hit negative pricing in the last 24 hours?"

get_data(dataset_id="dispatch_price", filters={"region": "SA1"},
         start_period="<24h ago>")

Then the LLM filters value < 0 client-side.

"Generation by fuel type right now in QLD"

latest(dataset_id="generation_scada", filters={"region": "QLD1"})

→ DUID-level rows with fuel attribution; the LLM aggregates by fuel.

How it works

  • Live-fetch only. No NEMWEB archives in the wheel. Every request goes through the cache.
  • Cache TTLs tuned per cadence. 60s for 5-min feeds, 5min for 30-min feeds, 1h forecasts, 24h daily archive. Timestamped historical files are immutable in NEMWEB and cache effectively forever.
  • In-flight request deduplication. Concurrent callers for the same URL share one HTTP request. Critical at 5-min cadence with many users.
  • Latest-file detection is purely lexicographic on the NEMWEB directory listing — AEMO embeds the interval timestamp in every filename (PUBLIC_DISPATCHIS_YYYYMMDDHHmm_<seq>.zip), so max() is enough.
  • Multi-section CSV parser handles AEMO's I,/D, row format where a single ZIP holds several tables (DISPATCHPRICE, DISPATCHREGIONSUM, DISPATCHINTERCONNECTORRES, etc.).

Development

git clone https://github.com/Bigred97/aemo-mcp
cd aemo-mcp
uv sync --extra dev
uv pip install -e .
uv run pytest -q

Run live tests (hit NEMWEB):

uv run pytest -q -m live

Zero-flake validation:

for i in $(seq 1 10); do uv run pytest -q || break; done

Sister MCPs (Australian Public Data portfolio)

Want all 9 sources behind one REST API? The hosted gateway at ausdata.io adds cross-source joins, full history, webhooks, and HMAC-signed responses on top of these MCPs — free tier (500 calls/mo, no card).

  • abs-mcp — Australian Bureau of Statistics (CPI, unemployment, ERP, building approvals)
  • rba-mcp — Reserve Bank of Australia (cash rate, lending stats, exchange rates)
  • ato-mcp — Australian Taxation Office (tax stats, ACNC charities)
  • apra-mcp — Australian Prudential Regulation Authority (banking, insurance, super)
  • aihw-mcp — Australian Institute of Health and Welfare
  • asic-mcp — Australian Securities and Investments Commission (company registers)
  • aemo-mcp — this one. Australian Energy Market Operator (NEM dispatch, spot prices, generation).
  • au-weather-mcp — Open-Meteo (Bureau of Meteorology aggregator)
  • wgea-mcp — Workplace Gender Equality Agency
  • aus-identity — Postcode / state / ABN normalisation helper used by all sisters

Author

Built by Harry Vass. Issues + PRs welcome at github.com/Bigred97/aemo-mcp.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Registryactive
Packageaemo-mcp
TransportSTDIO
UpdatedMay 20, 2026
View on GitHub

More from bigred97

  • Aihw Mcp
  • Apra Mcp
  • Asic Mcp
  • Ato Mcp
  • Au Weather Mcp
  • Ausdata Mcp1
  • Rba Mcp
  • Wgea Mcp
  • Abs Mcp