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。
请参阅下方的功能状态以获取更多关于特定设备实现状态的细节以及未来即将推出的内容。
待定
您需要在本地创建一个 JavaScript 服务器文件。您的 MCP 客户端将运行此文件,您不需要让服务器一直运行。请参阅下方的 Windows 安装选项 3。
# 克隆仓库
git clone https://github.com/emporiaenergy/emporia-mcp.git
cd emporia-mcp
# 安装依赖并构建项目
npm install && npm run build
要在 MCP 客户端中使用本地 MCP 服务器,将其添加到您的客户端 MCP 配置文件中——推荐使用 NPX(详见下方的本地运行细节)。认证凭据(您的 Emporia Energy 账户)必须通过环境变量或 .env 文件提供。
{
"mcpServers": {
"emporia-mcp": {
"command": "npx",
"args": ["@emporiaenergy/emporia-mcp"],
"env": {
"EMPORIA_ACCOUNT": "<您的邮箱>",
"EMPORIA_PASSWORD": "<您的密码>"
}
}
}
}
您可以在 .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
Windows 上存在一个 NPX 错误,所以请改用 Node。
{
"mcpServers": {
"emporia-mcp": {
"command": "node",
"args": ["C:\\dev\\emporia-mcp-server\\build\\index.js"],
"env": {
"EMPORIA_ACCOUNT": "<您的邮箱>",
"EMPORIA_PASSWORD": "<您的密码>",
"DEBUG": "*"
}
}
}
}
要使用远程 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 数据交互:
listDevices
获取您连接的所有 Emporia Energy 设备的概览 * 此工具提供您设备的综合清单,包括客户信息、设备详情(型号、固件版本)、连接状态和位置数据。使用此工具来发现可用于监控或控制的设备。
示例响应:* 列出所有 Vue 能量监测器、电动汽车充电器和其他 Emporia 设备及其当前状态和配置详情。
getDeviceDetails
获取任何设备类型的实时状态和详细信息 * 此工具返回您任何 Emporia 设备(电动汽车充电器、能量监测器、智能插座、电池等)的详细信息,通过传递一个或多个设备序列号。响应包括每种设备类型的相关详细信息,如连接状态、当前状态、充电速率、固件等。
示例响应:* 对于电动汽车充电器,显示车辆是否已连接、是否正在充电、当前充电速率(安培)和最大可用充电速率。对于能量监测器,显示固件版本、通道数量和设备状态。对于智能插座,显示开/关状态和连接状态。对于电池,显示充电状态、容量和功率流。
getDevicesChannels
获取设备通道和电路配置的详细信息 * 此工具提供您能量监测设备的所有通道的综合信息,包括主分支电路和分支电路。这对于理解您的电气系统结构至关重要。
示例响应:* 返回设备通道配置,显示主分支电路、组合电路和通道命名/编号,这些可以在其他 API 调用中引用。
getDeviceEnergyUsage
分析任何设备或电路随时间的能量消耗 * 此工具检索您任何设备(电动汽车充电器、能量监测器、智能插座、电池等)的历史能量使用数据,具有可定制的时间段和分辨率。对于具有多个电路/通道的设备(如能量监测器或电池),您可以指定要查询的电路。
示例响应:* 返回指定设备和(可选)电路的时间序列能量数据(千瓦时),带有您选择的分辨率(分钟到年)的时间戳和消费值。
getDevicePowerUsage
监控任何设备或电路的实时电力消耗 * 此工具提供电力使用数据,显示您的设备或特定电路在不同时间消耗了多少电力。这对于了解整个电气系统的电力消耗模式至关重要。
示例响应:* 返回指定设备和(可选)电路的时间序列电力数据(瓦特),带有您选择的间隔(分钟或 15 分钟)的时间戳和平均电力值。
getBatteryStateOfCharge
跟踪家用电池随时间的充电水平 * 此工具提供您家用电池存储系统的充电状态(SoC)历史数据,具有可定制的时间段和分辨率。这对于了解电池的充电水平如何随天、周或月波动至关重要。重要提示——仅适用于家用电池系统,不适用于 EVSE/电动汽车 SoC。
示例响应:* 返回电池系统的充电状态时间序列数据(百分比值 0-100%),带有您选择的分辨率(分钟、小时或天)的时间戳和平均充电状态值。
getEVChargingReport
获取您的电动汽车充电活动的综合报告 * 此工具提供详细的报告,关于您的电动汽车充电模式、成本和潜在节省,覆盖指定时间段。这对于了解充电习惯并优化成本节约至关重要。
示例响应:* 返回一份综合报告,包括每日充电总量、单个充电会话、能源使用(千瓦时)、充电成本以及基于公用事业费率计划的潜在节省。
getEVChargerSessions
跟踪您的电动汽车充电器的插拔和充电事件 * 此工具提供详细的关于何时车辆连接到您的电动汽车充电器以及在此连接期间发生的充电会话的信息。这对于了解车辆连接时间和实际充电时间非常有用。
示例响应:* 返回每个充电器的插拔事件列表,包括连接期间每个充电会话的时间戳和能源使用数据。