HuVelasco/ETABSFastMCP
If you are the rightful owner of ETABSFastMCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The ETABS FastMCP Server is a professional-grade solution for integrating Claude Desktop with ETABS structural analysis software, utilizing a hybrid Python+C# architecture.
šļø ETABS FastMCP Server
Professional-grade MCP server for ETABS structural analysis integration with Claude Desktop
š Overview
The ETABS FastMCP Server provides seamless integration between Claude Desktop and ETABS (Extended Three-Dimensional Analysis of Building Systems) structural analysis software. This professional-grade solution uses a hybrid Python+C# architecture optimized for scalability, reliability, and ease of use.
šļø Architecture
āāāāāāāāāāāāāāāāāāā JSON/stdio āāāāāāāāāāāāāāāāāāāāā COM API āāāāāāāāāāāāāāā
ā Claude AI ā āāāāāāāāāāāāāāŗ ā Python FastMCP ā āāāāāāāāāāāāŗ ā C# Connector ā āāāāāāāāŗ ā ETABS ā
ā Desktop ā ā Server ā ā ā ā Software ā
āāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā
Key Components:
- Python FastMCP Server: High-level MCP interface with @mcp.tool() decorators
- C# ETABS Connector: Robust COM interface manager for ETABS API
- JSON Communication: Efficient stdio-based messaging between components
š Quick Start
Prerequisites
- ETABS Software: ETABS v18+ installed and licensed
- Python 3.8+: With pip package manager
- Visual Studio 2019+: Or MSBuild tools for C# compilation
- Claude Desktop: Latest version
Installation
-
Clone the repository:
git clone <repository-url> cd ETABSFastMCP
-
Install Python dependencies:
cd python-server pip install -r requirements.txt
-
Build the C# connector:
cd ../csharp-connector msbuild ETABSConnector.csproj /p:Configuration=Release
-
Configure Claude Desktop:
- Copy
config/claude_desktop_config.json
content to your Claude Desktop config - Update paths to match your installation directory
- Copy
First Run
-
Start ETABS (optional - server can auto-start)
-
Test the connection:
# In Claude Desktop, try: "Connect to ETABS and create a new blank model"
-
Create your first structural elements:
# Example commands for Claude: "Create a point at coordinates (0, 0, 0) with UZ restraint" "Create a frame from (0, 0, 0) to (10, 0, 0) with W14X90 section"
š§ Available Tools
Connection Management
connect_to_etabs()
- Connect to ETABS applicationcreate_blank_model()
- Create new blank modelget_connection_status()
- Check connection statusdisconnect_from_etabs()
- Disconnect from ETABS
Point Operations (CRUD)
create_point(x, y, z, name?, restraints?)
- Create structural pointget_point(name)
- Get point informationlist_points()
- List all points in modelmodify_point(name, x?, y?, z?, restraints?)
- Modify point propertiesdelete_point(name)
- Delete point from model
Frame Operations (CRUD)
create_frame(start_x, start_y, start_z, end_x, end_y, end_z, name?, section?, material?)
- Create frame elementget_frame(name)
- Get frame informationlist_frames()
- List all frames in modelmodify_frame(name, section?, material?)
- Modify frame propertiesdelete_frame(name)
- Delete frame from model
Model Management
save_model(file_path?)
- Save current modelhealth_check()
- Check system health
š” Usage Examples
Basic Structural Model Creation
# Through Claude Desktop conversation:
"Connect to ETABS and create a new blank model"
"Create the following points:
- Point A at (0, 0, 0) with UX, UY, UZ restraints
- Point B at (10, 0, 0) with UZ restraint
- Point C at (10, 10, 0) with UZ restraint
- Point D at (0, 10, 0) with UZ restraint"
"Create frames connecting these points to form a rectangular frame:
- Frame AB from point A to B using W14X90 section
- Frame BC from point B to C using W14X90 section
- Frame CD from point C to D using W14X90 section
- Frame DA from point D to A using W14X90 section"
"List all frames in the model and show their properties"
Advanced Operations
"Create a 3D building frame:
1. Create a 4x4 grid of points at elevation 0, spacing 8m
2. Create another identical grid at elevation 4m
3. Connect corresponding points with vertical columns using W14X74 sections
4. Connect points at each level with beams using W21X50 sections
5. Apply pinned restraints to all base points"
š§ Extending the System
Adding New ETABS API Functions
The system is designed for easy extension. To add new ETABS functionality:
-
Add to C# Connector:
// In CommandProcessor.cs, add new case: "your_new_command" => ProcessYourNewCommand(command.Parameters), // Implement the method: private CommandResponse ProcessYourNewCommand(Dictionary<string, object> parameters) { // Your ETABS API calls here return new CommandResponse { Success = true, Data = result }; }
-
Add to Python Server:
@mcp.tool() async def your_new_function(param1: str, param2: float) -> Dict[str, Any]: """ Description of your new function """ try: response = await connector.send_command("your_new_command", { "param1": param1, "param2": param2 }) return response except Exception as e: return {"success": False, "error": str(e)}
Common Extensions
Analysis Operations:
- Run analysis
- Get analysis results
- Extract forces and moments
Loading Operations:
- Create load patterns
- Apply loads to elements
- Load combinations
Design Operations:
- Run steel design
- Get design results
- Optimize sections
šļø Professional Features
Error Handling & Recovery
- Comprehensive exception handling throughout
- Automatic process recovery on crashes
- Detailed error logging and reporting
Performance Optimization
- Efficient JSON serialization
- Minimal memory footprint
- Optimized COM object management
Scalability
- Modular architecture for easy extension
- Clean separation of concerns
- Professional code organization
Production Readiness
- Comprehensive logging
- Health monitoring
- Graceful shutdown handling
- Resource cleanup
š Troubleshooting
Common Issues
Connection Errors:
Error: "Failed to start ETABS connector"
- Ensure ETABS is installed and licensed
- Check that ETABSv1.dll is accessible
- Verify .NET Framework 4.8 is installed
Permission Issues:
Error: "Access denied to ETABS API"
- Run as Administrator if needed
- Check ETABS licensing status
- Verify COM object registration
Communication Errors:
Error: "No response from ETABS connector"
- Check C# connector build successful
- Verify Python can execute connector
- Check process permissions
Debug Mode
Enable detailed logging by setting environment variable:
set ETABS_MCP_DEBUG=1
š API Reference
Data Types
Point3D:
{
"x": 0.0,
"y": 0.0,
"z": 0.0
}
Restraints:
{
"UX": true, // Translation X
"UY": false, // Translation Y
"UZ": true, // Translation Z
"RX": false, // Rotation X
"RY": false, // Rotation Y
"RZ": false // Rotation Z
}
Frame Properties:
{
"name": "F1",
"startPoint": {"x": 0, "y": 0, "z": 0},
"endPoint": {"x": 10, "y": 0, "z": 0},
"section": "W14X90",
"material": "A992",
"length": 10.0
}
š¤ Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
š License
This project is licensed under the MIT License - see the file for details.
š Acknowledgments
- CSI (Computers & Structures, Inc.) for ETABS software
- Anthropic for Claude and MCP protocol
- FastMCP library contributors
Built with ā¤ļø for the structural engineering community
This is a professional-grade, production-ready solution designed for real-world structural engineering workflows.