Arcas OnlineEDA MCP Server
MCP (Model Context Protocol) server for interacting with Arcas OnlineEDA platform - a comprehensive web-based Electronic Design Automation tool suite for formal verification, equivalence checking, power analysis, security verification, and FPGA design.
Overview
This MCP server provides programmatic access to Arcas OnlineEDA platform through web automation, enabling AI assistants and automated workflows to:
Create and manage EDA projects with intelligent project type detection
Upload design files with automatic format recognition
Execute various verification types with customizable parameters
Navigate the platform seamlessly
Process natural language queries with extensive example matching
Access platform resources through well-defined URIs
Features
Core Capabilities
Formal Verification: Verify design properties, assertions, and safety requirements
Equivalence Checking: Compare functional equivalence between RTL and gate-level designs
Power Analysis: Analyze and optimize dynamic and static power consumption
Security Verification: Detect vulnerabilities, side-channels, and information leakage
FPGA Verification: Platform-specific verification for Xilinx, Intel/Altera designs
Available Tools
arcas_onlineeda_navigate - Navigate platform sections
Actions:
home,projects,new-project,documentation,settingsSmart navigation with session state preservation
arcas_onlineeda_project - Comprehensive project management
Actions:
create,open,list,deleteProject types:
formal,equivalence,power,security,fpgaAutomatic project type detection from context
arcas_onlineeda_upload_file - Intelligent file upload
Supported formats: Verilog (.v), SystemVerilog (.sv), VHDL (.vhd/.vhdl)
Constraint files: SDC, XDC for timing and placement
Automatic file type detection
arcas_onlineeda_run_verification - Advanced verification execution
Types:
formal,equivalence,power,security,fpgaConfigurable parameters: timeout, depth, specific properties
Real-time progress monitoring
arcas_onlineeda_natural_language - AI-powered natural language interface
Extensive example database for high-confidence matching
Workflow suggestions and multi-step guidance
Context-aware recommendations
Available Resources
Access platform data through these URIs:
arcas://projects- List all projects in JSON formatarcas://verification-results- Latest verification resultsarcas://platform-status- Current platform and connection statusarcas://documentation- Platform documentation in Markdown
Installation
Configuration
Environment Variables
Create a .env file in the project root:
MCP Configuration
Add to your MCP settings file (e.g., ~/.mcp/settings.json):
Usage Examples
Basic Tool Usage
Create a Formal Verification Project
Upload Multiple Design Files
Run Security Verification
Natural Language Examples
The natural language interface understands a wide variety of queries:
Project Creation Queries
"I want to create a new formal verification project for my CPU design"
"Let's start a power analysis project for the GPU controller"
"Set up equivalence checking between RTL and gate-level netlist"
"Create a security verification project for my AES encryption module"
Verification Queries
"Check if my RISC-V core meets all safety properties"
"Verify that the optimized design is functionally equivalent to the original"
"Analyze power consumption during different operating modes"
"Find security vulnerabilities in my crypto module"
"Run formal verification with 20 cycle depth"
File Operation Queries
"Upload my Verilog files for the memory controller"
"Add the SystemVerilog testbench to the project"
"Import SDC timing constraints"
"Load all RTL files from the design directory"
Navigation and Status Queries
"Show me all my verification projects"
"Go to the documentation"
"What's the status of my current verification?"
"Navigate to project settings"
Complex Workflow Queries
"I need to verify my AES encryption module meets FIPS standards"
"Compare power consumption before and after optimization"
"Set up a complete verification flow for my SoC design"
"Help me debug failing assertions in my formal verification"
Accessing Resources
Advanced Usage
Workflow Automation
Create complex workflows by chaining tools:
Custom Verification Properties
Define specific properties for targeted verification:
Architecture
The server implements a modular architecture:
Key Components
Browser Manager: Handles Puppeteer lifecycle, authentication, and page navigation
Tool Base Class: Provides consistent validation and error handling
Natural Language Processor: Extensive example matching and intent detection
Resource Provider: Serves platform data through MCP resources
Session Manager: Maintains login state and project context
Development
Adding New Tools
Create a new tool class extending
AbstractToolImplement required methods:
getName(),getDescription(),execute()Add tool to the server's tool map
Update natural language examples
Troubleshooting
Common Issues
Browser Connection
Solution: Install Chrome/Chromium or run npm run setup
Authentication Failures
Solutions:
Verify credentials in environment variables
Check if account is active on OnlineEDA
Try manual login with
ONLINEEDA_HEADLESS=false
Element Not Found
Solutions:
Platform UI may have changed
Check internet connectivity
Increase timeout values
Debug Mode
Enable detailed logging:
View browser actions:
Performance Tips
Reuse project sessions when possible
Batch file uploads for better performance
Use appropriate timeouts for long-running verifications
Enable caching for frequently accessed resources
Security Considerations
Credentials: Stored securely in environment variables
Browser Isolation: Runs in sandboxed Chromium instance
Audit Logging: All operations logged with timestamps
Session Management: Automatic logout on shutdown
Data Privacy: No data stored locally except logs
Contributing
We welcome contributions! Please follow these steps:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit changes (
git commit -m 'Add amazing feature')Push to branch (
git push origin feature/amazing-feature)Open a Pull Request
Development Guidelines
Write tests for new features
Update documentation
Follow TypeScript best practices
Add natural language examples for new capabilities
Ensure backward compatibility
Support
Issues: Report bugs via GitHub Issues
Documentation: Access via
arcas://documentationExamples: See natural language tool for extensive examples
Community: Join our Discord server
License
MIT License - see LICENSE file for details
Acknowledgments
Arcas Microelectronics for the OnlineEDA platform
Model Context Protocol team for the MCP framework
Puppeteer team for browser automation tools