list_languages
Lists supported programming languages and their base Nix packages for creating ephemeral development environments with specific dependencies.
Instructions
List supported languages and their base Nix packages.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Input Schema (JSON Schema)
{
"properties": {},
"type": "object"
}
Implementation Reference
- mcp_omnienv_nix/server.py:103-110 (handler)The handler function for the 'list_languages' MCP tool. It iterates over the SUPPORTED_LANGUAGES dictionary and formats a list of supported languages with their labels and base Nix packages. Registered using the @mcp.tool() decorator.@mcp.tool() def list_languages() -> str: """List supported languages and their base Nix packages.""" lines = [] for key, profile in SUPPORTED_LANGUAGES.items(): base = ", ".join(profile.base_packages) lines.append(f"- {key}: {profile.label} (base: {base})") return "\n".join(lines)
- mcp_omnienv_nix/server.py:18-30 (helper)Supporting data structures: LanguageProfile dataclass and SUPPORTED_LANGUAGES dictionary defining the available languages, labels, and base Nix packages used by the list_languages tool.@dataclass(frozen=True) class LanguageProfile: label: str base_packages: List[str] SUPPORTED_LANGUAGES: dict[str, LanguageProfile] = { # Interpreted runtimes where we can build an env via withPackages. "python": LanguageProfile(label="Python 3.13", base_packages=["python313"]), "ruby": LanguageProfile(label="Ruby 3.3", base_packages=["ruby_3_3"]), "r": LanguageProfile(label="R", base_packages=["R"]), "lua": LanguageProfile(label="Lua 5.4", base_packages=["lua5_4"]), }