IEEE 2030.5 MCP服务器
用于与IEEE 2030.5(SEP 2.0)智能能源配置文件服务器交互的模型上下文协议(MCP)服务器。
](https://badge.fury.io/js/@prandogabriel%2Fieee2030.5-mcp) 
快速入门: npx -y @prandogabriel/ieee2030.5-mcp
目录
- 系统要求 - - - IEEE 2030.5服务器要求
- 选项1:使用已发布的包(最快) - 选项2:地方发展设置
- 连接和状态工具 - IEEE 2030.5资源工具 - 可用MCP提示
- 使用已发布的软件包(推荐) - 使用Claude Desktop(本地开发) - 使用MCP检查器 - 程序化使用
- 入门指南 - 开发指南 - 贡献领域 - 贡献工作流程 - 架构概述 - 社区指南 - 获取帮助
特性
- 🔐 基于证书的身份验证(单个.pem或单独的证书/密钥文件)
- 📡 完全支持IEEE 2030.5端点
- 🛠️ 用于所有主要IEEE 2030.5资源的MCP工具
- 🎯 基于HATEOAS的导航,具有全面的指南
- ⚙️ 基于环境的配置
- 🧪 内置测试客户端和MCP检查器支持
先决条件
系统要求
- Node.js:版本20.0.0或更高版本
- 程序包管理器:pnpm(推荐)或npm
- 操作系统:macOS、Linux或Windows
安装Node.js
如果你没有安装Node.js:
使用节点版本管理器(推荐):
# Install nvm (macOS/Linux)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Install and use Node.js 20
nvm install 20
nvm use 20直接下载:
- 下载自 (推荐LTS版本)
安装pnpm
npm install -g pnpm或者使用核心包(Node.js 16.10+):
corepack enable
corepack prepare pnpm@latest --activateIEEE 2030.5服务器要求
要使用此MCP服务器,您需要访问符合IEEE 2030.5标准的服务器,该服务器具有:
- HTTPS端点 (通常为端口8443)
- 客户端证书身份验证 (推荐.pem格式)
- 符合IEEE 2030.5/SEP 2.0标准 具有标准端点
常见的IEEE 2030.5实现:
- OpenADR VEN/VTN服务器
- 智能逆变器管理系统
- 公用事业需求响应平台
- 分布式能源管理系统
快速开始
选项1:使用已发布的包(最快)
对于大多数用户来说,最简单的方法是使用已发布的npm包:
- 确保已安装Node.js 20+:
node --version # Should be 20.0.0 or higher- 测试服务器:
npx -y @prandogabriel/ieee2030.5-mcp- 使用Claude Desktop进行配置 -看 已发布的包配置
选项2:地方发展设置
对于开发或定制:
1.验证要求
检查你的Node.js和pnpm版本:
node --version # Should be 20.0.0 or higher
pnpm --version # Should be 8.0.0 or higher2.克隆和安装
git clone
cd ieee2030.5-mcp
pnpm install3.配置环境
复制示例环境文件并配置IEEE 2030.5服务器:
cp .env.example .env编辑 .env 根据您的配置。服务器将自动从以下位置加载环境变量 .env 文件:
# REQUIRED: Your IEEE 2030.5 server URL
IEEE2030_BASE_URL=https://your-ieee2030-server:port
# REQUIRED: Certificate for authentication (choose one option)
# Option 1: Single PEM file (like curl -E $CTRL_CERT)
IEEE2030_CERT_PATH=/path/to/your/client.pem
# Option 2: Separate files
# IEEE2030_CERT_PATH=/path/to/client.crt
# IEEE2030_KEY_PATH=/path/to/client.key
# Optional: Security settings
IEEE2030_INSECURE=true # Set to true for development with self-signed certs注: 这 .env 出于安全考虑,git会自动忽略该文件。
4.建设项目
pnpm build5.测试服务器
使用MCP检查器进行交互式测试和调试:
# Build and start the inspector
pnpm debug这将:
- 构建您的服务器
- 在浏览器中打开MCP检查器
http://localhost:5173 - 连接到IEEE 2030.5 MCP服务器
检查器提供了一个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 |
可用的MCP工具
连接和状态工具
ieee2030_status-检查客户端配置状态ieee2030_test_connection-测试与IEEE 2030.5服务器的连接
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-通过动态导航访问任何自定义端点
可用MCP提示
ieee2030_navigation_guide-使用HATEOAS原则浏览IEEE 2030.5资源的综合指南
IEEE 2030.5导航
此MCP服务器包括一个全面的导航指南,教您如何动态探索IEEE 2030.5资源。IEEE 2030.5标准使用HATEOAS(超媒体作为应用状态引擎)原则,其中每个响应都包含指向相关资源的链接。
关键导航提示:
- 始终从以下内容开始
/dcap(设备功能)以发现可用资源 - 动态跟踪链接 -使用
href导航响应中的属性 - 使用自定义端点工具 访问任何已发现的路径
- 查看导航提示 有关详细的示例和模式
发展
发展依赖性
本项目使用现代开发工具:
- TypeScript:类型安全的JavaScript开发
- esb构建:快速捆绑和编译
- 生物群系:快速换行和格式化(取代ESLint+Prettier)
- 节点:开发过程中自动重启
- MCP检查员:交互式测试和调试
开发命令
# Start development server with auto-reload
pnpm dev
# Run linting and formatting
pnpm lint # Check for issues
pnpm lint:fix # Fix issues automatically
pnpm format # Check formatting
pnpm format:fix # Fix formatting
pnpm check # Run both lint and format checks
pnpm check:fix # Fix both lint and format issues
# Build for production
pnpm build
# Start production server
pnpm start
# Development with auto-restart
pnpm watch开发工作流程
- 进行更改 源代码在
/src - 运行开发服务器:
pnpm dev - 使用MCP检查员进行测试:
pnpm debug - 格式和lint:
pnpm check:fix - 为生产而建:
pnpm build
使用示例
使用已发布的软件包(推荐)
使用此MCP服务器的最简单方法是通过已发布的npm包。无需克隆或本地构建!
使用npx(快速入门)
您可以直接使用npx运行服务器:
npx -y @prandogabriel/ieee2030.5-mcpClaude桌面配置(已发布包)
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 窗户: %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"
}
}
}
}使用已发布包的好处:
- ✅ 无需本地设置 -只需安装并运行
- ✅ 始终保持最新状态 -指定版本或使用最新版本
- ✅ 自动依赖关系管理 -npx处理一切
- ✅ 跨平台兼容性 -适用于任何使用Node.js的系统
配置步骤:
- 确保已安装Node.js 20+ (参见 先决条件)
- 将配置添加到Claude Desktop 使用上面的JSON
- 更新环境变量 您的IEEE 2030.5服务器详细信息:
- 替换 https://your-ieee2030-server:port 使用您的服务器URL - 替换 /path/to/your/cert.pem 使用您的证书路径 - 集 IEEE2030_INSECURE 向 "false" 用于生产
- 重新启动克劳德桌面
- 测试连接:
- 询问Claude:“检查IEEE 2030.5服务器状态” - 问克劳德:“给我看看IEEE 2030.5资源的导航指南”
使用Claude Desktop(本地开发)
要将此MCP服务器与Claude Desktop一起使用,请将以下配置添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 窗户: %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:“检查IEEE 2030.5服务器状态” - 问Claude:“从IEEE 2030.5服务器获取设备功能” - 问克劳德:“给我看看IEEE 2030.5资源的导航指南”
使用MCP检查器
- 启动检查器:
pnpm debug- 测试ieee2030_get_device_capabilities:
- 打开检查器 http://localhost:5173 - 点击“工具”选项卡 - 找到 ieee2030_get_device_capabilities 在列表中 - 点击“执行”测试工具 - 查看JSON格式的IEEE 2030.5 XML响应
- 测试自定义端点:
- 选择 ieee2030_get_custom_endpoint - 输入端点路径,如下所示 /dcap, /tm, /drp - 执行并查看结果
- 访问导航指南:
- 点击“提示”选项卡 - 找到 ieee2030_navigation_guide - 单击查看浏览IEEE 2030.5资源的综合指南
程序化使用
您还可以使用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';
// Start your server process
const serverProcess = spawn('node', ['dist/index.js']);
const transport = new StdioClientTransport({
reader: serverProcess.stdout,
writer: serverProcess.stdin,
});
// Connect and use tools
const client = new Client({ name: 'my-client', version: '1.0.0' }, { capabilities: {} });
await client.connect(transport);
// Call IEEE 2030.5 tools
const response = await client.request({
method: 'tools/call',
params: { name: 'ieee2030_get_device_capabilities' }
}, { method: 'tools/call' });贡献
我们欢迎为IEEE 2030.5 MCP服务器做出贡献!无论您是在修复错误、添加功能、改进文档还是增强导航指南,我们都会感谢您的帮助。
🚀 入门指南
- 分叉存储库 在GitHub上
- 克隆你的叉子 本地:
git clone https://github.com/your-username/ieee2030.5-mcp.git
cd ieee2030.5-mcp- 安装依赖项:
pnpm install- 创建要素分支:
git checkout -b feature/your-feature-name🛠️ 开发指南
代码的风格
- 遵循现有的TypeScript约定
- 使用 生物群系 用于修剪和格式化:
pnpm check:fix - 在常规提交之后编写描述性提交消息
- 为公共API添加JSDoc注释
测试您的更改
- 构建项目:
pnpm build - 使用MCP检查员进行测试:
pnpm debug - 使用Claude Desktop进行测试 使用本地版本
- 验证所有工具是否正常工作 使用真正的IEEE 2030.5服务器(如果可用)
代码质量检查表
- \[\]代码构建没有错误:
pnpm build - \[\]林亭传球:
pnpm lint - \[\]格式正确:
pnpm format - \[\]所有工具都可以加载到MCP检查器中
- \[\]导航指南反映了任何新的端点
🎯 贡献领域
🐛 漏洞修补
- 修复SSL/TLS连接问题
- 改进错误处理和消息
- 解决XML解析边缘情况
✨ 特性
- 新的IEEE 2030.5端点 (例如,定价、消息传递、历史数据)
- 增强的XML/JSON转换 使用模式验证
📚 文档
- 展开导航指南 更多示例
- 添加更多IEEE 2030.5资源模式
- 创建视频教程 或演练
- 改进错误文档
🧪 测试
- 单元测试 用于客户端功能
- 集成测试 使用模拟IEEE 2030.5服务器
- 端到端测试 使用MCP协议
📝 贡献工作流程
- 创建问题 第一个(对于较大的更改)
- 实施您的更改:
# Make your changes
pnpm check:fix # Format and lint
pnpm build # Test build
pnpm debug # Test functionality- 以传统格式提交:
git add .
git commit -m "feat: add support for new IEEE 2030.5 endpoint"
# or
git commit -m "fix: resolve SSL certificate validation issue"
# or
git commit -m "docs: expand navigation guide with pricing examples"- 推送并创建PR:
git push origin feature/your-feature-name- 打开拉取请求 与:
- 变更的清晰描述 - 屏幕截图/示例(如适用) - 提及相关问题
🏗️ 架构概述
了解代码库结构:
src/
├── handlers/ # MCP request handlers
│ ├── tools-handler.ts # Tool execution logic
│ └── prompts-handler.ts # Prompt serving logic
├── prompts/ # MCP prompts
│ └── ieee2030-navigation-guide.ts
├── services/ # Core business logic
│ ├── config.ts # Environment configuration
│ ├── ieee2030-5-client.ts # IEEE 2030.5 HTTP client
│ └── ieee2030-5-types.ts # TypeScript definitions
├── tools/ # MCP tools implementation
│ ├── ieee2030-connection-tools.ts
│ ├── ieee2030-data-tools.ts
│ └── tool-registry.ts
├── server.ts # MCP server setup
└── index.ts # Entry point🤝 社区指南
- 要有礼貌 并包容所有互动
- 提出问题 如果你对任何事情都不确定
- 帮助他人 通过审查PR和回答问题
- 遵守行为准则 (善良和专业)
📧 获取帮助
- 打开一个问题 对于bug或功能请求
- 开始讨论 询问问题或想法
- 检查现有问题 在创建新的之前
感谢您对IEEE 2030.5 MCP服务器的贡献! 🎉
安全说明
- 在生产环境中始终使用HTTPS
- 安全地存储证书
- 集
IEEE2030_INSECURE=false生产中 - 验证生产环境中的所有服务器证书
- 永不承诺
.env文件 或证书到版本控制
故障排除
常见问题
- “IEEE2030_BASE_URL环境变量是必需的”
- 设置 IEEE2030_BASE_URL 环境变量
- “需要证书路径或值”
- 设置其中之一 IEEE2030_CERT_PATH 或 IEEE2030_CERT_VALUE
- SSL证书错误
- 开发:Set IEEE2030_INSECURE=true - 生产:确保正确的证书链
- 连接超时
- 增加 IEEE2030_TIMEOUT 价值 - 检查网络连接 - 验证服务器URL和端口
