feat: Add comprehensive PyPI Analytics & Insights Tools

This commit implements a complete analytics suite for PyPI packages with four major tools:

🔍 **Package Analytics** (`get_pypi_package_analytics`)
- Comprehensive download analytics with trend analysis
- Platform and Python version breakdown
- Version adoption patterns and quality metrics
- Geographic distribution and growth indicators

🔒 **Security Alerts** (`get_pypi_security_alerts`)
- Integration with OSV (Open Source Vulnerabilities) database
- Dependency vulnerability scanning
- Security posture analysis and risk assessment
- Severity filtering and remediation recommendations

📈 **Package Rankings** (`get_pypi_package_rankings`)
- Search visibility and discoverability analysis
- Competitor ranking comparison
- SEO optimization suggestions
- Keyword and metadata analysis

🏆 **Competition Analysis** (`analyze_pypi_competition`)
- Market positioning and share analysis
- Feature comparison with competitors
- Adoption trends and growth patterns
- Strategic recommendations for improvement

**Key Features:**
- 50+ helper functions for detailed analysis
- Comprehensive error handling and validation
- Async/await patterns for optimal performance
- Integration with multiple data sources (PyPI, OSV, GitHub)
- Configurable analysis depth and options
- Production-ready code with extensive logging

**Implementation Details:**
- New module: `pypi_query_mcp/tools/analytics.py` (2000+ lines)
- Updated exports in `tools/__init__.py`
- Added 4 new MCP server endpoints in `server.py`
- Comprehensive test suite with 80+ test cases
- Full type hints and detailed docstrings

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ryan Malloy 2025-08-16 09:19:14 -06:00
parent 2534f42d8b
commit 9924df34ec
4 changed files with 2497 additions and 0 deletions

View file

@ -41,6 +41,12 @@ from .search import (
search_by_category,
search_packages,
)
from .analytics import (
analyze_pypi_competition,
get_pypi_package_analytics,
get_pypi_package_rankings,
get_pypi_security_alerts,
)
__all__ = [
"query_package_info",
@ -68,4 +74,8 @@ __all__ = [
"manage_package_urls",
"set_package_visibility",
"manage_package_keywords",
"get_pypi_package_analytics",
"get_pypi_security_alerts",
"get_pypi_package_rankings",
"analyze_pypi_competition",
]