Integrates with IEEE standard test feeders (13, 34, and 123 bus systems) for power system modeling and analysis using official EPRI-validated models
OpenDSS MCP Server
Conversational Power System Analysis with AI
Reduce distribution planning studies from weeks to minutes through natural language interaction
Features • Installation • Quick Start • Documentation • Examples • Contributing
Overview
The OpenDSS MCP Server is a Model Context Protocol (MCP) server that connects Claude AI with EPRI's OpenDSS power system simulator. It enables distribution planning engineers, utilities, and researchers to perform sophisticated power system analysis through conversational natural language instead of complex scripting.
The Problem
Traditional distribution system analysis requires:
⏱️ 2-3 weeks per study
💻 Complex Python/DSS scripting
📊 Manual data processing
🎨 Custom visualization code
📝 Extensive documentation
The Solution
With OpenDSS MCP Server:
⚡ 30 minutes per study (100x faster)
💬 Natural language commands via Claude
🤖 Automatic analysis and insights
📈 Professional visualizations generated automatically
📋 Instant report generation
Example:
Features
🎯 Core Capabilities
7 Comprehensive MCP Tools
🔌 IEEE Feeder Loading
IEEE 13, 34, and 123 bus test systems
Official EPRI test cases
On-the-fly circuit modifications
Full topology and component data
⚡ Power Flow Analysis
Snapshot, daily, and yearly modes
Convergence checking
Harmonic frequency analysis
Loss calculations and voltage profiles
📊 Voltage Quality Assessment
ANSI C84.1 compliance checking
Violation identification and reporting
Phase-specific analysis
Before/after comparisons
🌞 DER Placement Optimization
Solar, battery, wind, and EV chargers
Multiple objectives (minimize losses, maximize capacity, reduce violations)
Smart inverter volt-var control
Ranked candidate bus comparison
📈 Hosting Capacity Analysis
Incremental capacity testing
Voltage and thermal constraint identification
Capacity curves generation
Multi-location assessment
⏰ Time-Series Simulation
Daily/seasonal load profiles
Solar/wind generation patterns
Energy analysis (kWh, not just kW)
Convergence tracking
🎨 Professional Visualization
Voltage profile bar charts
Network topology diagrams
Time-series multi-panel plots
Capacity curves
Harmonics spectrum analysis
⚙️ Advanced Features
🎼 Harmonics Analysis
IEEE 519 compliance checking
Total Harmonic Distortion (THD) calculation
Individual harmonic magnitudes (3rd, 5th, 7th, etc.)
Frequency scan support
Multi-bus harmonic spectrum visualization
🔄 Smart Inverter Control
IEEE 1547-2018 compliant volt-var curves
California Rule 21 support
Custom control curve definition
Volt-watt curtailment
Real-time inverter status monitoring
🧪 IEEE Test Feeders
IEEE 13-bus: Small system, ideal for testing
IEEE 34-bus: Medium system with multiple regulators
IEEE 123-bus: Large system for comprehensive studies
Official EPRI-validated models
Complete DSS source files included
🔗 MCP Integration
Seamless Claude Desktop integration
Natural language command interface
Automatic tool selection
Structured JSON responses
Error handling and recovery
Installation
Quick Install
Claude Desktop Configuration
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
📖 For detailed installation instructions, see
Quick Start
1. Basic Power Flow Analysis
Ask Claude:
Result:
2. DER Integration Study
Ask Claude:
Result:
3. Hosting Capacity Assessment
Ask Claude:
Result:
4. Time-Series Simulation
Ask Claude:
Result:
5. Python API Usage
You can also use the tools directly in Python:
Workflow Example
Examples
Example Visualizations
All visualizations are generated automatically and can be saved at publication quality (300 DPI):
Voltage Profile:
Network Diagram:
Time-Series Analysis:
Hosting Capacity Curve:
Harmonics Spectrum:
Running Examples
See examples/README.md for detailed documentation.
Documentation
📚 Complete Documentation Suite
Document | Description |
Complete setup instructions for all platforms with troubleshooting | |
Comprehensive tutorial with quick start, tool reference, and use cases | |
Technical specifications for all 7 tools and utility functions |
🎯 Quick Links
Getting Started: Quick Start Tutorial
Tool Reference: Tool-by-Tool Guide
Use Cases: Complete Use Cases
Advanced Topics: Custom DSS Files & Profiles
API Specs: MCP Tools API
Troubleshooting: Common Issues
Architecture
System Overview
Project Structure
Development
Running Tests
Current test coverage: 41% (ongoing improvement)
Code Quality
Pre-commit Hooks
Contributing
We welcome contributions from the community! Whether you're fixing bugs, adding features, improving documentation, or sharing use cases, your help is appreciated.
How to Contribute
Fork the repository on GitHub
Create a feature branch (
git checkout -b feature/amazing-feature
)Make your changes with clear commit messages
Add tests for new functionality
Ensure tests pass (
pytest
)Update documentation as needed
Submit a pull request with a clear description
Contribution Areas
We're particularly interested in contributions for:
🐛 Bug fixes and error handling improvements
✨ New features (additional tools, analysis capabilities)
📖 Documentation improvements and translations
🧪 Test coverage expansion
🎨 Visualization enhancements
🌍 Real-world use cases and examples
🔧 Performance optimizations
Code Style
Follow PEP 8 style guidelines
Use type hints for all functions
Write Google-style docstrings
Maximum line length: 100 characters
Use black for code formatting
Target pylint score > 8.0
Testing Guidelines
Write tests for all new features
Maintain or improve code coverage
Use descriptive test names
Include both positive and negative test cases
Test error handling paths
Reporting Issues
Please use GitHub Issues to report bugs or request features. Include:
Description of the issue or feature request
Steps to reproduce (for bugs)
Expected behavior vs. actual behavior
Environment details (OS, Python version, OpenDSS version)
Error messages and stack traces
Minimal reproducible example (if applicable)
Citation
If you use OpenDSS MCP Server in academic research, please cite:
BibTeX
APA Format
IEEE Format
Acknowledgments
Built With
EPRI OpenDSS - Open Distribution System Simulator
OpenDSSDirect.py - Python interface to OpenDSS
Anthropic MCP - Model Context Protocol
Claude AI - Conversational AI interface
IEEE Test Feeders
This project uses official IEEE test feeders:
IEEE 13-bus Test Feeder - IEEE Distribution Test Feeders Working Group
IEEE 34-bus Test Feeder - IEEE Distribution Test Feeders Working Group
IEEE 123-bus Test Feeder - IEEE Distribution Test Feeders Working Group
Source: IEEE PES Test Feeders
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
Getting Help
Documentation: Start with USER_GUIDE.md
Issues: Report bugs on GitHub Issues
Discussions: Join discussions on GitHub Discussions
Contact
Author: Ahmed El-Shazly
Email: ahmedelshazly27@example.com
GitHub: @ahmedelshazly27
Roadmap
Version 1.1 (Planned Q1 2026)
Additional IEEE test feeders (8500-node, European LV)
Protection coordination analysis
Fault current calculation
Reliability indices (SAIDI, SAIFI)
Multi-feeder optimization
Version 1.2 (Planned Q2 2026)
Real-time SCADA integration
Battery energy storage optimization
Electric vehicle integration
Demand response modeling
Microgrids and islanding analysis
Version 2.0 (Planned Q3 2026)
REST API for web applications
Dashboard and web UI
Multi-user collaboration
Cloud deployment support
Advanced machine learning integration
⚡ Accelerating the renewable energy transition, one feeder at a time ⚡
Made with ❤️ for power system engineers worldwide
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Enables conversational power system analysis by connecting Claude AI with EPRI's OpenDSS simulator. Allows distribution planning engineers to perform sophisticated electrical grid studies through natural language instead of complex scripting.