# Silica

Connects AI coding agents to an EDA hardware toolchain. It automates RTL verification, simulation, and board programming while returning structured diagnostics.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 12
- Author: simaanc
- License: AGPL-3.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/simaanc/silica-eda
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/mcp/silica

## What it does

Silica acts as an MCP bridge between coding assistants and silicon design tools. Instead of pasting raw terminal logs into chat, the server parses tool outputs into structured diagnostics. The assistant receives exact file paths, line numbers, clock timing calculations, FPGA resource utilization, and counterexample waveforms from formal checks.

The server does not ship with EDA binaries. It orchestrates external tools found in `PATH`, such as Verilator, Icarus Verilog, Yosys, and the OSS CAD Suite. A built-in `doctor` command scans the machine and reports which design tools are missing.

Commercial tool support has constraints. Vivado only works through the synthesis stage, while adapters for VCS and Questa have only been tested against simulated calls rather than real installations.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add silica-eda -- uvx silica-eda
```
uvx runs the command named after the package; if the README names another one, use uvx --from silica-eda <command>

### Codex

**Platform CLI**
```bash
codex mcp add silica -- uvx silica-eda
```
uvx runs the command named after the package; if the README names another one, use uvx --from silica-eda <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "silica": {
            "command": "uvx",
            "args": [
                "silica-eda"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from silica-eda <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "silica": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "silica-eda"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from silica-eda <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add silica uvx silica-eda
```
uvx runs the command named after the package; if the README names another one, use uvx --from silica-eda <command>

## When to use it
- lint Verilog and SystemVerilog files with Verilator or Verible
- simulate digital designs and inspect waveform coverage
- run bounded model checks with SymbiYosys
- synthesize RTL with Yosys and assemble FPGA bitstreams
- program FPGA boards via openFPGALoader and monitor UART

## Example prompts
- Run the UART simulation in examples/uart/ and explain any failing checks.
- Run the doctor tool to see which EDA tools are ready on this system.
- Synthesize the design using Yosys and show the logic utilization report.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
