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.
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
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
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.
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_synthSynthesize RTL to gate-level netlist using Yosys. Returns cell count, area, and writes netlist file.
eda_lintRun 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_simulateCompile 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_formalRun formal verification using SymbiYosys. Writes .sby config and runs proof.
eda_pnrRun OpenROAD place & route on a synthesized netlist. Optionally runs CTS + detailed_route + writes routed netlist. Returns area, utilization, timing slack.
eda_gdsGenerate 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_staRun static timing analysis on a placed design using OpenSTA (via OpenROAD).
eda_lvsRun 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_klayoutRun 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_dropAnalyze IR drop on power grid using OpenROAD PSM (Power Grid Analysis). v0.76 adds custom PDK support and via-resistance fallback.
eda_equivRun equivalence check (LEC) between RTL and gate-level netlist using Yosys.
eda_spiceRun SPICE simulation using ngspice. For analog circuit analysis.
eda_xschem_netlistGenerate SPICE netlist from xschem schematic (.sch). Batch mode — no GUI needed. v0.108: analog design pipeline.
eda_spice_cornerRun 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_dftRun 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_searchSearch 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_mcornerRun multi-corner STA (SS/TT/FF) on synthesized netlist using OpenSTA. Reports WNS/TNS per corner and overall PASS/FAIL.
eda_rtl_auditRun vibe-ic-d deterministic audit programs against RTL files. Returns per-program PASS/FAIL and findings count.
eda_spec_conformanceProve 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_lintLint 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_genDeterministically 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_genDeterministically 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_genDeterministically 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_genDeterministically 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_dispatchPhase-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_tbGenerate 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_cocotbRun cocotb Python testbench with Verilator or Icarus Verilog backend. Returns test pass/fail counts.
eda_fpga_compileCompile design for Intel FPGA (Quartus) or Xilinx (Vivado). Runs on host, not Docker.
eda_fpga_programeda_extractionExtract 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_extractExtract 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_doctorPre-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_tclEscape 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_lintValidate 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_capturedevice_camera_led_diffeda_scope_protocol_decodeeda_pass_reference_scope_diffeda_rtl_signaltap_autogeneda_analog_layouteda_fpga_adc_readeda_oracle_bytewise_dumpmcp_server_health_checkeda_phase23_completion_auditeda_fpga_gds_reverifyeda_fpga_gate_attestation_checkeda_chip_top_gate_wrapper_geneda_rtl_name_semantic_checkeda_spinalhdl_genElaborate 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_listCLAUDE_CONFIG_DIREDA_CONTAINEREDA_PROJECT_DIRVIBEIC_EDA_THREADSVIBEIC_OPENROAD_THREADSVIBE_IC_MCP_SESSION_IDVIBE_IC_PROGRAMS_DIRQUARTUS_ROOTDIRTool 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.
[](https://m8ven.ai/mcp/vibeic/vibe-ic)?variant=verified from the URL.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