mcpField
P
PyPSA MCP: Energy Modeling for LLMs

PyPSA MCP: Energy Modeling for LLMs

ローカル
github.com/cdgaete科学・教育7432 週間前に更新

PyPSA MCP: Energy Modeling for LLMs について

PyPSA MCPは、LLMとPyPSAをつなぐMCPサーバーで、エネルギーシステムのモデリングと分析に使えます。自然言語でモデルを構築し、潮流計算や最適化を実行して結果を分析できます。

主な機能

  1. 01エネルギーモデルの作成と管理
  2. 02ネットワークコンポーネントの追加と設定
  3. 03シミュレーション時系列の設定
  4. 04潮流計算と最適化の実行
  5. 05分析結果の抽出とエクスポート

活用シーン

  1. 01自然言語で電力システムモデルを構築
  2. 02負荷と発電の時系列データを設定
  3. 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 の間の橋渡しを提供し、次のことを可能にします。

  1. 自然言語を介してエネルギーシステムモデルを作成および管理する
  2. バス、発電機、送電線などのネットワークコンポーネントを追加する
  3. シミュレーション用の時系列データを設定する
  4. 潮流計算と最適化計算を実行する
  5. 結果を分析する

機能

  • モデル管理

    • 新しい 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 での設定
  1. Claude Desktop の設定ファイルを探します(通常は ~/.config/Claude/config.json にあります)

  2. mcpServers セクションに PyPSA MCP を追加します。

    "mcpServers": {
      "PyPSA MCP":{
        "command": "uv",  # Sometimes /path/to/local/uv (remove this comment)
        "args": [
          "run",
          "--with",
          "pypsamcp",
          "pypsamcp"
        ]
      }
    }
    
  3. 設定ファイルを保存し、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 ファイルを参照してください。

謝辞

  • 電力システムモデリングのために PyPSA 上に構築されています
  • Model Context Protocol の実装に FastMCP を使用しています
  • 自然言語インターフェースを通じてエネルギーシステムモデリングをより身近にする必要性に触発されています

コメント

MCP は初めてですか?

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

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