MCP server enabling AI agents to explore elaborated SystemVerilog/Verilog designs with precise queries and source references.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Naja Scope.
Let your AI assistant explore SystemVerilog designs โ without pasting source code into the chat.
naja-scope is an MCP server that gives AI agents (Claude, and any MCP-compatible assistant) a precise, structured view of your elaborated SystemVerilog design. Instead of dumping thousands of lines of RTL into the model's context, the agent asks targeted questions โ what drives this signal? what's inside this module? where does this net come from? โ and gets back small, exact answers with file-and-line references.
Built on the najaeda netlist engine.
Large designs don't fit in a chat window. Pasting RTL is slow, expensive, and the model still can't reliably trace connectivity across hierarchy. naja-scope turns your design into something an agent can navigate:
file:line ranges, so the
agent can quote the exact RTL that matters.Works on RTL and gate-level netlists alike: load elaborated SystemVerilog, or load a post-synthesis structural Verilog netlist together with its Liberty standard-cell library and navigate the gates the same way (see Gate-level designs).
All responses are token-bounded: lists paginate, large results truncate with clear markers. Your context stays small; your answers stay accurate.
naja-scope helps most when the answer exists in the elaborated design rather
than in any single source file. In an initial 17-question run on the
cv32a6_imac_sv32 configuration of
CVA6, the same Claude Code agent was
tested with naja-scope and with source-search tools alone.
| Agent setup | Provider and models | Initial automated score | Turns | Input processed | Output tokens |
|---|---|---|---|---|---|
| Agent + naja-scope | Anthropic Claude Code; claude-sonnet-4-6 with claude-haiku-4-5-20251001 helper | 17 / 17 | 77 | 1,058,556 | 19,520 |
| Agent + grep/read source | Anthropic Claude Code; claude-sonnet-4-6 with claude-haiku-4-5-20251001 helper | 10 / 17 | 123 | 5,461,719 | 55,962 |
The difference is clearest on structural questions that source search cannot answer directly:
| CVA6 question | Agent + naja-scope | Agent + grep/read source |
|---|---|---|
Flattened register groups under ex_stage_i | 92, in 4 turns | No answer at the turn limit |
Flattened register groups under commit_stage_i | 0, in 3 turns | No answer at the turn limit |
Elaborated hpdcache_mux variants | 20, in 3 turns | No answer at the turn limit |
Source search remains the right tool for local textual questions. naja-scope adds the elaborated hierarchy, connectivity, lowered primitives, and generated or uniquified structures that are otherwise difficult to reconstruct.
See the benchmark methodology and multi-model runner and historical result record for configuration, scoring, token accounting, and reproducibility details.
Or add it to any MCP client's config:
Then just ask your assistant to load a design and start exploring:
"Load my UART design from
rtl/uart.svwith topuart_top, then show me everything that drivestx_o."
The agent loads the design once and answers follow-up questions instantly โ no re-reading source, no giant pastes.
ChatGPT connects to MCP servers over an HTTP endpoint (custom connectors / Developer mode), so run naja-scope as an HTTP server instead of stdio:
This serves MCP at http://<host>:8000/mcp. Because ChatGPT reaches the server
over the network, expose that URL where ChatGPT can see it โ e.g. a public
tunnel for a local run:
Then in ChatGPT, open Settings โ Connectors (enable Developer mode if
needed), add a custom connector, and paste the server URL
(https://<your-host>/mcp). Once connected, ask it to load a design and explore
exactly as above. (ChatGPT's connector UI evolves; the constant is: it needs an
HTTPS MCP URL, which --transport streamable-http provides.)
โ ๏ธ The HTTP server has no built-in auth โ only expose it over a trusted tunnel, and prefer short-lived tunnels for local experiments.
Already synthesized? Load the structural Verilog netlist together with the Liberty library that defines its standard cells, and navigate the gates the same way as RTL:
"Load the Liberty library
pdk/stdcells.lib, then the gate netlistbuild/top.v, and tell me what cellstopis built from and what drivesdata_out."
Hierarchy, per-cell counts (get_module_card), drivers/loads, and logic cones
all work on the netlist; cones stop at the sequential cells. A gate netlist
carries no source line info, so get_source applies to RTL only. A runnable
example lives in examples/ (stdcells.lib + counter2.v +
gate_level.py).
Once a design is loaded, your assistant can:
0 / 1 / X / Z values.A runnable end-to-end walkthrough lives in examples/, including
versions that run against CVA6 (a
production RISC-V core, cloned on demand โ see
examples/cva6_demo.sh) and
CORE-V-MCU (a full multi-vendor
RISC-V SoC โ see examples/core_v_mcu_demo.sh).
naja-scope also has a query_python tool that runs Python directly against the
loaded design, for queries the typed tools above cannot express. It is not
registered unless you opt in:
It is unsandboxed eval/exec inside the server process โ read-only by
convention, not enforced โ so anything that can reach the server can run
arbitrary Python as the server's user. That matters most under --transport streamable-http, where the server listens on a socket. Leave it off unless you
need it and trust every client that can reach the endpoint.
najaeda runs (Linux, macOS, Windows)The full test suite runs against a plain pip install of najaeda โ no native
build required. The CVA6 cross-hierarchy cone regression
(tests/test_zzz_cone_cva6.py) is slow and skips automatically unless a CVA6
snapshot is present.
Apache-2.0. See LICENSE.
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/najaeda-naja-scope)<a href="https://allmcps.com/mcp/najaeda-naja-scope"><img src="https://allmcps.com/api/badge/najaeda-naja-scope?style=directory" alt="Naja Scope on AllMCPs" /></a>