Python venv runtime for AI agents (MCP server on stdio)
16 tools with complete schemas and descriptions. Naming is verb-first and clear (list_venvs, create_venv, remove_venv). Descriptions are substantive (50-200 chars typical), explaining WHAT and WHEN. Parameters are typed with descriptions. However, several tools lack output schema documentation, and error handling guidance is minimal. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Some parameter descriptions could be more prescriptive about constraints (e.g., python_version format, confirm semantics).
Create a new virtual environment with an optional Python version (e.g. '3.12').
Return a full JSON description of a venv: python version, packages, size, activation commands, freeze hash.
Compare two snapshots, or compare a snapshot with the current environment state.
Report environment health: available python versions, uv presence, broken venvs.
Create a temporary venv, install packages, run a command, then delete the venv. Great for running AI-generated code in isolation.
Install packages into a venv. Provide either 'packages' (list) or 'requirements_file' (path).
No output schemas documented. Tools return structured data (JSON descriptions, lists, diffs) but LLMs cannot see the response field structure. This forces agents to guess what fields are available and risks parsing errors.
Missing tool annotations. Tools like remove_venv, rollback_venv, and exec_ephemeral are destructive or reversible but lack readOnlyHint/destructiveHint/idempotentHint annotations. Agents cannot infer safety properties from the schema alone.
Parameter constraints underspecified. 'python_version' accepts a string but format is not documented (e.g., '3.12', '3.12.1', or '3.12.0'?). 'confirm' parameter semantics unclear, when is it required vs optional? Agents may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
List persistent metadata, project associations, tags, and last-used times for managed venvs.
List snapshots available for a venv.
List all Python virtual environments managed by venv-manager.
Delete a virtual environment.
Restore a venv to a previous snapshot. Omit snapshot_id to restore the most recent.
Run a command inside a venv without activating it. Returns combined stdout+stderr.
Parse Python file(s) and return third-party imports plus (optionally) which are missing in a venv. Use this before running AI-generated code to know what to install.
Associate a project path and tags with a managed venv.
Capture the current pip freeze state of a venv. Use before risky installs to enable rollback.
Explain why a package is installed in a venv by tracing the dependency chain. Returns the chain of packages that require it.
Error handling lacks recovery guidance. No indication of what to do if a venv is not found, a package install fails, or a snapshot is corrupted. Agents receive errors but no actionable next steps.
Mutual exclusivity not documented. install_packages accepts both 'packages' (array) and 'requirements_file' (string) but does not state whether both can be provided, or if one is required. Agents may pass both or neither.