Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

pyslang-mcp

PYPI · PYSLANG-MCP · SCANNED SEP 21

Compiler-backed read-only Verilog and SystemVerilog project analysis.

Available components

0 this week 64 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 0 of 30 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency32
Schema Quality & AI Usability69
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2637 tokens (~263/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the pyslang-mcp server?

pyslang-mcp runs locally as a PyPI package, launched with uvx pyslang-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · pyslang-mcp

# add to Claude Code
claude mcp add ariklapid-pyslang-mcp -- uvx pyslang-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "ariklapid-pyslang-mcp": {
      "command": "uvx",
      "args": [
        "pyslang-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "ariklapid-pyslang-mcp": {
      "command": "uvx",
      "args": [
        "pyslang-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add ariklapid-pyslang-mcp -- uvx pyslang-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ariklapid-pyslang-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "pyslang-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ariklapid-pyslang-mcp --command uvx --arg pyslang-mcp
# ~/.hermes/config.yaml
mcp_servers:
  ariklapid-pyslang-mcp:
    command: "uvx"
    args: ["pyslang-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "ariklapid-pyslang-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "pyslang-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add ariklapid-pyslang-mcp -t stdio -c uvx -a pyslang-mcp
// mcp.json
{
  "mcpServers": {
    "ariklapid-pyslang-mcp": {
      "command": "uvx",
      "args": [
        "pyslang-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 18 Sept 26 +1
    • Stability: 0.97 → pass security
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 −3
    • Security disclosure: unverified → fail functional
    • Stability: pass → 0.80 functional
  • 11 Sept 26 +1
    • Stability: 0.97 → pass security
    • Security disclosure: fail → unverified functional
  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed pypi/pyslang-mcp@0.1.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 30 packages
Packages resolved 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 10 exposed · ~2,637 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
pyslang_describe_design_unit ~280

Describe one project-local design unit by exact, case-sensitive name. Start with `pyslang_list_design_units` if you need discovery. The result reports `found` / `ambiguous`, candidate matches, and on success a `design_unit` object with ports, member-kind counts, child instances, and declared names.

NameTypeReqDescription
definesAdditional preprocessor defines. Use `{NAME: null}` for valueless defines and `{NAME: "VALUE"}` for explicit values.
filelistProject-relative or absolute filelist path under `project_root`. Provide this or `files`, but not both.
filesProject-relative or absolute source file paths under `project_root`. Provide this or `filelist`, but not both.
include_dirsAdditional include directories under `project_root`. These are merged with any include directories discovered from a filelist.
namestringyesExact, case-sensitive design-unit name. Call `pyslang_list_design_units` first if you need to discover the available names.
project_rootstringyesDeclared project root. Every source file, filelist, and include directory must resolve inside this directory or the tool returns an error.
top_modulesOptional top-module override passed into pyslang elaboration. Use when the project contains multiple candidate tops.
NameTypeReqDescription
resultyes

No examples provided.

pyslang_dump_syntax_tree_summary ~264

Summarize syntax-tree shapes per file without dumping full raw ASTs. Returns each file's root kind, top-level member kinds, include directives, and the most common node kinds up to `max_node_kinds`.

NameTypeReqDescription
definesAdditional preprocessor defines. Use `{NAME: null}` for valueless defines and `{NAME: "VALUE"}` for explicit values.
filelistProject-relative or absolute filelist path under `project_root`. Provide this or `files`, but not both.
filesProject-relative or absolute source file paths under `project_root`. Provide this or `filelist`, but not both.
include_dirsAdditional include directories under `project_root`. These are merged with any include directories discovered from a filelist.
max_filesintegerMaximum number of files to summarize before truncation.
max_node_kindsintegerMaximum distinct syntax node kinds to keep per file summary.
project_rootstringyesDeclared project root. Every source file, filelist, and include directory must resolve inside this directory or the tool returns an error.
top_modulesOptional top-module override passed into pyslang elaboration. Use when the project contains multiple candidate tops.
NameTypeReqDescription
resultyes

No examples provided.

pyslang_find_symbol ~356

Search declarations and references by symbol name, lexical path, or hierarchical path. `match_mode` accepts `exact`, `contains`, or `startswith`. Reference hits can include `named_value`, `package_import`, `instance_definition`, and `declared_type`; set `include_references=false` for a cheaper declaration-only query.

NameTypeReqDescription
definesAdditional preprocessor defines. Use `{NAME: null}` for valueless defines and `{NAME: "VALUE"}` for explicit values.
filelistProject-relative or absolute filelist path under `project_root`. Provide this or `files`, but not both.
filesProject-relative or absolute source file paths under `project_root`. Provide this or `filelist`, but not both.
include_dirsAdditional include directories under `project_root`. These are merged with any include directories discovered from a filelist.
include_referencesbooleanWhen true, walk the elaborated design to include reference hits. This is more expensive than declaration-only lookup on larger projects.
match_modestringMatch mode for `query`: `exact` matches the full name or path, `contains` matches substrings, and `startswith` matches prefixes.
max_resultsintegerMaximum declaration hits and maximum reference hits to return.
project_rootstringyesDeclared project root. Every source file, filelist, and include directory must resolve inside this directory or the tool returns an error.
querystringyesSymbol name, lexical path, or hierarchical path to match against declarations and optionally references.
top_modulesOptional top-module override passed into pyslang elaboration. Use when the project contains multiple candidate tops.
NameTypeReqDescription
resultyes

No examples provided.

pyslang_get_diagnostics ~243

Return parse and semantic diagnostics for a project described by explicit files or a filelist. Use this early to confirm the project loads cleanly; the result includes severity counts, per-diagnostic locations, and truncation metadata.

NameTypeReqDescription
definesAdditional preprocessor defines. Use `{NAME: null}` for valueless defines and `{NAME: "VALUE"}` for explicit values.
filelistProject-relative or absolute filelist path under `project_root`. Provide this or `files`, but not both.
filesProject-relative or absolute source file paths under `project_root`. Provide this or `filelist`, but not both.
include_dirsAdditional include directories under `project_root`. These are merged with any include directories discovered from a filelist.
max_itemsintegerMaximum number of list items to return before truncation.
project_rootstringyesDeclared project root. Every source file, filelist, and include directory must resolve inside this directory or the tool returns an error.
top_modulesOptional top-module override passed into pyslang elaboration. Use when the project contains multiple candidate tops.
NameTypeReqDescription
resultyes

No examples provided.

pyslang_get_hierarchy ~258

Return the elaborated instance hierarchy rooted at pyslang top instances. Use `max_depth` and `max_children` to control expansion; nodes include definitions, locations, port-connection snippets, and child truncation markers.

NameTypeReqDescription
definesAdditional preprocessor defines. Use `{NAME: null}` for valueless defines and `{NAME: "VALUE"}` for explicit values.
filelistProject-relative or absolute filelist path under `project_root`. Provide this or `files`, but not both.
filesProject-relative or absolute source file paths under `project_root`. Provide this or `filelist`, but not both.
include_dirsAdditional include directories under `project_root`. These are merged with any include directories discovered from a filelist.
max_childrenintegerMaximum child instances to return per hierarchy node.
max_depthintegerMaximum hierarchy depth to expand from each top instance.
project_rootstringyesDeclared project root. Every source file, filelist, and include directory must resolve inside this directory or the tool returns an error.
top_modulesOptional top-module override passed into pyslang elaboration. Use when the project contains multiple candidate tops.
NameTypeReqDescription
resultyes

No examples provided.

pyslang_get_project_summary ~318

Return a compact project-wide summary of normalized inputs, diagnostics, design-unit counts, top instances, and tracked paths. The summary uses bounded internal limits; tune them with `max_diagnostics`, `max_design_units`, `max_depth`, and `max_children`.

NameTypeReqDescription
definesAdditional preprocessor defines. Use `{NAME: null}` for valueless defines and `{NAME: "VALUE"}` for explicit values.
filelistProject-relative or absolute filelist path under `project_root`. Provide this or `files`, but not both.
filesProject-relative or absolute source file paths under `project_root`. Provide this or `filelist`, but not both.
include_dirsAdditional include directories under `project_root`. These are merged with any include directories discovered from a filelist.
max_childrenintegerMaximum child instances per node in `pyslang_get_project_summary`.
max_depthintegerMaximum hierarchy depth to fold into `pyslang_get_project_summary`.
max_design_unitsintegerMaximum design units to fold into `pyslang_get_project_summary`.
max_diagnosticsintegerMaximum diagnostics to fold into `pyslang_get_project_summary`.
project_rootstringyesDeclared project root. Every source file, filelist, and include directory must resolve inside this directory or the tool returns an error.
top_modulesOptional top-module override passed into pyslang elaboration. Use when the project contains multiple candidate tops.
NameTypeReqDescription
resultyes

No examples provided.

pyslang_list_design_units ~245

List project-local modules, interfaces, and packages for the analyzed project. Use this as the discovery step before `pyslang_describe_design_unit`; results include stable names, kinds, paths, locations, and truncation metadata.

NameTypeReqDescription
definesAdditional preprocessor defines. Use `{NAME: null}` for valueless defines and `{NAME: "VALUE"}` for explicit values.
filelistProject-relative or absolute filelist path under `project_root`. Provide this or `files`, but not both.
filesProject-relative or absolute source file paths under `project_root`. Provide this or `filelist`, but not both.
include_dirsAdditional include directories under `project_root`. These are merged with any include directories discovered from a filelist.
max_itemsintegerMaximum number of list items to return before truncation.
project_rootstringyesDeclared project root. Every source file, filelist, and include directory must resolve inside this directory or the tool returns an error.
top_modulesOptional top-module override passed into pyslang elaboration. Use when the project contains multiple candidate tops.
NameTypeReqDescription
resultyes

No examples provided.

pyslang_parse_filelist ~215

Parse and elaborate a project filelist under a declared project root. Returns the normalized project configuration, parse counts, expanded nested filelists, and any unsupported filelist directives that were reported instead of ignored.

NameTypeReqDescription
definesAdditional preprocessor defines. Use `{NAME: null}` for valueless defines and `{NAME: "VALUE"}` for explicit values.
fileliststringyesProject-relative or absolute filelist path under `project_root`. Supports nested `-f` / `-F`, `+incdir+`, `-I`, and `+define+` entries.
include_dirsAdditional include directories under `project_root`. These are merged with any include directories discovered from a filelist.
project_rootstringyesDeclared project root. Every source file, filelist, and include directory must resolve inside this directory or the tool returns an error.
top_modulesOptional top-module override passed into pyslang elaboration. Use when the project contains multiple candidate tops.
NameTypeReqDescription
resultyes

No examples provided.

pyslang_parse_files ~200

Parse and elaborate an explicit list of Verilog or SystemVerilog files under a declared project root. Returns the normalized project configuration plus a compact parse summary with file, include, define, top-module, and diagnostic counts.

NameTypeReqDescription
definesAdditional preprocessor defines. Use `{NAME: null}` for valueless defines and `{NAME: "VALUE"}` for explicit values.
filesarrayyesProject-relative or absolute source file paths under `project_root`. Use this for explicit-file mode instead of `filelist`.
include_dirsAdditional include directories under `project_root`. These are merged with any include directories discovered from a filelist.
project_rootstringyesDeclared project root. Every source file, filelist, and include directory must resolve inside this directory or the tool returns an error.
top_modulesOptional top-module override passed into pyslang elaboration. Use when the project contains multiple candidate tops.
NameTypeReqDescription
resultyes

No examples provided.

pyslang_preprocess_files ~258

Return conservative preprocessing metadata and leading source excerpts for analyzed files. This is summary-only: it reports include directives and effective defines, but it does not claim to produce a full standalone preprocessed text stream.

NameTypeReqDescription
definesAdditional preprocessor defines. Use `{NAME: null}` for valueless defines and `{NAME: "VALUE"}` for explicit values.
filelistProject-relative or absolute filelist path under `project_root`. Provide this or `files`, but not both.
filesProject-relative or absolute source file paths under `project_root`. Provide this or `filelist`, but not both.
include_dirsAdditional include directories under `project_root`. These are merged with any include directories discovered from a filelist.
max_excerpt_linesintegerMaximum number of leading source lines to include per file excerpt.
max_filesintegerMaximum number of files to summarize before truncation.
project_rootstringyesDeclared project root. Every source file, filelist, and include directory must resolve inside this directory or the tool returns an error.
top_modulesOptional top-module override passed into pyslang elaboration. Use when the project contains multiple candidate tops.
NameTypeReqDescription
resultyes

No examples provided.

Common questions

What is the pyslang-mcp server?

pyslang-mcp is listed in the public MCP registry as io.github.ariklapid/pyslang-mcp. Compiler-backed read-only Verilog and SystemVerilog project analysis. This page covers its PyPI package (pyslang-mcp).

Is the pyslang-mcp server safe to use?

pyslang-mcp scores 64 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the pyslang-mcp server expose?

pyslang-mcp exposes 10 tools: pyslang_parse_files, pyslang_parse_filelist, pyslang_get_diagnostics, pyslang_list_design_units, pyslang_describe_design_unit, and 5 more. Their descriptions and schemas cost roughly 2,637 tokens of context every time the server is loaded.

Is the pyslang-mcp server still maintained?

pyslang-mcp is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.