PyPSA MCP: Energy Modeling for LLMs について
PyPSA MCPは、LLMとPyPSAをつなぐMCPサーバーで、エネルギーシステムのモデリングと分析に使えます。自然言語でモデルを構築し、潮流計算や最適化を実行して結果を分析できます。
主な機能
- 01エネルギーモデルの作成と管理
- 02ネットワークコンポーネントの追加と設定
- 03シミュレーション時系列の設定
- 04潮流計算と最適化の実行
- 05分析結果の抽出とエクスポート
活用シーン
- 01自然言語で電力システムモデルを構築
- 02負荷と発電の時系列データを設定
- 03ネットワーク潮流の確認と運用の最適化
MCP 対応
モデル管理、コンポーネント作成、シミュレーション、最適化、結果分析のツールを公開し、LLMがPyPSAを操作できるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
PyPSA MCP
PyPSA MCP は、PyPSA(Python for Power System Analysis)を使用してエネルギーシステムモデルを作成、分析、最適化するための Model Context Protocol(MCP)サーバーです。
Model Context Protocol(MCP) サーバーであり、Claude などの LLM が PyPSA と連携し、自然言語を介してエネルギーモデルの作成と分析を行えるようにします。
デモ例
以下は、Claude で PyPSA MCP を使用する方法を示すデモ動画です。この動画では、シンプルな 2 バスモデルの作成、潮流計算の実行、最適化の実施を実演しています。
https://github.com/user-attachments/assets/5633a431-7c3b-4a2f-9a9e-395dcbbb2e29
デモ用プロンプト
このプロンプトを Claude でそのまま試すと、動画で示されている例を再現できます。
I'd like to build an energy system model and perform optimization using PyPSA. Please help me with these steps:
1. Create a simple two-bus model with:
1. Two buses at (0,0) and (100,0) with 220 kV nominal voltage
2. A generator at bus1 with 100 MW capacity and 50 €/MWh cost
3. A load at bus2 with 80 MW demand
4. 24 hourly snapshots for January 1, 2025
2. Run a power flow calculation to verify the model
3. Perform optimization with the highs solver using the kirchhoff formulation
4. Discuss the results
概要
PyPSA MCP は、LLM と PyPSA の間の橋渡しを提供し、次のことを可能にします。
- 自然言語を介してエネルギーシステムモデルを作成および管理する
- バス、発電機、送電線などのネットワークコンポーネントを追加する
- シミュレーション用の時系列データを設定する
- 潮流計算と最適化計算を実行する
- 結果を分析する
機能
-
モデル管理
- 新しい PyPSA エネルギーモデルを作成する
- 利用可能なモデルを一覧表示して選択する
- 詳細なモデルサマリーをエクスポートする
- 不要になったモデルを削除する
-
コンポーネント作成
- バス、発電機、負荷、その他のネットワークコンポーネントを追加する
- 自然言語を介してコンポーネントパラメータを設定する
- 既存のコンポーネントを変更する
- コンポーネントを意味のあるグループに整理する
-
データとシミュレーション
- シミュレーション期間のタイムスナップショットを設定する
- 負荷と発電機の時系列データを追加する
- 潮流計算を実行する
- さまざまなソルバーと定式化による最適化を実行する
-
結果分析
- シミュレーション結果から主要な指標を抽出する
- モデルパフォーマンスのサマリーを生成する
- さらなる分析のためにデータをエクスポートする
インストール
前提条件
- Python 3.10 以上
- uv(依存関係を簡単に管理するために推奨)
メインインストール(PyPI)
# Install from PyPI
pip install pypsamcp
# Or using uv (recommended)
uv pip install pypsamcp
PyPSA MCP の実行
# Run using the installed package
pypsamcp
Claude Desktop での設定
-
Claude Desktop の設定ファイルを探します(通常は
~/.config/Claude/config.jsonにあります) -
mcpServersセクションに PyPSA MCP を追加します。"mcpServers": { "PyPSA MCP":{ "command": "uv", # Sometimes /path/to/local/uv (remove this comment) "args": [ "run", "--with", "pypsamcp", "pypsamcp" ] } } -
設定ファイルを保存し、Claude Desktop を再起動します
開発用インストール(GitHub から)
コードを変更したいコントリビューターまたはユーザー向け:
# Clone the repository
git clone https://github.com/cdgaete/pypsa-mcp.git
cd pypsa-mcp
# Install development dependencies with uv
uv pip install -e ".[dev]"
開発モードでの実行
# Run the server directly
python -m pypsamcp.server
利用可能なツール
このサーバーは次の MCP ツールを提供します。
モデル管理
create_energy_model(
id: str,
name: str = None,
description: str = None
)
list_models()
delete_model(
id: str
)
export_model_summary(
id: str,
include_components: bool = True,
include_parameters: bool = True
)
コンポーネント作成
add_bus(
model_id: str,
name: str,
v_nom: float,
x: float = 0.0,
y: float = 0.0,
carrier: str = "AC"
)
add_generator(
model_id: str,
name: str,
bus: str,
p_nom: float,
marginal_cost: float = 0.0,
carrier: str = "generator"
)
add_load(
model_id: str,
name: str,
bus: str,
p_set: float
)
add_line(
model_id: str,
name: str,
bus0: str,
bus1: str,
x: float,
r: float = 0.0,
g: float = 0.0,
b: float = 0.0,
s_nom: float = 0.0
)
add_storage(
model_id: str,
name: str,
bus: str,
p_nom: float,
max_hours: float,
efficiency_store: float = 1.0,
efficiency_dispatch: float = 1.0,
standing_loss: float = 0.0
)
データとシミュレーション
set_snapshots(
model_id: str,
start_time: str,
end_time: str,
freq: str = "H"
)
run_powerflow(
model_id: str,
snapshot: str = None
)
run_optimization(
model_id: str,
solver_name: str = "glpk",
formulation: str = "kirchhoff"
)
プロンプト例
以下は、Claude で PyPSA MCP を使用する方法のいくつかの例です。
Create a new energy system model with three buses, two generators, and a load.
Add a wind generator with 100 MW capacity to bus "bus1" with a marginal cost of 10.
Run a power flow calculation on the current model and show me the results.
Optimize the model using the GLPK solver and summarize the key findings.
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています - 詳細については LICENSE ファイルを参照してください。
謝辞
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。