mcpField
A
AESO MCP

AESO MCP

ローカル
github.com/bchoi-qweデータ・分析04 週間前に更新

AESO MCP について

aeso-mcpは、アルバータ州の電力データを扱うアナリスト、研究者、開発者、ジャーナリスト、市場参加者向けのオープンソースMCPサーバーです。AESO公式データへの型付きアクセスと、決定論的な市場・電力網分析を組み合わせています。

主な機能

  1. 01現在・過去の市場データ向け型付きツール
  2. 02予測、停止、予備力、レポートの取得
  3. 03価格、発電、市場イベントの分析
  4. 04予測と実績の比較
  5. 05オプションのDuckDBインデックスとParquetスナップショット
  6. 06出典と完全性情報を含む構造化結果

活用シーン

  1. 01アルバータ州の電力価格と系統状況を調査
  2. 02予測と実際の市場観測を比較
  3. 03発電、停止、供給余力を分析
  4. 04アーカイブ市場データで再現可能な調査を実施

MCP 対応

型付きツール、再利用可能なプロンプト、用語集・機能・データセット・方法論のリソースをMCPクライアントに提供します。クライアントはサーバー経由でAESO公式データを照会し、決定論的分析を実行できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"bchoi-qwe-aeso": {
"command": "uvx",
"args": [
"aeso-mcp"
],
"env": {
"AESO_API_KEY": "<AESO_API_KEY>"
}
}
}
}
起動コマンドuvx aeso-mcp
設定が必要な環境変数
AESO_API_KEYシークレットAESO APIM subscription key

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiaeso-mcp0.3.0

ツール

57

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

aeso-mcp

Albertaの電力市場に関する、エージェントネイティブで強い型付けを備えた、公式AESOデータへのアクセスと分析。

独立したオープンソースプロジェクトです。Alberta Electric System Operator(AESO)と提携しておらず、同機関からの承認も受けていません。

概要

aeso-mcp は、Albertaの電力市場に関する観測データと決定論的分析をAIクライアントに提供するModel Context Protocol(MCP)サーバーです。信頼性の高い構造化AESOデータを必要とするエネルギーアナリスト、研究者、開発者、ジャーナリスト、市場参加者、AIエージェント向けに設計されており、単なるRESTの薄いデコレーター層ではありません。

特長

  • Pydanticの入力/出力と構造化された結果を備えた、型付きMCPツール
  • MCP 2026-07-28を対象とした安定版FastMCP 4.0.10ランタイム。FastMCPの接続ごとのネゴシエーションにより、旧式のセッションベースのクライアントにも対応
  • 価格、負荷、発電、連系線潮流、予備力を統合した最新市場スナップショット
  • Pool Price、System Marginal Price、負荷、発電のページネーション対応履歴取得
  • 公式の個別発電設備別Historical CSD Generation Dataを、1時間および5分単位で提供
  • 再現可能な調査向けの、任意の増分DuckDBインデックスとパーティション分割されたParquetスナップショット
  • 公式のAIL、Pool Price、風力、太陽光、および風力/太陽光統合予測の公開情報を、単一の型付きget_forecastコントラクトで提供。公開時点の記録を保持し、公開時系列が不明なデータを除外するポイントインタイムのas_of選択にも対応
  • 公式の供給充足度、供給余剰、FFR Net Schedule、Dispatch Down Service、TMR参照価格、AIESシステムイベントのレポート
  • 公式の過去の充足度/余裕量ウェブコード、送電停止、計画エリア別の1時間単位の負荷/発電、制約量、EEAイベント、運転予備力指令、および最新のPool Participantレジストリを、単一の型付き調査アーカイブコントラクトで提供
  • 認証が必要なAPIMレポート。メリットオーダー、コミットメント、発電能力/停止、連系線、計量済み電力量、運転予備力のオファー制御に対応
  • 決定論的分析:簡潔な履歴要約、期間比較、イベント検出、条件の証拠、価格分布、実現価格、純負荷、供給スタック、発電、停止との関連分析、汎用的な予測精度、発電設備の総エネルギー収益、CSDと計量済みデータの比較、変化率、供給余剰との関連分析、透明性の高い供給逼迫指標に加え、参加者集中度、地域別分析、制約量、需給逼迫、システム周波数の簡潔な分析
  • 決定論的な調査マニフェストにより、複数の情報源を用いた市場イベント分析の正確な入力公開情報、パラメーター、方法論、完全性、性能低下に関する警告を特定
  • 公開されている運転予備力の稼働時/待機時価格、7日間予測、発動、要約
  • サーバーパッケージと起動方法を一つに統合。AESO_API_KEYは常に必須であり、認証情報なしの縮小版サーバーモードはありません
  • クエリ範囲、キャッシュの出所、完全性メタデータ、上流のRetry-After処理、秘密情報を含まない機械可読エラー
  • Host/Origin検証、ベアラー認証(デフォルトでループバック以外へのバインド時に必須)、レート/同時実行数制限、リクエストサイズ上限、プローブ、相関IDを備えた強化済みHTTPトランスポート
  • 再利用可能なMCPプロンプトに加え、用語集、機能、データセット、方法論の各リソース

実装済みデータセット

データセットツール備考
市場スナップショットget_market_snapshot現在の統合ビュー
プール価格get_pool_pricesCAD/MWh、1時間単位
システム限界価格get_system_marginal_pricesCAD/MWh、1分単位
アルバータ州内部負荷get_loadMW、予測は任意
発電量/燃料構成get_generation全燃料の現在値、風力/太陽光の履歴
連系線潮流get_interchange現在の経路別潮流、MW
運転予備力get_reserves現在のMW指標
発電機停止get_outages燃料/技術別の1時間ごとの停止容量
AIES の容量/停止get_generation_capacity1時間ごとのMC、AC、運転中、および休止停止のMW
負荷停止予測get_load_outage_forecast1時間ごとの予測MW
エネルギー merit orderget_energy_merit_order過去のブロック、公開まで60日の遅延
ユニットコミットメントget_unit_commitments発電ユニットのコミットメント指令
連系線容量get_intertie_capability輸入/輸出ATC、TTC、マージン、総オファー
連系線容量の停止get_intertie_outages連系線/フローゲートに影響する停止
計量済み電力量get_metered_volumes資産別の1時間ごとのMWh、IDによる絞り込みは任意
OR オファー制御get_operating_reserve_offer_control過去の予備力オファーブロック、60日の遅延
承認済み送電停止get_approved_transmission_outagesAESO が承認した計画送電停止
長期送電停止get_long_range_transmission_outages暫定的な約24か月先までの重要な停止
MCSINRget_monthly_cumulative_net_revenueオファー上限の発動基準に対する累積純収益
二次オファー上限get_secondary_offer_price_limit二次オファー上限が適用中かどうか
資産get_assetsフィルター付きの登録簿
CSD の過去の発電量get_historical_generation個別資産、運用MWを1時間/5分単位で表示
公式予測get_forecastAIL/プール価格/風力/太陽光。期間と間隔はデータソースごとに異なる
公式調査アーカイブget_research_data過去の需給余力/供給余力、送電、計画エリア、制約、EEA、OR 指令、および現在の参加者記録
供給充足度/供給余力get_supply_adequacy公式の1時間ごとのカテゴリ別ステータス区分
供給余剰get_supply_surplus公式の1時間ごとのゼロ価格予測ステータス
FFR ネットスケジュールget_ffr_net_schedule1時間ごとの計画輸入(負)/輸出(正)、MW
ディスパッチ・ダウン・サービスget_dispatch_down_service公開済みDDS供給可能量、MW
TMR 参照価格get_tmr_reference_price適用日別の公開済み価格、CAD/MWh
AIES システムイベントget_system_events範囲指定可能なイベントログのコメント。イベント終了時刻の推定なし
UC 清算概要get_uc_settlement_summary1時間ごとの金額(CAD)と課金対象MW
OR 価格get_operating_reserve_pricesアクティブ/スタンバイの価格構成要素と取引量
OR 予測get_operating_reserve_forecast現在から7日間の1時間ごとのMW予測
OR 発動get_operating_reserve_activations1時間ごとのスタンバイ取引量と発動価格

分析:summarize_market_history、assess_supply_tightness、compare_market_periods、 find_price_events、explain_market_conditions、compare_forecast_to_actual、 get_price_statistics、get_price_duration_curve、analyze_market_event、 calculate_capture_prices、analyze_net_load、analyze_supply_stack、 analyze_intertie_utilization、analyze_generation_mix、analyze_asset_dispatch、 analyze_outage_impact、analyze_forecast_error、calculate_asset_energy_revenue、 compare_csd_to_metered、analyze_ramps、analyze_supply_surplus_events、 summarize_operating_reserve_market、analyze_participant_concentration、 analyze_regional_load_generation、analyze_constrained_volume、analyze_scarcity、および analyze_system_frequency。

アーキテクチャ

ドキュメントサイトには、包括的なアーキテクチャと MCP Inspector の解説と MCP の相互運用性とセキュリティに関するマトリックスがあります。

MCP clients
    |
    v
FastMCP adapter (aeso_mcp/mcp)
    |
    v
Domain services (market, grid, history, forecasts, reports, research, reserves, operations)
    |
    +---------------+----------------+----------------+----------------+
    |               |                |                |
    v               v                v                v
GridStatus     Direct APIM     Public reports    CSD archive
    |               |           (ets.aeso.ca)      (Box)
    +-------+-------+
            |
            v
      AESO APIM gateway

ドメインコードは FastMCP に依存しません。フレームワークの変更は aeso_mcp/mcp/ 内にとどめてください。 上流のクライアントはすべて、この単一サーバーの実装詳細です。APIM キーは apimgw.aeso.ca にのみ送信され、 許可リストに登録された ETS または Box のホストに送信されることはありません。

要件

インストール

ギャップの一覧については、LIMITATIONS.md を参照してください。

PyPI から(推奨)
export AESO_API_KEY=your-key
uvx aeso-mcp

DuckDB/Parquet による履歴データの増分保存を利用する場合:

uvx --from 'aeso-mcp[analytics]' aeso-mcp
GitHub から

現在のリポジトリのバージョンを直接実行する場合:

export AESO_API_KEY=your-key
uvx --from git+https://github.com/bchoi-qwe/aeso-mcp.git aeso-mcp
開発
git clone https://github.com/bchoi-qwe/aeso-mcp.git
cd aeso-mcp
uv sync --group dev
cp .env.example .env   # set AESO_API_KEY
uv run aeso-mcp
Docker
docker build -t aeso-mcp .
docker run --rm \
  -e AESO_API_KEY=your-key \
  -e AESO_MCP_HTTP_BEARER_TOKEN=replace-with-a-long-random-token \
  -p 8000:8000 \
  aeso-mcp

MCP クライアントの Authorization: Bearer ... ヘッダーに同じトークンを指定してください。イメージは 0.0.0.0 にバインドされるため、デフォルトでベアラー認証が必須です。組み込みの HTTP リスナーは TLS を終端しません。ホスト外からのトラフィックでは、信頼できるリバースプロキシで TLS を終端し、 ベアラー認証情報をパブリックな平文 HTTP 経由で送信しないでください。MCP の相互運用性とセキュリティを参照してください。

AESO API キーの取得

  1. AESO 開発者ポータルで登録します
  2. AESO のパブリック API 製品をサブスクライブします
  3. プライマリ/セカンダリのサブスクリプションキーをコピーします
  4. 環境に AESO_API_KEY を設定します(決してコミットしないでください)

認証情報がない場合は、対処方法を示す起動エラーが表示されます。このキーが MCP ツールを通じて返されたり、ログに記録されたりすることはありません。

MCP クライアント設定の例

ドキュメントサイトのMCP クライアント設定では、Codex、ChatGPT デスクトップアプリ、Claude Desktop、Claude Code、Cursor 用に整備された設定手順を確認できます。

Cursor/Claude Desktop 形式(stdio)
{
  "mcpServers": {
    "aeso": {
      "command": "uvx",
      "args": ["aeso-mcp"],
      "env": {
        "AESO_API_KEY": "your-key"
      }
    }
  }
}
HTTP トランスポート
uv run aeso-mcp --transport http --host 127.0.0.1 --port 8000

HTTP では常に Host と Origin が検証されます。ループバック以外のアドレスへのバインドでは、 AESO_MCP_HTTP_BEARER_TOKEN が設定されていない場合、起動が拒否されます。組み込みリスナーは 平文 HTTP を使用します。信頼できるプライベートネットワークの外部に公開する前に、信頼できる イングレスで TLS を終端してください。リスクを許容する隔離環境向けに、 明示的な AESO_MCP_HTTP_ALLOW_INSECURE_REMOTE=true のオーバーライドもありますが、 デフォルトでは有効になりません。デプロイ時には AESO_MCP_HTTP_ALLOWED_HOSTS と AESO_MCP_HTTP_ALLOWED_ORIGINS も設定してください。/healthz と /readyz に市場データや シークレットが含まれることはありません。実行時の各種制限付き設定については .env.example を参照してください。

プロンプトの例

  • アルバータ州の現在の電力系統の状況はどうなっていますか?
  • 現在のプール価格はいくらですか?
  • 過去 24 時間のアルバータ州のプール価格を表示してください。
  • 今日のプール価格を昨日の価格と比較してください。
  • 今週、価格が最も高かった時間帯はいつですか?
  • 現在、風力と太陽光はそれぞれどれくらい発電していますか?
  • 今週、最も大きな価格急騰の際に何が起きましたか?
  • その事象の間、7 日間の風力発電予測はどれくらい不正確でしたか?
  • その時、AESO は供給余剰または供給余力の逼迫を示すステータスを発表していましたか?
  • この資産の計量済み MWh による総 Pool Price エネルギー収益はいくらですか?
  • 今日の価格上昇に関連する根拠を説明してください。

ツール

ツール目的
get_market_snapshot現在の市場概要
get_pool_prices時間単位の Pool Price 履歴
get_system_marginal_prices分単位の SMP 履歴
get_loadAlberta Internal Load
get_generation燃料構成/再生可能エネルギーの履歴
get_interchange連系線の潮流
get_reserves運転予備力の指標
get_outages燃料別の発電機停止容量(時間単位)
get_generation_capacity燃料別の AIES 設備能力と停止状況のグループ化
get_load_outage_forecast負荷・停止予測(時間単位)
get_energy_merit_orderエネルギーのメリットオーダー・ブロック履歴
get_unit_commitments発電ユニットの起動指令
get_intertie_capability連系線/フローゲートの ATC、TTC、マージン
get_intertie_outages連系線の能力に影響する停止
get_metered_volumes資産別の計量エネルギー
get_operating_reserve_offer_control予備力オファー制御ブロックの履歴
get_approved_transmission_outages承認済みの計画送電停止
get_long_range_transmission_outages暫定的な長期送電停止
get_assets資産レジストリ
get_monthly_cumulative_net_revenue現在の MCSINR 公表データ
get_secondary_offer_price_limit現在のセカンダリーオファー上限価格の状況
compare_market_periods期間ごとの集計比較
find_price_events高価格イベントの検出
explain_market_conditions構造化された根拠(因果関係を説明する文章ではありません)
compare_forecast_to_actualAIL 予測と実績の精度
summarize_market_history価格と負荷に関する時間/日/週/月単位の簡潔な要約
assess_supply_tightness予備力で調整した供給マージンの透明性の高いスクリーニング
get_historical_generation公式の個別資産 CSD アーカイブ履歴
sync_historical_storeDuckDB/Parquet へのローカル増分取り込み
get_historical_store_statusローカルの対象範囲、マニフェスト、パーティションの状況
get_forecast公式の AIL、Pool Price、風力、太陽光、風力/太陽光合算の予測
get_research_data検証済みの公式な履歴/空間/信頼性アーカイブのいずれかから取得する、範囲を限定したページ
get_supply_adequacy公式な供給充足度と市場供給クッションのステータス帯
get_supply_surplus公式の時間単位の供給余剰予測状況
get_ffr_net_scheduleスケジュールされた FFR 連系線送電量の履歴
get_dispatch_down_serviceディスパッチダウンサービスの利用可能性レポート
get_tmr_reference_price公表済み TMR 参照価格
get_system_events範囲を限定した AIES イベントログのメッセージ
get_uc_settlement_summaryUC 金額と請求対象量の公開時間別データ
get_price_statistics価格分布とボラティリティの統計
get_price_duration_curvePool Price の超過曲線
analyze_market_event対象期間と基準期間における複数系列の関連性
calculate_capture_prices発電量で加重した価格と捕捉率
analyze_net_loadAIL から選択した再生可能エネルギー発電量を差し引いた値
analyze_supply_stack過去のオファースタック分析
analyze_intertie_utilization総オファー量から設備能力を推定するプロキシ
analyze_generation_mixCSD による燃料別エネルギーとシェア
analyze_asset_dispatch資産の出力、設備利用率、出力変化
analyze_outage_impact時間単位の停止と価格の関連性
analyze_forecast_error一般的な予測誤差、パーセンタイル、市場時間別・リードタイム別プロファイル
calculate_asset_energy_revenue計量 MWh × Pool Price による総エネルギー収益
compare_csd_to_metered運用上の CSD 出力と計量 MWh の比較
analyze_ramps時間間隔を考慮した AIL、ネット負荷、再生可能エネルギー、または資産の出力変化
analyze_supply_surplus_events明示的な供給余剰状態における価格/負荷/再生可能エネルギーの関連性
get_operating_reserve_pricesアクティブ/スタンバイの価格構成要素と取引量
get_operating_reserve_forecast7 日間の予備力取引量予測
get_operating_reserve_activations時間単位のスタンバイ発動
summarize_operating_reserve_market商品の価格/取引量/発動状況の要約
analyze_participant_concentration現在の参加者マッピングを使用したオファー量シェアと HHI
analyze_regional_load_generation計画地域別および地域別の負荷/発電集計
analyze_constrained_volume計画地域/燃料別の制約対象 MWh と、任意の価格関連性
analyze_scarcity過去の充足度/クッションのウェブコード、EEA、価格状況
analyze_system_frequency10 秒間隔の周波数統計を 6 時間分簡潔に表示。生の行データは出力しません
市場および調査ツールは読み取り専用です。sync_historical_store は、設定されたローカルの履歴ストアルートにのみ書き込みます。AESO やその他の外部システムを変更することはありません。

リソース

URI内容
aeso://glossary市場用語
aeso://datasetsデータセットカタログ
aeso://methodology/pool-pricePool Price の解釈
aeso://methodology/system-marginal-priceSMP の解釈
aeso://capabilitiesツール、プロンプト、リソースの全一覧
aeso://methodology/{dataset}データセット固有の解釈と注意事項

プロンプト:daily_market_brief、investigate_price_event、compare_market_days。

データの意味

  • タイムゾーン:America/Edmonton(AESO 市場時間)。夏時間の切り替え日は、現地時間で 23 時間または 25 時間になる場合があります。
  • 時間間隔:明示的な interval_start / interval_end(リクエストでは半開区間を使用します)。
  • 単位:Pool Price / SMP → CAD/MWh、負荷 / 発電 / 電力融通 / 予備力 → MW。
  • ステータス:メタデータには actual / forecast などが含まれます。予測値が確定済みの実績値として扱われることはありません。
  • 確定性:運用フィードは暫定版の場合があります。最終精算済みであると想定しないでください。
  • 特定時点の予測:as_of は、発行・公開時刻と取得時刻が境界以前と判明しているバージョンのみを選択します。時系列が不明なデータは除外されます。永続化された履歴に存在しない対象時間帯は、後日の公開データで補完されず、未観測のままになります。
  • 完全性:ソースの更新頻度が判明している場合、メタデータには利用可能な系列と欠落している系列、および予想される観測値と欠落している観測値が報告されます。任意の拡充処理に失敗した場合は、警告とともに部分的または劣化した結果として通知されます。
  • ページネーション:価格、SMP、負荷、発電、運用レポートの生データは、next_offset を含む page メタデータを返します。長い生データ系列を取得する前に、summarize_market_history を使用してください。
  • キャッシュのタイミング:retrieved_at は上流からの取得時刻を示します。served_at、cache_hit、cache_age は、レスポンスがいつ、どのように返されたかを示します。
  • 調査の識別情報:analyze_market_event.analysis_manifest には、正確なソース、パラメーター、方法論のバージョン、警告、および決定論的な SHA-256 の analysis_id が記録されます。

開発

uv sync --group dev
uv run ruff check src tests scripts
uv run pyright src
uv run pytest tests/unit tests/contract tests/mcp tests/evals --cov=aeso_mcp
uv run python scripts/generate_catalog.py --check
uv run mkdocs build --strict
uv build

任意のライブテスト:

AESO_API_KEY=... uv run pytest tests/integration -m integration

MCP Inspector:

# Prefer the console entrypoint; or point Inspector at:
# uv run aeso-mcp
npx @modelcontextprotocol/inspector uv run aeso-mcp

テスト

  • tests/unit — 時刻、境界、分析、設定
  • tests/contract — respx を使用した AESO APIM フィクスチャ
  • tests/mcp — ツール/リソースの検出と構造化出力
  • tests/integration — オプトイン方式の AESO ライブ呼び出し

セキュリティ

SECURITY.md を参照してください。主な対策:任意の URL/シェル/SQL ツールを使用しないこと、ホストの許可リスト、シークレットの適切な管理、クエリの制限、stdio での stderr ロギング。

開発状況

バージョン 0.4.0 には、履歴ストア、完全な CSD 発電アダプター、公式の予測/レポートプロバイダー、汎用調査分析、運用予備力市場のインターフェース、評価スイート、ドキュメントサイトが含まれています。また、特定時点の予測バージョン、再現性マニフェスト、リリースポリシーの強化、検証済みの公式調査データアーカイブも含まれています。

貢献

CONTRIBUTING.md を参照してください。

ライセンス

MIT — LICENSE を参照してください。

免責事項

このプロジェクトは、公開されている AESO API への独立したオープンソースインターフェースです。AESO の公式製品ではなく、AESO と提携しておらず、AESO による推奨も受けていません。市場データは暫定版または不完全な場合があります。重要な意思決定については、AESO の公式公開情報で確認してください。

コメント

MCP は初めてですか?

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

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