Enphase Solar MCP Server
Enphase Solar MCPサーバー
Claude Desktopを公式のEnphase Developer API v4に接続するMCPサーバーです。デフォルトでは読み取り専用ですが、オプトインフラグを有効にすることでバッテリーやEV充電器への書き込みも可能です。パスワードのスクレイピングは行わず、OAuth 2.0を使用して自身のシステムデータに安全にアクセスします。
提供機能
30個の読み取りツール(常時有効)(目的別にグループ化):
グループ | ツール |
概要 |
|
累計値 |
|
テレメトリ(間隔) |
|
イベント / ヘルス |
|
読み取り専用設定 |
|
EV充電器 |
|
3個の書き込みツール(ENPHASE_ENABLE_WRITES=1でオプトイン):
ツール | 変更内容 |
| バッテリーのモード/予備電力/スケジュールを変更 |
| Enphase IQ EV充電器を開始 |
| Enphase IQ EV充電器を停止 |
これらは物理的な機器の動作を変更し、元に戻すことはできません。LLMによるハードウェア制御を明示的に希望する場合以外は、オフのままにしてください。
プランとハードウェアの注意点
サブスクリプションプラン: 無料の Watt プランでシステム詳細とサイトレベルの発電量/消費電力量をカバーしており、ほとんどの読み取りツールを使用可能です。デバイスごとのテレメトリ、ストームガード、一部のバッテリーエンドポイントには Kilowatt 以上のプランが必要になる場合があります。特定のツールで401エラーが発生する場合は、プランのアップグレードが必要です。
必要なハードウェア: バッテリーツールには Enphase IQ Battery / Encharge が必要です。EV充電器ツールには Enphase IQ EV充電器が必要です(Tesla Wall Connectorやサードパーティ製充電器はEnphaseからは認識されません)。これらで404エラーが発生する場合は、そのデバイスを所有していないことを意味します。
APIエラーはそのまま伝播されるため、どのケースに該当しているかを確認できます。
Related MCP server: Garmin Connect MCP Server
前提条件
Python 3.11以上
システムが登録されたEnphase Enlightenアカウント
https://developer-v4.enphase.com でのEnphase開発者アカウント(無料のWattプランで十分です — 月間1,000コールまで)
セットアップ
1. 開発者アプリの登録
https://developer-v4.enphase.com にサインアップ
Watt プラン(無料)に登録
新しいアプリケーションを作成
Redirect URI を
https://api.enphaseenergy.com/oauth/redirect_uri(デフォルト)に設定API Key、Client ID、Client Secret を控える
2. システムIDの確認
https://enlighten.enphaseenergy.com にログインし、URLからシステムIDを確認します:
https://enlighten.enphaseenergy.com/web/{SYSTEM_ID}/today
(まだ不明な場合は .env で空欄にしておき、サーバー起動後に get_systems を使用して確認してください。)
3. インストール
cd enphase-mcp
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt4. 認証情報の構成
cp .env.example .env
# Edit .env and fill in API key, client ID, client secret, system ID
# (Optional) uncomment ENPHASE_ENABLE_WRITES=1 to expose write tools.5. 一回限りの認証フローの実行
python auth_setup.pyスクリプトが認証URLを表示します。同じブラウザでEnlightenにログインした状態でそのURLを開き、自身のシステムへのアクセスを承認してください。認証コードが表示されるページにリダイレクトされます。そのコードをコピーしてターミナルに貼り付けてください。
これにより、アクセストークンとリフレッシュトークンを含む tokens.json が作成されます。以降、クライアントはAPI呼び出しのたびに自動的にトークンを更新します。
6. Claude Desktopへの接続
claude_desktop_config.json を編集します:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"enphase": {
"command": "/absolute/path/to/enphase-mcp/.venv/bin/python",
"args": ["/absolute/path/to/enphase-mcp/server.py"]
}
}
}Claude Desktopを完全に再起動します(macOSではウィンドウを閉じるだけでなく、⌘Qで終了してください)。チャット入力欄にツールアイコンが表示されるはずです。「今日と昨日の発電量の比較は?」 や 「今月の最大発電日はいつ?」 といった質問を試してみてください。
トークン更新の動作
アクセストークンの有効期限は1時間です
リフレッシュトークンは約1週間の非アクティブ状態で期限切れになります。APIを呼び出すたびにタイマーがリセットされます
更新に失敗した場合は、再度
python auth_setup.pyを実行してください
オプション: 自動キープアライブ
毎週Enphaseにクエリを送信しない場合は、スケジュールに従って keepalive.py を実行し、リフレッシュトークンを維持できます。これは /systems を1回呼び出し、keepalive.log に記録します。macOSの場合、~/Library/LaunchAgents/com.enphase-mcp.keepalive.plist にLaunchAgentを配置し、venvのPythonと keepalive.py を指定します。StartInterval を 259200(3日)に設定すると、7日間の非アクティブ期間内に約4日の余裕が生まれます。launchctl bootstrap gui/$(id -u) <plist> で読み込んでください。
エンドポイントの追加
Enphase v4 APIの仕様は https://developer-v4.enphase.com/docs に記載されており、完全なSwagger仕様は https://developer-v4.enphase.com/swagger/spec/System_API.json にあります(47のエンドポイントがあります。このサーバーはそのほとんどをラップしていますが、マイクロインバーターごとのテレメトリ、ヒートポンプエンドポイント、マルチシステム検索、および一部の特殊なメーター読み取りエンドポイントは除外しています)。
追加するには、既存のパターンに従って server.py に新しいメソッドを追加してください:
@mcp.tool()
def my_new_tool(some_param: str) -> dict:
"""What this returns."""
sid = client.require_system_id()
return client.get(f"/systems/{sid}/some_endpoint", params={"x": some_param})トラブルシューティング
特定のエンドポイントで401エラー: プランの制限です。ほとんどの読み取りはWattプランで動作しますが、一部はKilowatt以上が必要です。
バッテリー/EV充電器エンドポイントで404エラー: システムにそのハードウェアが搭載されていません。
認証URLで406エラー: ブラウザでEnlightenにログインしていません。先にログインしてから認証URLを再度開いてください。
「No tokens found」: python auth_setup.py を実行してください。
Claudeでツールが表示されない: ~/Library/Logs/Claude/ (macOS) または %APPDATA%\Claude\logs\ (Windows) にあるClaude Desktopのログを確認してください。ほとんどの問題は claude_desktop_config.json 内の絶対パス指定に関連しています。
Related MCP Connectors
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Home energy for AI assistants: live Power flow, Energy history, solar forecast, and device control.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables Claude Desktop to access Tesla vehicle data through the Tessie API. Users can query their car's location, battery level, mileage, driving history, and charging status using natural language.59MIT
- AlicenseBqualityAmaintenanceConnects Claude Desktop to Garmin Connect, enabling natural language queries of fitness activity data, health metrics, sleep analysis, workout management, and device information with 94 available tools.1101MIT
- AlicenseCqualityDmaintenanceConnects Claude with the Tesla Owner API, enabling authentication and data retrieval for Tesla vehicles and solar systems.71MIT
- AlicenseAqualityDmaintenanceEnables real-time solar data from Fronius inverters via Claude, allowing natural language queries about solar production, battery, and grid exchange.51Apache 2.0