npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@pceuropa/mcp-server-python-venv

v1.0.6

Published

Comprehensive Python virtual environment inspector for Cursor IDE

Downloads

42

Readme

MCP Python Venv Server

A comprehensive Python virtual environment inspector for Cursor IDE using the Model Context Protocol (MCP).

Features

  • 🔍 Virtual Environment Detection - Automatically find and analyze Python virtual environments
  • 📦 Package Management - List, check, and compare installed packages
  • 📋 Requirements Analysis - Compare installed packages with requirements files
  • 🐍 Python Version Detection - Get Python version information from virtual environments
  • 🔧 Multi-Format Support - Support for requirements.txt, pyproject.toml, Pipfile, and more
  • UV Support - Full support for uv-managed environments
  • 🎯 Flexible Configuration - Choose between pip and uv via environment variables

Supported Package Managers

Fully Supported:

  • pip - Python package manager
  • uv - Fast Python package manager (recommended)
  • pipenv - Python dependency management

Not Supported:

  • PDM - Python Dependency Manager (not yet implemented)
  • Poetry - Limited support (detection only, no package operations)

Installation

npm install -g @pceuropa/mcp-server-python-venv

Usage

For better control, specify the package manager explicitly:

{
  "mcpServers": {
    "python-venv": {
      "command": "npx",
      "args": ["@pceuropa/mcp-server-python-venv"],
      "transport": "stdio",
      "env": {
        "PYTHON_PATH": "${workspaceFolder}/.venv/bin/python",
        "VIRTUAL_ENV": "${workspaceFolder}/.venv",
        "UV_PATH": "/path/to/uv"
      }
    }
  }
}

Alternative for pip-managed projects:

{
  "mcpServers": {
    "python-venv": {
      "command": "npx",
      "args": ["@pceuropa/mcp-server-python-venv"],
      "transport": "stdio",
      "env": {
        "PYTHON_PATH": "${workspaceFolder}/.venv/bin/python",
        "VIRTUAL_ENV": "${workspaceFolder}/.venv",
        "PIP_PATH": "${workspaceFolder}/.venv/bin/pip"
      }
    }
  }
}

Available Tools

ping

Test server connectivity.

find_venv

Find virtual environment in the current project.

  • Input: projectPath (optional) - Project path to search
  • Output: Virtual environment information

get_python_version

Get Python version from the virtual environment.

  • Output: Python version and path

list_packages

List all installed packages in the virtual environment.

  • Input: sortBy (optional) - Sort by "name" or "version"
  • Output: List of installed packages

check_package

Check if a specific package is installed and matches version requirements.

  • Input:
    • packageName (required) - Name of the package
    • version (optional) - Version requirement (e.g., ">=1.0.0", "==2.1.0")
  • Output: Package installation status and version info

compare_requirements

Compare installed packages with requirements files.

  • Input: file (optional) - Specific requirements file to check
  • Output: Missing, extra, and mismatched packages with install command

check_outdated

Check for outdated packages in the virtual environment.

  • Output: List of outdated packages with upgrade commands

suggest_venv_setup

Get suggestions for setting up a virtual environment.

  • Output: Setup commands and tool recommendations

get_venv_summary

Get a comprehensive summary of the virtual environment.

  • Output: Python version, package count, size, requirements status, and outdated count

get_dependency_tree

Get dependency tree visualization for packages.

  • Input:
    • package (optional) - Specific package to analyze
    • depth (optional) - Maximum depth of dependency tree (default: 3)
  • Output: Dependency tree with circular dependencies and unused packages

detect_environment_manager

Detect which Python environment manager is being used.

  • Input: projectPath (optional) - Project path to analyze
  • Output: Detected manager (venv, poetry, pipenv, conda, uv) with config files

get_poetry_info

Get Poetry project information and dependencies.

  • Input: projectPath (optional) - Project path
  • Output: Poetry project details, dependencies, and environment info
  • Note: Limited support - detection only, package operations may not work

get_pipenv_info

Get Pipenv project information and dependencies.

  • Input: projectPath (optional) - Project path
  • Output: Pipenv project details, dependencies, and environment info

get_conda_info

Get Conda environment information and packages.

  • Input: projectPath (optional) - Project path
  • Output: Conda environment details, packages, and configuration
  • Note: Basic support - may have limited functionality

check_security

Check for security vulnerabilities in installed packages.

  • Output: List of vulnerabilities with severity and fix recommendations

check_licenses

Check licenses of installed packages and identify potential issues.

  • Output: License information with warnings for problematic licenses

search_package

Search for packages on PyPI.

  • Input:
    • query (required) - Search query
    • limit (optional) - Maximum results (default: 10)
  • Output: Search results with package information

export_environment

Export current environment to various formats.

  • Input: format (required) - Export format: "requirements", "pyproject", or "conda"
  • Output: Formatted environment specification

Environment Variables

The server supports the following environment variables for configuration:

| Variable | Description | Priority | |----------|-------------|----------| | UV_PATH | Path to uv executable (forces uv usage) | Highest | | PIP_PATH | Path to pip executable (forces pip usage) | High | | PYTHON_PATH | Path to Python executable | Medium | | VIRTUAL_ENV | Path to virtual environment | Medium |

Priority Order:

  1. UV_PATH - If set, uses uv pip for all operations
  2. PIP_PATH - If set, uses specified pip executable
  3. Auto-detection - Detects package manager from project files

Limitations

Not Supported Package Managers

  • PDM (Python Dependency Manager) - Not yet implemented
  • Poetry - Limited support (detection only, no package operations)

Known Issues

  • Poetry environments - Can detect but cannot list packages
  • PDM environments - Not detected or supported
  • Mixed environments - May not work correctly if using multiple package managers

Troubleshooting

Server Not Finding Virtual Environment

  1. Check environment variables:

    echo $VIRTUAL_ENV
    echo $PYTHON_PATH
  2. Use explicit paths in MCP configuration:

    {
      "env": {
        "VIRTUAL_ENV": "/absolute/path/to/your/venv",
        "PYTHON_PATH": "/absolute/path/to/your/venv/bin/python"
      }
    }
  3. Restart Cursor IDE after configuration changes

Empty Package List

  1. For UV projects: Ensure UV_PATH is set
  2. For pip projects: Ensure PIP_PATH is set
  3. Check package manager detection:
    npx @pceuropa/mcp-server-python-venv
    # Then call detect_environment_manager tool

Development

Testing the Installation

Test with npx

# Test the server directly
npx @pceuropa/mcp-server-python-venv

# Test with a specific command
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' | npx @pceuropa/mcp-server-python-venv

Test in Cursor

  1. Add the configuration to your .cursor/settings.json
  2. Restart Cursor IDE
  3. Open Command Palette (Ctrl+Shift+P / Cmd+Shift+P)
  4. Type "MCP" and select "MCP: Show Servers"
  5. Verify that "python-venv" server is connected

Prerequisites

  • Node.js 18+
  • Python 3.8+
  • npm or yarn

Setup

git clone https://github.com/pceuropa/mcp-server-python-venv.git
cd mcp-server-python-venv
npm install

Build

npm run build

Development Mode

npm run dev

Testing

npm test

Linting

npm run lint
npm run format

Supported Virtual Environment Types

  • venv - Standard Python venv
  • virtualenv - Virtualenv package
  • uv - UV package manager (recommended)
  • pipenv - Pipenv environments
  • conda - Conda environments
  • poetry - Poetry environments (detection only)

Supported Requirements Formats

  • requirements.txt
  • requirements-dev.txt
  • requirements-test.txt
  • pyproject.toml (project dependencies)
  • pyproject.toml (poetry dependencies - limited support)
  • Pipfile
  • setup.py (basic support)

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please read our contributing guidelines and submit pull requests to our GitHub repository.

Support

Changelog

See CHANGELOG.md for version history and updates.