使用说明
Nix MCP服务器
用于处理Nix派生、表达式和薄片的模型上下文协议(MCP)服务器。
特性
此MCP服务器提供以下工具:
- 建筑 镍衍生物和薄片
- 评估 Nix表达式
- 询问 薄片输出
- 检查 薄片有效期
- 搜索 nixpkgs和其他薄片包装
所有操作都会将详细日志写入 /tmp 并返回结构化结果,而不会用构建输出压倒LLM。
安装
使用镍片
# Run directly
nix run github:yourusername/nix-mcp
# Install to profile
nix profile install github:yourusername/nix-mcp
# Add to your system/home-manager configuration
{
inputs.nix-mcp.url = "github:yourusername/nix-mcp";
# ...
}
本地开发
# Enter development shell
nix develop
# Run the server
python -m nix_mcp.server
配置
添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"nix": {
"command": "nix",
"args": ["run", "/path/to/nix-mcp"]
}
}
}
或者,如果通过安装 nix profile:
{
"mcpServers": {
"nix": {
"command": "nix-mcp"
}
}
}
可用工具
nix_build
构建Nix衍生物或薄片。
参数:
flake_ref(必填):薄片参考(例如。,.#default,nixpkgs#hello)extra_args(可选):传递给nix构建的其他参数
退货:
success:布尔值表示构建成功store_path:路径在/nix/store(只谈成功)log_file:详细构建日志的路径/tmp
例子:
{
"flake_ref": ".#default",
"extra_args": ["--no-link"]
}
nix_eval
计算Nix表达式或薄片属性。
参数:
flake_ref(必需):要计算的表达式或flake属性raw(可选):输出不带引号的原始结果json(可选):输出为JSON
退货:
success:布尔值表示评估成功result:评估结果log_file:日志路径
例子:
{
"flake_ref": ".#packages.x86_64-linux.default.version",
"raw": true
}
nix_flake_show
显示薄片的输出。
参数:
flake_ref(可选):薄片参考(默认值:.)
退货:
success:布尔值outputs:结构化薄片输出信息log_file:日志路径
例子:
{
"flake_ref": "nixpkgs"
}
nix_flake_check
检查镍片是否有错误。
参数:
flake_ref(可选):薄片参考(默认值:.)
退货:
success:布尔值,指示薄片是否有效log_file:包含详细错误信息的日志路径
例子:
{
"flake_ref": "."
}
nixsearch
搜索Nix套餐。
参数:
query(必填):搜索查询flake_ref(可选):要搜索的Flake(默认值:nixpkgs)
退货:
success:布尔值results:搜索结果对象count:找到的结果数量log_file:日志路径
例子:
{
"query": "python3",
"flake_ref": "nixpkgs"
}
日志文件
所有操作都会将详细日志写入 /tmp/nix-mcp-{operation}-{timestamp}.log。这些文件包含:
- 执行的确切命令
- 退出代码
- 完整的stdout和stderr输出
如果需要详细的错误信息,代理可以读取这些文件。
发展
建筑
nix build
测试
# Enter dev shell
nix develop
# Run the server
python -m nix_mcp.server
# Test with MCP inspector (if available)
npx @modelcontextprotocol/inspector python -m nix_mcp.server
许可证
麻省理工学院
