多语言临时环境服务

MCP服务器,用于创建基于Nix的多语言临时环境,支持Python、Node.js、Ruby、R、Lua等语言,按需加载依赖并保持环境清洁。

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

使用说明

mcp omnienv nix

MCP服务器,启动Nix支持的多语言临时环境。使用 nix shell 为解释堆栈(Python、Node.js、Ruby、R、Lua;可扩展)构建一次性工具链,并在该shell中运行您的命令。套餐可用性取决于 nixpkgs (例如。, python313Packages.requests, rPackages.misty, nodePackages.sloc).

为什么

  • 编码代理通常需要专门的Python/Node/Ruby/R/Lua-deps。预装一切都很吵;静脉使系统变得混乱。
  • 在主机上有Nix的情况下,此服务器按需请求包,将它们拉入存储区,并使环境的其余部分保持干净——没有venv或全局安装。
  • 通过MCP(stdio传输)运行,因此代理客户端可以直接调用工具。

工具

  • list_languages --枚举支持的语言及其基本Nix包。
  • run_in_env(language, command, extra_packages?, timeout_seconds?) --发射a nix shell 有基本+额外和执行 command.返回JSON: stdout, stderr, exit_code.

快速启动

# Try it ad-hoc
nix shell github:StealthBadger747/mcp-omnienv-nix -c mcp-omnienv-nix

连接到您的MCP客户端(stdio传输)。配置形状示例:

{
  "mcpServers": {
    "mcp-omnienv-nix": {
      "command": "mcp-omnienv-nix"
    }
  }
}

扩展语言

  • 编辑 SUPPORTED_LANGUAGES 在 mcp_omnienv_nix/server.py 添加一种语言及其基本包。
  • run_in_env 根据简单的正则表达式验证额外的包,并将其附加到 nix shell 调用。

发展

# Nix dev shell with deps + pytest
nix develop . -c pytest
# Run integration tests (hit nix shell for real package resolution)
MCP_OMNIENV_INTEGRATION=1 nix develop . -c pytest -m integration

许可证

MIT。