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(推荐)
{
"mcpServers": {
"nixos": {
"command": "uvx",
"args": ["mcp-nixos"]
}
}
}选项 2:Nix
{
"mcpServers": {
"nixos": {
"command": "nix",
"args": ["run", "github:utensils/mcp-nixos", "--"]
}
}
}选项 3:Docker
{
"mcpServers": {
"nixos": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/utensils/mcp-nixos"]
}
}
}你的 AI 现在可以访问真实的 NixOS 数据,而不是胡编乱造。不客气。
选项 4:HTTP (远程 MCP)
FastMCP 支持通过 URL 在 HTTP 上运行此服务器(MCP 端点默认为 /mcp)。
# 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(默认):
MCP_NIXOS_TRANSPORT=stdio mcp-nixos自定义路径:
MCP_NIXOS_TRANSPORT=http MCP_NIXOS_PATH=/api/mcp mcp-nixos无状态 HTTP(禁用每个客户端的会话状态):
MCP_NIXOS_TRANSPORT=http MCP_NIXOS_STATELESS_HTTP=1 mcp-nixos选项 5:Pi 编码代理
Pi 不原生支持 MCP。有两种支持的路径:
A. pi-mcp-adapter(推荐 — 支持 MCP,单一事实来源):
pi install npm:pi-mcp-adapter然后添加到 ~/.pi/agent/mcp.json:
{
"mcpServers": {
"nixos": {
"command": "uvx",
"args": ["mcp-nixos"],
"lifecycle": "lazy"
}
}
}B. 项目本地扩展(克隆 + 运行): 此仓库附带 .pi/extensions/mcp-nixos.ts,当你在此克隆的仓库中运行 pi 时会自动加载。可选:运行 cd .pi && npm install 以进行编辑器类型解析。无论哪种方式,Pi 都会运行它。
Related MCP server: MCP-Context-Provider
这是什么?
一个提供准确、实时信息的 MCP 服务器,涵盖:
NixOS 软件包 - 13 万+ 真实存在的软件包
NixOS 选项 - 2.3 万+ 配置系统的方法
Home Manager - 5 千+ 供点文件(dotfile)爱好者使用的选项
nix-darwin - 1 千+ 苹果未记录的 macOS 设置
Nixvim - 5 千+ 通过 NuschtOS search 进行 Neovim 配置的选项
FlakeHub - 600+ 来自 FlakeHub.com 注册表的 flakes
Noogle - 2 千+ 带有类型签名的 Nix 函数,来自 noogle.dev
NixOS Wiki - 来自 wiki.nixos.org 的社区文档和指南
nix.dev - 来自 nix.dev 的官方 Nix 教程和指南
软件包版本 - 通过 NixHub.io 获取带有提交哈希的历史版本
二进制缓存状态 - 检查软件包是否在 cache.nixos.org 上缓存及其下载大小
本地 flake 输入 - 直接从 Nix store 探索你固定的 flake 依赖项(需要 Nix)
工具
只有两个。我们将 17 个工具合并为 2 个,因为你的 AI 上下文窗口不是无限的。
总计约 1,030 个 token。 就这样。当其他 MCP 服务器像黑色星期五一样占用你的上下文时,我们正在角落里品尝极简主义的茶。你的 AI 获得了 NixOS 的超能力,而没有臃肿的负担。
nix - 统一查询工具
一个统治一切的工具:
nix(action, query, source, type, channel, limit)操作 | 功能 |
| 搜索软件包、选项、程序或 flakes |
| 获取有关软件包或选项的详细信息 |
| 获取计数和类别 |
| 按前缀浏览 Home Manager/Darwin 选项 |
| 列出可用的 NixOS 频道 |
| 从 Nix store 探索本地 flake 输入 |
| 检查软件包的二进制缓存状态 |
来源 | 查询内容 |
| 软件包、选项、程序 |
| Home Manager 选项 |
| nix-darwin 选项 |
| 社区 flakes (search.nixos.org) |
| FlakeHub 注册表 (flakehub.com) |
| Nixvim Neovim 配置选项 |
| Nix 函数签名和文档 (noogle.dev) |
| NixOS Wiki 文章 (wiki.nixos.org) |
| 官方 Nix 文档 (nix.dev) |
| 软件包元数据和存储路径 (nixhub.io) |
示例:
# 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 表达式的属性路径
nix_versions(package, version, limit)示例:
# List recent versions with metadata
nix_versions(package="python", limit=5)
# Find specific version
nix_versions(package="nodejs", version="20.0.0")安装
你不需要安装 Nix。 这可以在任何运行 Python 的地方运行。
# Run directly (no install)
uvx mcp-nixos
# Or install
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, ... }: {
# 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 ];
}];
};
};
}开发
nix 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 - Determinate Systems 的 Flake 注册表
Jetify - Devbox 和 NixHub 的创建者
Noogle - Nix 函数搜索引擎
NuschtOS - 支持 Nixvim 的静态选项搜索基础设施
Nixvim - Nix 的 Neovim 配置框架
许可证
MIT - 因为分享就是关怀。
由 James Brink 创建。由喜欢 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
