feat: add hm-options package for Home Manager options

Add a new MCP server for Home Manager options, mirroring the
functionality of nixos-options but targeting the home-manager
repository.

Changes:
- Add shared options.Indexer interface for both implementations
- Add internal/homemanager package with indexer and channel aliases
- Add cmd/hm-options CLI entry point
- Parameterize MCP server with ServerConfig for name/instructions
- Parameterize nix/package.nix for building both packages
- Add hm-options package and NixOS module to flake.nix
- Add nix/hm-options-module.nix for systemd deployment

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-03 22:51:30 +01:00
parent 6b6be83e50
commit ea2d73d746
15 changed files with 1693 additions and 58 deletions

View File

@@ -1,26 +1,29 @@
{ lib, buildGoModule, makeWrapper, nix, src }:
{ lib, buildGoModule, makeWrapper, nix, src
, pname ? "nixos-options-mcp"
, subPackage ? "cmd/nixos-options"
, mainProgram ? "nixos-options"
, description ? "MCP server for NixOS options search and query"
}:
buildGoModule {
pname = "nixos-options-mcp";
inherit pname src;
version = "0.1.0";
inherit src;
vendorHash = "sha256-D0KIxQC9ctIAaHBFTvkhBE06uOZwDUcIw8471Ug2doY=";
subPackages = [ "cmd/nixos-options" ];
subPackages = [ subPackage ];
nativeBuildInputs = [ makeWrapper ];
postInstall = ''
wrapProgram $out/bin/nixos-options \
wrapProgram $out/bin/${mainProgram} \
--prefix PATH : ${lib.makeBinPath [ nix ]}
'';
meta = with lib; {
description = "MCP server for NixOS options search and query";
inherit description mainProgram;
homepage = "https://git.t-juice.club/torjus/labmcp";
license = licenses.mit;
maintainers = [ ];
mainProgram = "nixos-options";
};
}