utensils/mcp-nixos
mcp-nixos is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.
If you are the rightful owner of mcp-nixos and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
MCP-NixOS is a Model Context Protocol server designed to provide accurate information about NixOS, Home Manager, and nix-darwin configurations, preventing AI assistants from generating incorrect data.
Try mcp-nixos with chat:
Tools
Functions exposed to the LLM to take actions
nixos_search
Search NixOS packages, options, or programs.
Args: query: Search term to look for search_type: Type of search - "packages", "options", "programs", or "flakes" limit: Maximum number of results to return (1-100) channel: NixOS channel to search in (e.g., "unstable", "stable", "25.05")
Returns: Plain text results with bullet points or error message
nixos_info
Get detailed info about a NixOS package or option.
Args: name: Name of the package or option to look up type: Type of lookup - "package" or "option" channel: NixOS channel to search in (e.g., "unstable", "stable", "25.05")
Returns: Plain text details about the package/option or error message
nixos_channels
List available NixOS channels with their status.
Returns: Plain text list showing channel names, versions, and availability
nixos_stats
Get NixOS statistics for a channel.
Args: channel: NixOS channel to get stats for (e.g., "unstable", "stable", "25.05")
Returns: Plain text statistics including package/option counts
home_manager_search
Search Home Manager configuration options.
Searches through available Home Manager options by name and description.
Args: query: The search query string to match against option names and descriptions limit: Maximum number of results to return (default: 20, max: 100)
Returns: Plain text list of matching options with name, type, and description
home_manager_info
Get detailed information about a specific Home Manager option.
Requires an exact option name match. If not found, suggests similar options.
Args: name: The exact option name (e.g., 'programs.git.enable')
Returns: Plain text with option details (name, type, description) or error with suggestions
home_manager_stats
Get statistics about Home Manager options.
Retrieves overall statistics including total options, categories, and top categories.
Returns: Plain text summary with total options, category count, and top 5 categories
home_manager_list_options
List all Home Manager option categories.
Enumerates all top-level categories with their option counts.
Returns: Plain text list of categories sorted alphabetically with option counts
home_manager_options_by_prefix
Get Home Manager options matching a specific prefix.
Useful for browsing options under a category or finding exact option names.
Args: option_prefix: The prefix to match (e.g., 'programs.git' or 'services')
Returns: Plain text list of options with the given prefix, including descriptions
darwin_search
Search nix-darwin (macOS) configuration options.
Searches through available nix-darwin options by name and description.
Args: query: The search query string to match against option names and descriptions limit: Maximum number of results to return (default: 20, max: 100)
Returns: Plain text list of matching options with name, type, and description
darwin_info
Get detailed information about a specific nix-darwin option.
Requires an exact option name match. If not found, suggests similar options.
Args: name: The exact option name (e.g., 'system.defaults.dock.autohide')
Returns: Plain text with option details (name, type, description) or error with suggestions
darwin_stats
Get statistics about nix-darwin options.
Retrieves overall statistics including total options, categories, and top categories.
Returns: Plain text summary with total options, category count, and top 5 categories
darwin_list_options
List all nix-darwin option categories.
Enumerates all top-level categories with their option counts.
Returns: Plain text list of categories sorted alphabetically with option counts
darwin_options_by_prefix
Get nix-darwin options matching a specific prefix.
Useful for browsing options under a category or finding exact option names.
Args: option_prefix: The prefix to match (e.g., 'system.defaults' or 'services')
Returns: Plain text list of options with the given prefix, including descriptions
nixos_flakes_stats
Get statistics about available NixOS flakes.
Retrieves statistics from the flake search index including total packages, unique repositories, flake types, and top contributors.
Returns: Plain text summary with flake statistics and top contributors
nixos_flakes_search
Search NixOS flakes by name, description, owner, or repository.
Searches the flake index for community-contributed packages and configurations. Flakes are indexed separately from official packages.
Args: query: The search query (flake name, description, owner, or repository) limit: Maximum number of results to return (default: 20, max: 100) channel: Ignored - flakes use a separate indexing system
Returns: Plain text list of unique flakes with their packages and metadata
nixhub_package_versions
Get version history and nixpkgs commit hashes for a specific package from NixHub.io.
Use this tool when users need specific package versions or commit hashes for reproducible builds.
Args: package_name: Name of the package to query (e.g., "firefox", "python") limit: Maximum number of versions to return (default: 10, max: 50)
Returns: Plain text with package info and version history including commit hashes
nixhub_find_version
Find a specific version of a package in NixHub with smart search.
Automatically searches with increasing limits to find the requested version.
Args: package_name: Name of the package to query (e.g., "ruby", "python") version: Specific version to find (e.g., "2.6.7", "3.5.9")
Returns: Plain text with version info and commit hash if found, or helpful message if not
Prompts
Interactive templates invoked by user choice
No prompts
Resources
Contextual data attached and managed by the client