{ 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 = "d2723bc29207c942bc93083131e2ac2a8d1a82d5"; hash = "sha256-WvEd+tSjAdc+qjFh4kUaWGnd9pEiJb6Og7i1viUqh94="; }; 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"; }; }