nix工具mcp
MCP服务器,为Claude Code提供对nixpkgs中任何工具的临时访问。
特性
nix_run-使用临时nix包执行命令nix_search-在nixpkgs中搜索软件包nix_check_package-验证包是否存在并获取元数据
技术栈
- Python 3.14 -使用JIT编译器的最新Python
- 紫外线 -快速Python包安装程序(比pip快10-100倍)
- FastMCP -现代MCP服务器框架
- 镍片 -可复制包装
需求
- 尼克斯 启用薄片
- 家庭经理 (用于声明性安装)
通过添加以下内容启用薄片 ~/.config/nix/nix.conf 或 /etc/nix/nix.conf:
experimental-features = nix-command flakes安装
选项1:家庭管理器模块(推荐)
添加薄片作为输入,并使用Home Manager模块:
# flake.nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
nix-tools-mcp.url = "github:andrewyazura/nix-tools-mcp";
};
outputs = { self, nixpkgs, home-manager, nix-tools-mcp, ... }: {
homeConfigurations.your-username = home-manager.lib.homeManagerConfiguration {
modules = [
nix-tools-mcp.homeManagerModules.default
{
programs.claude-code = {
enable = true;
mcpServers.nix-tools.enable = true;
};
}
];
};
};
}选项2:直接包参考
直接在Home Manager配置中引用该包:
# flake.nix
{
inputs = {
nix-tools-mcp.url = "github:andrewyazura/nix-tools-mcp";
};
# In your home-manager configuration:
programs.claude-code = {
enable = true;
mcpServers.nix-tools = {
type = "stdio";
command = "${nix-tools-mcp.packages.${pkgs.system}.default}/bin/nix-tools-mcp";
args = [];
};
};
}选项3:尝试不安装
直接测试MCP服务器:
nix run github:andrewyazura/nix-tools-mcp方案4:地方发展
克隆并在本地使用:
git clone https://github.com/YOUR_USERNAME/nix-tools-mcp.git
cd nix-tools-mcp
nix develop # Enter dev shell
uv sync # Install dependencies
python server.py # Run server用法示例
安装后,启动一个新的Claude Code会话并尝试:
You: Use cowsay to say hello
Claude: [calls nix_run(["cowsay"], "cowsay hello")]
___________
-----------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
You: What packages can process YAML?
Claude: [calls nix_search("yaml")]
Results: yq, python3Packages.pyyaml, ruby3Packages.yaml, ...
You: Download https://api.github.com and extract the current_user_url field
Claude: [calls nix_run(["curl", "jq"], "curl -s https://api.github.com | jq .current_user_url")]
"https://api.github.com/user"运作原理
- 首次运行:在以下位置创建缓存的venv
~/.cache/nix-tools-mcp/ - 依赖项安装:跑步
uv sync(使用Python 3.14时约为15毫秒) - 后续运行:即时-重用缓存的venv
- 临时工具:通过以下方式提取包裹
nix shell nixpkgs#pkg,由Nix GC清理
项目结构
.
├── server.py # MCP server implementation
├── pyproject.toml # Python dependencies
├── uv.lock # Locked dependency versions
├── flake.nix # Nix flake definition
├── flake.lock # Nix flake lock file
└── modules/
└── home-manager.nix # Home Manager module可用输出
packages.default-MCP服务器包apps.default-跑步nix rundevShells.default-发展环境homeManagerModules.default-Home Manager模块overlays.default-Nixpkgs覆盖层
支持的平台
- ✅ macOS(aarch64达尔文,x86_64达尔文)
- ✅ Linux(aarch64 Linux,x86_64-Linux)
贡献
欢迎投稿!请随时打开问题或撤回请求。
许可证
麻省理工学院
