venv-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@venv-mcp-serverCreate a new virtual environment named 'myproject' and install requests."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
venv-mcp-server
The MCP server which solves the following problem: LLMs are not able to resolve dependencies and update the virtual environment on their own reliably. With simple list of tools, venv-mcp-server makes it possible.
Integrations
Cline / Claude Desktop
{
"mcpServers": {
"venv-management-for-my-project": {
"command": "uvx",
"args": [
"--from=git+https://github.com/sparfenyuk/venv-mcp-server.git",
"venv-mcp-server"
]
}
}
}Related MCP server: mcp-python-repl
Command-line arguments
$ uvx --from git+https://github.com/sparfenyuk/venv-mcp-server.git venv-mcp-server --help
usage: venv-mcp-server [-h] [--uv-path UV_PATH]
A MCP server to manage a virtual environment in the given location using 'uv'
options:
-h, --help show this help message and exit
--uv-path UV_PATH Path to uv executable. Default is the 'uv' command in your PATH.Available Tools
6 toolsadd_packageC
Add package to pyproject.toml and update the virtual environment. Returns True if successful.
Args: package_name: Name of the package to install. dev: If True, add the package to the development dependency group.
| Name | Required | Description | Default |
|---|---|---|---|
| package_name | Yes | ||
| dev | Yes | ||
| current_working_dir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses side effects (modifies pyproject.toml and venv) and return value (True if successful), but does not mention error states or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with efficient use of words. Docstring format with Arg list. However, lacks description for one parameter, which reduces effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Incomplete for a tool with 3 required params, no output schema, and no annotations. Missing explanation of 'current_working_dir' and more details on behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must describe all parameters. It only covers 2 of 3 required parameters (package_name and dev) and omits 'current_working_dir' entirely. Descriptions for covered params are minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (add package) and target (pyproject.toml, virtual environment), but it does not distinguish from sibling tool 'add_packages' which might be used for multiple packages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'add_packages' or 'init'. No context about prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_packagesA
Add many packages to pyproject.toml at once and update the virtual environment.
Args: package_names: List of names of the packages to install. dev: If True, add the package to the development dependency group.
| Name | Required | Description | Default |
|---|---|---|---|
| package_names | Yes | ||
| dev | Yes | ||
| current_working_dir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds value by stating that the virtual environment is updated, but lacks details on error handling, rollback, or whether it overwrites existing packages. As no annotations are provided, this is only partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, with a clear one-sentence purpose followed by a structured parameter list. No wasted words, though the parameter descriptions could be integrated into the schema for better structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Does not cover error scenarios, behavior on failure, or differentiation from siblings like 'init' or 'sync'. With no output schema and 3 required params, the description is insufficiently comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Describes two parameters (package_names and dev) in the docstring, but the third parameter 'current_working_dir' is not explained. Schema coverage is 0%, so description partially compensates but is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (add), resource (packages to pyproject.toml and virtual environment), and bulk operation. Distinguishes from sibling 'add_package' which is singular.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies bulk use via 'many packages at once' but does not explicitly state when to use this tool versus alternatives like 'add_package' or prerequisites (e.g., pyproject.toml must exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initC
Initialize virtual environment. Returns True if successful.
| Name | Required | Description | Default |
|---|---|---|---|
| current_working_dir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the tool returns True if successful. It does not disclose side effects (e.g., file creation), failure behavior, or whether it is destructive. For a mutation-like tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences), which is concise but at the expense of necessary details. It is front-loaded with the core action, but lacks depth to be truly helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of environment initialization, the presence of sibling tools, and the lack of output schema or annotations, this description is incomplete. It fails to explain what the tool does beyond the name and how it interacts with other tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'current_working_dir' has 0% schema description coverage, and the description adds no meaning about it (e.g., where the environment is created). The agent must infer usage, which is poor.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool initializes a virtual environment, which is a specific verb+resource. It is distinct from sibling tools like add_package or run_in_venv. However, it lacks specificity (e.g., type of environment) and mixes a return value instead of focusing solely on purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It does not mention prerequisites, alternative actions like adding packages, or context for initialization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_packageB
Remove package from pyproject.toml file and update the virtual environment. Returns True if successful.
Args: package_name: Name of the package to remove. dev: If True, remove the package from the development dependency group
| Name | Required | Description | Default |
|---|---|---|---|
| package_name | Yes | ||
| dev | Yes | ||
| current_working_dir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It mentions returning True on success but omits error handling, side effects (e.g., uninstalling the package), permissions, or behavior when the package is not found. The description is too sparse for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear main sentence and a brief parameter list. It is front-loaded with the purpose and avoids unnecessary details, though the parameter descriptions could be integrated more smoothly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return value and basic effect (removal from pyproject.toml and virtual environment), but lacks details on the full process (e.g., whether the package is uninstalled from the environment) and does not describe 'current_working_dir'. Given no output schema, more context on behavior and prerequisites would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description adds meaning for 'package_name' (name of package) and 'dev' (removal from dev group) but does not describe the required 'current_working_dir' parameter. This leaves a significant gap for a required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Remove package from pyproject.toml file and update the virtual environment.' It distinguishes from sibling tools like 'add_package' and 'add_packages' by being the removal counterpart, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for removing a package but does not explicitly state when to use this tool versus alternatives like 'add_package' or 'sync'. No prerequisites or exclusions are mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_in_venvC
Run a command in virtual environment. Returns True if successful.
Args: command: Command to run. args: Arguments to pass to the command.
| Name | Required | Description | Default |
|---|---|---|---|
| current_working_dir | Yes | ||
| command | Yes | ||
| args | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Only mentions 'Returns True if successful', but no annotations are provided. Lacks detail on side effects, failure modes, or environment impact for a command execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences is concise, but the structure is flat. The docstring-style parameter list is not front-loaded with key info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks return value format, error behavior, and context about the virtual environment. Does not explain how 'current_working_dir' is used. Incomplete for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning beyond parameter names. 'current_working_dir' is not explained, and 'command' and 'args' are only restated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run a command in virtual environment', which is a specific verb+resource. It distinguishes from siblings which are package management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like add_package or sync. There is no mention of prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
syncC
Sync pyproject.toml with virtual environment. Returns True if successful.
| Name | Required | Description | Default |
|---|---|---|---|
| current_working_dir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only mentions the return value (True if successful) but does not disclose any side effects, such as whether it modifies files or requires specific permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are concise, but the description is too sparse, lacking essential details that would justify its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the purpose is stated, the description misses critical information about the parameter and usage context, making it incomplete for effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the sole parameter 'current_working_dir'; with 0% schema description coverage, the agent cannot understand what input is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (sync) and the resources involved (pyproject.toml with virtual environment), distinguishing it from sibling tools that add/remove packages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, or any prerequisites for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.2.0- First observed
add_package - First observed
add_packages - First observed
init - First observed
remove_package - First observed
run_in_venv - First observed
sync
TDQS
Each tool has a clearly distinct purpose: init, add/remove packages (singular/plural), sync, and run commands. No overlap or ambiguity.
All tools use snake_case and follow a verb_noun pattern (add_package, remove_package, run_in_venv), but 'init' and 'sync' are single words, which is a minor deviation.
6 tools cover the essential operations for virtual environment management (init, add, remove, sync, run). No excess or deficiency.
Covers core workflows: init, add/remove packages, sync, run commands. Missing operations like listing installed packages or updating packages, but not critical.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for agentverse documentation, generated by doc2mcp.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProduction-ready MCP server for secure Python code execution with artifact capture, virtual environment support, and LM Studio integration.11Apache 2.0
- AlicenseAqualityDmaintenanceA production-grade MCP server providing a persistent Python REPL with multi-session support, sandboxing, and timeout protection, enabling LLM agents to execute Python code across multiple turns with variables that persist between calls.121MIT
- FlicenseAqualityDmaintenanceA local MCP server that provides a safe, structured way to manage Python environments inside a project workspace, including virtual environment creation, restricted pip operations, and dependency freezing.5-
- AlicenseNot gradedqualityAmaintenancePython venv runtime for AI agents. MCP server exposing list/create/describe/install/run/exec/snapshot/rollback/scan as typed tools50MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sparfenyuk/venv-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server