Labsco
MCP SERVER

NixOS MCP

by utensils

Look up NixOS packages, options and version history that actually exist, instead of letting the model invent attribute names.

Package Registries & Dependency Supply ChainVerified
Summary
It stops the model handing you an option name that does not exist.

Nix configuration fails in confusing ways when an attribute is nearly right, and a model trained on an older nixpkgs is a reliable source of nearly-right. Two tools cover eleven sources deliberately — the whole surface is small enough to keep loaded, and the names it returns come from the live channels rather than memory.

What it is

Two tools against the Nix ecosystem's own sources: one queries NixOS, Home Manager, nix-darwin, flakes, FlakeHub, Nixvim, NVF, the Wiki, nix.dev, Noogle and NixHub; the other returns a package's version history from NixHub. It queries public APIs, so the machine running it does not need Nix installed.

What you get
  • Packages, options and programs searched across NixOS, Home Manager and nix-darwin, scoped by channel, type and result count
  • One package or option read in detail, rather than skimmed from a search result
  • Option trees browsed by prefix — Home Manager, Darwin, Nixvim, NVF and Noogle — which is how you find the setting whose exact name you do not know
  • Community flakes and the FlakeHub registry searched from the same call
  • Nix function signatures from Noogle, wiki articles from wiki.nixos.org, and the official guides on nix.dev
  • The available NixOS channels listed, and counts and categories when you want to know how big a search space is
  • Binary cache status from cache.nixos.org, with download sizes, so you know whether a package will be fetched or built
  • Local flake inputs read out of the Nix store, for the one case that does need Nix on the machine
  • A package's version history from NixHub, with the commit hash behind each version, filterable to the one version you care about
Requirements

Python 3.11 or newer with uv — no account and no key, and no NixOS: it works on Windows and macOS too, because everything is a query against public APIs. A Nix flake and a container image are published as alternatives, and MCP_NIXOS_TRANSPORT=http turns it into a remote server on a host and port you choose. MIT licensed.

Setup effort

One command — uvx mcp-nixos