MCP-NixOS - Porque tu IA no debería alucinar con los nombres de los paquetes
👁 CI
👁 codecov
👁 PyPI
👁 FlakeHub
👁 Python 3.11+
👁 CodeRabbit Pull Request Reviews
👁 Built with Claude
Inicio rápido
🚨 ¡No se requiere Nix/NixOS! Funciona en cualquier sistema: Windows, macOS, Linux. Solo estás consultando APIs.
Opción 1: uvx (Recomendado)
{
"mcpServers": {
"nixos": {
"command": "uvx",
"args": ["mcp-nixos"]
}
}
}Opción 2: Nix
{
"mcpServers": {
"nixos": {
"command": "nix",
"args": ["run", "github:utensils/mcp-nixos", "--"]
}
}
}Opción 3: Docker
{
"mcpServers": {
"nixos": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/utensils/mcp-nixos"]
}
}
}Tu IA ahora tiene acceso a datos reales de NixOS en lugar de inventárselos. De nada.
Opción 4: HTTP (MCP remoto)
FastMCP admite la ejecución de este servidor a través de HTTP en una URL (el endpoint de MCP es /mcp por defecto).
# Run an HTTP MCP server at http://127.0.0.1:8000/mcp
MCP_NIXOS_TRANSPORT=http MCP_NIXOS_HOST=127.0.0.1 MCP_NIXOS_PORT=8000 mcp-nixosSTDIO (predeterminado):
MCP_NIXOS_TRANSPORT=stdio mcp-nixosRuta personalizada:
MCP_NIXOS_TRANSPORT=http MCP_NIXOS_PATH=/api/mcp mcp-nixosHTTP sin estado (deshabilita el estado de sesión por cliente):
MCP_NIXOS_TRANSPORT=http MCP_NIXOS_STATELESS_HTTP=1 mcp-nixosOpción 5: Agente de codificación Pi
Pi no habla MCP de forma nativa. Hay dos rutas compatibles:
A. pi-mcp-adapter (recomendado: habla MCP, fuente única de verdad):
pi install npm:pi-mcp-adapterLuego añade a ~/.pi/agent/mcp.json:
{
"mcpServers": {
"nixos": {
"command": "uvx",
"args": ["mcp-nixos"],
"lifecycle": "lazy"
}
}
}B. Extensión local del proyecto (clonar + ejecutar): este repositorio incluye .pi/extensions/mcp-nixos.ts, que se carga automáticamente cuando ejecutas pi en el repositorio clonado. Opcional: cd .pi && npm install para la resolución de tipos del editor. Pi lo ejecuta de cualquier manera.
Related MCP server: MCP-Context-Provider
¿Qué es esto?
Un servidor MCP que proporciona información precisa y en tiempo real sobre:
Paquetes de NixOS - Más de 130 mil paquetes que realmente existen
Opciones de NixOS - Más de 23 mil formas de configurar tu sistema
Home Manager - Más de 5 mil opciones para entusiastas de los archivos de configuración (dotfiles)
nix-darwin - Más de 1 mil configuraciones de macOS que Apple no documenta
Nixvim - Más de 5 mil opciones para la configuración de Neovim a través de NuschtOS search
FlakeHub - Más de 600 flakes del registro de FlakeHub.com
Noogle - Más de 2 mil funciones de Nix con firmas de tipo a través de noogle.dev
NixOS Wiki - Documentación y guías de la comunidad desde wiki.nixos.org
nix.dev - Tutoriales y guías oficiales de Nix desde nix.dev
Versiones de paquetes - Versiones históricas con hashes de commit a través de NixHub.io
Estado de la caché binaria - Comprueba si los paquetes están en caché en cache.nixos.org con tamaños de descarga
Entradas de flake locales - Explora tus dependencias de flake fijadas directamente desde el almacén de Nix (requiere Nix)
Las herramientas
Solo dos. Consolidamos 17 herramientas en 2 porque la ventana de contexto de tu IA no es infinita.
~1,030 tokens en total. Eso es todo. Mientras otros servidores MCP acaparan tu contexto como si fuera el Black Friday, nosotros tomamos un té minimalista en la esquina. Tu IA obtiene superpoderes de NixOS sin el peso innecesario.
nix - Herramienta de consulta unificada
Una herramienta para gobernarlos a todos:
nix(action, query, source, type, channel, limit)Acción | Qué hace |
| Busca paquetes, opciones, programas o flakes |
| Obtiene información detallada sobre un paquete u opción |
| Obtiene recuentos y categorías |
| Explora opciones de Home Manager/Darwin por prefijo |
| Lista los canales de NixOS disponibles |
| Explora entradas de flake locales desde el almacén de Nix |
| Comprueba el estado de la caché binaria para paquetes |
Fuente | Qué consulta |
| Paquetes, opciones, programas |
| Opciones de Home Manager |
| Opciones de nix-darwin |
| Flakes de la comunidad (search.nixos.org) |
| Registro de FlakeHub (flakehub.com) |
| Opciones de configuración de Nixvim Neovim |
| Firmas de funciones de Nix y documentación (noogle.dev) |
| Artículos de la Wiki de NixOS (wiki.nixos.org) |
| Documentación oficial de Nix (nix.dev) |
| Metadatos de paquetes y rutas de almacén (nixhub.io) |
Ejemplos:
# Search NixOS packages
nix(action="search", query="firefox", source="nixos", type="packages")
# Get package info
nix(action="info", query="firefox", source="nixos", type="package")
# Search Home Manager options
nix(action="search", query="git", source="home-manager")
# Browse darwin options
nix(action="options", source="darwin", query="system.defaults")
# Search Nixvim options
nix(action="search", query="telescope", source="nixvim")
# Get Nixvim option info
nix(action="info", query="plugins.telescope.enable", source="nixvim")
# Search FlakeHub
nix(action="search", query="nixpkgs", source="flakehub")
# Get FlakeHub flake info
nix(action="info", query="NixOS/nixpkgs", source="flakehub")
# Search Noogle for Nix functions
nix(action="search", query="mapAttrs", source="noogle")
# Get Noogle function info
nix(action="info", query="lib.attrsets.mapAttrs", source="noogle")
# Browse Noogle function categories
nix(action="options", source="noogle", query="lib.strings")
# Search NixOS Wiki
nix(action="search", query="nvidia", source="wiki")
# Get Wiki page info
nix(action="info", query="Flakes", source="wiki")
# Search nix.dev documentation
nix(action="search", query="packaging tutorial", source="nix-dev")
# Search NixHub for package metadata
nix(action="search", query="nodejs", source="nixhub")
# Get detailed package info from NixHub (license, homepage, store paths)
nix(action="info", query="python", source="nixhub")
# Check binary cache status
nix(action="cache", query="hello")
# Check cache for specific version
nix(action="cache", query="python", version="3.12.0")
# Check cache for specific system
nix(action="cache", query="firefox", system="x86_64-linux")
# Get stats
nix(action="stats", source="nixos", channel="stable")
# List local flake inputs (requires Nix)
nix(action="flake-inputs", type="list")
# Browse files in a flake input
nix(action="flake-inputs", type="ls", query="nixpkgs:pkgs/by-name")
# Read a file from a flake input
nix(action="flake-inputs", type="read", query="nixpkgs:flake.nix")nix_versions - Historial de versiones de paquetes
Encuentra versiones históricas con hashes de commit de nixpkgs. La salida incluye:
Metadatos del paquete (licencia, página web, programas) cuando están disponibles
Disponibilidad de plataforma por versión (Linux/macOS)
Hash de commit de Nixpkgs para compilaciones reproducibles
Ruta de atributo para expresiones de Nix
nix_versions(package, version, limit)Ejemplos:
# List recent versions with metadata
nix_versions(package="python", limit=5)
# Find specific version
nix_versions(package="nodejs", version="20.0.0")Instalación
NO necesitas Nix instalado. Esto se ejecuta donde sea que se ejecute Python.
# Run directly (no install)
uvx mcp-nixos
# Or install
pip install mcp-nixosPara usuarios de Nix:
nix run github:utensils/mcp-nixos
nix profile install github:utensils/mcp-nixosInstalación declarativa (NixOS / Home Manager / nix-darwin)
mcp-nixos está disponible en nixpkgs:
# NixOS (configuration.nix)
environment.systemPackages = [ pkgs.mcp-nixos ];
# Home Manager (home.nix)
home.packages = [ pkgs.mcp-nixos ];
# nix-darwin (darwin-configuration.nix)
environment.systemPackages = [ pkgs.mcp-nixos ];O usa el flake directamente con el overlay proporcionado:
# flake.nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
mcp-nixos.url = "github:utensils/mcp-nixos";
};
outputs = { self, nixpkgs, mcp-nixos, ... }: {
# Example: NixOS configuration
nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [{
nixpkgs.overlays = [ mcp-nixos.overlays.default ];
environment.systemPackages = [ pkgs.mcp-nixos ];
}];
};
# Example: Home Manager standalone
homeConfigurations.myuser = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [ mcp-nixos.overlays.default ];
};
modules = [{
home.packages = [ pkgs.mcp-nixos ];
}];
};
};
}Desarrollo
nix develop # Enter dev shell
nix build # Build package
pytest tests/ # Run tests
ruff check . # Lint
ruff format . # Format
mypy mcp_nixos/ # Type checkReconocimientos
NixHub.io - Historial de versiones de paquetes
search.nixos.org - Búsqueda oficial de NixOS
FlakeHub - Registro de Flake de Determinate Systems
Jetify - Creadores de Devbox y NixHub
Noogle - Motor de búsqueda de funciones de Nix
NuschtOS - Infraestructura de búsqueda de opciones estáticas que potencia el soporte de Nixvim
Nixvim - Marco de configuración de Neovim para Nix
Licencia
MIT - Porque compartir es cuidar.
Creado por James Brink. Mantenido por maso̶q̶u̶i̶s̶t̶a̶s̶ entusiastas que disfrutan de Nix.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/utensils/mcp-nixos'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
