vibe-ic (vibeic/vibe-ic) is an MCP server listed on the M8ven Trust Index. It scores 72 out of 100, grade C. It declares 51 tools. No publisher has claimed this listing.

C
Caution
72/100

vibe-ic

AI-native IC design plugin with MCP-EDA — from natural-language intent to verified silicon.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

vibeic

Source: github_repo_search

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
⚠️
Tool descriptions don’t match what handlers do
1 tool describes read intent but its handler mutates — eda_synth (line 1095: fs.writeFileSync(netlistPath, text))
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
// tools this server exposes51 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

eda_synth

Synthesize RTL to gate-level netlist using Yosys. Returns cell count, area, and writes netlist file.

eda_lint

Run Verilator lint on RTL files. Returns warnings and errors. v0.99.2 adds a `strictness` selector — default 'error_only' lets stylistic warnings through (matching Quartus / Icarus tolerance), 'warnings_as_errors' restores the historical -Wall behaviour.

eda_simulate

Compile and run RTL simulation using Icarus Verilog. Returns PASS/FAIL. v0.99.3 adds `work_dir` so $readmemh / $readmemb / $fopen / `include resolve relative paths the way the testbench expects (default: dirname of the first source file).

eda_formal

Run formal verification using SymbiYosys. Writes .sby config and runs proof.

eda_pnr

Run OpenROAD place & route on a synthesized netlist. Optionally runs CTS + detailed_route + writes routed netlist. Returns area, utilization, timing slack.

eda_gds

Generate GDS file by merging cell GDS library from PDK with routed DEF in a single call. Reads cell GDS first, then overlays DEF placement/routing, writes merged output GDS.

eda_sta

Run static timing analysis on a placed design using OpenSTA (via OpenROAD).

eda_lvs

Run LVS. Two modes: (a) `netgen` compares extracted layout SPICE netlist against schematic SPICE — needs foundry netgen setup tcl, currently gf180/sky130 only; (b) `yosys_equiv` (since v0.1.12) compares two structural Verilog netlists (e.g. synth.v vs post-PnR routed.v) using Yosys equiv_simple+equi

eda_drc_klayout

Run DRC using KLayout. For gf180/sky130 uses foundry decks; for custom PDK auto-derives WIDTH/SPACING rules from the tech LEF (or uses an explicit custom_drc_script).

eda_ir_drop

Analyze IR drop on power grid using OpenROAD PSM (Power Grid Analysis). v0.76 adds custom PDK support and via-resistance fallback.

eda_equiv

Run equivalence check (LEC) between RTL and gate-level netlist using Yosys.

eda_spice

Run SPICE simulation using ngspice. For analog circuit analysis.

eda_xschem_netlist

Generate SPICE netlist from xschem schematic (.sch). Batch mode — no GUI needed. v0.108: analog design pipeline.

eda_spice_corner

Run multi-corner PVT SPICE sweep with automated .meas extraction and yield table. v0.108: analog design pipeline. Runs one ngspice invocation per corner×temp combination, aggregates results into a JSON yield matrix.

eda_dft

Run full DFT flow using Fault: scan chain insertion + ATPG + optional JTAG TAP. Returns coverage percentage and test vector count. v2.5.0: pdk=custom supported via custom_dff_names + custom_lib + custom_cell_verilog.

eda_ic_search

Search the IC Knowledge Base for reference ICs by function, interface, voltage, or natural language. Returns matching ICs with parameters and datasheet URLs. Use when the user describes an IC they want to design and needs to find similar existing ICs.

eda_sta_mcorner

Run multi-corner STA (SS/TT/FF) on synthesized netlist using OpenSTA. Reports WNS/TNS per corner and overall PASS/FAIL.

eda_rtl_audit

Run vibe-ic-d deterministic audit programs against RTL files. Returns per-program PASS/FAIL and findings count.

eda_spec_conformance

Prove RTL conforms to its spec contract: port (name/dir/width), reset mode+polarity, and output latency. Spec may be a natural-language prompt, a markdown module header, or a JSON contract. Returns PASS/FAIL + findings.

eda_spec_lint

Lint a spec/prompt for SELF-contradiction before any RTL exists: garbled numbered-port gaps (body references Y2/Y4 absent from a declared Y1/Y3 interface) and reset-semantics contradictions (spec asserts both sync+async, or both active-high+low). Spec may be a natural-language prompt, markdown heade

eda_fsm_table_gen

Deterministically generate synthesizable FSM RTL from a structured state-transition table (Moore comb/seq or Mealy). Program-first: same spec → byte-identical RTL, no LLM. Spec is a JSON/YAML file with module, kind, encoding, transitions, outputs (+ clk/reset for sequential).

eda_truth_table_gen

Deterministically generate combinational RTL from a structured truth table (inputs/outputs/rows + default). Program-first: same spec → byte-identical RTL, no LLM, no don't-care guessing. Spec is a JSON/YAML file; `in`/`out` are MSB-first binary strings over the declared ports.

eda_gate_netlist_gen

Deterministically generate combinational RTL from a gate netlist (inputs/outputs/wires/gates). Program-first: one assign per gate, byte-identical per spec, no LLM. Ops: and/or/nand/nor/xor/xnor/not/buf.

eda_vector_op_gen

Deterministically generate combinational RTL for a vector op: reverse (bit/byte/chunk), split, concat, sign_extend, zero_extend. Program-first: one assign, byte-identical per spec, no LLM.

eda_rtl_dispatch

Phase-2 program-first router: auto-classify a structured spec and route to the matching DETERMINISTIC RTL generator (gate-netlist via `gates`, FSM-table via `transitions`, truth-table via `rows`, vector-op via `op`). Returns RTL when deterministic, or fallback:'llm' when no generator applies.

eda_professional_tb

Generate a PROFESSIONAL, high-coverage cocotb testbench deterministically from a project's Phase-1 L-docs: interface (L1/L9), clock/reset (L8/L9), a reference model (closed-form for arithmetic primitives; a bounded-latency + bit-order STREAMING scoreboard that closes the serial-datapath functional-v

eda_cocotb

Run cocotb Python testbench with Verilator or Icarus Verilog backend. Returns test pass/fail counts.

eda_fpga_compile

Compile design for Intel FPGA (Quartus) or Xilinx (Vivado). Runs on host, not Docker.

eda_fpga_program
eda_extraction

Extract parasitics from layout using Magic. Produces SPEF or SPICE extracted netlist. since v0.2.33 (ORGANIC-20260531): set `promote_ports`=true (a.k.a. port_makeall) to inject `port makeall` into the extraction TCL so the emitted `.subckt <top>_flat` carries TOP-LEVEL PORTS — required for device-le

eda_doc_extract

Extract plain text + structured JSON from vendor docs (.doc / .docx / .pdf / .ppt / .pptx / .xls / .xlsx / .txt / .html) for downstream Phase 1 / spec-derivation skills. v2.6.4: doc_extract.py now emits per-file coverage_score (text_chars / file_size_bytes) into INDEX.json, so the plugin gate binary

eda_doctor

Pre-flight health check. Verifies docker socket, container, every tool binary, and (optionally) a custom PDK. Returns a structured diagnosis with actionable hints. Run this BEFORE any other eda_* call when starting work in a new environment.

eda_run_tcl

Escape hatch — run an arbitrary TCL/script in a backend (openroad / yosys / klayout-python / netgen / magic / ngspice). Use when stock eda_pnr / eda_synth / eda_drc_klayout don't expose the option you need. The agent supplies the full script content; the server pipes it to the backend in the IIC-OSI

eda_pdk_lint

Validate a PDK before using it for synth/PnR. Checks Liberty syntax, LEF tech vs cell consistency, GDS-LEF cell-name match, RESISTANCE PER CUT presence (needed for IR drop), and CTS buffer cell access-point reachability. Saves hours of debugging when bringing up a new foundry deck.

eda_workflow_run

[PLANNER ONLY in v2.5.x] Declarative pipeline planner. Takes a JSON spec of MCP tool calls and emits a timeline manifest enumerating each step — does NOT actually invoke the tools (the MCP server can't reflectively call its own tools yet). The calling agent reads the manifest and dispatches each ste

device_camera_capture
device_camera_led_diff
eda_scope_protocol_decode
eda_pass_reference_scope_diff
eda_rtl_signaltap_autogen
eda_analog_layout
eda_fpga_adc_read
eda_oracle_bytewise_dump
mcp_server_health_check
eda_phase23_completion_audit
eda_fpga_gds_reverify
eda_fpga_gate_attestation_check
eda_chip_top_gate_wrapper_gen
eda_rtl_name_semantic_check
eda_spinalhdl_gen

Elaborate a SpinalHDL/sbt project to Verilog by running `sbt runMain <main_class>` inside the vibeic-eda container (OpenJDK 17 + sbt present; SpinalHDL pulled from Maven Central, cached). Unblocks Scala-source-only cores like VexRiscv/Murax. Returns success, generated .v files (sha256 + line counts)

eda_device_list
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configCLAUDE_CONFIG_DIR
configEDA_CONTAINER
configEDA_PROJECT_DIR
configVIBEIC_EDA_THREADS
configVIBEIC_OPENROAD_THREADS
configVIBE_IC_MCP_SESSION_ID
configVIBE_IC_PROGRAMS_DIR
configQUARTUS_ROOTDIR
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

51/51 tools missing one or more hints — eda_synth (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); eda_lint (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); eda_simulate (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +48 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Destructive tools are labelled

1 tool perform destructive updates without destructiveHint — eda_fpga_program deletes at line 5915 (unlinkSync(_tclPath))

Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.

Descriptions match behaviour

1 tool describes read intent but its handler mutates — eda_synth (line 1095: fs.writeFileSync(netlistPath, text))

Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.

Shell command execution

4 calls in production code run through a shell (src/index.js:5774, src/index.js:6561, src/devices/_registry.js:430)

Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 5 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/vibeic/vibe-ic?variant=verified)](https://m8ven.ai/mcp/vibeic/vibe-ic)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: ecdc114852944ea11f283a345198b09100ef888b
code hash: ac6517571a36b903fbdfb727acff9b73df88a12c88d9626c09be30129f0d070d
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client