返回市场
边缘计算平台-mcp

边缘计算平台-mcp

作者:emporiaenergy5 星标更新:2025-08-27

项目介绍

Emporia Energy MCP Server

Emporia Energy MCP Server 提供了一种安全的方式让大型语言模型应用程序访问您的 Emporia Energy 设备数据。此 MCP 服务器实现处于测试阶段,并可能在未来进行更改。

此 MCP 服务器支持多种传输方式:本地标准 I/O(类似于命令行程序的本地执行),传统的服务端发送事件(SSE)以及可流式传输的 HTTP。对于远程传输,认证使用与 API 相同的承载令牌。OAuth 也支持远程传输(参见下面的“使用远程 MCP”部分)。

此 MCP 服务器针对 Emporia Energy 客户云——它不支持合作伙伴相关的行为。

Emporia Energy 欲听取您对本工具(或我们正在开发的其他内容)的任何反馈或建议。如有任何问题或想法,请通过电子邮件 info@emporiaenergy.com 联系我们。

要了解更多关于 Emporia Energy 和我们正在构建的内容——请访问我们的网站 www.emporiaenergy.com。我们还提供了一个相当全面的知识库,有关我们的产品和平台的信息可以在这里找到:help.emporiaenergy.com

功能

  • 带有自动令牌刷新的安全认证
  • 包含详尽设备信息的设备列表
  • 可配置时间尺度和能量单位的能量和功率测量/使用数据检索
  • 带有上下文信息的结构良好的 API 响应
  • 针对电动汽车充电器的额外工具,用于会话/报告详情

请参阅下方的功能状态以获取更多关于特定设备实现状态的细节以及未来即将推出的内容。

⚠️ 重要提示

  • 对于此 MCP 服务器的测试版实现,您必须拥有一个原生的 Emporia Energy 账户。如果您使用 Google 或 Apple 作为第三方身份验证提供商创建了 Emporia 账户,则无法使用。短期内,您可以创建一个新的账户(使用邮箱/密码),并通过 Emporia Energy 的 网页移动应用 将您的 Emporia 设备分享到新账户。我们预计未来的 MCP 服务器程序版本将为这些第三方提供商账户提供更多灵活性。
  • 与许多设备关联的 Emporia 账户(> 20)可能会遇到短上下文窗口和长 API 响应的问题。同样,请求大量测量数据可能会产生过大的 API 响应,这可能会给某些客户端和上下文受限的大型语言模型带来问题。
  • 大型语言模型可能不可靠。虽然此 MCP 服务器程序将从云端提供准确的 Emporia 数据,但大型语言模型对这些数据的解释(和请求)有时可能是错误的。

示例

待定

技巧/窍门

  • 请求特定日期/时间的测量数据时要详细。一些客户端/大型语言模型可能不会在其提示过程中提供最新的时间戳,因此指定确切的时间段通常是有帮助的。
    • 例如,不要说“显示上周的使用情况”,而应该说“显示从2025年5月1日至2025年5月10日的使用情况”
  • 如果您需要功率或能量测量/使用数据,请明确指出,因为它们有不同的端点/工具(并且根据您的目标,将用于不同的目的)。
    • 例如,不要说“显示使用情况”,而应该说“显示能量使用情况”或“显示功率测量值”

发布说明

  • 2025年5月23日 - 初始发布
  • 2025年8月26日 - 远程 MCP 发布(SSE 和可流式传输的 HTTP)

先决条件

  • Node.js 18+(未来可能提供基于 Docker 的安装选项)
  • 一个 Emporia Energy 账户(原生账户,非 Google/Apple 创建)
  • 一个支持 MCP 的 AI 客户端程序(如 Claude Desktop、Cursor/Windsurf/VS Code、LM Studio/OpenWebUI 等)

使用方法

在本地生成 MCP 服务器文件

您需要在本地创建一个 JavaScript 服务器文件。您的 MCP 客户端将运行此文件,您不需要让服务器一直运行。请参阅下方的 Windows 安装选项 3。

# 克隆仓库
git clone https://github.com/emporiaenergy/emporia-mcp.git
cd emporia-mcp

# 安装依赖并构建项目
npm install && npm run build

在 MCP 客户端中配置

要在 MCP 客户端中使用本地 MCP 服务器,将其添加到您的客户端 MCP 配置文件中——推荐使用 NPX(详见下方的本地运行细节)。认证凭据(您的 Emporia Energy 账户)必须通过环境变量或 .env 文件提供。

选项 1:直接环境变量

{
  "mcpServers": {
    "emporia-mcp": {
      "command": "npx",
      "args": ["@emporiaenergy/emporia-mcp"],
      "env": {
        "EMPORIA_ACCOUNT": "<您的邮箱>",
        "EMPORIA_PASSWORD": "<您的密码>"
      }
    }
  }
}

选项 2:使用 .env 文件

您可以在 .env 文件中提供您的凭据,并使用 ENV_FILE 环境变量指定其路径:

{
  "mcpServers": {
    "emporia-mcp": {
      "command": "npx",
      "args": ["@emporiaenergy/emporia-mcp"],
      "env": {
        "ENV_FILE": "/path/to/your/.env"
      }
    }
  }
}

示例 .env 文件内容:

EMPORIA_ACCOUNT=example@email.com
EMPORIA_PASSWORD=examplepassword1234

选项 3:在 Windows 上使用 Node

Windows 上存在一个 NPX 错误,所以请改用 Node。

{
  "mcpServers": {
    "emporia-mcp": {
      "command": "node",
      "args": ["C:\\dev\\emporia-mcp-server\\build\\index.js"],
      "env": {
        "EMPORIA_ACCOUNT": "<您的邮箱>",
        "EMPORIA_PASSWORD": "<您的密码>",
        "DEBUG": "*"
      }
    }
  }
}

使用远程 MCP

要使用远程 MCP 服务器,您必须使用支持通过 SSE 或可流式传输的 HTTP 传输的远程 MCP 的 MCP 客户端,例如通过 Anthropic API 的 Claude 或 Claude Desktop(仅限高级计划)。Emporia 远程 MCP 服务器可通过 https://mcp.emporiaenergy.com/streamable(可流式传输的 HTTP)或 https://mcp.emporiaenergy.com/sse(传统 SSE)访问。根据所使用的客户端,您可以使用 OAuth 来认证您的 MCP 请求。请注意,某些客户端可能仅支持 OAuth 认证的可流式传输传输。对于像通过 Anthropic API 的 Claude 这样的 API 客户端,您必须在请求中传递从 OAuth 流程中获取的身份验证令牌。

功能状态

类别功能状态
认证账户/密码(作为环境变量)✅ 已提供
账户/密码(作为 .ENV 文件)✅ 已提供(仅本地)
OAuth✅ 已提供(仅远程)
第三方认证提供商🔄 待定
账户信息列出设备✅ 已提供
计费计划信息🔄 待定
推荐🔄 待定
设备详情能量监测器(带通道)✅ 已提供
电动汽车充电器✅ 已提供
智能插座✅ 已提供
家用电池✅ 已提供
家电❌ 未提供
恒温器❌ 未提供
测量能量监测器✅ 已提供
电动汽车充电器✅ 已提供
智能插座✅ 已提供
家用电池(包括 SoC)✅ 已提供
更新设置/控制能量监测器❌ 未提供
电动汽车充电器🔄 待定
智能插座🔄 待定
家用电池🔄 待定
家电❌ 未提供
恒温器❌ 未提供
附加功能电动汽车充电报告✅ 已提供
电动汽车充电器会话✅ 已提供
MCP 实现通过 NPM✅ 已提供
通过 Docker🔄 待定
Python (UV)❌ 未提供
工具配置(启用/禁用)🔄 待定
远程 SSE✅ 已提供
远程可流式传输的 HTTP✅ 已提供

可用工具

该服务器提供了以下工具,以帮助 AI 助手与您的 Emporia Energy 数据交互:

  1. listDevices

    • 获取您连接的所有 Emporia Energy 设备的概览 * 此工具提供您设备的综合清单,包括客户信息、设备详情(型号、固件版本)、连接状态和位置数据。使用此工具来发现可用于监控或控制的设备。

    • 示例响应:* 列出所有 Vue 能量监测器、电动汽车充电器和其他 Emporia 设备及其当前状态和配置详情。

  2. getDeviceDetails

    • 获取任何设备类型的实时状态和详细信息 * 此工具返回您任何 Emporia 设备(电动汽车充电器、能量监测器、智能插座、电池等)的详细信息,通过传递一个或多个设备序列号。响应包括每种设备类型的相关详细信息,如连接状态、当前状态、充电速率、固件等。

    • 示例响应:* 对于电动汽车充电器,显示车辆是否已连接、是否正在充电、当前充电速率(安培)和最大可用充电速率。对于能量监测器,显示固件版本、通道数量和设备状态。对于智能插座,显示开/关状态和连接状态。对于电池,显示充电状态、容量和功率流。

  3. getDevicesChannels

    • 获取设备通道和电路配置的详细信息 * 此工具提供您能量监测设备的所有通道的综合信息,包括主分支电路和分支电路。这对于理解您的电气系统结构至关重要。

    • 示例响应:* 返回设备通道配置,显示主分支电路、组合电路和通道命名/编号,这些可以在其他 API 调用中引用。

  4. getDeviceEnergyUsage

    • 分析任何设备或电路随时间的能量消耗 * 此工具检索您任何设备(电动汽车充电器、能量监测器、智能插座、电池等)的历史能量使用数据,具有可定制的时间段和分辨率。对于具有多个电路/通道的设备(如能量监测器或电池),您可以指定要查询的电路。

    • 示例响应:* 返回指定设备和(可选)电路的时间序列能量数据(千瓦时),带有您选择的分辨率(分钟到年)的时间戳和消费值。

  5. getDevicePowerUsage

    • 监控任何设备或电路的实时电力消耗 * 此工具提供电力使用数据,显示您的设备或特定电路在不同时间消耗了多少电力。这对于了解整个电气系统的电力消耗模式至关重要。

    • 示例响应:* 返回指定设备和(可选)电路的时间序列电力数据(瓦特),带有您选择的间隔(分钟或 15 分钟)的时间戳和平均电力值。

  6. getBatteryStateOfCharge

    • 跟踪家用电池随时间的充电水平 * 此工具提供您家用电池存储系统的充电状态(SoC)历史数据,具有可定制的时间段和分辨率。这对于了解电池的充电水平如何随天、周或月波动至关重要。重要提示——仅适用于家用电池系统,不适用于 EVSE/电动汽车 SoC。

    • 示例响应:* 返回电池系统的充电状态时间序列数据(百分比值 0-100%),带有您选择的分辨率(分钟、小时或天)的时间戳和平均充电状态值。

  7. getEVChargingReport

    • 获取您的电动汽车充电活动的综合报告 * 此工具提供详细的报告,关于您的电动汽车充电模式、成本和潜在节省,覆盖指定时间段。这对于了解充电习惯并优化成本节约至关重要。

    • 示例响应:* 返回一份综合报告,包括每日充电总量、单个充电会话、能源使用(千瓦时)、充电成本以及基于公用事业费率计划的潜在节省。

  8. getEVChargerSessions

    • 跟踪您的电动汽车充电器的插拔和充电事件 * 此工具提供详细的关于何时车辆连接到您的电动汽车充电器以及在此连接期间发生的充电会话的信息。这对于了解车辆连接时间和实际充电时间非常有用。

    • 示例响应:* 返回每个充电器的插拔事件列表,包括连接期间每个充电会话的时间戳和能源使用数据。