mcpField
M
MaStR MCP Server

MaStR MCP Server

本地服务
github.com法律与政务628 周前更新

关于 MaStR MCP Server

MaStR MCP Server 将德国能源市场注册库 MaStR 的数据查询开放给 MCP 客户端,适用于能源设施与市场参与者检索。它提供无需凭据的公开搜索,并可通过凭据启用更详细的 SOAP 查询。

主要功能

  1. 01查询发电、用电和燃气设施
  2. 02搜索市场参与者与电网连接点
  3. 03获取设施、位置和参与者详情
  4. 04支持多种筛选运算符
  5. 05按需启用 SOAP 详细查询

适用场景

  1. 01查找指定邮编的太阳能设施
  2. 02筛选特定容量范围的风电设施
  3. 03检查设施的电网连接信息
  4. 04追踪注册数据的近期变更

MCP 相关

作为 MCP 服务,向客户端提供 MaStR 搜索、详情查询、目录及平衡区域等工具。公开 JSON 工具无需凭据,SOAP 工具需要 MaStR 服务凭据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ulircs-mastr": {
"command": "uvx",
"args": [
"mastr-mcp-server"
],
"env": {
"MASTR_USER": "<MASTR_USER>",
"MASTR_TOKEN": "<MASTR_TOKEN>"
}
}
}
}
启动命令uvx mastr-mcp-server
需要配置的环境变量
MASTR_USERMaStR Marktakteur number (SOM/SEM...) for SOAP API access. Without credentials, only 7 public tools are available.
MASTR_TOKEN密钥MaStR web service token (~540 chars) for SOAP API access. Enables 14 additional SOAP tools.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimastr-mcp-server1.0.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MaStR MCP Server

适用于 Marktstammdatenregister(MaStR)的 MCP 服务——由 Bundesnetzagentur(德国联邦网络管理局)运营的德国能源市场主数据登记系统。让 Claude Desktop、Cowork 和 Claude Code 能够直接访问德国能源设施登记信息。

Deutsche Version / 德语版本

功能

21 个工具 — 14 个 SOAP 工具(需要凭据),7 个公共工具(始终可用)
工具API身份验证说明
get_unitSOAP是一次调用获取完整设施详情,以及 EEG、CHP、许可证和储能信息
search_power_generation_soapSOAP是按条件搜索发电设施(全部 20 种能源类型、邮政编码、装机容量)
get_actorSOAP是根据 MaStR 编号获取市场参与者详情
get_api_quotaSOAP是每日 API 配额(已用量 / 上限)
get_recent_changesSOAP是增量同步:获取指定日期之后的变更(EEG、CHP、许可证、位置、储能)
search_power_consumption_soapSOAP是按条件搜索用电设施(邮政编码、州、状态等)
search_gas_production_soapSOAP是按条件搜索天然气生产设施(容量、邮政编码等)
search_gas_consumption_soapSOAP是按条件搜索天然气用户(容量、邮政编码等)
search_actors_soapSOAP是按条件搜索市场参与者(职能、角色、邮政编码等)
get_locationSOAP是位置详情,包括关联设施和电网接入点
get_catalog_valuesSOAP是按类别 ID 获取目录/枚举值(法律形式、制造商等)
get_catalog_categoriesSOAP是列出所有可用的目录类别
get_balancing_areasSOAP是平衡区域(Y-EIC 代码、控制区域),可按配电网运营商筛选
get_grid_connectionSOAP是获取设施的电网接入点(电压等级、位置、同址设施)
search_power_generation_publicJSON否发电设施(27 个筛选键)
search_actors_publicJSON否市场参与者(23 个筛选键)
search_power_consumption_publicJSON否用电设施(29 个筛选键)
search_gas_production_publicJSON否天然气生产/储气设施(30 个筛选键)
search_gas_consumption_publicJSON否天然气用户(30 个筛选键)
search_grid_connections_publicJSON否电网接入点和位置(4 种类型,12–20 个筛选键)
get_local_timeSOAP否连接测试(始终可用)
10 种筛选运算符
后缀运算符说明
(无) / =eq等于(默认)
!=neq不等于
%ct包含
!%nct不包含
:sw以……开头
$ew以……结尾
>gt大于
<lt小于
?null为 NULL
! / !?nn不为 NULL
20 种能源类型

所有技术关键词均提供英文版本(德语别名也可使用):

wind、solar、biomass、hydro、storage、geo、mine_gas、sewage_sludge、 solar_thermal、pressure_relief_gas/pressure_relief_water、natural_gas、hard_coal、lignite、 mineral_oil、other_gases、waste、heat、hydrogen、nuclear。

无需凭据即可使用 7 个公共工具(搜索发电设施、用电设施、天然气生产、天然气消费、市场参与者、电网接入点,以及连接测试)。配置凭据后(.env),会额外注册 14 个 SOAP 工具(详情查询、条件搜索、目录、平衡区域等)。

安装

前置条件
步骤 1:克隆/复制项目
git clone https://github.com/UliRCS/mastr-mcp-server.git
cd mastr-mcp-server
步骤 2:安装依赖

使用 uv(推荐):

uv sync

使用 pip:

pip install -e .
第 3 步:在 .env 中存储凭据

服务器会自动从项目目录中的 .env 文件加载凭据(通过 python-dotenv)。这是推荐的做法。

cp .env.example .env
# Edit .env and fill in your values:
# MASTR_USER=SEM123456789012
# MASTR_TOKEN=your-webservice-token-540-chars

.env 已通过 .gitignore 排除,因此你的令牌不会被提交到代码仓库。

替代方式:你也可以将变量设为操作系统环境变量,或设在 Claude Desktop 配置的 env 块中——操作系统中的值优先。

第 4 步:测试
# Quick test
uv run mastr_mcp_server.py

# Or with the MCP Inspector
npx @modelcontextprotocol/inspector uv run mastr_mcp_server.py

Claude Desktop / Cowork 配置

打开 Claude Desktop 配置文件:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

如果 .env 位于项目目录中,可以省略 env 块:

{
  "mcpServers": {
    "mastr": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/path/to/mastr-mcp-server",
        "mastr_mcp_server.py"
      ]
    }
  }
}

重要: 请将 --directory 下的路径调整为你系统上的实际位置。

Claude Code 配置

claude mcp add mastr \
  --command "uv" \
  --args "run" "--directory" "/path/to/mastr-mcp-server" "mastr_mcp_server.py" \
  --env "MASTR_USER=SOM123456789012" \
  --env "MASTR_TOKEN=your-webservice-token"

使用示例

  • “显示风力涡轮机 SEE966095906064 的详细信息” -> get_unit
  • “查找邮政编码 49074 中的所有太阳能电站” -> search_power_generation_public({'tech': 'solar', 'postcode': '49074'})
  • “邮政编码区域 23... 中,功率在 1200 到 3500 kW 之间的风力涡轮机” -> search_power_generation_public({'tech': 'wind', 'capacity>': 1200, 'capacity<': 3500, 'postcode:': '23'})
  • “没有 EEG 编号的风力涡轮机” -> search_power_generation_public({'tech': 'wind', 'eeg_key?': ''})
  • “邮政编码 49074 中的所有非风力机组” -> search_power_generation_public({'tech!=': '2497', 'postcode': '49074'})
  • “Power-to-Gas 氢气电站” -> search_gas_production_public({'gas_technology': 'Power-to-Gas (Wasserstoff)'})
  • “巴伐利亚的高压用电用户” -> search_power_consumption_public({'bundesland': 'Bayern', 'voltage_level': 'Hochspannung'})
  • “使用 H-Gas 并发电的燃气用户” -> search_gas_consumption_public({'gas_quality': 'H-Gas', 'gas_for_power': True})
  • “下萨克森州接入用户超过 100,000 户的配电网运营商” -> search_actors_public({'function': 'Stromnetzbetreiber', 'dso_large': True, 'bundesland': 'Niedersachsen'})
  • “邮政编码 49074 中,电力发电的中压电网接入点” -> search_grid_connections_public('power_generation', {'postcode': '49074', 'voltage_level': 'Mittelspannung'})
  • “使用 H-Gas 的燃气注入点” -> search_grid_connections_public('gas_production', {'gas_quality': 'H-Gas'})

项目结构

mastr-mcp-server/
├── mastr_mcp_server.py           # Entry point (imports package, starts server)
├── mastr_mcp/                     # Main package
│   ├── __init__.py               # Package init, conditional tool registration
│   ├── config.py                 # Constants, env vars, technology mappings
│   ├── serialization.py          # SOAP->JSON, MS-AJAX date conversion
│   ├── client.py                 # SOAP client, HTTP fetch, retry helper
│   ├── filters.py                # Filter builder, column mappings, dropdown loading
│   ├── server.py                 # FastMCP instance with instructions
│   ├── tools_soap.py             # SOAP tools (14)
│   ├── tools_public.py           # Public JSON tools (7)
│   └── resources.py              # MCP Resources (4)
├── *_dropdowns.json               # Dropdown ID mappings (5 files, from live API)
├── pyproject.toml                 # Dependencies and metadata
├── .env                           # Credentials (not in git)
└── .env.example                  # Credential template

安全说明

  • MaStR 令牌属于机密信息,应保存在 .env 中,绝不能提交到代码仓库。
  • 服务器只执行读取操作(不进行注册或修改)
  • 每日限额:每位用户 100,000 次 SOAP API 调用(公共 JSON 调用不限量)
  • 仅接受 TLS 1.2 连接

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。