MCP-NixOS
MCP server for live NixOS, nixpkgs, Home Manager, nix-darwin, Nixvim, FlakeHub, Noogle, NixOS Wiki, nix.dev, NixHub, binary cache, and local flake input lookups.
Open the source and read safety notes before installing.
Safety notes
- MCP-NixOS is primarily a lookup server, but some actions can run local `nix` commands for flake-input inspection when Nix is installed.
- Package, option, channel, cache, and version results can change as upstream Nix data changes.
- Binary cache and version history answers are evidence for configuration work, not proof that a deployment or rebuild is safe.
- Local flake-input and store actions can list or read files under Nix store paths, subject to size and path validation in the source.
- Verify generated Nix expressions, overlays, and configuration changes with normal Nix evaluation and review before applying them.
Privacy notes
- Queries can reveal package names, configuration options, channel choices, flake names, binary cache interests, and local flake dependency structure.
- Local flake-input reads can expose pinned inputs, paths, and files from Nix store derivations to the MCP client and model provider.
- Public APIs such as search.nixos.org, FlakeHub, NixHub, Noogle, NixOS Wiki, nix.dev, cache.nixos.org, and GitHub may receive request metadata.
- Avoid asking the server to read local store files that contain sensitive generated material or private dependency context.
Prerequisites
- Python 3.11 or newer when installing through uvx or pip.
- Network access to the NixOS, NixHub, FlakeHub, Noogle, wiki, nix.dev, cache, and related APIs used by selected queries.
- Optional local Nix installation when using local flake-input or Nix-store reading workflows.
Schema details
- Install type
- cli
- Troubleshooting
- No
- Scope
- Source repo
- Estimated setup
- 10 minutes
- Difficulty
- beginner
Full copyable content
{
"mcpServers": {
"nixos": {
"command": "uvx",
"args": ["mcp-nixos"]
}
}
}About this resource
Content
MCP-NixOS is a Model Context Protocol server for giving Claude current Nix and NixOS ecosystem data. It exposes a compact two-tool surface for searching and reading NixOS packages, options, programs, channels, Home Manager options, nix-darwin options, Nixvim options, flakes, FlakeHub records, Noogle functions, NixOS Wiki pages, nix.dev docs, NixHub package metadata, binary cache status, and local flake inputs.
It is designed to reduce hallucinated package names, stale option paths, and outdated Nix channel assumptions. It works without Nix for remote API lookups, while local flake-input and Nix-store actions require Nix and local path access.
Source Review
- https://github.com/utensils/mcp-nixos
- https://github.com/utensils/mcp-nixos/blob/main/README.md
- https://pypi.org/pypi/mcp-nixos/json
- https://github.com/utensils/mcp-nixos/blob/main/pyproject.toml
- https://github.com/utensils/mcp-nixos/blob/main/flake.nix
- https://github.com/utensils/mcp-nixos/blob/main/mcp_nixos/server.py
- https://github.com/utensils/mcp-nixos/blob/main/mcp_nixos/config.py
- https://github.com/utensils/mcp-nixos/blob/main/mcp_nixos/sources/flake_inputs.py
- https://github.com/utensils/mcp-nixos/blob/main/LICENSE
These sources were reviewed on 2026-06-06. Prefer the live repository, README, PyPI metadata, Python package metadata, Nix flake, server source, configuration constants, flake-input source, and license file for current setup, supported sources, tool behavior, network use, and licensing.
Features
- Python package
mcp-nixos. - Stdio MCP server launched with
uvx mcp-nixos,pip install mcp-nixos, or Nix. - Unified
nixtool for search, info, stats, browse, channels, flake-inputs, cache, and store actions. nix_versionstool for package version history, nixpkgs commit hashes, attribute paths, and platform availability through NixHub data.- NixOS packages, options, programs, and channel queries.
- Home Manager, nix-darwin, Nixvim, FlakeHub, Noogle, NixOS Wiki, nix.dev, NixHub, and binary cache lookups.
- Optional local flake-input listing, directory listing, and file reading.
- MIT license.
Installation
Configure the stdio server in your MCP client:
{
"mcpServers": {
"nixos": {
"command": "uvx",
"args": ["mcp-nixos"]
}
}
}
After restarting the MCP client, ask Claude to query MCP-NixOS before recommending Nix packages, options, channels, flakes, binary cache status, or version-specific nixpkgs commits.
Use Cases
- Verify whether a package exists in a NixOS channel.
- Search NixOS, Home Manager, nix-darwin, or Nixvim options.
- Find package version history and the nixpkgs commit that shipped a version.
- Check binary cache availability before planning a build.
- Search Noogle for Nix function documentation.
- Read NixOS Wiki or nix.dev material through MCP.
- Inspect local flake inputs and pinned store paths when Nix is installed.
Safety and Privacy
MCP-NixOS helps with current Nix ecosystem facts, but it should not be treated as a deployment authority. Always evaluate generated Nix expressions, review configuration changes, and test rebuilds with the normal Nix workflow.
Most lookups call public APIs. Local flake-input and store actions can also run Nix commands, list Nix store paths, and read validated store files. Those queries can expose package choices, configuration interests, pinned dependency structure, and local path context to the MCP client and model provider.
Duplicate Check
Existing MCP content includes general developer tools and package-related
servers, but no dedicated entry for utensils/mcp-nixos or the mcp-nixos
PyPI package was found in content/mcp. This entry is distinct because it
covers current NixOS, nixpkgs, Home Manager, nix-darwin, Nixvim, FlakeHub,
Noogle, NixOS Wiki, nix.dev, NixHub, binary cache, and local flake-input data.
Source citations
Signals
Loading live community signals…
A short, calm digest of reviewed Claude resources. Unsubscribe any time.