首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
MCP-NixOS配置助手2026-10-23348分享添加福利群:解决AI开发者的「MCP实战痛点」
MCP-NixOS 是一个模型上下文协议服务器,它提供关于 NixOS 软件包、选项、Home Manager 和 nix-darwin 配置的实时、准确信息,防止 AI 助手对 NixOS 资源产生错误想象,并使它们能够提供基于事实的系统配置指导。
By utensils
2026-10-23348
github
详情内容

MCP-NixOS - 让您的AI不再幻想包名

CI codecov PyPI FlakeHub Python 3.11+ CodeRabbit Pull Request Reviews Built with Claude

快速开始

🚨 无需Nix/NixOS! 适用于任何系统 - Windows、macOS、Linux。您只需查询API。

选项1:uvx(推荐)

安装MCP服务器

{
  "mcpServers": {
    "nixos": {
      "command": "uvx",
      "args": ["mcp-nixos"]
    }
  }
}

选项2:Nix

安装MCP服务器

{
  "mcpServers": {
    "nixos": {
      "command": "nix",
      "args": ["run", "github:utensils/mcp-nixos", "--"]
    }
  }
}

选项3:Docker

安装MCP服务器

{
  "mcpServers": {
    "nixos": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "ghcr.io/utensils/mcp-nixos"]
    }
  }
}

现在您的AI可以访问真实的NixOS数据,而不是凭空想象。不用谢。

这是什么?

一个提供准确、实时信息的MCP服务器:

  • NixOS包 - 13万+真实存在的包
  • NixOS选项 - 2.3万+种系统配置方式
  • Home Manager - 5千+个点文件爱好者的选项
  • nix-darwin - 1千+个Apple未记录的macOS设置
  • Nixvim - 5千+个通过NuschtOS搜索配置Neovim的选项
  • FlakeHub - FlakeHub.com注册表中的600+个flake
  • Noogle - 通过noogle.dev提供的2千+个带类型签名的Nix函数
  • NixOS Wiki - wiki.nixos.org的社区文档和指南
  • nix.dev - nix.dev的官方Nix教程和指南
  • 包版本 - 通过NixHub.io提供的带提交哈希的历史版本
  • 二进制缓存状态 - 检查包是否在cache.nixos.org上缓存及其下载大小
  • 本地flake输入 - 直接从Nix存储中探索您固定的flake依赖项(需要Nix)

工具

只有两个。我们将17个工具整合为2个,因为您AI的上下文窗口不是无限的。

**总共约1,030个token。**仅此而已。当其他MCP服务器像黑色星期五一样占用您的上下文时,我们正在角落里啜饮极简主义茶饮。您的AI获得NixOS超能力而无需臃肿。

nix - 统一查询工具

一个统治所有查询的工具:

nix(action, query, source, type, channel, limit)
操作 功能
search 搜索包、选项、程序或flake
info 获取包或选项的详细信息
stats 获取计数和类别
options 按前缀浏览Home Manager/Darwin选项
channels 列出可用的NixOS通道
flake-inputs 从Nix存储中探索本地flake输入
cache 检查包的二进制缓存状态
来源 查询内容
nixos 包、选项、程序
home-manager Home Manager选项
darwin nix-darwin选项
flakes 社区flake(search.nixos.org)
flakehub FlakeHub注册表(flakehub.com)
nixvim Nixvim Neovim配置选项
noogle Nix函数签名和文档(noogle.dev)
wiki NixOS Wiki文章(wiki.nixos.org)
nix-dev 官方Nix文档(nix.dev)
nixhub 包元数据和存储路径(nixhub.io)

示例:

# 搜索NixOS包
nix(action="search", query="firefox", source="nixos", type="packages")

# 获取包信息
nix(action="info", query="firefox", source="nixos", type="package")

# 搜索Home Manager选项
nix(action="search", query="git", source="home-manager")

# 浏览darwin选项
nix(action="options", source="darwin", query="system.defaults")

# 搜索Nixvim选项
nix(action="search", query="telescope", source="nixvim")

# 获取Nixvim选项信息
nix(action="info", query="plugins.telescope.enable", source="nixvim")

# 搜索FlakeHub
nix(action="search", query="nixpkgs", source="flakehub")

# 获取FlakeHub flake信息
nix(action="info", query="NixOS/nixpkgs", source="flakehub")

# 在Noogle中搜索Nix函数
nix(action="search", query="mapAttrs", source="noogle")

# 获取Noogle函数信息
nix(action="info", query="lib.attrsets.mapAttrs", source="noogle")

# 浏览Noogle函数类别
nix(action="options", source="noogle", query="lib.strings")

# 搜索NixOS Wiki
nix(action="search", query="nvidia", source="wiki")

# 获取Wiki页面信息
nix(action="info", query="Flakes", source="wiki")

# 搜索nix.dev文档
nix(action="search", query="打包教程", source="nix-dev")

# 在NixHub中搜索包元数据
nix(action="search", query="nodejs", source="nixhub")

# 从NixHub获取详细的包信息(许可证、主页、存储路径)
nix(action="info", query="python", source="nixhub")

# 检查二进制缓存状态
nix(action="cache", query="hello")

# 检查特定版本的缓存
nix(action="cache", query="python", version="3.12.0")

# 检查特定系统的缓存
nix(action="cache", query="firefox", system="x86_64-linux")

# 获取统计信息
nix(action="stats", source="nixos", channel="stable")

# 列出本地flake输入(需要Nix)
nix(action="flake-inputs", type="list")

# 浏览flake输入中的文件
nix(action="flake-inputs", type="ls", query="nixpkgs:pkgs/by-name")

# 读取flake输入中的文件
nix(action="flake-inputs", type="read", query="nixpkgs:flake.nix")

nix_versions - 包版本历史

查找带nixpkgs提交哈希的历史版本。输出包括:

  • 可用时的包元数据(许可证、主页、程序)
  • 各版本的平台可用性(Linux/macOS)
  • 用于可重现构建的Nixpkgs提交哈希
  • Nix表达式的属性路径
nix_versions(package, version, limit)

示例:

# 列出带元数据的近期版本
nix_versions(package="python", limit=5)

# 查找特定版本
nix_versions(package="nodejs", version="20.0.0")

安装

您不需要安装Nix。 这可以在任何运行Python的地方运行。

# 直接运行(无需安装)
uvx mcp-nixos

# 或安装
pip install mcp-nixos

对于Nix用户:

nix run github:utensils/mcp-nixos
nix profile install github:utensils/mcp-nixos

声明式安装(NixOS / Home Manager / nix-darwin)

mcp-nixos可在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 ];

或者直接使用提供的overlay的flake:

# flake.nix
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    mcp-nixos.url = "github:utensils/mcp-nixos";
  };

  outputs = { self, nixpkgs, mcp-nixos, ... }: {
    # 示例:NixOS配置
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [{
        nixpkgs.overlays = [ mcp-nixos.overlays.default ];
        environment.systemPackages = [ pkgs.mcp-nixos ];
      }];
    };

    # 示例:独立Home Manager
    homeConfigurations.myuser = home-manager.lib.homeManagerConfiguration {
      pkgs = import nixpkgs {
        system = "x86_64-linux";
        overlays = [ mcp-nixos.overlays.default ];
      };
      modules = [{
        home.packages = [ pkgs.mcp-nixos ];
      }];
    };
  };
}

开发

nix develop          # 进入开发shell
nix build            # 构建包
pytest tests/        # 运行测试
ruff check .         # 代码检查
ruff format .        # 格式化
mypy mcp_nixos/      # 类型检查

致谢

许可证

MIT - 因为分享就是关爱。


由 James Brink 创建。现由一群热爱 Nix 的 mass̶o̶c̶h̶i̶s̶t̶s̶ 狂热爱好者维护。

(注:原文中"mass̶o̶c̶h̶i̶s̶t̶s̶"为带删除线的自嘲式幽默表达,直译为"受虐狂",此处保留原文特殊格式并采用意译处理,以传达维护者们对Nix系统复杂性的调侃态度)

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档