{ description = "LabMCP - Collection of MCP servers"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; }; outputs = { self, nixpkgs }: let lib = nixpkgs.lib; supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = lib.genAttrs supportedSystems; pkgsFor = system: nixpkgs.legacyPackages.${system}; in { packages = forAllSystems (system: let pkgs = pkgsFor system; in { nixos-options = pkgs.buildGoModule { pname = "nixos-options-mcp"; version = "0.1.0"; src = ./.; vendorHash = "sha256-D0KIxQC9ctIAaHBFTvkhBE06uOZwDUcIw8471Ug2doY="; subPackages = [ "cmd/nixos-options" ]; nativeBuildInputs = [ pkgs.makeWrapper ]; postInstall = '' wrapProgram $out/bin/nixos-options \ --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.nix ]} ''; meta = with pkgs.lib; { description = "MCP server for NixOS options search and query"; homepage = "https://git.t-juice.club/torjus/labmcp"; license = licenses.mit; maintainers = [ ]; mainProgram = "nixos-options"; }; }; default = self.packages.${system}.nixos-options; }); devShells = forAllSystems (system: let pkgs = pkgsFor system; in { default = pkgs.mkShell { buildInputs = with pkgs; [ go_1_24 gopls gotools go-tools golangci-lint postgresql sqlite ]; shellHook = '' echo "LabMCP development shell" echo "Go version: $(go version)" ''; }; }); nixosModules = { nixos-options-mcp = { pkgs, ... }: { imports = [ ./nix/module.nix ]; services.nixos-options-mcp.package = lib.mkDefault self.packages.${pkgs.system}.nixos-options; }; default = self.nixosModules.nixos-options-mcp; }; }; }