Nix模型上下文协议服务器

一个用于处理Nix派生、表达式和flakes的模型上下文协议服务器,提供构建、评估、查询、检查和搜索功能。

  • by illustris
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 illustris/nix-mcp

使用说明

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

许可证

麻省理工学院