Naja Scope logo

Naja Scope

by najaeda

Explores elaborated RTL and gate-level designs through hierarchy, connectivity, logic cones, and source locations.

Install Naja Scope

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "najaeda-naja-scope": {
      "command": "uvx",
      "args": [
        "naja-scope"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 23 tools correctly (7d ago).

Overview

The najaeda/naja-scope MCP server lets AI agents inspect elaborated SystemVerilog and Verilog designs through the najaeda netlist engine. It loads a design once, then exposes structured queries for hierarchy, signal drivers and loads, logic cones, storage summaries, and source locations. It supports RTL and post-synthesis gate-level netlists, with beta support for a restricted VHDL subset. Reach for it when source search cannot reconstruct elaborated connectivity or generated and uniquified structures without sending large amounts of RTL to the model.

Use cases

  • Trace fan-in and fan-out across RTL hierarchy
  • Inspect post-synthesis gate-level netlists
  • Locate exact source lines for elaborated signals
  • Summarize registers and inferred memories
  • Explore generated or uniquified module structures

Key features

  • SystemVerilog and structural Verilog exploration
  • Module hierarchy and connectivity queries
  • Fan-in, fan-out, and logic-cone tracing
  • File-and-line source lookup
  • Gate-level Liberty library support
  • Register and memory summaries

Tools23

What Naja Scope lets your agent do. Expand a tool for its parameters.

Verified live~5.1k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

19/19 checks healthy over the last 80d

What it can do

From the 23 tools this server returned when we ran it; 23 declare their own safety hints.

Can delete or modify data · 4Makes network requests · 6Read-only tools · 19
Network at startup2 connections
Files written at startup11

Observed 2026-10-22 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 9d ago via OSV.dev · naja-scope (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars18Stargazers on the source repository.
Last commit10d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed23Callable tools this server registers over MCP.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

How Naja Scope works

What najaeda/naja-scope MCP server does

The najaeda/naja-scope MCP server gives an AI assistant a navigable representation of an elaborated hardware design instead of requiring the design source to be pasted into the conversation. It is intended for SystemVerilog RTL, structural Verilog produced after synthesis, and a restricted beta subset of VHDL.

The server can expose module and instance hierarchy, ports, signal connectivity, lowered primitives, and source references. Responses include file-and-line ranges where available, helping an agent connect a structural answer back to the relevant source. Results are bounded: lists paginate and large responses include truncation markers.

How it works

Install the Python package and run the naja-scope-mcp executable as an MCP server. An agent first loads a design and then issues focused queries against the in-memory elaborated representation. This avoids repeatedly reading source files and is useful for questions such as which logic drives a signal, what a module contains, or which instances load a net.

The najaeda/naja-scope MCP server uses the najaeda netlist engine. For gate-level work, load the structural netlist together with the Liberty library describing its standard cells. Yosys source attributes can optionally preserve links from netlist locations back to RTL origins.

Setup and configuration

Install from PyPI with:

Terminal
pip install naja-scope

For a standard input/output connection, start naja-scope-mcp and register that executable with the MCP client. Claude Code can be configured with:

Terminal
claude mcp add naja-scope -- naja-scope-mcp

The server also supports Streamable HTTP. Run it with --transport streamable-http, optionally setting --host and --port; the MCP endpoint is served at /mcp.

Tools and capabilities

The documented operations include:

  • Loading SystemVerilog designs and selecting a top module.
  • Loading VHDL files with load_vhdl; package files may need to be loaded before the top file.
  • Traversing modules, instances, ports, and hierarchy.
  • Finding signal drivers and loads across module boundaries.
  • Tracing combinational fan-in and fan-out cones until register boundaries.
  • Locating nets and cells with get_source, including optional RTL origins from Yosys attributes.
  • Summarizing module contents with get_module_card, including direct-child registers and inferred RAM or ROM details.
  • Aggregating design statistics with get_stats, including flattened register and memory counts.
  • Recovering design information such as enum states, struct or union fields, and parameter formulas when available from elaboration.

Limitations and notes

The najaeda/naja-scope MCP server does not replace textual source search for local questions that are directly answered by file contents. VHDL support is beta, covers a restricted two-state RTL subset, and does not guarantee source ranges; intent operations remain SystemVerilog-only.

Memory summaries apply to recognized native naja primitives. Opaque memory macros do not receive inferred capacity, and unknown sequential-cell state models are reported separately from known register-bit counts. Logic cones on gate-level designs stop at sequential cells. The HTTP transport has no built-in authentication, and the documented benchmark results should be treated as results for the described CVA6 setup rather than a general performance guarantee.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Naja Scope

najaeda/naja-scope is an MCP server that connects AI assistants to the najaeda netlist engine for exploring elaborated SystemVerilog, structural Verilog, and beta VHDL designs. Its main tools load designs, traverse hierarchy, trace signal drivers and loads, inspect fan-in or fan-out cones, summarize modules, and return source locations.

Install it from PyPI with `pip install naja-scope`, then run the `naja-scope-mcp` executable. For Claude Code, register it with `claude mcp add naja-scope -- naja-scope-mcp`; other MCP clients can use the executable in their server configuration.

Yes, it can work with ChatGPT through an HTTPS Streamable HTTP MCP endpoint. Start `naja-scope-mcp --transport streamable-http`, expose the `/mcp` URL where ChatGPT can reach it, and add it as a custom connector. The HTTP mode has no built-in authentication.

Yes, it can inspect structural gate-level Verilog when the netlist is loaded with the Liberty library that defines its standard cells. Hierarchy, cell counts, drivers, loads, logic cones, and netlist source locations are supported; cones stop at sequential cells.

Yes, VHDL loading is available in beta through `load_vhdl`. It supports a restricted two-state RTL subset and can explore elaborated hierarchy and connectivity, but source ranges are not guaranteed and the intent operations remain limited to SystemVerilog.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewNaja Scope AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/najaeda-naja-scope?style=directory)](https://allmcps.com/mcp/najaeda-naja-scope)
HTML Embed
<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>