mcp4eda
A collection of MCP servers for Electronic Design Automation (EDA) workflows, including tools for die yield calculation and Verilog/SystemVerilog analysis.
mcp4eda - MCP Servers for Electronic Design Automation
A comprehensive collection of Model Context Protocol (MCP) servers designed to enhance EDA workflows in Claude Desktop and other MCP-compatible clients.
🚀 Available MCP Servers (8 Total)
1. Yosys MCP Server
Purpose: Synthesis and design optimization for digital circuits
Location: yosys-mcp/
Features:
- Synthesize Verilog/SystemVerilog to gate-level netlists
- Support for multiple FPGA targets (Xilinx, Intel/Altera, Lattice)
- Design analysis (hierarchy, resources, statistics)
- Circuit visualization generation
- Intelligent caching for performance
Tools:
yosys_synth
- Synthesis with multiple output formatsyosys_analyze
- Design analysis and statisticsyosys_show
- Generate visual circuit diagrams
2. Verilator MCP Server
Purpose: High-performance RTL simulation and verification
Location: verilator-mcp/
Features:
- Fast Verilog/SystemVerilog simulation
- Automatic testbench generation
- Natural language debugging interface
- Coverage collection and analysis
- Waveform generation support
Tools:
verilator_compile
- Compile designs to C++verilator_simulate
- Run simulations with auto-testbenchverilator_testbenchgenerator
- Intelligent testbench creationverilator_naturallanguage
- Natural language queries
3. Verible MCP Server
Purpose: SystemVerilog/Verilog linting, formatting, and analysis
Location: verible-mcp/
Features:
- Comprehensive style linting with auto-fix
- Code formatting with customizable rules
- Syntax tree analysis and visualization
- Register and module analysis
- Project-level dependency analysis
- Natural language interface
Tools:
verible_lint
- Style checking and fixesverible_format
- Code formattingverible_syntax
- AST analysisverible_analyze
- Design analysisverible_natural_language
- Natural language queries
4. GTKWave MCP Server
Purpose: Waveform viewing and analysis automation
Location: gtkwave-mcp/
Features:
- Programmatic waveform viewing
- Format conversion (VCD, FST, LXT2)
- Signal hierarchy extraction
- Timing analysis and measurements
- Screenshot generation
- TCL script generation
Tools:
gtkwave_open
- Open waveforms with configurationsgtkwave_convert
- Convert between formatsgtkwave_extract_signals
- Extract signal hierarchiesgtkwave_analyze_timing
- Timing measurementsgtkwave_capture_screenshot
- Generate waveform images
5. KLayout MCP Server
Purpose: IC layout viewing, editing, and analysis
Location: klayout-mcp/
Features:
- Multi-format support (GDS, OASIS, DXF, CIF, MAG, DEF/LEF)
- Design Rule Checking (DRC) with powerful engine
- Layer extraction and manipulation
- Format conversion with scaling
- Custom Python/Ruby scripting
- Natural language interface
- Rich resource library
Tools:
klayout_layout_info
- Analyze layout filesklayout_convert_layout
- Format conversionklayout_run_drc
- Design rule checkingklayout_extract_layers
- Layer extractionklayout_execute_script
- Custom scriptingklayout_natural_language
- Natural language queries
6. AnySilicon MCP Server
Purpose: Semiconductor manufacturing calculations
Location: anysilicon/
Features:
- Die per wafer calculations
- Support for multiple wafer sizes (150mm-450mm)
- Edge exclusion and scribe lane parameters
- Integration with AnySilicon's web calculator
- Yield estimation support
Tools:
calculate_die_per_wafer
- Calculate die yieldvalidate_parameters
- Validate input parametersget_standard_wafer_sizes
- Get wafer standards
7. Semiconductor Supply Chain MCP
Purpose: IP core and ASIC service procurement intelligence
Location: semiconductor-supply-chain-mcp/
Features:
- Find IP vendors by category and technology
- Locate ASIC design and manufacturing services
- Price estimation for semiconductor services
- Multi-vendor comparison
- Natural language queries for complex searches
Tools:
find_ip_vendors
- Search IP core vendorsfind_asic_services
- Find ASIC servicesget_price_estimation
- Estimate costscompare_vendors
- Compare multiple vendorsnatural_language_query
- Natural language interface
8. OpenLane MCP Server
Purpose: Complete RTL to GDSII flow automation
Location: openlane-mcp/
Features:
- Complete RTL to GDSII flow using OpenLane
- Container-based execution (Docker/Podman)
- Individual stage control (synthesis, placement, routing)
- PDK management and configuration
- Natural language interface for complex flows
Tools:
openlane_run_flow
- Complete RTL to GDSII flowopenlane_run_synthesis
- Logic synthesisopenlane_run_floorplan
- Floorplanning and I/O placementopenlane_run_placement
- Standard cell placementopenlane_run_cts
- Clock tree synthesisopenlane_run_routing
- Global and detailed routingopenlane_natural_language
- Natural language interface
🌟 Natural Language Support
All 8 MCP servers now include comprehensive natural language interfaces, allowing you to interact with EDA tools using plain English commands:
"Synthesize my design for Xilinx FPGA"
"Run simulation for 1 microsecond"
"Check my Verilog for errors"
"Generate testbench for my CPU module"
"Show waveform of clock signals"
"Convert layout to OASIS format"
"Calculate dies per wafer for 10x10mm chip"
"Find DDR5 IP vendors"
"Run complete RTL to GDSII flow"
See Natural Language Support Guide for comprehensive examples and patterns.
📋 Prerequisites
- Node.js 18+ and npm
- Claude Desktop application
- EDA Tools (as needed):
- Yosys (for synthesis)
- Verilator (for simulation)
- Verible (for linting)
- GTKWave (for waveforms)
- KLayout (for layout viewing)
🔧 Quick Installation
1. Clone the Repository
git clone https://github.com/ssql2014/mcp4eda.git
cd mcp4eda
2. Install All Servers
# Install script for all servers
for dir in yosys-mcp verilator-mcp verible-mcp gtkwave-mcp klayout-mcp anysilicon semiconductor-supply-chain-mcp openlane-mcp; do
echo "Installing $dir..."
cd $dir && npm install && npm run build && cd ..
done
3. Configure Claude Desktop
Add to your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Example configuration for all servers:
{
"mcpServers": {
"yosys": {
"command": "node",
"args": ["/path/to/mcp4eda/yosys-mcp/dist/index.js"],
"env": {
"YOSYS_PATH": "/opt/homebrew/bin/yosys",
"LOG_LEVEL": "info"
}
},
"verilator": {
"command": "node",
"args": ["/path/to/mcp4eda/verilator-mcp/dist/index.js"],
"env": {
"VERILATOR_PATH": "/opt/homebrew/bin/verilator",
"LOG_LEVEL": "info"
}
},
"verible": {
"command": "node",
"args": ["/path/to/mcp4eda/verible-mcp/dist/index.js"],
"env": {
"LOG_LEVEL": "info"
}
},
"gtkwave": {
"command": "node",
"args": ["/path/to/mcp4eda/gtkwave-mcp/dist/index.js"],
"env": {
"GTKWAVE_PATH": "/opt/homebrew/bin/gtkwave",
"LOG_LEVEL": "info"
}
},
"klayout": {
"command": "node",
"args": ["/path/to/mcp4eda/klayout-mcp/dist/index.js"],
"env": {
"KLAYOUT_PATH": "/opt/homebrew/bin/klayout",
"LOG_LEVEL": "info"
}
},
"anysilicon": {
"command": "node",
"args": ["/path/to/mcp4eda/anysilicon/dist/index.js"]
},
"semiconductor-supply-chain": {
"command": "node",
"args": ["/path/to/mcp4eda/semiconductor-supply-chain-mcp/dist/index.js"]
},
"openlane": {
"command": "node",
"args": ["/path/to/mcp4eda/openlane-mcp/dist/index.js"],
"env": {
"CONTAINER_EXECUTABLE": "docker",
"OPENLANE_IMAGE": "efabless/openlane:latest",
"WORK_DIR": "/path/to/openlane-workspace",
"LOG_LEVEL": "info"
}
}
}
}
🎯 Usage Examples
Complete RTL-to-Layout Flow
User: "Analyze my Verilog design in /project/rtl"
Claude: [Uses Verible to lint and format code]
User: "Synthesize the design for Xilinx FPGA"
Claude: [Uses Yosys to synthesize and optimize]
User: "Simulate the synthesized design"
Claude: [Uses Verilator to run simulation]
User: "Show me the waveform"
Claude: [Uses GTKWave to display results]
IC Design Flow
User: "Check DRC on my layout.gds"
Claude: [Uses KLayout to run design rules]
User: "Calculate die yield for 10x10mm chip on 300mm wafer"
Claude: [Uses AnySilicon for yield calculation]
User: "Find DDR5 PHY IP vendors"
Claude: [Uses Supply Chain MCP to search vendors]
🔍 Troubleshooting
View Logs (macOS)
tail -f ~/Library/Logs/Claude/mcp-server-*.log
Common Issues
- Server disconnected: Check tool installation and paths
- Tool not found: Restart Claude Desktop after config changes
- Permission errors: Ensure tools have execute permissions
- Build failures: Check Node.js version (requires 18+)
Verify Installation
# Check all tools
which yosys verilator verible gtkwave klayout
# Test MCP servers
for server in */dist/index.js; do
echo "Testing $server"
timeout 2 node "$server" 2>&1 | head -n 5
done
🚧 Roadmap
Coming Soon
- Magic MCP: Layout editor integration
- OpenROAD MCP: Complete RTL-to-GDS flow
- ngspice MCP: Circuit simulation
- Icarus MCP: Alternative Verilog simulator
Future Features
- Cross-tool workflow automation
- Cloud synthesis and simulation
- Project templates and wizards
- CI/CD integration for hardware
🤝 Contributing
We welcome contributions! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/NewMCP
) - Implement your MCP server following the existing patterns
- Add comprehensive documentation
- Submit a pull request
See CONTRIBUTING.md for detailed guidelines.
📄 License
MIT License - see individual project directories for specific licenses.
🔗 Links
🌟 Star History
If you find these tools useful, please star the repository to help others discover it!
Built with ❤️ for the EDA community
Related Servers
xMCP Server
A streamable HTTP MCP server that proxies requests to stdio MCP servers within a container, providing a consistent command environment.
cli-mcp
A command-line interface (CLI) client for calling tools from local and remote MCP servers.
Process Manager MCP
Manage system processes (start, stop, restart, monitor) via an MCP interface with automatic cleanup.
eBPF MCP
A secure MCP server for eBPF, designed for AI integration, kernel introspection, and automation.
MCP Gemini CLI
Integrate with Google Gemini through its command-line interface (CLI).
Muster
A universal control plane for managing MCP servers and providing intelligent tool discovery for AI agents.
Unbundle OpenAPI MCP Server
A server for splitting and extracting parts of OpenAPI specifications using Redocly CLI.
Terragrunt-Docs
Terragrunt documentation always up to date.
DocGen MCP Server
Automated documentation generator from source files on Google Drive and GitHub.
Auto API - YApi
A tool to retrieve API interface information from YApi, with authentication configurable via environment variables.