utensils/mcp-nixos

MCP-NixOS - Model Context Protocol Server for NixOS resources

779 ★42 forksPythonUpdated 1d ago

What you need to know

An MCP server giving AI agents accurate, real-time NixOS data instead of hallucinated package names — 130K+ packages, 23K+ NixOS options, Home Manager, nix-darwin, Nixvim, NVF, FlakeHub, Noogle, wiki, and package version history, exposed through just two context-light tools.

Install

uvx mcp-nixos  # run directly, no install (recommended)
pip install mcp-nixos
nix run github:utensils/mcp-nixos  or  nix profile install github:utensils/mcp-nixos
docker run --rm -i ghcr.io/utensils/mcp-nixos
NixOS/Home Manager/nix-darwin: environment.systemPackages = [ pkgs.mcp-nixos ]

Usage

  • nix(action="search", query="firefox", source="nixos", type="packages")
  • nix(action="info", query="firefox", source="nixos", type="package")
  • nix(action="cache", query="firefox", system="x86_64-linux") # binary cache status
  • nix_versions(package="python", limit=5) # historical versions with nixpkgs commit hashes
  • HTTP mode: MCP_NIXOS_TRANSPORT=http MCP_NIXOS_HOST=127.0.0.1 MCP_NIXOS_PORT=8000 mcp-nixos

Key features

  • Unified `nix` tool with actions search/info/stats/browse/channels/flake-inputs/cache across 11 sources (nixos, home-manager, darwin, flakes, flakehub, nixvim, nvf, noogle, wiki, nix-dev, nixhub)
  • nix_versions tool returns historical package versions with nixpkgs commit hashes, platform availability, and attribute paths
  • Binary cache status checks with download sizes; local flake inputs exploration from the Nix store (requires Nix)
  • Minimal footprint: ~1,030 tokens total for both tools (17 tools consolidated into 2)
  • No Nix/NixOS required to run — works on Windows, macOS, Linux via API queries

Best for

Nix/NixOS users and AI agents that need factual package names, config options, and version data instead of hallucinated ones.

Caveats

  • flake-inputs action requires Nix installed locally; everything else queries public APIs
  • Requires Python 3.11+ to run
  • HTTP transport uses FastMCP (MCP endpoint defaults to /mcp)
Platforms: Windows · macOS · Linux
Documentation ↗

Reviewed 2026-08-07

Topics

ai-assistantai-integrationai-toolsanthropicclaudedeveloper-toolsdevops-toolsfastmcpllm-toolsmcpmodel-context-protocolnixnix-optionsnix-packagesnix-searchnixospackage-searchpythonsre-tools
View on GitHub ↗
Stars
779★
Forks
42
Language
Python
License
MIT
Created
2025-03-20
Last push
2026-08-05