Skip to main content
Glama

PyPI Package MCP Server

by Qvakk
README.mdโ€ข6.65 kB
# ๐Ÿ“ฆ PyPI Package MCP Server [![Python](https://img.shields.io/badge/Python-3.9+-3776ab?style=flat&logo=python&logoColor=white)](https://www.python.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) > A powerful Model Context Protocol (MCP) server that enables AI assistants to fetch, explore, and analyze source code from any Python package on PyPI. ## โœจ Features - ๐Ÿ“ฆ **Fetch Any PyPI Package**: Download and explore source code from millions of packages - ๐Ÿ” **Smart File Discovery**: List and filter files with intelligent code detection - ๐Ÿ“„ **Selective Code Reading**: Get specific files or entire codebases - ๐Ÿท๏ธ **Version Control**: Support for any published package version - ๐Ÿงน **Auto Cleanup**: Automatic temporary file management - ๐Ÿ”’ **Type Safe**: Full type hints with mypy support - โšก **Async First**: Modern async/await patterns throughout - ๐Ÿค– **AI-Ready**: Perfect integration with Claude, ChatGPT, and other AI assistants ## ๐ŸŽฏ Use Cases - **Code Analysis**: Analyze libraries before adopting them - **Learning**: Study well-written open source code - **AI Development**: Enable AI assistants to understand package internals - **Documentation**: Generate docs by analyzing source code - **Security Auditing**: Review dependencies for security issues - **Migration Planning**: Understand APIs when upgrading packages ## ๐Ÿš€ Installation & Setup ### Option 1: Local Development (Stdio Mode) ```bash git clone https://github.com/Qvakk/pypi-package-mcp-server.git cd pypi-package-mcp-server pip install -e . pypi-package-mcp-server ``` ### Option 2: Local Development (HTTP Mode) ```bash git clone https://github.com/Qvakk/pypi-package-mcp-server.git cd pypi-package-mcp-server pip install -e . TRANSPORT_MODE=http PORT=3000 pypi-package-mcp-server ``` ### Option 3: With Authentication Token ```bash # Stdio mode with auth AUTH_TOKEN=your-secret-token pypi-package-mcp-server # HTTP mode with auth TRANSPORT_MODE=http PORT=3000 AUTH_TOKEN=your-secret-token pypi-package-mcp-server ``` ### Option 4: Docker (Production - HTTP Mode) ```bash # Build Docker image docker build -t pypi-package-mcp-server . # Run in stdio mode (Claude Desktop) docker run -it pypi-package-mcp-server # Run in HTTP mode docker run -p 3000:3000 \ -e TRANSPORT_MODE=http \ -e PORT=3000 \ pypi-package-mcp-server # Run with authentication docker run -p 3000:3000 \ -e TRANSPORT_MODE=http \ -e PORT=3000 \ -e AUTH_TOKEN=your-secret-token \ pypi-package-mcp-server # Use Docker Compose docker-compose up -d ``` ## ๐Ÿ”ง Configuration ### Environment Variables | Variable | Default | Description | |----------|---------|-------------| | `TRANSPORT_MODE` | `stdio` | Transport mode: `stdio` or `http` | | `PORT` | `3000` | HTTP server port (only used in `http` mode) | | `AUTH_TOKEN` | (none) | Optional authentication token for API access | ### Transport Modes #### Stdio Mode (Default) - Best for: Claude Desktop, local development - Connection: Standard input/output streams - Command: `pypi-package-mcp-server` #### HTTP Mode - Best for: Remote servers, containerized deployments - Connection: HTTP requests on specified port - Health endpoint: `GET /health` - MCP endpoint: `POST /mcp` - Command: `TRANSPORT_MODE=http PORT=3000 pypi-package-mcp-server` ### Authentication When `AUTH_TOKEN` environment variable is set, all HTTP requests must include the token in the `Authorization` header: ```bash # Using Bearer token curl -H "Authorization: Bearer your-secret-token" http://localhost:3000/health # Or just the token curl -H "Authorization: your-secret-token" http://localhost:3000/health ``` ## ๐Ÿ“Š Supported Packages - โœ… All public PyPI packages - โœ… Any published version - โœ… Source distributions (`.tar.gz`) - โœ… Binary wheels (`.whl`) - โœ… Monorepo packages - โœ… Pure Python and native extensions ## ๐Ÿ”ฅ Popular Packages to Explore Try these commands with your AI assistant: ``` "Analyze the requests library implementation" "Show me the Django ORM structure" "Explore the Flask application framework" "Review the NumPy array implementation" "Study the pandas DataFrame code" ``` ## ๐Ÿ› ๏ธ Tools ### 1. `get_pypi_package_code` Fetch source code from a Python package. ```python # Get all source files from the latest version pypi_server.get_pypi_package_code(package_name="requests") # Get a specific version pypi_server.get_pypi_package_code(package_name="django", version="4.2.0") # Get a specific file pypi_server.get_pypi_package_code( package_name="flask", file_path="src/flask/app.py" ) ``` ### 2. `list_package_files` List all files in a package. ```python pypi_server.list_package_files(package_name="numpy") pypi_server.list_package_files(package_name="pandas", version="2.0.0") ``` ### 3. `get_package_info` Get metadata about a package. ```python pypi_server.get_package_info(package_name="requests") ``` ### 4. `search_pypi_packages` Search for packages on PyPI. ```python pypi_server.search_pypi_packages(query="web framework", limit=20) ``` ## ๐Ÿ“‹ Requirements - Python 3.9 or higher - `mcp` >= 0.1.0 - `requests` >= 2.31.0 - `pydantic` >= 2.0.0 ## ๐Ÿ”’ Authentication (Optional) Set the `AUTH_TOKEN` environment variable for API authentication: ```bash export AUTH_TOKEN=your-secret-token pypi-package-mcp-server ``` ## ๐Ÿงช Development ### Install Development Dependencies ```bash pip install -e ".[dev]" ``` ### Run Tests ```bash pytest ``` ### Format Code ```bash black pypi_mcp_server/ ``` ### Lint Code ```bash ruff check pypi_mcp_server/ ``` ### Type Checking ```bash mypy pypi_mcp_server/ ``` ## ๐Ÿ› Troubleshooting ### Package Not Found - Verify the package name is correct (use lowercase, hyphens not underscores) - Search first with `search_pypi_packages` to find the exact name ### Extraction Failed - Some packages may not have source distributions - Check if a wheel-only package is available ### Timeout Issues - Large packages may take time to download - Increase timeout values if needed ## ๐Ÿ“š Related Projects - [Model Context Protocol](https://github.com/modelcontextprotocol/servers) - [PyPI JSON API](https://warehouse.pypa.io/api-reference/json.html) - [NPM Package MCP Server](https://github.com/Qvakk/npm-package-mcp-server) ## ๐Ÿ“„ License MIT License - See [LICENSE](LICENSE) file for details ## ๐Ÿค Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## โญ Credits Inspired by the [NPM Package MCP Server](https://github.com/Qvakk/npm-package-mcp-server) --- **Made with โค๏ธ**

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/Qvakk/python-package-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server