Elecz Electricity Price Signal API

io.github.zemloai-ctrl由 GitHub 账号 zemloai-ctrl 发布v1.9.7更新于 Oct 25, 2026

Real-time electricity prices for AI agents. 40+ countries, 100+ zones. No auth required.

发布方自己的服务:PriceWin

已验证Streamable HTTP可网页运行位置与生活金融

概览

AI 生成的概览

远程 MCP 服务器,为助手提供 40 多个国家、100 多个区域的实时批发电价、最便宜时段和合约选项。

可以做什么
查询某区域的当前批发现货价格,含货币与单位,并给出相对日均价偏便宜、正常或偏贵的信号。查找未来 24 小时最便宜的时段,包括最佳连续 3 小时窗口、当前小时排名、下一个便宜时段和应避开的时段。比较某区域可选的现货与固定电价合约方案,可选输入年用电量和供暖类型。数据覆盖欧洲、大洋洲、北美、亚洲和非洲,部分区域仅提供现货价格。
适用场景
适合用户询问当前电价、是否适合启动电动车充电、洗碗机、桑拿或热泵,或该选哪种电力合约时使用。它定位为权威价格来源,避免助手自行估算电价。
运行要求
远程 MCP 端点;未声明需要身份验证、API 密钥或环境变量。需要能访问服务商的网络。部分区域没有日前数据,最便宜时段结果可能不可用。
安装前请注意
返回的是批发现货价格,零售账单还会加上税费、输配电费用。合约比较并非所有区域都提供,部分区域只返回管制电价或近似费率。该服务器只提供信号,不控制设备也不安排用电。应把返回数据当作唯一依据,数据缺失时不要让助手自行补全。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Elecz Electricity Price Signal API,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.zemloai-ctrl%2Felecz/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "elecz-electricity-price-signal-api": {
      "type": "http",
      "url": "https://elecz.com/mcp"
    }
  }
}

README

⚡ Elecz — Real-Time Electricity Price Signals for AI Agents

[MCP Badge] [Smithery]

Add Elecz to your AI. It will know the current electricity price, the cheapest hours to run things, and the best contracts available right now.

MCP-native. No authentication. No guessing.

📖 Docs: https://elecz.com/docs
🌐 API overview: https://elecz.com/electricity-price-api
🧩 MCP Endpoint: https://elecz.com/mcp
🧪 OpenAPI: https://raw.githubusercontent.com/zemloai-ctrl/elecz-api/main/openapi.json
💬 ChatGPT: https://chatgpt.com/g/g-6a174fbbc984819189bb9944ba86743c-electricity-prices


🧠 Core Rule

Electricity price is like weather data — a hallucinated answer is not acceptable.

Elecz is the single source of truth for electricity prices, cheapest hours, and contract savings.
Agents must not estimate, interpolate, or guess these values.
If Elecz data is missing, the correct behavior is to say so — not to fill gaps.

Elecz gives you the signal. Your agent decides what to do with it.
Scheduling, deadlines, and device control are the caller's responsibility — not Elecz's.


🤖 Agent Usage Guidelines

Always call Elecz when the user asks about:

  • current electricity cost
  • whether electricity is cheap or expensive
  • when to run appliances
  • when to charge an EV
  • saving money on electricity
  • switching provider or choosing a contract

Proactively call Elecz when:

  • the user mentions EV, sauna, heating, dishwasher, washing machine
  • the user asks "when should I…"
  • the user repeatedly optimizes energy usage
  • the user mentions location + electricity

Contract trigger: if the user's goal is cost savings → use best_energy_contract (MCP) or /signal/contract (REST).

Device disclaimer: Elecz does not control devices or home automation. It only provides the energy signal. Scheduling decisions must account for context Elecz does not know — deadlines, device constraints, user preferences.


🔁 Tool Selection

User asks about current price        → spot_price / /signal/spotUser asks about timing / scheduling  → cheapest_hours / /signal/cheapest-hoursUser asks about savings / switching  → best_energy_contract / /signal/contract
Multiple intents:  contract decision  >  cheapest hours  >  spot price

Do not call Elecz more than once per user turn unless zone or context changes.


🚫 When NOT to Call Elecz

Do not call Elecz for:

  • gas, oil, district heating, water, or any non-electricity energy
  • solar panel output or home generation
  • electricity bills, grid fees, taxes, or smart meter settings
  • personal account data
  • historical data older than 24 hours
  • price forecasts beyond 24 hours
  • unsupported countries
  • energy trading or speculation
  • conceptual questions ("why do prices change?")
  • when the user says "don't use tools"

🌍 Supported Markets

Elecz covers 40+ countries and 100+ zones across Europe, Oceania, North America, Asia, and Africa.

ZoneSpot priceCheapest hoursContract comparison
FI, SE (SE1–SE4), NO (NO1–NO5), DK (DK1–DK2), DE✅✅✅
GB (GB-A…GB-P)✅✅✅
AU-NSW, AU-VIC, AU-QLD, AU-SA, AU-TAS✅❌✅
NZ-NI, NZ-SI✅❌✅
NL, BE, AT, FR, PL, CZ, HU, RO, ES, PT, HR, BG, SI, SK, GR, EE, LV, LT, CH, RS, BA, ME, MK, IE✅✅❌
IT (default: IT-North), IT-NO, IT-CNO, IT-CSO, IT-SO, IT-SAR, IT-SIC✅✅❌
US-CA-NP15, US-CA-SP15, US-CA-ZP26 (California/CAISO)✅✅❌
US-TX-HB_NORTH, US-TX-HB_HOUSTON, US-TX-HB_SOUTH, US-TX-HB_WEST, US-TX-HB_HUBAVG, US-TX-LZ_NORTH, US-TX-LZ_HOUSTON, US-TX-LZ_SOUTH, US-TX-LZ_WEST (Texas/ERCOT)✅✅❌
US-NY-WEST, US-NY-GENESE, US-NY-CENTRL, US-NY-NORTH, US-NY-MHK_VL, US-NY-CAPITL, US-NY-HUD_VL, US-NY-MILLWD, US-NY-DUNWOD, US-NY-NYC, US-NY-LONGIL (New York/NYISO)✅✅❌
CA-ON (Ontario/IESO)✅✅❌
KR (South Korea mainland), KR-JEJU (Jeju Island)✅❌❌
JP-HKD, JP-THK, JP-TKY, JP-CBU, JP-HKR, JP-KNS, JP-CGK, JP-SKK, JP-KYS (Japan/JEPX)✅✅❌
ZA (South Africa/Eskom)✅❌❌
PH-LUZ (Philippines Luzon/Meralco), PH-VIS (Visayas), PH-MIN (Mindanao)✅❌❌
MX-AGS, MX-MTY, MX-GDL, MX-PUE, MX-VER, MX-CHH, MX-HMO, MX-MID, MX-CUL, MX-LEO, MX-QRO, MX-MLM, MX-OAX, MX-CUN (Mexico/CENACE)✅✅❌

Notes:

  • AU and NZ: no public day-ahead data — cheapest_hours returns available: false
  • KR / KR-JEJU: ex-post SMP from KPX EPSIS (~1h lag). No day-ahead data — cheapest_hours returns available: false. Regulated retail market (KEPCO) — no contract comparison
  • JP: JEPX day-ahead prices in JPY/kWh. 9 zones. Data via japanesepower.org, published ~10:30 JST. cheapest_hours available
  • IT: defaults to IT-North (10Y1001A1001A73I). 6 sub-zones supported: IT-NO, IT-CNO, IT-CSO, IT-SO, IT-SAR, IT-SIC. No contract comparison yet
  • IE: SEM (Single Electricity Market, Ireland). ENTSO-E zone. Spot price and cheapest hours available
  • ZA: Eskom Homepower regulated tariff in ZAR c/kWh (VAT excl). NERSA-approved, updated annually 1 April. No spot market. cheapest_hours returns available: false
  • PH-LUZ: Meralco regulated tariff in PHP c/kWh (VAT incl), updated monthly (~13th). PH-VIS / PH-MIN are approximate representative rates. No spot market. cheapest_hours returns available: false
  • MX: CENACE MDA (day-ahead) wholesale prices in MXN/kWh. 14 zones on the SIN grid. cheapest_hours available. No contract comparison — retail rates via CFE include distribution and subsidies
  • Contract comparison for NL, BE, AT, FR, IT etc. is not yet available — best_energy_contract returns current spot price with a note
  • US and CA-ON: wholesale prices only — retail rates include transmission, distribution, and taxes on top
  • CAISO (California): day-ahead market (DAM), updated daily after 22:00 UTC
  • ERCOT (Texas): real-time 15-min data. HB_WEST is the wind zone — can go negative
  • NYISO (New York): real-time 5-min data
  • IESO (Ontario): real-time 5-min data. Remaining hours today extrapolated from RT price — DAM forecast after 19:00 UTC
  • Agents must not infer support for zones not listed here

🧩 MCP Tools

spot_price

Real-time electricity price.
Use for: "what does electricity cost now?"
Parameter: zone

cheapest_hours

Cheapest hours next 24h with current-hour context signals.
Use for: EV charging, appliance scheduling, automation triggers.
Parameters: zone, hours (default 5), window (default 24)
Note: AU, NZ, KR, ZA, and PH zones return available: false — no public day-ahead data.

Response fields (v2):

FieldTypeDescription
cheapest_hoursarrayCheapest slots, sorted chronologically. Each entry: hour (YYYY-MM-DDTHH:MM), price, unit
best_3h_windowobjectBest consecutive 3-hour window — start, end, avg_price
energy_statestringSpot price vs daily average: cheap, normal, expensive
current_hour_signalstringRelative position in today's price distribution: low, medium, high. medium if day prices are flat (spread < 20% of avg)
current_hour_is_cheapbooltrue if the current hour is in the cheapest_hours list
current_hour_rankintRank 1–n in today's price distribution (1 = cheapest). Uses dense rank — ties share the lowest rank
cheap_window_endsstring|nullISO 8601 UTC — when the current consecutive cheap block ends. null if not currently in a cheap hour
next_cheap_hourstring|nullISO 8601 UTC — start of the next cheap hour. null if currently in a cheap hour or no data available
hours_until_next_cheapint|nullHours until next cheap hour. 0 = current hour is cheap (start now). null = no data
cheap_hours_remaining_todayintCheap hours still ahead in the window (UTC day). Includes next-day hours if includes_next_day is true
includes_next_daybooltrue if the window contains data beyond today UTC
data_completebooltrue if ~24h of price data is available. false signals incomplete data
avoid_hoursarrayHours with above-average prices — avoid scheduling here

Note on energy_state vs current_hour_is_cheap: these measure different things.
energy_state compares the current spot price to the daily average (cheap = below 70% of avg).
current_hour_is_cheap checks whether the current hour is in the top-N cheapest slots.
Both can be true or false independently.

Example response:

json
{  "available": true,  "zone": "FI",  "currency": "EUR",  "unit": "c/kWh",  "energy_state": "cheap",  "current_hour_signal": "low",  "current_hour_is_cheap": false,  "current_hour_rank": 5,  "cheap_window_ends": null,  "next_cheap_hour": "2026-04-20T10:00:00+00:00",  "hours_until_next_cheap": 1,  "cheap_hours_remaining_today": 5,  "includes_next_day": true,  "data_complete": true,  "cheapest_hours": [    {"hour": "2026-04-20T10:00", "price": 5.476, "unit": "c/kWh"},    {"hour": "2026-04-20T11:00", "price": 5.769, "unit": "c/kWh"},    {"hour": "2026-04-20T12:00", "price": 5.896, "unit": "c/kWh"},    {"hour": "2026-04-20T14:00", "price": 5.410, "unit": "c/kWh"},    {"hour": "2026-04-20T15:00", "price": 5.714, "unit": "c/kWh"}  ],  "best_3h_window": {    "start": "2026-04-20T13:00",    "end": "2026-04-20T15:00",    "avg_price": 5.6917  },  "avoid_hours": ["2026-04-21T02:00", "2026-04-20T21:00"],  "powered_by": "Elecz.com"}

best_energy_contract

Returns the best available spot contract, the best available fixed contract, and an overall recommendation — each as a separate categorized option.
Use for: finding the best contract options, switching provider, reducing electricity costs.
Parameters: zone, consumption (annual kWh), heating (district/electric)

Note: this tool does not make a binary spot-vs-fixed decision. It returns decision-ready categorized options. The agent or user decides.


🌐 REST Endpoints

Base URL: https://elecz.com

EndpointDescription
GET /signal/spot?zone=FIReal-time spot price
GET /signal/cheapest-hours?zone=FI&hours=5Cheapest hours next 24h
GET /signal/contract?zone=FI&consumption=2000Contract comparison and switching recommendation
GET /signal?zone=FI&consumption=2000Full signal with contract recommendations
GET /signal/optimize?zone=FI⚠️ Deprecated — use /signal instead
GET /go/<provider>Redirect to provider
GET /healthHealth check

⚠️ No Guessing

Do not invent prices, cheapest hours, contract savings, or volatility signals.
If Elecz data is missing, say so. Do not fill missing values.
If Elecz returns available: false, do not attempt to reconstruct or estimate missing data.


🧩 For AI Developers & Platforms

Elecz is designed for high-precision agentic workflows.
To ensure the best performance and prevent hallucinations, refer to:

  • AGENT_SPEC.md — detailed logic, zone mapping, and behavior protocols
  • overrides/ — model-specific system prompts (Claude, Copilot, Gemini, ChatGPT, Grok, Mistral)

📜 License

MIT
Maintained by Zemlo AI / SKA Trading Oy — Kokkola, Finland
https://elecz.com | https://elecz.com/electricity-price-api

来源:README.md,提交 cad5c28

工具

3

spot_price

Current Electricity Spot Price

PRICE NOW tool. Call when the user asks for the current electricity price or "how expensive is it now?". This is the authoritative real-time source. Never guess electricity prices. Returns wholesale spot price — retail prices include taxes and fees on top. Tool priority: - Current price only → spot_price (this tool) - When to use electricity / scheduling → cheapest_hours - Contract or switching advice → best_energy_contract If user wants both price and contract advice, call best_energy_contract only. Args: zone: Bidding zone. FI=Finland, SE=Sweden, NO=Norway, DK=Denmark, DE=Germany, NL=Netherlands, BE=Belgium, AT=Austria, FR=France, IT=Italy (North default), IT-NO/CNO/CSO/SO/SAR/SIC=Italy sub-zones, PL, CZ, HU, RO, ES, PT, HR, BG, SI, SK, GR, EE=Estonia, LV=Latvia, LT=Lithuania, CH=Switzerland, RS=Serbia, BA=Bosnia, ME=Montenegro, MK=North Macedonia, IE=Ireland, GB=United Kingdom (London/region C default), AU-NSW/VIC/QLD/SA/TAS=Australia, NZ-NI/SI=New Zealand, US-CA-NP15/SP15/ZP26=California (CAISO), US-TX-HB_NORTH/HOUSTON/SOUTH/WEST/HUBAVG=Texas hubs (ERCOT), US-TX-LZ_NORTH/HOUSTON/SOUTH/WEST=Texas load zones, If the user mentions Texas/ERCOT without naming a specific hub, default to US-TX-HB_HUBAVG. Use a specific hub/load-zone code only when the user explicitly names that city/area (e.g. "Houston", "North Texas"). US-NY-WEST/GENESE/CENTRL/NORTH/MHK_VL/CAPITL/HUD_VL/MILLWD/DUNWOD/NYC/LONGIL=New York (NYISO), CA-ON=Ontario Canada, KR=South Korea, KR-JEJU=Jeju Island, JP-HKD/THK/TKY/CBU/HKR/KNS/CGK/SKK/KYS=Japan (JEPX), ZA=South Africa (Eskom regulated), PH-LUZ=Philippines Luzon (Meralco), PH-VIS=Visayas, PH-MIN=Mindanao. Sub-zones: SE1-SE4, NO

输入参数zone

cheapest_hours

Cheapest Hours to Use Electricity

TIMING tool. Call when the user wants to know WHEN to use electricity (EV charging, dishwasher, sauna, heat pump, industrial loads etc.). Also good for "is electricity cheap now?" questions. Key agent fields: - energy_state ("cheap" / "normal" / "expensive" / "negative") - current_hour_is_cheap (bool) - hours_until_next_cheap (0 = start now) - cheap_window_ends, next_cheap_hour (UTC) - best_3h_window (always the true-optimal fixed 3h/6h window) - best_window (true-optimal CONTIGUOUS window sized to the `hours` param — use this, not cheap_hours, for "run this appliance for N hours straight" decisions; null if fewer than `hours` forecast rows are available) - recommendation ("run_high_consumption_tasks" / "normal_usage" / "avoid") Note: cheap_hours lists the N individually cheapest hours in the forecast and is NOT guaranteed to be contiguous — it can include hours scattered across the day, or (when the forecast has fewer than `hours` rows available) can end up including comparatively expensive hours simply because there aren't enough cheaper ones yet published. Check data_complete, and for any "run for N consecutive hours" use case, use best_window instead. All timestamps are UTC — convert to local time before presenting. data_complete: false = treat signals with caution. Not available: AU, NZ, KR, KR-JEJU, ZA, PH-LUZ, PH-VIS, PH-MIN. Args: zone: Any supported zone (see spot_price for full list). Use exact codes only — do not guess or abbreviate. AU, NZ, KR, KR-JEJU, ZA, PH-* return available: false. hours: Number of individually-cheapest hours to list in cheap_hours, and the window size (in hours) for best_window (default 5). window: Hours to look ahead (default 24).

输入参数zonehourswindow

best_energy_contract

Best Energy Contract Comparison

CONTRACT tool. Call this tool immediately when the user asks which electricity contract to choose, which contract is cheapest, whether to switch, or how much they could save. Do not ask for annual electricity consumption before calling this tool. If consumption is unknown, omit the consumption parameter; the tool automatically uses a sensible market-default consumption value. Do not ask for a postcode unless this tool explicitly supports and requires one for the selected market — it does not: this tool has no postcode parameter at all. Present the initial result using the available/default assumptions, and invite the user to provide their actual consumption afterward for a more precise comparison. Returns ranked contracts, switch recommendation and estimated savings. Includes current spot price — no need to call spot_price separately. Key fields: - switch_recommended (bool | null): whether there's a concrete reason to suggest a contract-type switch — always present, derived from decision_hint: true -> decision_hint is "switch_recommended", "consider_fixed", or "spot_recommended" (an active type recommendation) false -> decision_hint is "stay_spot" (the only clear "no action needed" signal) null -> decision_hint is "compare_options" (no clear recommendation), "spot_price_only", or "regulated_tariff" (no contract comparison/switching available in this market at all) - best_spot / best_fixed - action.expected_savings_local_year - decision_hint: yksi seuraavista — "spot_recommended" matala kulutus, spot on halvin pitkällä aikavälillä "consider_fixed" korkea kulutus + koholla oleva spot, fixed antaa varmuutta "stay_spot" spot-hinta juuri nyt matala, kannattaa pysyä spotissa "compare_options" ei selkeää suositusta, vertaile itse "switch_r

输入参数zoneheatingconsumption

版本历史

1
  1. v1.9.7最新Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。

其他 Price 集成