Skip to main content

flist-mcp

CI Codecov PyPI GitHub tag Python 3.10+ uv Ruff mypy: strict License: MIT

flist-mcp is a Slang-backed MCP server that helps coding agents construct SystemVerilog filelists. Given one or more top modules, it discovers the reachable compilation closure, returns package and source files in topological order, finds include roots, reports ambiguous definitions, and exposes diagnostics and focused dependency graphs.

Slang remains the source of truth for parsing, elaboration, diagnostics, and dependency ordering. The server does not parse RTL with regular expressions, invent its own topological order, or emit a build-system-specific manifest.

Features

  • Iterative resolution of duplicate module, interface, and package definitions.
  • Automatic discovery of unique repository-local include roots.
  • Explicit resolution when several headers satisfy the same include path.
  • Separate topological package_order and source_order filelists.
  • Diagnostics, missing includes, undefined design macros, and unresolved external symbols.
  • full, elaborated rtl, and compact external dependency graph views.
  • Stateless discovery of all repository root modules before selecting a top.
  • Strict machine-readable MCP input and output schemas.

Quick start

Install and start the latest PyPI release with uv:

uvx flist-mcp

Example stdio MCP configuration using the published package:

{
  "mcpServers": {
    "flist": {
      "command": "uvx",
      "args": ["flist-mcp"]
    }
  }
}

For a reproducible client configuration, pin a release explicitly:

{
  "command": "uvx",
  "args": ["--from", "flist-mcp==0.16.0", "flist-mcp"]
}

Platform requirements

flist-mcp requires CPython 3.10 or newer. CI currently validates CPython 3.10 on Ubuntu. The server itself is Python, but pyslang==11.0.0 is a native extension and determines platform availability. Upstream provides wheels for CPython 3.10 through 3.14 on:

  • Linux with glibc 2.27 or newer, on x86-64 and AArch64.
  • macOS 11 or newer, on Apple Silicon and Intel via universal2 wheels.
  • 64-bit Windows on x86-64.

Prebuilt pyslang wheels are not available for Alpine/musl Linux, 32-bit systems, Windows ARM64, or other architectures; these platforms are outside the tested flist-mcp runtime matrix.

Git is not required to analyze an existing source directory. It is needed only to clone this repository for development and by the real-world integration tests that fetch pinned RTL projects.

Agent flow

  1. Optionally call list_root_modules(repository) to discover candidate entry modules.
  2. Call analyze_top(repository, top_modules).
  3. If it returns needs_resolution, select candidates from required_definition_conflicts and required_include_conflicts, then call analyze_top again.
  4. When it returns ready_for_diagnostics, use its topologically sorted filelists.
  5. Call diagnose_top() for semantic diagnostics or get_dependency_graph(view=...) for a focused graph. Both reuse one cached semantic analysis.

Only one active top is stored in a server process. Changing the repository, top modules, or source globs starts a new flow.

Documentation

Development

Development requires Git and uv:

git clone https://github.com/Bigyin1/flist-mcp.git
cd flist-mcp
uv sync --python 3.10 --frozen
make check
make check-all

After the locked development environment is synchronized, make check uses the installed local tools. make check-all additionally downloads pinned sparse checkouts of PULP AXI and CVA6 into the ignored .realworld-cache directory and runs the integration and performance suite.

License

Licensed under the MIT License.

Release files for flist-mcp 0.17.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flist-mcp 0.17.0
File Size Uploaded
flist_mcp-0.17.0.tar.gz 194.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flist-mcp 0.17.0
File Interpreter ABI Platform
flist_mcp-0.17.0-py3-none-any.whl Python 3 none any Details

Total release size: 226.2 kB

Release files / flist_mcp-0.17.0.tar.gz

Download URL flist_mcp-0.17.0.tar.gz
Size 194.0 kB
Tags Source
SHA-256 checksum
How to use checksums
610d4cc7ea5ed43a1d43b364b8a5d21e5868f07795da2c849dbeac19c7de0b86
BLAKE2b-256 checksum
How to use checksums
639f37751a3064b01e45949837d7234a164050ae4589907091848191126d4817
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Release files / flist_mcp-0.17.0-py3-none-any.whl

Download URL flist_mcp-0.17.0-py3-none-any.whl
Size 32.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d8a3ad0893379722a5eccdc9c346a3903d4f6aa481d7c339e4dfc976a0ff77b8
BLAKE2b-256 checksum
How to use checksums
8fffbd17cda502bc15a99df76bb4d471e4d3fb4aff46ace852caafffcb196197
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.17.0 This release

2 release files

0.16.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page