PyPI MCP Server logo

PyPI MCP Server

by JackKuo666

PyPI MCP Server bridges the PyPI package repository to AI assistants using the Model Context Protocol (MCP). It enables AI models to programmatically search Python packages and access their metadata.

View on GitHub

Last updated: N/A

PyPI MCP Server

🔍 Enabling AI assistants to search and access PyPI package information through a simple MCP interface.

PyPI MCP Server provides a bridge to the PyPI package repository for AI assistants through the Model Context Protocol (MCP). It allows AI models to programmatically search Python packages and access their metadata, supporting features like retrieving package information, searching packages, viewing version history, and download statistics.

✨ Core Features

  • 🔎 Package Search: Query PyPI packages by keywords ✅
  • 📊 Metadata Access: Get detailed metadata for specific packages ✅
  • 📦 Version Information: Get all released versions of a package ✅
  • 📈 Statistics Data: Get download statistics for packages ✅
  • 🚀 Efficient Retrieval: Fast access to package information ✅

🚀 Quick Start

Prerequisites

  • Python 3.10+
  • httpx
  • BeautifulSoup4
  • mcp-python-sdk
  • typing-extensions

Installation

  1. Clone the repository:

    git clone https://github.com/JackKuo666/PyPI-MCP-Server.git
    cd PyPI-MCP-Server
    
  2. Install required dependencies:

    pip install -r requirements.txt
    

Running the Server

python pypi_server.py

The server will communicate with MCP clients through standard input/output (stdio).

📚 MCP Tools

Get Package Information

get_package_info(package_name: str, version: Optional[str] = None) -> Dict

Get detailed information about a specified package, with optional version specification.

Search Packages

search_packages(query: str) -> List[Dict]

Search PyPI packages by keywords.

Get Package Releases

get_package_releases(package_name: str) -> Dict

Get all released version information for a specified package.

Get Package Statistics

get_package_stats(package_name: str) -> Dict

Get download statistics for a specified package.

🔧 Configuration

The server uses the MCP protocol to communicate with clients through standard input/output (stdio), no network port configuration needed.

📋 Integration with AI Assistants

Using Claude Desktop

Add the following configuration to your claude_desktop_config.json:

{
  "mcpServers": {
    "pypi": {
      "command": "python",
      "args": ["pypi_server.py"]
    }
  }
}

Usage Examples

In your AI assistant, you can call the PyPI MCP tools as follows:

Use PyPI tool to search for Flask package:
@pypi search_packages("flask")

Get detailed information about a specific package:
@pypi get_package_info("requests")

Get information about a specific version of a package:
@pypi get_package_info("django", "4.2.0")

View all released versions of a package:
@pypi get_package_releases("numpy")

Get download statistics for a package:
@pypi get_package_stats("pandas")

📄 License

MIT