Get the FREE Ultimate OpenClaw Setup Guide →

MCP4EDA

This is the Github Repo for the paper: MCP4EDA: LLM-Powered Model Context Protocol RTL-to-GDSII Automation with Backend Aware Synthesis Optimization. MCP server for a collection of open-source EDA tools

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio nellyw8-mcp4eda node /absolute/path/to/your/eda-mcp-server/build/index.js \
  --env HOME="your home directory" \
  --env PATH="system PATH"

How to use

This MCP server exposes a unified interface for Electronic Design Automation (EDA) tooling via the MCP protocol. It enables AI assistants to drive Verilog synthesis with Yosys, run Verilog simulations using Icarus Verilog, visualize waveforms with GTKWave, and manage an ASIC design flow through OpenLane dockerized workflows. The server is designed to be consumed by Claude Desktop, Cursor IDE, or other MCP-enabled clients, allowing conversational AI to request synthesis, simulate, and analyze design metrics, and to inspect layout or OpenLane reports as part of the design cycle. The provided containerized and filesystem-based setup paths let you connect the MCP to local tooling, Docker deployments, or host-side executions depending on your environment.

To use it, connect your MCP client to the eda-mcp server (the server name defined in your mcp_config). The client will send requests for synthesis, simulation, waveform viewing, or OpenLane flows, and the MCP server will orchestrate the underlying tools, returning results such as synthesized netlists, simulation waveforms, or PPA metrics. The server supports OpenLane-driven RTL-to-GDSII workflows via Docker, allows opening GDSII with KLayout, and can feed waveform data into GTKWave for inspection. Check the server logs for task status and error messages, and ensure all prerequisite EDA tools are installed where the server expects to run them.

Typical capabilities include: Verilog synthesis with Yosys (generic, ice40, Xilinx targets), Icarus Verilog simulations with automated testbenches, waveform viewing via GTKWave, and ASIC flows using OpenLane with Docker integration. It also supports viewing layouts in KLayout and analyzing OpenLane reports for PPA metrics and design quality.

How to install

Prerequisites

  • Node.js and npm installed on the host machine
  • Git for cloning the repository
  • Optional: Docker if you plan to run OpenLane Dockerized flows

Installation steps

  1. Clone the MCP server repository

  2. Install dependencies

    • npm install
  3. Build the TypeScript sources

    • npm run build
    • npx tsc
  4. Verify the build outputs

    • Ensure build/index.js (or equivalent) exists and is executable
  5. Run the server locally (example)

    • node build/index.js
  6. (Optional) Docker/OpenLane setup if you intend to run the ASIC flow via Docker

    • Follow the OpenLane installation steps in the README to pull the necessary images and configure the OpenLane flow, as OpenLane is used for RTL-to-GDSII within the MCP server ecosystem.

Additional notes

Notes and tips:

  • The MCP server expects the Node.js build output at the path specified in the mcp_config. Update the path to your actual build/index.js when integrating with your MCP client.
  • For OpenLane-based ASIC flows, Docker must be available and properly configured. The sample config in the README demonstrates a Docker-based MCP connection using a socat tunnel for Claude Cursor integration.
  • If your environment uses custom tool paths, consider exporting PATH and HOME in the env section of your mcp_config to point to the correct locations.
  • When testing, verify tool versions compatibility (Yosys, Icarus Verilog, GTKWave, OpenLane) and ensure file permissions allow execution of the generated index.js and any child processes.
  • For GUI tools like GTKWave and KLayout, ensure X11 forwarding or appropriate GUI hosting is configured if you run the server over remote connections.
  • If you encounter port or socket binding issues, check that the host ports used by MCP connections are not blocked by firewalls and that Docker is running if using Docker-based MCP integration.

Related MCP Servers

Sponsor this space

Reach thousands of developers