{ inputs, ... }: { perSystem = { system, pkgs, ... }: let mcpServerPkg = pkgs.python3Packages.buildPythonPackage { pname = "nixos-mcp-server"; version = "0.1.0"; src = inputs.self + "/scripts/mcp-server"; pyproject = true; build-system = with pkgs.python3Packages; [ setuptools wheel ]; propagatedBuildInputs = with pkgs.python3Packages; [ click mcp ]; doCheck = false; }; mcpPython = pkgs.python3.withPackages (_: [ mcpServerPkg ]); nixosMcp = pkgs.writeShellApplication { name = "nixos-mcp"; runtimeInputs = [ mcpPython ]; text = '' exec ${mcpPython}/bin/python -m mcp_server.server ''; }; mcpTests = pkgs.writeShellApplication { name = "mcp-tests"; runtimeInputs = with pkgs.python3Packages; [ black click mypy pytest ruff ]; text = '' start_dir="$PWD" if [ -n "''${GITEA_WORKSPACE:-}" ]; then cd "''${GITEA_WORKSPACE}" elif [ -n "''${GITHUB_WORKSPACE:-}" ]; then cd "''${GITHUB_WORKSPACE}" fi while [ ! -x ./scripts/mcp-server/run-tests.sh ]; do if [ "$PWD" = "/" ]; then echo "Could not find executable scripts/mcp-server/run-tests.sh starting from $start_dir" >&2 exit 1 fi cd .. done exec bash ./scripts/mcp-server/run-tests.sh "$@" ''; }; in { packages = (inputs.jawz-scripts.packages.${system} or { }) // { emacs-vm = inputs.self.nixosConfigurations.emacs.config.system.build.vm; vps-linode = inputs.self.nixosConfigurations.vps.config.system.build.images.linode; mcp-tests = mcpTests; nixos-mcp = nixosMcp; nixos-mcp-server = mcpServerPkg; }; }; }