logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

PyPI-Package-Query-Service

Interface for querying the Python Package Index (PyPI) repository. Enables retrieval of package metadata, version lineages, and download metrics. Supports searching packages via keywords to gather developmental intelligence efficiently.

Author

PyPI-Package-Query-Service logo

JackKuo666

No License

Quick Info

GitHub GitHub Stars 2
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

pypipackagesapispypi packagepython packagesjackkuo666 pypi

PyPI Package Query Service Documentation

🔍 Facilitating AI agents in accessing and searching PyPI package details via a streamlined Model Context Protocol (MCP) layer.

The PyPI Package Query Service acts as a programmatic conduit to the official PyPI repository, exposed via the Model Context Protocol (MCP). This permits machine learning models to execute searches against the Python package ecosystem and fetch associated metadata. Key capabilities include obtaining package specifications, executing targeted searches, reviewing complete version histories, and accessing usage statistics.

✨ Primary Capabilities

  • 🔎 Ecosystem Search: Execute keyword-based queries against PyPI packages ✅
  • 📊 Specification Access: Retrieve comprehensive metadata for any specified package ✅
  • 📦 Release Chronology: Obtain a catalog of all published versions for a given package ✅
  • 📈 Metric Reporting: Access package download performance statistics ✅
  • 🚀 Expedited Data Fetching: Ensure rapid access to repository assets ✅

🚀 Getting Started Guide

Prerequisites

  • Runtime Environment: Python version 3.10 or newer
  • HTTP Client Library: httpx
  • HTML Parsing Utility: BeautifulSoup4
  • MCP SDK Implementation: mcp-python-sdk
  • Type Hinting Library: typing-extensions

Setup Procedure

  1. Obtain the source code repository:

git clone https://github.com/JackKuo666/PyPI-MCP-Server.git cd PyPI-MCP-Server

  1. Install all necessary external modules:

pip install -r requirements.txt

Launching the Service Endpoint

bash python pypi_server.py

The running instance will communicate with MCP consumers exclusively via standard input/output (stdio).

📚 Available MCP Operations

Fetch Package Specification

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

Retrieves in-depth details concerning a designated package, optionally filtering by a specific version identifier.

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

Scans the PyPI index using provided textual criteria.

Obtain Package Version List

python get_package_releases(package_name: str) -> Dict

Returns all recorded historical release information pertinent to a specific package name.

Retrieve Package Metrics

python get_package_stats(package_name: str) -> Dict

Fetches aggregated download statistics associated with a package entity.

🔧 System Configuration

The service adheres strictly to the MCP standard, utilizing stdio for client interaction; consequently, no conventional network port configuration is required.

📋 Integration Guide for Autonomous Agents

Integrating with Claude Desktop Environment

Insert the subsequent configuration block into your claude_desktop_config.json file:

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

Operational Examples

Agents can invoke the PyPI query functions as demonstrated below:

Invoke the PyPI utility to locate the 'Flask' package: @pypi search_packages("flask")

Examine comprehensive details for the 'requests' library: @pypi get_package_info("requests")

Query specifications for a particular version, e.g., 'django' version 4.2.0: @pypi get_package_info("django", "4.2.0")

Display the complete historical release log for 'numpy': @pypi get_package_releases("numpy")

Access download performance metrics for 'pandas': @pypi get_package_stats("pandas")

📄 Licensing

This project is distributed under the terms of the MIT License.

WIKIPEDIA: XMLHttpRequest (XHR) is an Application Programming Interface, structured as a JavaScript object, designed to facilitate the transmission of HTTP requests from a web browser to a designated web server. Its methods empower browser-based software modules to dispatch requests to the server subsequent to page rendering, and subsequently ingest returned data. XMLHttpRequest forms a foundational element of the Asynchronous JavaScript and XML (Ajax) programming paradigm. Before Ajax gained prominence, page navigation primarily relied on hyperlink activation and form submissions, actions that typically resulted in the complete replacement of the current viewport content with a new page.

== Developmental Trajectory == The conceptual foundation for XMLHttpRequest was first devised in the year 2000 by engineers working on Microsoft Outlook. This concept was subsequently realized and integrated into the Internet Explorer 5 browser release (1999). However, the initial syntax implementation deviated from the standardized 'XMLHttpRequest' identifier, utilizing instead constructor calls like ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). By the time Internet Explorer 7 was released (2006), all major browser platforms had adopted the standardized XMLHttpRequest identifier. The XMLHttpRequest identifier has since solidified its position as the recognized standard across all primary browser engines, including Mozilla's Gecko layout engine (introduced circa 2002), Apple's Safari 1.2 (2004), and Opera 8.0 (2005).

=== Formal Standardization === The World Wide Web Consortium (W3C) formally published an initial Working Draft specification for the XMLHttpRequest object on April 5, 2006. A subsequent Working Draft, designated Level 2, was released by the W3C on February 25, 2008. The Level 2 specification introduced critical enhancements such as methods for progress monitoring, enablement of cross-site communication, and mechanisms for handling binary byte streams. By the close of 2011, the features defined in the Level 2 specification were incorporated back into the primary standard document. In late 2012, stewardship of the ongoing development was transferred to the WHATWG, which now maintains a dynamic document based on the Web IDL specification language.

== Operational Workflow == The standard procedure for dispatching a request using XMLHttpRequest typically involves several sequential programming stages.

  1. Instantiate an XMLHttpRequest object via its designated constructor:
  2. Invoke the open method to specify the request modality (GET/POST, etc.), define the target resource Uniform Resource Identifier (URI), and elect between synchronous or asynchronous execution:
  3. For asynchronous operations, establish an event handler function designed to trigger upon state transitions within the request lifecycle:
  4. Initiate the transmission of the request payload by calling the send method:
  5. Process events within the registered listener. Upon server delivery of response data, this information is conventionally stored in the responseText attribute. When the object completes processing the response, its state transitions to 4, denoting the 'done' status. Beyond these fundamental steps, XMLHttpRequest offers numerous controls for fine-tuning request transmission parameters and response handling. Custom header fields can be appended to guide server fulfillment logic, and data can be uploaded by supplying it as an argument to the send function call. The incoming response can be automatically parsed from JSON format into a native JavaScript object, or it can be processed incrementally as data streams in, avoiding a wait for total reception. Furthermore, the request can be prematurely terminated via an abort function or configured to fail if a time limit is exceeded.

== Inter-Domain Communication ==

During the nascent phases of the World Wide Web's evolution, limitations became apparent regarding the ability to tran

See Also

`