synix/pkgs/kicad-mcp/default.nix
2026-02-26 23:10:38 +01:00

69 lines
1.3 KiB
Nix

{
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";
};
}