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 サーバーです。MaStR は、ドイツ連邦ネットワーク庁(Bundesnetzagentur)が運営するドイツのエネルギー市場マスターデータ登録簿です。Claude Desktop、Cowork、Claude Code からドイツの発電設備登録簿に直接アクセスできます。

ドイツ語版 / 英語版

特長

21 個のツール — SOAP 14 個(認証情報が必要)、公開ツール 7 個(常時利用可能)
ツールAPI認証説明
get_unitSOAPはいEEG、CHP、許可、蓄電の情報を含むユニットの詳細を 1 回の呼び出しで取得
search_power_generation_soapSOAPはい発電設備の条件付き検索(20 種類すべてのエネルギー源、郵便番号、容量)
get_actorSOAPはいMaStR 番号で市場参加者の詳細を取得
get_api_quotaSOAPはい1 日あたりの 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 コード、制御エリア)。DSO による絞り込みも可能
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より小さい
?nullNULL である
! / !?nnNULL ではない
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)は、追加の SOAP ツール 14 個(詳細取得、条件付き検索、カタログ、バランシングエリアなど)が登録されます。

インストール

前提条件
ステップ 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 に保存する

サーバーは、(python-dotenv を介して)プロジェクトディレクトリ内の .env ファイルから認証情報を自動的に読み込みます。これが推奨される方法です。

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

.env は .gitignore で除外されているため、トークンがリポジトリに含まれることはありません。

別の方法:OS の環境変数、または Claude Desktop の設定の env ブロックにも変数を設定できます。OS の値が優先されます。

ステップ 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 に保存し、リポジトリには決して含めないでください。
  • サーバーは読み取り操作のみを実行します(登録や変更は行いません)。
  • 1 日あたりの上限:ユーザーごとに SOAP API 呼び出し 100,000 回(公開 JSON は無制限です)。
  • TLS 1.2 接続のみ受け付けます。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。