Skip to content

[Bug]: pysam dependency prevents Windows MCP build #248

@Austin-s-h

Description

@Austin-s-h

Bug Description

Attempting to use the Quilt MCP server on Windows leads to failure to launch.

I would suggest better dependency grouping and optional dependencies, paired with system-os requirements. This may result in degraded functionality, but really is pysam being difficult.

2026-01-17 10:12:01 [ERROR]
 [Plugin(mcp/quilt)] stderr: Downloading cpython-3.14.2-windows-x86_64-none (download) (21.2MiB)
2026-01-17 10:12:05 [ERROR]
 [Plugin(mcp/quilt)] stderr:  Downloaded cpython-3.14.2-windows-x86_64-none (download)
2026-01-17 10:12:07 [ERROR]
 [Plugin(mcp/quilt)] stderr:    Building pybedtools==0.12.0
2026-01-17 10:12:07 [ERROR]
 [Plugin(mcp/quilt)] stderr: Downloading pygments (1.2MiB)
2026-01-17 10:12:07 [ERROR]
 [Plugin(mcp/quilt)] stderr: Downloading matplotlib (7.9MiB)
2026-01-17 10:12:07 [ERROR]
 [Plugin(mcp/quilt)] stderr: Downloading botocore (13.9MiB)
2026-01-17 10:12:07 [ERROR]
 [Plugin(mcp/quilt)] stderr: Downloading pillow (6.8MiB)
Downloading numpy (11.9MiB)
Downloading plotly (9.4MiB)
Downloading biopython (2.6MiB)
Downloading sqlalchemy (2.0MiB)
Downloading cryptography (3.4MiB)
2026-01-17 10:12:07 [ERROR]
 [Plugin(mcp/quilt)] stderr: Downloading fonttools (2.2MiB)
Downloading pydantic-core (1.9MiB)
Downloading pywin32 (9.2MiB)
Downloading pandas (10.6MiB)
Downloading beartype (1.3MiB)
2026-01-17 10:12:07 [ERROR]
 [Plugin(mcp/quilt)] stderr: Downloading lupa (1.7MiB)
2026-01-17 10:12:11 [ERROR]
 [Plugin(mcp/quilt)] stderr:    Building pybigwig==0.3.25
2026-01-17 10:12:16 [ERROR]
 [Plugin(mcp/quilt)] stderr:  Downloaded
2026-01-17 10:12:16 [ERROR]
 [Plugin(mcp/quilt)] stderr:  lupa
2026-01-17 10:12:17 [ERROR]
 [Plugin(mcp/quilt)] stderr:  Downloaded pydantic-core
2026-01-17 10:12:17 [ERROR]
 [Plugin(mcp/quilt)] stderr:  Downloaded sqlalchemy
2026-01-17 10:12:17 [ERROR]
 [Plugin(mcp/quilt)] stderr:  Downloaded pygments
2026-01-17 10:12:18 [ERROR]
 [Plugin(mcp/quilt)] stderr:  Downloaded beartype
2026-01-17 10:12:18 [ERROR]
 [Plugin(mcp/quilt)] stderr:  Downloaded fonttools
2026-01-17 10:12:20 [ERROR]
 [Plugin(mcp/quilt)] stderr:  
2026-01-17 10:12:20 [ERROR]
 [Plugin(mcp/quilt)] stderr: Downloaded cryptography
2026-01-17 10:12:20 [ERROR]
 [Plugin(mcp/quilt)] stderr:  Downloaded biopython
2026-01-17 10:12:22 [ERROR]
 [Plugin(mcp/quilt)] stderr:    Building pysam==0.23.3
2026-01-17 10:12:22 [ERROR]
 [Plugin(mcp/quilt)] stderr:  Downloaded pillow
2026-01-17 10:12:23 [ERROR]
 [Plugin(mcp/quilt)] stderr:  Downloaded matplotlib
2026-01-17 10:12:26 [ERROR]
 [Plugin(mcp/quilt)] stderr:   × Failed to build `pysam==0.23.3`
  ├─▶ The build backend returned an error
2026-01-17 10:12:26 [ERROR]
 [Plugin(mcp/quilt)] stderr:   ╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit
      code: 1)

      [stdout]
      # pysam: Cython 3.2.4 is available - using cythonize if necessary
      # pysam: htslib mode is shared
      # pysam: HTSLIB_CONFIGURE_OPTIONS=None
      # pysam: htslib configure options: None

      [stderr]
      '.' is not recognized as an internal or external command,
      operable program or batch file.
      '.' is not recognized as an internal or external command,
      operable program or batch file.
      Traceback (most recent call last):
        File "<string>", line 14, in <module>
          requires = get_requires_for_build({})
        File
      "C:\......\site-packages\setuptools\build_meta.py",
      line 331, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=[])
                 ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File
      "...\site-packages\setuptools\build_meta.py",
      line 301, in _get_build_requires
          self.run_setup()
          ~~~~~~~~~~~~~~^^
        File
      "...\site-packages\setuptools\build_meta.py",
      line 512, in run_setup
          super().run_setup(setup_script=setup_script)
          ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File
      "...\site-packages\setuptools\build_meta.py",
      line 317, in run_setup
          exec(code, locals())
          ~~~~^^^^^^^^^^^^^^^^
        File "<string>", line 468, in <module>
        File "<string>", line 81, in run_make_print_config
        File
      "...\subprocess.py",
      line 472, in check_output
          return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
                 ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                     **kwargs).stdout
                     ^^^^^^^^^
        File
      "...\subprocess.py",
      line 554, in run
          with Popen(*popenargs, **kwargs) as process:
               ~~~~~^^^^^^^^^^^^^^^^^^^^^^
        File
      "...\subprocess.py",
      line 1038, in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                              pass_fds, cwd, env,
                              ^^^^^^^^^^^^^^^^^^^
          ...<5 lines>...
                              gid, gids, uid, umask,
                              ^^^^^^^^^^^^^^^^^^^^^^
                              start_new_session, process_group)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File
      "...\subprocess.py",
      line 1552, in _execute_child
          hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                             ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
                                   # no special security
                                   ^^^^^^^^^^^^^^^^^^^^^
          ...<4 lines>...
                                   cwd,
                                   ^^^^
                                   startupinfo)
                                   ^^^^^^^^^^^^
      FileNotFoundError: [WinError 2] The system cannot find the file
      specified

      hint: This usually indicates a problem with the package or the build
      environment.
  help: `pysam` (v0.23.3) was included because `quilt-mcp` (v0.9.2) depends
        on `pysam`
2026-01-17 10:12:26 [ERROR]
 [Plugin(mcp/quilt)] stderr: Error in LM Studio MCP bridge process: _0x5a778a [McpError]: MCP error -32000: Connection closed

Environment

Other (please specify in description)

Server Version

0.9.2

Python Version

3.14

Operating System

Windows 11

Configuration

"quilt": {
      "command": "uvx",
      "args": [
        "quilt-mcp",
        "--allow-read",
        "C:\\Users\\62011\\Downloads"
      ],
      "env": {
        "QUILT_CATALOG_URL": "https://open.quiltdata.com/"
      }
    }

Steps to Reproduce

  1. Install uv systemwide for Windows 11 Pro (25H2)
  2. Open VSCode (not WSL2 backend) or LM Studio and add mcp configuration
  3. pysam causes build failure

Expected Behavior

The MCP server installs successfully.

Actual Behavior

pysam creates an install error because it isn't available / supported on Windows.

Error Messages


Minimal Example

Additional Context

pyproject.toml

[tool.uv]
required-environments = [
  "sys_platform == 'darwin' and platform_machine =='arm64'",
  "sys_platform == 'linux' and platform_machine == 'x84_64'",
  "sys_platform == 'windows' and platform_machine == 'x86_64'"
]


[dependency-groups]
test = [
    "pytest>=8.0.0",
    "pytest-asyncio>=1.0.0",
    "pytest-cov>=4.0.0",
    "pytest-timeout>=2.1.0",
    "quilt3>=5.6.0",
]
deploy = [
    "aws-cdk-lib>=2.100.0",
    "constructs>=10.0.0",
]
lint = [
    "ruff>=0.1.0",
    "mypy>=1.8.0",
    "pandas-stubs>=2.0.0",
    "types-cachetools>=5.3.0",
    "types-PyYAML>=6.0.0",
    "types-requests>=2.31.0",
]
dev = [
    "pytest-xdist>=3.8.0",
    "wheel>=0.45.1",
    "build>=1.0.0",
    "python-dotenv>=1.0.0",
]
mac = [
     "pysam>=0.23.3; sys_platform =='darwin'"
]
linux = [
    "pysam>=0.23.3; sys_platform =='linux'"
]
windows = [
     
]

Checklist

  • I have searched existing issues to ensure this is not a duplicate
  • I have provided all required information above
  • I have redacted any sensitive information from logs and configuration

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions