repo-template

by loonghao

391 downloads
Not rated
GitHub

About

A Model Context Protocol (MCP) server for Python package intelligence, providing structured queries for PyPI packages and GitHub repositories. Features include dependency analysis, version tracking, and package metadata retrieval for LLM interactions.

Details

Author
loonghao
Downloads
391
Categories
Developer Tools

A server to query the Python Package Index (PyPI) for package information, dependencies, and compatibility.

A Model Context Protocol (MCP) server for querying PyPI package information, dependencies, and compatibility checking.

- 📦 Query PyPI package information (name, version, description, dependencies)
- 🐍 Python version compatibility checking
- 🔍Advanced dependency analysis and recursive resolution
- 📥Package download with dependency collection
- 📊Download statistics and popularity analysis
- 🏆Top packages ranking and trends
- 🎯MCP prompt templates for guided analysis and decision-making
- 🏢 Private PyPI repository support
- ⚡ Fast async operations with caching
- 🛠️ Easy integration with MCP clients

# Run directly with uvx uvx pypi-query-mcp-server # Or install and run with specific script uvx --from pypi-query-mcp-server pypi-query-mcp
# Install from PyPI pip install pypi-query-mcp-server # Run the server python -m pypi_query_mcp.server
git clone https://github.com/loonghao/pypi-query-mcp-server.git cd pypi-query-mcp-server uv sync uv run pypi-query-mcp

Add the PyPI Query MCP Server to Claude Code using the built-in MCP management:

# Add with local scope (project-specific) claude mcp add pypi uvx pypi-query-mcp-server -s local # Add with user scope (available across all projects) claude mcp add pypi uvx pypi-query-mcp-server -s user

📖Detailed Guide: SeeCLAUDE_CODE_INTEGRATION.mdfor comprehensive Claude Code integration documentation.

Add to your Claude Desktop configuration file:

MacOS:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%/Claude/claude_desktop_config.json

{ "mcpServers": { "pypi-query": { "command": "uvx", "args": ["--from", "pypi-query-mcp-server", "pypi-query-mcp"], "env": { "PYPI_INDEX_URL": "https://pypi.org/pypi", "PYPI_INDEX_URLS": "https://mirrors.aliyun.com/pypi/simple/,https://pypi.tuna.tsinghua.edu.cn/simple/", "PYPI_CACHE_TTL": "3600", "PYPI_LOG_LEVEL": "INFO" } } } }
{ "mcpServers": { "pypi-query": { "command": "uvx", "args": ["--from", "pypi-query-mcp-server", "pypi-query-mcp"], "env": { "PYPI_INDEX_URL": "https://pypi.org/pypi", "PYPI_PRIVATE_PYPI_URL": "https://private.pypi.company.com", "PYPI_PRIVATE_PYPI_USERNAME": "your_username", "PYPI_PRIVATE_PYPI_PASSWORD": "your_password", "PYPI_CACHE_TTL": "3600" } } } }

Add to your Cline MCP settings (cline_mcp_settings.json):

{ "mcpServers": { "pypi-query": { "command": "uvx", "args": ["--from", "pypi-query-mcp-server", "pypi-query-mcp"], "env": { "PYPI_INDEX_URL": "https://pypi.org/simple/", "CACHE_TTL": "3600" } } } }

Add to your Cursor MCP configuration (.cursor/mcp.json):

{ "mcpServers": { "pypi-query": { "command": "uvx", "args": ["--from", "pypi-query-mcp-server", "pypi-query-mcp"], "env": { "PYPI_INDEX_URL": "https://pypi.org/simple/", "CACHE_TTL": "3600" } } } }

Add to your Windsurf MCP configuration (~/.codeium/windsurf/mcp_config.json):

{ "mcpServers": { "pypi-query": { "command": "uvx", "args": ["--from", "pypi-query-mcp-server", "pypi-query-mcp"], "env": { "PYPI_INDEX_URL": "https://pypi.org/simple/", "CACHE_TTL": "3600" } } } }

- PYPI_INDEX_URL: Primary PyPI index URL (default:https://pypi.org/pypi)
- PYPI_CACHE_TTL: Cache time-to-live in seconds (default: 3600)
- PYPI_LOG_LEVEL: Logging level (default: INFO)
- PYPI_REQUEST_TIMEOUT: HTTP request timeout in seconds (default: 30.0)

- PYPI_INDEX_URLS: Additional PyPI index URLs (comma-separated, optional)
- PYPI_EXTRA_INDEX_URLS: Extra PyPI index URLs for fallback (comma-separated, optional)

- PYPI_PRIVATE_PYPI_URL: Private PyPI repository URL (optional)
- PYPI_PRIVATE_PYPI_USERNAME: Private PyPI username (optional)
- PYPI_PRIVATE_PYPI_PASSWORD: Private PyPI password (optional)

- PYPI_DEPENDENCY_MAX_DEPTH: Maximum depth for recursive dependency analysis (default: 5)
- PYPI_DEPENDENCY_MAX_CONCURRENT: Maximum concurrent dependency queries (default: 10)
- PYPI_ENABLE_SECURITY_ANALYSIS: Enable security vulnerability analysis (default: false)

# Use multiple mirror sources for better availability export PYPI_INDEX_URL="https://pypi.org/pypi" export PYPI_INDEX_URLS="https://mirrors.aliyun.com/pypi/simple/,https://pypi.tuna.tsinghua.edu.cn/simple/" export PYPI_EXTRA_INDEX_URLS="https://test.pypi.org/simple/" # Private repository configuration export PYPI_PRIVATE_PYPI_URL="https://private.pypi.company.com" export PYPI_PRIVATE_PYPI_USERNAME="your_username" export PYPI_PRIVATE_PYPI_PASSWORD="your_password"

The server provides the following MCP tools:
- get_package_info- Get comprehensive package information
- get_package_versions- List all available versions for a package
- get_package_dependencies- Analyze package dependencies
- check_package_python_compatibility- Check Python version compatibility
- get_package_compatible_python_versions- Get all compatible Python versions
- resolve_dependencies- Recursively resolve all package dependencies with detailed analysis
- download_package- Download package and all dependencies to local directory
- get_download_statistics- Get comprehensive download statistics for any package
- get_download_trends- Analyze download trends and time series data (last 180 days)
- get_top_downloaded_packages- Get the most popular packages by download count
- analyze_package_quality- Generate comprehensive package quality analysis prompts
- compare_packages- Generate detailed package comparison prompts
- suggest_alternatives- Generate prompts for finding package alternatives
- resolve_dependency_conflicts- Generate prompts for resolving dependency conflicts
- plan_version_upgrade- Generate prompts for planning package version upgrades
- audit_security_risks- Generate prompts for security risk auditing
- plan_package_migration- Generate comprehensive package migration plan prompts
- generate_migration_checklist- Generate detailed migration checklist prompts
- analyze_environment_dependencies- Generate prompts for analyzing current environment dependencies
- check_outdated_packages- Generate prompts for checking outdated packages with update priorities
- generate_update_plan- Generate prompts for creating comprehensive package update plans
- analyze_daily_trends- Generate prompts for analyzing daily PyPI download trends
- find_trending_packages- Generate prompts for discovering trending packages over time periods
- track_package_updates- Generate prompts for tracking recent package updates and releases

📖Learn more about prompt templates: SeePROMPT_TEMPLATES.mdfor detailed documentation and examples.

Once configured in your MCP client (Claude Desktop, Cline, Cursor, Windsurf), you can ask questions like:

- "What are the dependencies of Django 4.2?"
- "Is FastAPI compatible with Python 3.9?"
- "Show me all versions of requests package"
- "What Python versions does numpy support?"
- "Get detailed information about the pandas package"

- "Please help me analyze the complete dependency tree for PySide2 with Python 3.10"
- "Resolve all dependencies for Django including development dependencies"
- "What are all the transitive dependencies of FastAPI?"

- "Please help me download PySide2 and all its dependencies for Python 3.10 to my local machine"
- "Download the requests package with all dependencies to ./downloads folder"
- "Collect all packages needed for Django development"

Download Statistics & Popularity Analysis

- "What are the download statistics for the requests package this month?"
- "Show me the download trends for numpy over the last 180 days"
- "What are the top 10 most downloaded Python packages today?"
- "Compare the popularity of Django vs Flask vs FastAPI"
- "Which web framework has the highest download count this week?"

- "Use the analyze_package_quality prompt to evaluate the requests package"
- "Generate a comparison prompt for Django vs FastAPI vs Flask for building APIs"
- "Create a migration plan prompt for moving from Flask to FastAPI"
- "Help me resolve dependency conflicts with a structured prompt"
- "Generate a security audit prompt for my production packages"

- "Analyze my current Python environment dependencies and check for outdated packages"
- "Check which packages in my environment have security updates available"
- "Generate an update plan for my production environment with conservative strategy"
- "Help me identify packages that need immediate updates vs. planned updates"

- "What are the most downloaded Python packages today?"
- "Show me trending packages in the machine learning domain this week"
- "Track recent security updates and new package releases"
- "Find rising packages in web development that I should consider"

User: "Check if Django 4.2 is compatible with Python 3.9"

AI Assistant: I'll check Django 4.2's compatibility with Python 3.9 for you.

[Uses get_package_info and check_package_python_compatibility tools]

User: "What are the main dependencies of FastAPI?"

AI Assistant: Let me get the dependency information for FastAPI.

User: "Show me the download statistics for the requests package and tell me which is more popular: requests or urllib3?"

AI Assistant: I'll get the download statistics for both packages and compare their popularity.

[Uses get_download_statistics tool for both packages]

# Example: Check if Django is compatible with Python 3.9 result = await mcp_client.call_tool("check_package_python_compatibility", { "package_name": "django", "target_python_version": "3.9" }) # Example: Get package information info = await mcp_client.call_tool("get_package_info", { "package_name": "requests" }) # Example: Get download statistics stats = await mcp_client.call_tool("get_download_statistics", { "package_name": "numpy", "period": "month" }) # Example: Get top downloaded packages top_packages = await mcp_client.call_tool("get_top_downloaded_packages", { "period": "week", "limit": 10 })

🎉Core functionality implemented and ready for use!

- ✅ Basic project structure
- ✅ PyPI API client with caching
- ✅ MCP tools implementation (package info, versions, dependencies)
- ✅ Python version compatibility checking
- ✅ Advanced dependency analysis and recursive resolution
- ✅ Package download with dependency collection
- ✅Download statistics and popularity analysis
- ✅Top packages ranking and trends
- ✅ CI/CD pipeline with multi-platform testing
- ⏳ Private repository support (planned)

Contributions are welcome! Please feel free to submit a Pull Request.

This project is licensed under the MIT License - see theLICENSEfile for details.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Create crafted UI components inspired by the best 21st.dev design engineers.

Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server

An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .

MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent

ALAPI MCP Tools,Call hundreds of API interfaces via MCP

AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform

MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.

APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.

One shared context layer for AI agents and humans — live API specs, DB schemas, and versioned contracts across repos so every agent and teammate works from the same source of truth.

Build and deploy full-stack Next.js apps with 98 tools for React, AWS, and MongoDB

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.