Command Palette

Search for a command to run...

Home / Servers

el-mcp-server

by thekuwayama

el-mcp-server

Actions Status

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_productsechonet.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_uiV2H(電気自動車充放電器、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 today

by n8n-io

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

NOASSERTION199,059

mcp-server-fetch

OfficialUpdated today

by modelcontextprotocol

A Model Context Protocol server providing tools to fetch and convert web content for usage by LLMs

89,138

@modelcontextprotocol/server-filesystem

OfficialUpdated today

by modelcontextprotocol

MCP server for filesystem access

SEE LICENSE IN LICENSE89,138

@modelcontextprotocol/server-everything

OfficialUpdated today

by modelcontextprotocol

MCP server that exercises all the features of the MCP protocol

89,138