{ lib, buildNpmPackage, fetchFromGitHub, python3, fetchPypi, makeWrapper, nodejs, kicad, ... }: let kicad-skip = import ./kicad-skip.nix { inherit lib python3 fetchPypi; }; pythonEnv = python3.withPackages ( ps: [ kicad-skip ] ++ (with ps; [ cairosvg colorlog pillow pydantic python-dotenv requests ]) ); in buildNpmPackage rec { pname = "kicad-mcp"; version = "2.1.0-alpha"; src = fetchFromGitHub { owner = "mixelpixx"; repo = "KiCAD-MCP-Server"; rev = "b5a1483fc20dd1201a1d275522904aac914157e8"; hash = "sha256-63Ef34YjniMY+ZPpDrWZpPx8bUbNA0XE+7Jlgm8KJv8="; }; npmDepsHash = "sha256-nz73qj8CK2LyFixoF14ET2wq407YyuJUw/4VTDc80cQ="; buildScript = "build"; nativeBuildInputs = [ makeWrapper ]; buildInputs = [ pythonEnv ]; postInstall = '' mkdir -p $out/bin makeWrapper ${nodejs}/bin/node $out/bin/${pname} \ --add-flags "$out/lib/node_modules/${pname}/dist/index.js" \ --prefix PATH : ${ lib.makeBinPath [ pythonEnv ] } \ --prefix PYTHONPATH : "${kicad}/lib/python3/dist-packages" ''; meta = { description = "Model Context Protocol server for KiCAD"; homepage = "https://github.com/mixelpixx/KiCAD-MCP-Server"; }; }