Provides ephemeral Nix-backed execution environments for running Lua code with on-demand package dependencies from nixpkgs.
Provides ephemeral Nix-backed execution environments for running Node.js code with on-demand package dependencies from nixpkgs.
Provides ephemeral Nix-backed execution environments for running Python code with on-demand package dependencies from nixpkgs.
Provides ephemeral Nix-backed execution environments for running Ruby code with on-demand package dependencies from nixpkgs.
mcp-omnienv-nix
MCP server that spins up Nix-backed, polyglot ephemeral environments. It uses nix shell to build disposable toolchains for interpreted stacks (Python, Node.js, Ruby, R, Lua; extendable) and runs your command inside that shell. Package availability depends on nixpkgs (e.g., python313Packages.requests, rPackages.misty, nodePackages.sloc).
Why
Coding agents often need ad-hoc Python/Node/Ruby/R/Lua deps. Preloading everything is noisy; venvs clutter a system.
With Nix on the host, this server asks for packages on demand, pulls them into the store, and leaves the rest of the environment clean—no venvs or global installs.
Runs over MCP (stdio transport) so agent clients can call the tools directly.
Tools
list_languages— enumerate supported languages and their base Nix packages.run_in_env(language, command, extra_packages?, timeout_seconds?)— launch anix shellwith base + extras and executecommand. Returns JSON:stdout,stderr,exit_code.
Quick start
Hook into your MCP client (stdio transport). Example config shape:
Extending languages
Edit
SUPPORTED_LANGUAGESinmcp_omnienv_nix/server.pyto add a language and its base packages.run_in_envvalidates extra packages against a simple regex and appends them to thenix shellinvocation.
Development
License
MIT.