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/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-manager | Home Manager选项 |
darwin | 尼克松达尔文期权 |
flakes | 社区薄片(search.nixos.org) |
flakehub | FlakeHub注册表(FlakeHub.com) |
nixvim | Nixvim Neovim配置选项 |
noogle | Nix函数签名和文档(noogle.dev) |
wiki | NixOS维基文章(Wiki.NixOS.org) |
nix-dev | Nix官方文档(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
致谢
- NixHub.io -软件包版本历史记录
- search.nixos.org -NixOS官方搜索
- FlakeHub -基于行列式系统的缺陷登记
- Jetify -Devbox和NixHub的创造者
- 诺格尔 -Nix函数搜索引擎
- NuschtOS -支持Nixvim的静态选项搜索基础架构
- 尼希米 -Nix的Neovim配置框架
许可证
麻省理工学院-因为分享就是关怀。
由詹姆斯·布林克创建。由喜欢Nix的大众R o R; c Rs Rh Ri Rt Rn爱好者维护。