NixOS包查询工具

MCP-NixOS是一个提供准确、实时NixOS包信息的工具,适用于AI开发者和NixOS用户。

作者 By utensils
本地部署 NixOS包查询 AI开发工具
GitHub

MCP NixOS-因为你的AI不应该混淆包名

快速开始

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

选项1:uvx(推荐)

JSON``` 1 2 3 4 5 6 7 8{ “mcpServers”: { “nixos”: { “command”: “uvx”, “args”: [“mcp-nixos”] } } }


### 选项2:Nix


[![](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=nixos&config=eyJjb21tYW5kIjoibml4IHJ1biBnaXRodWI6dXRlbnNpbHMvbWNwLW5peG9zIC0tIn0%3D)


JSON```
1
2
3
4
5
6
7
8{
  "mcpServers": {
    "nixos": {
      "command": "nix",
      "args": ["run", "github:utensils/mcp-nixos", "--"]
    }
  }
}

选项3:Docker

JSON``` 1 2 3 4 5 6 7 8{ “mcpServers”: { “nixos”: { “command”: “docker”, “args”: [“run”, “—rm”, “-i”, “ghcr.io/utensils/mcp-nixos”] } } }


你的AI现在可以访问真实的NixOS数据,而不是编造。不客气


### 选项4:HTTP(远程MCP)


FastMCP支持在URL上通过HTTP运行此服务器(MCP端点默认为 `/mcp`).


BASH```
1
2# 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-nixos

STDIO(默认):

BASH``` 1MCP_NIXOS_TRANSPORT=stdio mcp-nixos


自定义路径:


BASH```
1MCP_NIXOS_TRANSPORT=http MCP_NIXOS_PATH=/api/mcp mcp-nixos

无状态HTTP(禁用每个客户端会话状态):

BASH``` 1MCP_NIXOS_TRANSPORT=http MCP_NIXOS_STATELESS_HTTP=1 mcp-nixos


## 这是什么?


MCP服务器提供有关以下内容的准确、实时信息:


- **NixOS软件包** -实际存在的130K多个包
- **NixOS选项** -23K多种配置系统的方法
- **家庭经理** -为点文件爱好者提供5K+选项
- **尼克松达尔文** -苹果没有记录1K+macOS设置
- **尼希米** -Neovim配置的5K+选项 [NuschtOS搜索](https://github.com/NuschtOS/search)
- **FlakeHub** -600+片来自 [FlakeHub.com](https://flakehub.com) 注册表
- **诺格尔** -2K+Nix函数具有类型签名,通过 [noogle.dev](https://noogle.dev)
- **NixOS 维基** -社区文档和指南 [wiki.nixos.org](https://wiki.nixos.org)
- **nix.dev** -Nix官方教程和指南 [nix.dev](https://nix.dev)
- **软件包版本** -通过提交哈希的历史版本 [NixHub.io](https://www.nixhub.io)
- **二进制缓存状态** -检查cache.nixos.org上是否缓存了下载大小的包
- **本地薄片输入** -直接从Nix商店探索您的固定薄片依赖关系(需要Nix)


## 工具


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


**总共约1030个代币。** 就是这样。当其他MCP服务器像黑色星期五一样占据你的上下文时,我们正在角落里喝着极简主义的茶。你的AI在没有臃肿的情况下获得了NixOS的超能力。


### `nix` -统一查询工具


一个工具来统治他们:


TEXT```
1nix(action, query, source, type, channel, limit)
行动它的作用
search搜索包、选项、程序或薄片
info获取有关套餐或选项的详细信息
stats获取计数和类别
options按前缀浏览Home Manager/Darwin选项
channels列出可用的NixOS频道
flake-inputs探索Nix商店的本地薄片输入
cache检查包的二进制缓存状态
来源查询内容
nixos包、选项、程序
home-managerHome Manager选项
darwin尼克松达尔文期权
flakes社区薄片(search.nixos.org
flakehubFlakeHub注册表(FlakeHub.com
nixvimNixvim Neovim配置选项
noogleNix函数签名和文档(noogle.dev)
wikiNixOS维基文章(Wiki.NixOS.org
nix-devNix官方文档(Nix.dev)
nixhub包元数据和存储路径(nixhub.io

示例:

PYTHON``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46# 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` -包版本历史记录


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


- 包元数据(许可证、主页、程序)可用时
- 每个版本的平台可用性(Linux/macOS)
- Nixpkgs提交哈希以实现可重复构建
- Nix表达式的属性路径


PYTHON```
1nix_versions(package, version, limit)

示例:

PYTHON``` 1 2 3 4# List recent versions with metadata nix_versions(package=“python”, limit=5)

Find specific version

nix_versions(package=“nodejs”, version=“20.0.0”)


## 安装


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


BASH```
1
2
3
4# Run directly (no install)
uvx mcp-nixos
# Or install
pip install mcp-nixos

对于Nix用户:

BASH``` 1 2nix run github:utensils/mcp-nixos nix profile install github:utensils/mcp-nixos


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


mcp nixos可在 [nixpkgs](https://search.nixos.org/packages?channel=unstable&show=mcp-nixos&query=mcp-nixos):


NIX```
1
2
3
4
5
6# 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 ];

或者直接将薄片与提供的覆盖层一起使用:

NIX``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27# 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 ]; }]; }; }; }


## 发展


BASH```
1
2
3
4
5
6nix develop          # Enter dev shell
nix build            # Build package
pytest tests/        # Run tests
ruff check .         # Lint
ruff format .        # Format
mypy mcp_nixos/      # Type check

致谢

许可证

麻省理工学院-因为分享就是关怀。


由詹姆斯·布林克创建。由喜欢Nix的大众R o R; c Rs Rh Ri Rt Rn爱好者维护。