Provides tools for interacting with IEEE 2030.5 (SEP 2.0) Smart Energy Profile servers, enabling management of device capabilities, end devices, DER programs, demand response programs, and usage points.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@IEEE 2030.5 MCP Serverlist all active demand response events"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
IEEE 2030.5 MCP Server
A Model Context Protocol (MCP) server for interacting with IEEE 2030.5 (SEP 2.0) Smart Energy Profile servers.
Quick Start: npx -y @prandogabriel/ieee2030.5-mcp
Table of Contents
Features
๐ Certificate-based authentication (single .pem or separate cert/key files)
๐ก Full IEEE 2030.5 endpoint support
๐ ๏ธ MCP tools for all major IEEE 2030.5 resources
๐ฏ HATEOAS-based navigation with comprehensive guide
โ๏ธ Environment-based configuration
๐งช Built-in test client and MCP Inspector support
Prerequisites
System Requirements
Node.js: Version 20.0.0 or higher
Package Manager: pnpm (recommended) or npm
Operating System: macOS, Linux, or Windows
Install Node.js
If you don't have Node.js installed:
Using Node Version Manager (recommended):
Direct download:
Download from nodejs.org (LTS version recommended)
Install pnpm
Or using corepack (Node.js 16.10+):
IEEE 2030.5 Server Requirements
To use this MCP server, you need access to an IEEE 2030.5 compliant server with:
HTTPS endpoint (typically port 8443)
Client certificate authentication (.pem format recommended)
IEEE 2030.5/SEP 2.0 compliance with standard endpoints
Common IEEE 2030.5 implementations:
OpenADR VEN/VTN servers
Smart inverter management systems
Utility demand response platforms
Distributed Energy Resource (DER) management systems
Quick Start
Option 1: Using Published Package (Fastest)
For most users, the simplest way is to use the published npm package:
Ensure Node.js 20+ is installed:
node --version # Should be 20.0.0 or higherTest the server:
npx -y @prandogabriel/ieee2030.5-mcpConfigure with Claude Desktop - see Published Package Configuration
Option 2: Local Development Setup
For development or customization:
1. Verify Requirements
Check your Node.js and pnpm versions:
2. Clone and Install
3. Configure Environment
Copy the example environment file and configure your IEEE 2030.5 server:
Edit .env with your configuration. The server will automatically load environment variables from the .env file:
Note: The .env file is automatically ignored by git for security.
4. Build the Project
5. Test the Server
Use the MCP Inspector for interactive testing and debugging:
This will:
Build your server
Open the MCP Inspector in your browser at
http://localhost:5173Connect to your IEEE 2030.5 MCP server
The inspector provides a web UI where you can:
View all available tools
Test tools interactively with parameters
See real-time responses and errors
Debug your server behavior
Environment Configuration
Variable | Description | Required |
| Base URL of your IEEE 2030.5 server | โ Yes |
| Path to certificate file (.pem, .crt) | โ One of cert options |
| Certificate content as string | โ One of cert options |
| Path to private key file (if separate) | โ Optional |
| Private key content as string | โ Optional |
| Skip SSL verification (dev only) | โ Default: false |
| Request timeout in milliseconds | โ Default: 30000 |
Available MCP Tools
Connection & Status Tools
ieee2030_status- Check client configuration statusieee2030_test_connection- Test connectivity to IEEE 2030.5 server
IEEE 2030.5 Resource Tools
ieee2030_get_device_capabilities- Get device capabilities (/dcap) - Start here for resource discoveryieee2030_get_end_devices- Get end devices (/edev) - Physical devices and their DERsieee2030_get_der_programs- Get DER programs (/derp) - Control programs for DERsieee2030_get_demand_response_programs- Get demand response programs (/drp)ieee2030_get_usage_points- Get usage points (/upt) - Metering locationsieee2030_get_time- Get server time (/tm) - Server time synchronizationieee2030_get_custom_endpoint- Access any custom endpoint with dynamic navigation
Available MCP Prompts
ieee2030_navigation_guide- Comprehensive guide for navigating IEEE 2030.5 resources using HATEOAS principles
IEEE 2030.5 Navigation
This MCP server includes a comprehensive navigation guide that teaches you how to explore IEEE 2030.5 resources dynamically. The IEEE 2030.5 standard uses HATEOAS (Hypermedia as the Engine of Application State) principles, where each response contains links to related resources.
Key Navigation Tips:
Always start with
/dcap(Device Capabilities) to discover available resourcesFollow links dynamically - use the
hrefattributes in responses to navigateUse the custom endpoint tool to access any discovered path
Check the navigation guide prompt for detailed examples and patterns
Development
Development Dependencies
This project uses modern development tools:
TypeScript: Type-safe JavaScript development
esbuild: Fast bundling and compilation
Biome: Fast linting and formatting (replaces ESLint + Prettier)
nodemon: Auto-restart during development
MCP Inspector: Interactive testing and debugging
Development Commands
Development Workflow
Make changes to source code in
/srcRun development server:
pnpm devTest with MCP Inspector:
pnpm debugFormat and lint:
pnpm check:fixBuild for production:
pnpm build
Usage Examples
Using Published Package (Recommended)
The easiest way to use this MCP server is through the published npm package. No need to clone or build locally!
With npx (Quick Start)
You can run the server directly using npx:
Claude Desktop Configuration (Published Package)
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
Benefits of using the published package:
โ No local setup required - just install and run
โ Always up-to-date - specify version or use latest
โ Automatic dependency management - npx handles everything
โ Cross-platform compatibility - works on any system with Node.js
Configuration Steps:
Ensure Node.js 20+ is installed (see Prerequisites)
Add configuration to Claude Desktop using the JSON above
Update environment variables with your IEEE 2030.5 server details:
Replace
https://your-ieee2030-server:portwith your server URLReplace
/path/to/your/cert.pemwith your certificate pathSet
IEEE2030_INSECUREto"false"for production
Restart Claude Desktop
Test the connection:
Ask Claude: "Check the IEEE 2030.5 server status"
Ask Claude: "Show me the navigation guide for IEEE 2030.5 resources"
Using with Claude Desktop (Local Development)
To use this MCP server with Claude Desktop, add the following configuration to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
Configuration Steps:
Build your server first:
cd /path/to/your/ieee2030.5-mcp pnpm buildUpdate the config with your actual paths:
Replace
/path/to/your/ieee2030.5-mcp/dist/index.jswith the full path to your built serverReplace
https://your-ieee2030-server:portwith your actual IEEE 2030.5 server URLReplace
/path/to/your/cert.pemwith the path to your client certificate
Restart Claude Desktop for the changes to take effect
Test the connection:
Ask Claude: "Check the IEEE 2030.5 server status"
Ask Claude: "Get device capabilities from the IEEE 2030.5 server"
Ask Claude: "Show me the navigation guide for IEEE 2030.5 resources"
Using MCP Inspector
Start the inspector:
pnpm debugTest ieee2030_get_device_capabilities:
Open the inspector at
http://localhost:5173Click on "Tools" tab
Find
ieee2030_get_device_capabilitiesin the listClick "Execute" to test the tool
View the IEEE 2030.5 XML response in JSON format
Test custom endpoints:
Select
ieee2030_get_custom_endpointEnter endpoint path like
/dcap,/tm,/drpExecute and see results
Access navigation guide:
Click on "Prompts" tab
Find
ieee2030_navigation_guideClick to view the comprehensive guide for navigating IEEE 2030.5 resources
Programmatic Usage
You can also connect to your MCP server programmatically using the MCP SDK:
Contributing
We welcome contributions to the IEEE 2030.5 MCP Server! Whether you're fixing bugs, adding features, improving documentation, or enhancing the navigation guide, your help is appreciated.
๐ Getting Started
Fork the repository on GitHub
Clone your fork locally:
git clone https://github.com/your-username/ieee2030.5-mcp.git cd ieee2030.5-mcpInstall dependencies:
pnpm installCreate a feature branch:
git checkout -b feature/your-feature-name
๐ ๏ธ Development Guidelines
Code Style
Follow existing TypeScript conventions
Use Biome for linting and formatting:
pnpm check:fixWrite descriptive commit messages following conventional commits
Add JSDoc comments for public APIs
Testing Your Changes
Build the project:
pnpm buildTest with MCP Inspector:
pnpm debugTest with Claude Desktop using your local build
Verify all tools work with a real IEEE 2030.5 server (if available)
Code Quality Checklist
Code builds without errors:
pnpm buildLinting passes:
pnpm lintFormatting is correct:
pnpm formatAll tools can be loaded in MCP Inspector
Navigation guide reflects any new endpoints
๐ฏ Areas for Contribution
๐ Bug Fixes
Fix SSL/TLS connection issues
Improve error handling and messages
Resolve XML parsing edge cases
โจ Features
New IEEE 2030.5 endpoints (e.g., pricing, messaging, historical data)
Enhanced XML/JSON conversion with schema validation
๐ Documentation
Expand navigation guide with more examples
Add more IEEE 2030.5 resource patterns
Create video tutorials or walkthroughs
Improve error documentation
๐งช Testing
Unit tests for client functions
Integration tests with mock IEEE 2030.5 servers
End-to-end tests with MCP protocol
๐ Contribution Workflow
Create an issue first (for larger changes)
Implement your changes:
# Make your changes pnpm check:fix # Format and lint pnpm build # Test build pnpm debug # Test functionalityCommit with conventional format:
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"Push and create PR:
git push origin feature/your-feature-nameOpen a Pull Request with:
Clear description of changes
Screenshots/examples if applicable
Reference to related issues
๐๏ธ Architecture Overview
Understanding the codebase structure:
๐ค Community Guidelines
Be respectful and inclusive in all interactions
Ask questions if you're unsure about anything
Help others by reviewing PRs and answering issues
Follow the code of conduct (be kind and professional)
๐ง Getting Help
Open an issue for bugs or feature requests
Start a discussion for questions or ideas
Check existing issues before creating new ones
Thank you for contributing to the IEEE 2030.5 MCP Server! ๐
Security Notes
Always use HTTPS in production
Store certificates securely
Set
IEEE2030_INSECURE=falsein productionValidate all server certificates in production environments
Never commit or certificates to version control
Troubleshooting
Common Issues
"IEEE2030_BASE_URL environment variable is required"
Set the
IEEE2030_BASE_URLenvironment variable
"Certificate path or value is required"
Set either
IEEE2030_CERT_PATHorIEEE2030_CERT_VALUE
SSL Certificate errors
For development: Set
IEEE2030_INSECURE=trueFor production: Ensure proper certificate chain
Connection timeouts
Increase
IEEE2030_TIMEOUTvalueCheck network connectivity
Verify server URL and port