关于 Elexon
Elexon 是无需密钥的 MCP 服务,提供英国电力系统与批发市场数据,适用于分析人员。它支持查询发电、需求、价格及 84 个 BMRS 数据集,并按数据集处理日期窗口参数。
主要功能
- 01按燃料类型查看半小时发电量
- 02查询输电系统需求
- 03搜索并查询 84 个 BMRS 数据集
- 04查询系统买入价与卖出价
- 05按数据集处理查询时间窗口
适用场景
- 01分析一段时间内各燃料的发电量
- 02查看系统需求和不平衡价格
- 03查找并读取 BMRS 数据集记录
MCP 相关
通过 Pipeworx 托管端点或本地 stdio 服务,向 MCP 客户端提供 Elexon BMRS 数据工具。托管端点还会列出 Pipeworx 共享元工具;独立服务仅提供此数据包的工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/elexon/mcpclaude mcp add --transport http pipeworx-io-elexon https://gateway.pipeworx.io/elexon/mcp{"mcpServers":{"pipeworx-io-elexon":{"type":"http","url":"https://gateway.pipeworx.io/elexon/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-elexon":{"type":"http","url":"https://gateway.pipeworx.io/elexon/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-elexon":{"type":"http","url":"https://gateway.pipeworx.io/elexon/mcp"}}}{"mcpServers":{"pipeworx-io-elexon":{"serverUrl":"https://gateway.pipeworx.io/elexon/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/elexon
Elexon BMRS Insights MCP — 英国电网与批发市场数据。无需密钥。
属于 Pipeworx — 一个将 AI Agent 连接到 1878+ 个实时数据源的 MCP 网关。这是独立的非官方集成,与上游提供方无关联,未获其认可,也非其发布。
工具
generation_by_fuel(from, to)— 按燃料类型划分的英国半小时发电量(MW)(FUELHH),以及该时间段内各燃料的byFuel总量。system_demand(from, to)— 英国输电系统半小时需求实测值(MW)(ITSDO)。elexon_list_datasets(search?)— 所有 84 个 BMRS 数据集的目录:代码、标题,以及对应路由所采用的时间窗口参数。按关键词(“wind”、“price”、“forecast”)搜索,在调用query_dataset前找到代码。query_dataset(dataset, from, to, settlement_period?, date_param?)— 按代码查询任意一个 84 个数据集中的记录。系统会自动为每个数据集选择正确的时间窗口参数。elexon_system_prices(settlement_date, settlement_period?)— 按结算时段提供英国不平衡价格(系统买入/系统卖出,GBP/MWh),以及净不平衡量和价格推导代码(DISEBSP)。Elexon 通过/datasets之外的接口提供此数据,因此query_dataset无法访问。
英国的一个结算日包含 48 个半小时结算时段。
身份验证
无。无需密钥、注册,也没有我们遇到过的配额限制。
一种 404 错误,两种含义
对于未知数据集代码以及使用错误时间窗口参数查询已知代码,Elexon 都会返回 404 {"statusCode":404,"message":"Resource not found"},因为时间窗口参数属于路由解析的一部分。即使 MID 已存在,且是此工具包中最常用的数据集之一,/datasets/MID?publishDateTimeFrom=... 仍会返回 404 — MID 路由采用 from/to。
因此,此工具包包含一个 DATASETS 表,而不是直接传入代码。它将 84 个代码映射到五种时间窗口类型之一:
| 类型 | 查询参数 | 数据集 |
|---|---|---|
publishDateTime | publishDateTimeFrom / publishDateTimeTo | 53 个,包括 FUELHH、ITSDO、WINDFOR、REMIT、TEMP |
from | from / to | 22 个,包括 MID、BOD、BOALF、QAS、MELS |
settlementDate | settlementDate + settlementPeriod | 6 个:B1610、MDB、MDO、PN、QPN、TUDM |
measurementDateTime | measurementDateTimeFrom / To | 1 个:FREQ |
submissionDateTime | submissionDateTimeFrom / To | 2 个:RZDF、RZDR |
需要了解的后果:
- 六个
settlementDate数据集每次仅提供一个结算时段,因此query_dataset对这些数据集需要settlement_period(1–48)。遇到此情况时,工具会明确提示,而不是返回 404。 - 对于无法识别的代码,工具包会在发起上游调用前拒绝请求,并在消息中提供相近代码及完整代码列表。此类问题不会被记作 Pipeworx 缺陷(集群记录 #584:三小时内出现 49 个相同的 404,每个都是调用者猜测代码所致,却全部被登记为我们的缺陷)。
- 确实存在的代码在时间窗口内没有数据时,会返回零条记录,而非 404。如果对已存在的代码收到 404,说明被拒绝的是时间窗口参数。
date_param会覆盖查找结果,极少需要使用。旧值"settlement"表示settlementDateFrom/To,仅 FUELHH 和 FUELINST 接受;"settlementDate"则表示上述按时段查询的类型。
调用方实际会猜什么
根据一天的实时流量测量结果,两类猜测占据了大多数无效调用,这个工具包现在可以同时处理这两类情况:
- ENTSO-E B 流代码。 B1620、B1430 和 B1440 都有人尝试过。Elexon 的规范在其摘要中记录了映射关系(“Actual Aggregated Generation Per Type (AGPT / B1620)”),因此这个工具包会将 16 个 B 代码映射到取代它们的数据集,并在响应中报告
resolved_from。 - 不平衡价格。 SYSTEMPRICE、SYSTEMPRICES、CASH、IMBALPR、B1770 和 B1780 总共被尝试了 14 次。它们都不是数据集代码——GB 系统买入/卖出价格位于
/balancing/settlement/system-prices,elexon_system_prices封装的正是这个接口。现在遇到这些猜测时,会直接指出该接口名称,而不是列出 84 个代码——其中没有一个是调用方需要的代码。
重新生成数据集表
Elexon 会新增数据集。src/index.ts 中的表格来自上游 OpenAPI 规范——请注意,规范位于站点根目录,不在 API 基础路径下:
curl -s https://data.elexon.co.uk/swagger/v1/swagger.json
读取 /datasets/{CODE} 路径;数据集的时间窗口类型由其 parameters 声明的 publishDateTimeFrom / from / settlementDate / measurementDateTimeFrom / submissionDateTimeFrom 决定。
数据来源
- API 基础路径:
https://data.elexon.co.uk/bmrs/api/v1 - OpenAPI 规范:
https://data.elexon.co.uk/swagger/v1/swagger.json - 文档:
https://bmrs.elexon.co.uk/api-documentation
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"elexon": {
"url": "https://gateway.pipeworx.io/elexon/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/elexon/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 共享元工具——ask_pipeworx、discover_tools、search_within、remember/recall 和网关范围内的其他工具。因此,你看到的工具数量会多于此表:目前,单个工具包端点除了该工具包自身的工具外,还会列出大约 30 个共享工具。连接的 initialize 响应会说明其确切范围,是了解当天实际情况的权威依据。
这是有意为之,并非意外的多路复用。元工具可以让受限连接通过 ask_pipeworx 跨整个目录路由,从而回答此工具包无法覆盖的问题,而无需添加第二个 MCP 服务。目前无法在不包含这些元工具的情况下挂载工具包端点;如果额外的架构信息占用的上下文比路由功能带来的价值更大,请连接一次完整网关,而不是连接多个工具包端点。
也可以连接完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是当前工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和同一组 1878+ 个数据源。唯一的区别是直接列出哪个工具包的工具;无论连接哪一个,ask_pipeworx 都能访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/generation_by_fuel \
-H 'Content-Type: application/json' \
-d '{"from":"2024-06-01T00:00Z","to":"2024-06-01T01:00Z"}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/generation_by_fuel。查找工具:使用 {"query":"..."} 向 POST https://gateway.pipeworx.io/v1/tools/search_packs 发送请求。
独立运行(无需网关账户)
此软件包也可作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经过网关往返:
{
"mcpServers": {
"elexon": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-elexon"]
}
}
}
或者直接运行,以确认服务可以启动:
npx -y @pipeworx/mcp-elexon
它通过 stdin/stdout 使用 MCP 通信,并针对仅此工具包的工具响应 initialize/tools/list/tools/call——不包含上述网关连接额外提供的任何共享元工具。源代码相同,工具相同,但没有 ask_pipeworx 路由。
与 ask_pipeworx 配合使用
你也可以用自然语言提问,而不是直接调用工具——这既适用于上面的工具包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Elexon data" })
网关会选择合适的工具并自动填入参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。