🚨 No Nix/NixOS Required! Works on any system - Windows, macOS, Linux. You're just querying APIs. Your AI now has access to real NixOS data instead of making things up. You're welcome. An MCP server providing accurate, real-time information about: - NixOS packages - 130K+ packages that actually exist - NixOS options - 23K+ ways to configure your system - Home Manager - 5K+ options for dotfile enth
Add this skill
npx mdskills install utensils/mcp-nixosComprehensive MCP server providing accurate NixOS ecosystem data through well-designed unified tools
1# MCP-NixOS - Because Your AI Shouldn't Hallucinate Package Names23[](https://github.com/utensils/mcp-nixos/actions/workflows/ci.yml)4[](https://codecov.io/gh/utensils/mcp-nixos)5[](https://pypi.org/project/mcp-nixos/)6[](https://flakehub.com/flake/utensils/mcp-nixos)7[](https://www.python.org/downloads/)89[](https://claude.ai)1011## Quick Start1213**🚨 No Nix/NixOS Required!** Works on any system - Windows, macOS, Linux. You're just querying APIs.1415### Option 1: uvx (Recommended)1617[](https://cursor.com/install-mcp?name=nixos&config=eyJjb21tYW5kIjoidXZ4IG1jcC1uaXhvcyJ9)1819```json20{21 "mcpServers": {22 "nixos": {23 "command": "uvx",24 "args": ["mcp-nixos"]25 }26 }27}28```2930### Option 2: Nix3132[](https://cursor.com/install-mcp?name=nixos&config=eyJjb21tYW5kIjoibml4IHJ1biBnaXRodWI6dXRlbnNpbHMvbWNwLW5peG9zIC0tIn0%3D)3334```json35{36 "mcpServers": {37 "nixos": {38 "command": "nix",39 "args": ["run", "github:utensils/mcp-nixos", "--"]40 }41 }42}43```4445### Option 3: Docker4647[](https://cursor.com/install-mcp?name=nixos&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyJydW4iLCItLXJtIiwiLWkiLCJnaGNyLmlvL3V0ZW5zaWxzL21jcC1uaXhvcyJdfQ%3D%3D)4849```json50{51 "mcpServers": {52 "nixos": {53 "command": "docker",54 "args": ["run", "--rm", "-i", "ghcr.io/utensils/mcp-nixos"]55 }56 }57}58```5960Your AI now has access to real NixOS data instead of making things up. You're welcome.6162## What Is This?6364An MCP server providing accurate, real-time information about:6566- **NixOS packages** - 130K+ packages that actually exist67- **NixOS options** - 23K+ ways to configure your system68- **Home Manager** - 5K+ options for dotfile enthusiasts69- **nix-darwin** - 1K+ macOS settings Apple doesn't document70- **Nixvim** - 5K+ options for Neovim configuration via [NuschtOS search](https://github.com/NuschtOS/search)71- **FlakeHub** - 600+ flakes from [FlakeHub.com](https://flakehub.com) registry72- **Noogle** - 2K+ Nix functions with type signatures via [noogle.dev](https://noogle.dev)73- **NixOS Wiki** - Community documentation and guides from [wiki.nixos.org](https://wiki.nixos.org)74- **nix.dev** - Official Nix tutorials and guides from [nix.dev](https://nix.dev)75- **Package versions** - Historical versions with commit hashes via [NixHub.io](https://www.nixhub.io)76- **Binary cache status** - Check if packages are cached on cache.nixos.org with download sizes77- **Local flake inputs** - Explore your pinned flake dependencies directly from the Nix store (requires Nix)7879## The Tools8081Just two. We consolidated 17 tools into 2 because your AI's context window isn't infinite.8283**~1,030 tokens total.** That's it. While other MCP servers are hogging your context like it's Black Friday, we're sipping minimalist tea in the corner. Your AI gets NixOS superpowers without the bloat.8485### `nix` - Unified Query Tool8687One tool to rule them all:8889```text90nix(action, query, source, type, channel, limit)91```9293| Action | What it does |94|--------|-------------|95| `search` | Search packages, options, programs, or flakes |96| `info` | Get detailed info about a package or option |97| `stats` | Get counts and categories |98| `options` | Browse Home Manager/Darwin options by prefix |99| `channels` | List available NixOS channels |100| `flake-inputs` | Explore local flake inputs from Nix store |101| `cache` | Check binary cache status for packages |102103| Source | What it queries |104|--------|----------------|105| `nixos` | Packages, options, programs |106| `home-manager` | Home Manager options |107| `darwin` | nix-darwin options |108| `flakes` | Community flakes (search.nixos.org) |109| `flakehub` | FlakeHub registry (flakehub.com) |110| `nixvim` | Nixvim Neovim configuration options |111| `noogle` | Nix function signatures and docs (noogle.dev) |112| `wiki` | NixOS Wiki articles (wiki.nixos.org) |113| `nix-dev` | Official Nix documentation (nix.dev) |114| `nixhub` | Package metadata and store paths (nixhub.io) |115116**Examples:**117118```python119# Search NixOS packages120nix(action="search", query="firefox", source="nixos", type="packages")121122# Get package info123nix(action="info", query="firefox", source="nixos", type="package")124125# Search Home Manager options126nix(action="search", query="git", source="home-manager")127128# Browse darwin options129nix(action="options", source="darwin", query="system.defaults")130131# Search Nixvim options132nix(action="search", query="telescope", source="nixvim")133134# Get Nixvim option info135nix(action="info", query="plugins.telescope.enable", source="nixvim")136137# Search FlakeHub138nix(action="search", query="nixpkgs", source="flakehub")139140# Get FlakeHub flake info141nix(action="info", query="NixOS/nixpkgs", source="flakehub")142143# Search Noogle for Nix functions144nix(action="search", query="mapAttrs", source="noogle")145146# Get Noogle function info147nix(action="info", query="lib.attrsets.mapAttrs", source="noogle")148149# Browse Noogle function categories150nix(action="options", source="noogle", query="lib.strings")151152# Search NixOS Wiki153nix(action="search", query="nvidia", source="wiki")154155# Get Wiki page info156nix(action="info", query="Flakes", source="wiki")157158# Search nix.dev documentation159nix(action="search", query="packaging tutorial", source="nix-dev")160161# Search NixHub for package metadata162nix(action="search", query="nodejs", source="nixhub")163164# Get detailed package info from NixHub (license, homepage, store paths)165nix(action="info", query="python", source="nixhub")166167# Check binary cache status168nix(action="cache", query="hello")169170# Check cache for specific version171nix(action="cache", query="python", version="3.12.0")172173# Check cache for specific system174nix(action="cache", query="firefox", system="x86_64-linux")175176# Get stats177nix(action="stats", source="nixos", channel="stable")178179# List local flake inputs (requires Nix)180nix(action="flake-inputs", type="list")181182# Browse files in a flake input183nix(action="flake-inputs", type="ls", query="nixpkgs:pkgs/by-name")184185# Read a file from a flake input186nix(action="flake-inputs", type="read", query="nixpkgs:flake.nix")187```188189### `nix_versions` - Package Version History190191Find historical versions with nixpkgs commit hashes. Output includes:192- Package metadata (license, homepage, programs) when available193- Platform availability per version (Linux/macOS)194- Nixpkgs commit hash for reproducible builds195- Attribute path for Nix expressions196197```python198nix_versions(package, version, limit)199```200201**Examples:**202203```python204# List recent versions with metadata205nix_versions(package="python", limit=5)206207# Find specific version208nix_versions(package="nodejs", version="20.0.0")209```210211## Installation212213**You DON'T need Nix installed.** This runs anywhere Python runs.214215```bash216# Run directly (no install)217uvx mcp-nixos218219# Or install220pip install mcp-nixos221```222223For Nix users:224225```bash226nix run github:utensils/mcp-nixos227nix profile install github:utensils/mcp-nixos228```229230### Declarative Installation (NixOS / Home Manager / nix-darwin)231232mcp-nixos is available in [nixpkgs](https://search.nixos.org/packages?channel=unstable&show=mcp-nixos&query=mcp-nixos):233234```nix235# NixOS (configuration.nix)236environment.systemPackages = [ pkgs.mcp-nixos ];237238# Home Manager (home.nix)239home.packages = [ pkgs.mcp-nixos ];240241# nix-darwin (darwin-configuration.nix)242environment.systemPackages = [ pkgs.mcp-nixos ];243```244245Or use the flake directly with the provided overlay:246247```nix248# flake.nix249{250 inputs = {251 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";252 mcp-nixos.url = "github:utensils/mcp-nixos";253 };254255 outputs = { self, nixpkgs, mcp-nixos, ... }: {256 # Example: NixOS configuration257 nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {258 system = "x86_64-linux";259 modules = [{260 nixpkgs.overlays = [ mcp-nixos.overlays.default ];261 environment.systemPackages = [ pkgs.mcp-nixos ];262 }];263 };264265 # Example: Home Manager standalone266 homeConfigurations.myuser = home-manager.lib.homeManagerConfiguration {267 pkgs = import nixpkgs {268 system = "x86_64-linux";269 overlays = [ mcp-nixos.overlays.default ];270 };271 modules = [{272 home.packages = [ pkgs.mcp-nixos ];273 }];274 };275 };276}277```278279## Development280281```bash282nix develop # Enter dev shell283nix build # Build package284pytest tests/ # Run tests285ruff check . # Lint286ruff format . # Format287mypy mcp_nixos/ # Type check288```289290## Acknowledgments291292- **[NixHub.io](https://www.nixhub.io)** - Package version history293- **[search.nixos.org](https://search.nixos.org)** - Official NixOS search294- **[FlakeHub](https://flakehub.com)** - Flake registry by Determinate Systems295- **[Jetify](https://www.jetify.com)** - Creators of Devbox and NixHub296- **[Noogle](https://noogle.dev)** - Nix function search engine297- **[NuschtOS](https://github.com/NuschtOS/search)** - Static option search infrastructure powering Nixvim support298- **[Nixvim](https://github.com/nix-community/nixvim)** - Neovim configuration framework for Nix299300## License301302MIT - Because sharing is caring.303304---305306*Created by James Brink. Maintained by mass̶o̶c̶h̶i̶s̶t̶s̶ enthusiasts who enjoy Nix.*307
Full transparency — inspect the skill content before installing.