Skip to content

Conversation

@NellyW8
Copy link
Contributor

@NellyW8 NellyW8 commented May 24, 2025

Description

A comprehensive Model Context Protocol server that integrates Electronic Design Automation (EDA) tools with AI assistants like Claude Desktop and Cursor IDE. Enables natural language interaction with Verilog synthesis, simulation, ASIC design flows, and layout visualization tools.

Server Details

  • Server: New EDA MCP Server
  • Changes to: New implementation providing tools for:
    • Verilog synthesis with Yosys
    • Simulation with Icarus Verilog
    • Waveform viewing with GTKWave
    • Complete ASIC flows with OpenLane
    • Layout viewing with KLayout
    • Report analysis and PPA metrics

Motivation and Context

This server bridges the gap between AI assistants and Electronic Design Automation workflows. It solves the problem of having to manually switch between different EDA tools and enables hardware engineers to:

  • Synthesize and simulate Verilog designs through natural language
  • Run complete RTL-to-GDSII flows with simple AI prompts
  • Analyze timing, power, and area metrics conversationally
  • Visualize waveforms and layouts seamlessly within AI workflows

How Has This Been Tested?

  • Tested with Claude Desktop on macOS
  • Tested with Cursor IDE integration
  • Verified Verilog synthesis scenarios (counter, adder, simple CPU modules)
  • Confirmed simulation and waveform viewing workflows
  • Validated complete OpenLane ASIC flow (RTL to GDSII)
  • Tested KLayout integration for layout visualization
  • Verified report analysis and PPA metrics extraction

Breaking Changes

  • No breaking changes - this is a new server implementation
  • Users will need to install required EDA tools (Yosys, Icarus Verilog, Docker, GTKWave, KLayout)
  • MCP client configuration required as documented in README

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Protocol Documentation
  • My changes follows MCP security best practices
  • I have updated the server's README accordingly
  • I have tested this with an LLM client
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have documented all environment variables and configuration options

Additional context

  • Architecture: TypeScript-based server using @modelcontextprotocol/sdk
  • Tool Integration: Leverages Docker for OpenLane isolation and cross-platform compatibility
  • Error Handling: Comprehensive timeout management (10min for OpenLane flows) and tool availability checking
  • Security: All operations run locally, no external API calls or data transmission
  • Performance: Optimized for long-running ASIC flows with proper progress reporting
  • Extensibility: Modular design allows easy addition of new EDA tools and workflows
  • Demo: Includes video demonstration showing complete workflow from Verilog to GDSII
README.md Outdated
* **[Quarkus MCP Server SDK](https://github.com/quarkiverse/quarkus-mcp-server)** (Java)
* **[Spring AI MCP Server](https://docs.spring.io/spring-ai/reference/api/mcp/mcp-server-boot-starter-docs.html)** - Provides auto-configuration for setting up an MCP server in Spring Boot applications.
* **[Template MCP Server](https://github.com/mcpdotdirect/template-mcp-server)** - A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
* **[EDA MCP Server](https://github.com/NellyW8/mcp-EDA)** - A comprehensive Model Context Protocol server for Electronic Design Automation tools, enabling AI assistants to synthesize Verilog with Yosys, simulate designs with Icarus Verilog, run complete ASIC flows with OpenLane, and view results with GTKWave and KLayout
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi looks like this got skipped because it needs to set moved tot he community servers section instead.

@olaservo olaservo added the waiting for submitter Waiting for the submitter to provide more info label Jul 18, 2025
domdomegg and others added 2 commits August 17, 2025 15:42
- Moved entry from Frameworks section to Community Servers section
- Placed alphabetically between ECharts and EdgeOne entries
- Updated formatting to match existing community server entries

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@domdomegg domdomegg merged commit 59d3d02 into modelcontextprotocol:main Aug 17, 2025
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting for submitter Waiting for the submitter to provide more info

3 participants