ariklapid avatar

pyslang-mcp

ariklapid/pyslang-mcp

Wraps the pyslang compiler frontend so AI agents can query parsed and elaborated Verilog and SystemVerilog projects instead of grepping plain text. Exposes tools to load filelists or explicit files, retrieve compiler diagnostics, list modules and interfaces, walk instance hierarchies, and find symbol declarations and references. Handles include directories, defines, nested filelists, and generate blocks the way a real compiler does. Meant for triaging parse errors, checking what a filelist expands to, getting hierarchy context for debug prompts, or finding declarations without chasing stale comments. Read-only and project-root scoped. Not a simulator, linter replacement, or refactoring tool. Good when you need semantic structure, not when you just want to search a few lines of RTL.

GitHub stars
17
tools
15
transport
STDIO
last updated
May 18, 2026

Tools

15 tools

Public tool metadata for what this MCP can expose to an agent.

pyslang_parse_filesLoad explicit files

Load explicit files

No parameter schema in public metadata yet.

pyslang_parse_filelistLoad a `.f` filelist

Load a `.f` filelist

No parameter schema in public metadata yet.

pyslang_get_diagnosticsGet parse and semantic diagnostics

Get parse and semantic diagnostics

No parameter schema in public metadata yet.

pyslang_list_design_unitsList modules, interfaces, and packages

List modules, interfaces, and packages

No parameter schema in public metadata yet.

pyslang_describe_design_unitInspect one design unit

Inspect one design unit

No parameter schema in public metadata yet.

pyslang_get_hierarchyWalk the elaborated instance tree

Walk the elaborated instance tree

No parameter schema in public metadata yet.

pyslang_find_symbolFind declarations and references

Find declarations and references

No parameter schema in public metadata yet.

pyslang_find_memberFind a local member in one design unit

Find a local member in one design unit

No parameter schema in public metadata yet.

pyslang_get_assignmentsFind assignments involving a signal

Find assignments involving a signal

No parameter schema in public metadata yet.

pyslang_trace_connectivityTrace bounded structural connectivity

Trace bounded structural connectivity

No parameter schema in public metadata yet.

pyslang_get_instance_connectionsDump one instance's port connections

Dump one instance's port connections

No parameter schema in public metadata yet.

pyslang_summarize_diagnostics_by_codeGroup diagnostics by code

Group diagnostics by code

No parameter schema in public metadata yet.

pyslang_dump_syntax_tree_summarySummarize syntax node shapes

Summarize syntax node shapes

No parameter schema in public metadata yet.

pyslang_preprocess_filesCheck preprocessing metadata and excerpts

Check preprocessing metadata and excerpts

No parameter schema in public metadata yet.

pyslang_get_project_summaryGet a compact project overview

Get a compact project overview

No parameter schema in public metadata yet.

Sponsors

Readme

pyslang-mcp

CI PyPI Python Status Transport

pyslang-mcp is a local Model Context Protocol server that gives AI agents compiler-backed, read-only context for Verilog and SystemVerilog projects.

It wraps pyslang so an MCP client can ask questions against parsed and elaborated HDL instead of plain text:

  • What modules, interfaces, and packages are in this filelist?
  • What diagnostics does the compiler frontend report?
  • What is the instance hierarchy below this top?
  • Where is this symbol declared or referenced?
  • Did my include paths, defines, and nested .f files resolve as expected?

View the full README on GitHub

Details

Repository
github.com/ariklapid/pyslang-mcp
Website
github.com/ariklapid/pyslang-mcp
Package
pyslang-mcp
Transport
STDIO
Registry
MCP registry, active