用于与符合IEEE 2030.5(SEP 2.0)智能能源配置文件服务器交互的模型上下文协议(MCP)服务器。
快速开始: npx -y @prandogabriel/ieee2030.5-mcp
如果你还没有安装 Node.js:
使用 Node 版本管理器(推荐):
# 安装 nvm(macOS/Linux)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 安装并使用 Node.js 20
nvm install 20
nvm use 20
直接下载:
npm install -g pnpm
或者使用 corepack(Node.js 16.10+):
corepack enable
corepack prepare pnpm@latest --activate
要使用此 MCP 服务器,你需要访问一个符合 IEEE 2030.5 标准的服务器,该服务器具有:
常见的 IEEE 2030.5 实现:
对于大多数用户来说,最简单的方法是使用已发布的 npm 包:
确保安装了 Node.js 20+:
node --version # 应该是 20.0.0 或更高
测试服务器:
npx -y @prandogabriel/ieee2030.5-mcp
使用 Claude Desktop 配置 - 请参阅 已发布包配置
为了开发或定制:
检查你的 Node.js 和 pnpm 版本:
node --version # 应该是 20.0.0 或更高
pnpm --version # 应该是 8.0.0 或更高
git clone <repository-url>
cd ieee2030.5-mcp
pnpm install
复制示例环境文件并配置你的 IEEE 2030.5 服务器:
cp .env.example .env
编辑 .env 文件以进行配置。服务器会自动从 .env 文件中加载环境变量:
# 必需:你的 IEEE 2030.5 服务器 URL
IEEE2030_BASE_URL=https://your-ieee2030-server:port
# 必需:认证证书路径(选择一种方式)
# 方案 1:单个 PEM 文件(类似于 curl -E $CTRL_CERT)
IEEE2030_CERT_PATH=/path/to/your/client.pem
# 方案 2:分开的文件
# IEEE2030_CERT_PATH=/path/to/client.crt
# IEEE2030_KEY_PATH=/path/to/client.key
# 可选:安全设置
IEEE2030_INSECURE=true # 开发时使用自签名证书设置为 true
注意:.env 文件会自动被 git 忽略以保证安全。
pnpm build
使用 MCP 检查器进行交互式测试和调试:
# 构建并启动检查器
pnpm debug
这将会:
http://localhost:5173检查器提供了一个 Web UI,你可以:
| 变量 | 描述 | 必需 |
|---|---|---|
IEEE2030_BASE_URL | 你的 IEEE 2030.5 服务器的基础 URL | ✅ 是 |
IEEE2030_CERT_PATH | 证书文件路径(.pem, .crt) | ✅ 证书选项之一 |
IEEE2030_CERT_VALUE | 证书内容作为字符串 | ✅ 证书选项之一 |
IEEE2030_KEY_PATH | 私钥文件路径(如果分开) | ❌ 可选 |
IEEE2030_KEY_VALUE | 私钥内容作为字符串 | ❌ 可选 |
IEEE2030_INSECURE | 跳过 SSL 验证(仅限开发) | ❌ 默认:false |
IEEE2030_TIMEOUT | 请求超时时间(毫秒) | ❌ 默认:30000 |
ieee2030_status - 检查客户端配置状态ieee2030_test_connection - 测试与 IEEE 2030.5 服务器的连接ieee2030_get_device_capabilities - 获取设备能力(/dcap) - 从这里开始发现资源ieee2030_get_end_devices - 获取末端设备(/edev) - 物理设备及其 DERieee2030_get_der_programs - 获取 DER 程序(/derp) - 控制 DER 的程序ieee2030_get_demand_response_programs - 获取需求响应程序(/drp)ieee2030_get_usage_points - 获取使用点(/upt) - 计量位置ieee2030_get_time - 获取服务器时间(/tm) - 服务器时间同步ieee2030_get_custom_endpoint - 使用动态导航访问任何自定义终端ieee2030_navigation_guide - 使用 HATEOAS 原则导航 IEEE 2030.5 资源的全面指南此 MCP 服务器包括一个全面的导航指南,教你如何动态探索 IEEE 2030.5 资源。IEEE 2030.5 标准使用 HATEOAS(超媒体作为应用程序状态引擎)原则,每个响应都包含指向相关资源的链接。
关键导航技巧:
/dcap(设备能力)开始,以发现可用资源href 属性进行导航该项目使用现代开发工具:
# 启动带有自动重载的开发服务器
pnpm dev
# 运行代码检查和格式化
pnpm lint # 检查问题
pnpm lint:fix # 自动修复问题
pnpm format # 检查格式
pnpm format:fix # 修复格式
pnpm check # 运行代码检查和格式检查
pnpm check:fix # 修复代码检查和格式问题
# 为生产构建
pnpm build
# 启动生产服务器
pnpm start
# 开发期间自动重启
pnpm watch
/srcpnpm devpnpm debugpnpm check:fixpnpm build使用此 MCP 服务器最简单的方式是通过已发布的 npm 包。无需克隆或本地构建!
你可以直接使用 npx 运行服务器:
npx -y @prandogabriel/ieee2030.5-mcp
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"ieee2030-5-mcp": {
"command": "npx",
"args": [
"-y",
"@prandogabriel/ieee2030.5-mcp@0.1.0"
],
"env": {
"IEEE2030_BASE_URL": "https://your-ieee2030-server:port",
"IEEE2030_CERT_PATH": "/path/to/your/cert.pem",
"IEEE2030_INSECURE": "true"
}
}
}
}
使用已发布的包的好处:
配置步骤:
https://your-ieee2030-server:port 为你的服务器 URL/path/to/your/cert.pem 为你的证书路径IEEE2030_INSECURE 设置为 "false" 用于生产要将此 MCP 服务器与 Claude Desktop 结合使用,请在你的 Claude Desktop 配置文件中添加以下配置:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"ieee2030-5-mcp": {
"command": "node",
"args": [
"/path/to/your/ieee2030.5-mcp/dist/index.js"
],
"env": {
"IEEE2030_BASE_URL": "https://your-ieee2030-server:port",
"IEEE2030_CERT_PATH": "/path/to/your/cert.pem",
"IEEE2030_INSECURE": "true"
}
}
}
}
配置步骤:
首先构建你的服务器:
cd /path/to/your/ieee2030.5-mcp
pnpm build
更新配置以包含实际路径:
/path/to/your/ieee2030.5-mcp/dist/index.js 为你的构建服务器的实际路径https://your-ieee2030-server:port 为你的实际 IEEE 2030.5 服务器 URL/path/to/your/cert.pem 为你的客户端证书路径重新启动 Claude Desktop 使更改生效
测试连接:
启动检查器:
pnpm debug
测试 ieee2030_get_device_capabilities:
http://localhost:5173 打开检查器ieee2030_get_device_capabilities测试自定义终端:
ieee2030_get_custom_endpoint/dcap,/tm,/drp访问导航指南:
ieee2030_navigation_guide你也可以使用 MCP SDK 程序化地连接到你的 MCP 服务器:
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
import { spawn } from 'node:child_process';
// 启动你的服务器进程
const serverProcess = spawn('node', ['dist/index.js