GridHub Electricity Market Data
Live and historical electricity prices and demand for 25 grids; carbon intensity for GB.
使うべきか
品質と安全性
検出事項(5)
- HIGH
- MEDIUMget_latest 内
- MEDIUMget_zone_brief 内
- MEDIUMget_history 内
- MEDIUMget_map_snapshot 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"gridhub": {
"url": "https://api.grid-hub.app/mcp"
}
}
}リモートエンドポイント
https://api.grid-hub.app/mcpstreamable-httpできること
ツール一覧
ツール(6)
🟢list_zones
List the 25 electricity grid zones GridHub covers, with id, name, data source (EIA, ENTSO-E, NESO, AEMO), timezone, currency, licence and required attribution. Free, no credentials needed. Call this first if you are unsure which zone id to use.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"zones": {
"type": [
"array",
"null"
],
"items": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"source": {
"type": [
"string",
"null"
]
},
"tz": {
"type": [
"string",
"null"
]
},
"currency": {
"type": [
"string",
"null"
]
},
"license": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": [
"string",
"null"
]
}
}
}
}
}
}🟢get_status
Ingestion health per source and zone: last successful fetch timestamp and last error, if any. Free. Use it to explain stale or missing values before drawing conclusions from them.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"now": {
"type": [
"number",
"null"
]
},
"sources": {
"type": [
"array",
"null"
],
"items": {
"type": [
"object",
"null"
],
"properties": {
"source": {
"type": [
"string",
"null"
]
},
"zone": {
"type": [
"string",
"null"
]
},
"last_ok": {
"type": [
"number",
"null"
]
},
"last_error": {
"type": [
"string",
"null"
]
}
}
}
}
}
}🟢get_latest(zone, api_key)
The most recent value of every metric one zone publishes (price and demand for every zone; generation by fuel for GB and US-CAISO; carbon intensity for GB; interchange where available), each with unit and timestamp. This is the right tool for 'what is the price/demand/carbon intensity in X right now'. Note: some European sources publish day-ahead prices, so the price timestamp can be up to ~36h in the future; use get_zone_brief for a strictly at-or-before-now value with historical context. Authentication: send 'Authorization: Bearer <ghk_key>' on the MCP connection (free key, 500 requests/day, instant email signup at https://grid-hub.app/developers), or pay per call with x402 (USDC on Base) via the X-PAYMENT header. With no credentials, data tools run in free sample mode: real, current data but truncated (history capped at 50 rows; brief returns one context block). Sample results are clearly marked.
入力スキーマ
{
"type": "object",
"properties": {
"zone": {
"type": "string",
"enum": [
"US-CAISO",
"US-ERCOT",
"US-PJM",
"US-MISO",
"US-NYISO",
"US-ISONE",
"US-SPP",
"DE-LU",
"FR",
"ES",
"IT-NO",
"NL",
"BE",
"PL",
"SE-3",
"NO-2",
"DK-1",
"AT",
"CH",
"GB",
"AU-NSW",
"AU-QLD",
"AU-VIC",
"AU-SA",
"AU-TAS"
],
"description": "Zone id. US ISOs: US-CAISO, US-ERCOT, US-PJM, US-MISO, US-NYISO, US-ISONE, US-SPP. Europe: DE-LU, FR, ES, IT-NO, NL, BE, PL, SE-3, NO-2, DK-1, AT, CH. Great Britain: GB. Australia (NEM): AU-NSW, AU-QLD, AU-VIC, AU-SA, AU-TAS. Call list_zones for names, sources, currencies and licences."
},
"api_key": {
"type": "string",
"description": "Optional GridHub API key (ghk_...). Prefer sending it as an 'Authorization: Bearer <key>' HTTP header on the MCP connection; use this argument only if your client cannot set headers. Without a key the tool runs in free sample mode (truncated output)."
}
},
"required": [
"zone"
],
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"zone": {
"type": [
"string",
"null"
]
},
"metrics": {
"type": [
"object",
"null"
],
"additionalProperties": {
"type": [
"object",
"null"
],
"properties": {
"value": {
"type": [
"number",
"null"
]
},
"unit": {
"type": [
"string",
"null"
]
},
"ts": {
"type": [
"number",
"null"
]
},
"resolution": {
"type": [
"string",
"null"
]
}
}
}
},
"updated": {
"type": [
"number",
"null"
]
},
"attribution": {
"type": [
"string",
"null"
]
},
"license": {
"type": [
"string",
"null"
]
}
}
}🟢get_zone_brief(zone, api_key)
Composite, interpretation-ready snapshot of one zone: current price / demand / carbon intensity where published (strictly at-or-before now), each ranked against that zone's own last ~30 days (percentile, vs-median %, min/max, sample count and the actual data window), a 24h trend per metric, the generation mix where published (GB, US-CAISO), and a one-sentence plain-English summary. Best tool for questions like 'is electricity cheap/clean in X right now' or 'is this a good time to run a flexible workload'. A raw price means little without this context. Authentication: send 'Authorization: Bearer <ghk_key>' on the MCP connection (free key, 500 requests/day, instant email signup at https://grid-hub.app/developers), or pay per call with x402 (USDC on Base) via the X-PAYMENT header. With no credentials, data tools run in free sample mode: real, current data but truncated (history capped at 50 rows; brief returns one context block). Sample results are clearly marked.
入力スキーマ
{
"type": "object",
"properties": {
"zone": {
"type": "string",
"enum": [
"US-CAISO",
"US-ERCOT",
"US-PJM",
"US-MISO",
"US-NYISO",
"US-ISONE",
"US-SPP",
"DE-LU",
"FR",
"ES",
"IT-NO",
"NL",
"BE",
"PL",
"SE-3",
"NO-2",
"DK-1",
"AT",
"CH",
"GB",
"AU-NSW",
"AU-QLD",
"AU-VIC",
"AU-SA",
"AU-TAS"
],
"description": "Zone id. US ISOs: US-CAISO, US-ERCOT, US-PJM, US-MISO, US-NYISO, US-ISONE, US-SPP. Europe: DE-LU, FR, ES, IT-NO, NL, BE, PL, SE-3, NO-2, DK-1, AT, CH. Great Britain: GB. Australia (NEM): AU-NSW, AU-QLD, AU-VIC, AU-SA, AU-TAS. Call list_zones for names, sources, currencies and licences."
},
"api_key": {
"type": "string",
"description": "Optional GridHub API key (ghk_...). Prefer sending it as an 'Authorization: Bearer <key>' HTTP header on the MCP connection; use this argument only if your client cannot set headers. Without a key the tool runs in free sample mode (truncated output)."
}
},
"required": [
"zone"
],
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"zone": {
"type": [
"string",
"null"
]
},
"zone_name": {
"type": [
"string",
"null"
]
},
"as_of": {
"type": [
"number",
"null"
]
},
"current": {
"type": [
"object",
"null"
],
"additionalProperties": {
"type": [
"object",
"null"
],
"properties": {
"value": {
"type": [
"number",
"null"
]
},
"unit": {
"type": [
"string",
"null"
]
},
"ts": {
"type": [
"number",
"null"
]
}
}
}
},
"context": {
"type": [
"object",
"null"
],
"additionalProperties": {
"type": [
"object",
"null"
],
"properties": {
"percentile": {
"type": [
"number",
"null"
]
},
"vs_median_pct": {
"type": [
"number",
"null"
]
},
"median": {
"type": [
"number",
"null"
]
},
"min": {
"type": [
"number",
"null"
]
},
"max": {
"type": [
"number",
"null"
]
},
"sample_count": {
"type": [
"number",
"null"
]
},
"window_days_actual": {
"type": [
"number",
"null"
]
},
"unit": {
"type": [
"string",
"null"
]
}
}
}
},
"context_window_requested_days": {
"type": [
"number",
"null"
]
},
"summary": {
"type": [
"string",
"null"
]
},
"coverage_note": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": [
"string",
"null"
]
},
"license": {
"type": [
"string",
"null"
]
}
}
}🟢get_history(zone, metric, start, end, limit, ...)
Time series for one metric in one zone over a start/end window (Unix seconds). Rows are returned oldest-first and the 'limit' truncates from the OLDEST end, so a small limit over a wide window returns old data, not recent data — for 'the latest N points' set start close to now, or use get_latest / get_zone_brief for current values. Default window is the last 24h (last ~400 days for capacity, which is annual). Max window 31 days per call (400 for capacity); paginate with start/end for more. Metrics: price (wholesale, local currency per MWh), demand (MW), generation (per fuel, 'fuel' field set; % or MW depending on zone; GB and US-CAISO only), carbon-intensity (gCO2/kWh; GB only), interchange (net imports, MW), capacity (installed MW per fuel; European zones only). Authentication: send 'Authorization: Bearer <ghk_key>' on the MCP connection (free key, 500 requests/day, instant email signup at https://grid-hub.app/developers), or pay per call with x402 (USDC on Base) via the X-PAYMENT header. With no credentials, data tools run in free sample mode: real, current data but truncated (history capped at 50 rows; brief returns one context block). Sample results are clearly marked.
入力スキーマ
{
"type": "object",
"properties": {
"zone": {
"type": "string",
"enum": [
"US-CAISO",
"US-ERCOT",
"US-PJM",
"US-MISO",
"US-NYISO",
"US-ISONE",
"US-SPP",
"DE-LU",
"FR",
"ES",
"IT-NO",
"NL",
"BE",
"PL",
"SE-3",
"NO-2",
"DK-1",
"AT",
"CH",
"GB",
"AU-NSW",
"AU-QLD",
"AU-VIC",
"AU-SA",
"AU-TAS"
],
"description": "Zone id. US ISOs: US-CAISO, US-ERCOT, US-PJM, US-MISO, US-NYISO, US-ISONE, US-SPP. Europe: DE-LU, FR, ES, IT-NO, NL, BE, PL, SE-3, NO-2, DK-1, AT, CH. Great Britain: GB. Australia (NEM): AU-NSW, AU-QLD, AU-VIC, AU-SA, AU-TAS. Call list_zones for names, sources, currencies and licences."
},
"metric": {
"type": "string",
"enum": [
"price",
"demand",
"generation",
"carbon-intensity",
"interchange",
"capacity"
],
"description": "Which series to fetch."
},
"start": {
"type": "integer",
"description": "Window start, Unix seconds. Default: end minus 24h."
},
"end": {
"type": "integer",
"description": "Window end, Unix seconds. Default: now."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000,
"description": "Max rows (default 200, max 1000 via MCP; sample mode caps at 50)."
},
"api_key": {
"type": "string",
"description": "Optional GridHub API key (ghk_...). Prefer sending it as an 'Authorization: Bearer <key>' HTTP header on the MCP connection; use this argument only if your client cannot set headers. Without a key the tool runs in free sample mode (truncated output)."
}
},
"required": [
"zone",
"metric"
],
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"zone": {
"type": [
"string",
"null"
]
},
"metric": {
"type": [
"string",
"null"
]
},
"start": {
"type": [
"number",
"null"
]
},
"end": {
"type": [
"number",
"null"
]
},
"count": {
"type": [
"number",
"null"
]
},
"attribution": {
"type": [
"string",
"null"
]
},
"license": {
"type": [
"string",
"null"
]
},
"data": {
"type": [
"array",
"null"
],
"items": {
"type": [
"object",
"null"
],
"properties": {
"metric": {
"type": [
"string",
"null"
]
},
"fuel": {
"type": [
"string",
"null"
]
},
"ts": {
"type": [
"number",
"null"
]
},
"value": {
"type": [
"number",
"null"
]
},
"unit": {
"type": [
"string",
"null"
]
},
"resolution": {
"type": [
"string",
"null"
]
},
"source": {
"type": [
"string",
"null"
]
}
}
}
}
}
}🟢get_map_snapshot(api_key)
Current headline values for all 25 zones in one call — the cheapest way to compare zones (e.g. 'which European zone has the lowest price right now', 'rank US ISOs by demand'). Rebuilt every 5 minutes. Authentication: send 'Authorization: Bearer <ghk_key>' on the MCP connection (free key, 500 requests/day, instant email signup at https://grid-hub.app/developers), or pay per call with x402 (USDC on Base) via the X-PAYMENT header. With no credentials, data tools run in free sample mode: real, current data but truncated (history capped at 50 rows; brief returns one context block). Sample results are clearly marked.
入力スキーマ
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Optional GridHub API key (ghk_...). Prefer sending it as an 'Authorization: Bearer <key>' HTTP header on the MCP connection; use this argument only if your client cannot set headers. Without a key the tool runs in free sample mode (truncated output)."
}
},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"generated": {
"type": [
"number",
"null"
]
},
"zones": {
"type": [
"object",
"null"
],
"additionalProperties": {
"type": [
"object",
"null"
],
"properties": {
"zone": {
"type": [
"string",
"null"
]
},
"metrics": {
"type": [
"object",
"null"
],
"additionalProperties": {
"type": [
"object",
"null"
],
"properties": {
"value": {
"type": [
"number",
"null"
]
},
"unit": {
"type": [
"string",
"null"
]
},
"ts": {
"type": [
"number",
"null"
]
},
"resolution": {
"type": [
"string",
"null"
]
}
}
}
},
"updated": {
"type": [
"number",
"null"
]
},
"attribution": {
"type": [
"string",
"null"
]
},
"license": {
"type": [
"string",
"null"
]
}
}
}
}
}
}コミュニティ
エビデンス