
el-mcp-server
by thekuwayama
el-mcp-server
ECHONET Lite の情報を AI から利用可能にする MCP (Model Context Protocol) サーバーです。Go で実装しています。
提供する MCP ツール
4 系統のツール群があります。set_property を除くすべてのツールは読み取り専用(ReadOnlyHint: true)です:
- 仕様検索 — 埋め込み (
//go:embed) MRA JSON をプロセス内で検索 (外部通信なし) - 機器通信 — LAN 上の ECHONET Lite 機器へ UDP で問い合わせ
- 製品検索 — echonet.jp へ HTTP でリクエスト
- UI 表示 — 機器通信結果を MCP Apps 対応クライアントでダッシュボード表示
仕様検索(静的データ)
ECHONET Lite Appendix の公式機械可読版 MRA (Machine Readable Appendix) の JSON データを埋め込んで検索します。
| ツール | 概要 |
|---|---|
search_device_class | 名前・キーワード・EOJ コードで機器クラスを検索 |
list_epc | 機器クラスの EPC(プロパティコード)一覧を取得 |
get_epc_detail | 特定 EPC の詳細(データ型・単位・アクセス規則)を取得 |
収録機器クラス(全 14 クラス):
- ノードプロファイル (
0EF0XX) - 温度センサ (
0011XX) - 湿度センサ (
0012XX) - CO2 センサ (
001BXX) - 家庭用エアコン (
0130XX) - 電気温水器 (
026BXX) - 住宅用太陽光発電 (
0279XX) - 燃料電池 (
027CXX) - 蓄電池 (
027DXX) - 電気自動車充放電器 (
027EXX) - 分電盤メータリング (
0287XX) - 低圧スマート電力量メータ (
0288XX) - 一般照明 (
0290XX) - 電気自動車充電器 (
02A1XX)
ECHONET Lite 機器通信(UDP / LAN)
同一 LAN 上の ECHONET Lite 機器と UDP(ポート 3610)で通信します。
| ツール | 概要 |
|---|---|
discover_devices | マルチキャスト(224.0.23.0)で LAN 内の機器を探索 |
get_property | 指定機器の EPC プロパティ値を Get で取得。EPC 8A(メーカーコード)は manufacturer_name フィールドも自動付与 |
set_property | 指定機器の EPC プロパティ値を SetC(応答あり)で書き込み。機器の実際の状態を変更します(ReadOnlyHint: false / DestructiveHint: true)。書き込み可否・EDT の形式は事前に get_epc_detail で確認してください |
製品検索(HTTP)
| ツール | 概要 |
|---|---|
search_certified_products | echonet.jp の認証登録製品を検索 |
UI 表示(MCP Apps)
| ツール | 概要 |
|---|---|
render_battery_ui | 蓄電池(EOJ 027Dxx)の稼働状態・運転モード・蓄電残量・充放電電力を取得。MCP Apps(SEP-1865)対応クライアントでは ui://el-mcp-server/battery リソースをダッシュボード UI として表示。ダッシュボード上の稼働状態トグルと運転モードのセレクトから set_property を呼び出して機器を操作可能 |
render_solar_ui | 住宅用太陽光発電(EOJ 0279xx)の稼働状態・瞬時発電電力・積算発電/売電電力量・系統連系状態・出力抑制状態を取得。MCP Apps 対応クライアントでは ui://el-mcp-server/solar リソースをダッシュボード UI として表示。仕様上ほとんどのプロパティが読み取り専用のため、render_battery_ui と異なり操作系のコントロールは持たない読み取り専用ダッシュボード |
render_v2h_ui | V2H(電気自動車充放電器、EOJ 027Exx)の稼働状態・運転モード・車載電池残容量・充放電電力・積算充電/放電電力量・車両接続状態を取得。MCP Apps 対応クライアントでは ui://el-mcp-server/v2h リソースをダッシュボード UI として表示。運転モード(EPC DA)・充放電電力(EPC D3)・電池残容量(EPC E4)は蓄電池クラスと同じ EPC 番号・データ形式のため、render_battery_ui と同様に稼働状態トグルと運転モードのセレクトから set_property を呼び出して機器を操作可能。ただし運転モードの列挙値は蓄電池クラスと一部異なる(tools/ui/v2h_decode.go 参照) |
MCP Apps 未対応のクライアント(Claude Code CLI など)では、通常のツール同様に JSON がそのまま返ります。
アーキテクチャ
3 種のツール群はデータの取得方法が異なります。
仕様検索(静的データ)
MRA JSON はビルド時にバイナリへ埋め込まれます。ツール呼び出し時の外部通信はなく、プロセス内で完結します。
sequenceDiagram
participant AI as AI (MCP クライアント)
participant S as el-mcp-server
Note over AI,S: MCP プロトコル (stdio / HTTP)
AI->>+S: tools/call search_device_class / list_epc / get_epc_detail
Note over S: 埋め込み MRA JSON を検索<br/>(外部通信なし)
S-->>-AI: 機器クラス / EPC 定義
ECHONET Lite 機器通信(UDP / LAN)
ツール呼び出しのたびに同一 LAN 上の機器へ UDP でリアルタイムに問い合わせます(オンデマンド型。事前のデータ蓄積はしません)。
sequenceDiagram
participant AI as AI (MCP クライアント)
participant S as el-mcp-server
participant D as ECHONET Lite 機器<br/>(同一 LAN)
Note over AI,S: MCP プロトコル (stdio / HTTP)
AI->>+S: tools/call discover_devices
S->>+D: UDP マルチキャスト 224.0.23.0:3610<br/>Get インスタンスリスト (EPC D6)
D-->>-S: Get_Res (保有オブジェクトの EOJ 一覧)
S-->>-AI: 機器の IP / EOJ 一覧
AI->>+S: tools/call get_property (ip, eoj, epc)
S->>+D: UDP ユニキャスト <ip>:3610<br/>Get (指定 EPC)
D-->>-S: Get_Res (プロパティ値 EDT)
S-->>-AI: プロパティ値 (hex)
AI->>+S: tools/call set_property (ip, eoj, epc, edt)
S->>+D: UDP ユニキャスト <ip>:3610<br/>SetC (指定 EPC, 書き込み値 EDT)
D-->>-S: Set_Res (成功) または SetC_SNA (失敗)
S-->>-AI: 書き込み結果
`discover_dev
Related servers

n8n
Updated todayby n8n-io
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

mcp-server-fetch
OfficialUpdated todayA Model Context Protocol server providing tools to fetch and convert web content for usage by LLMs

@modelcontextprotocol/server-filesystem
OfficialUpdated todayMCP server for filesystem access