
Environment Analysis Templates: - analyze_environment_dependencies: Analyze current Python environment and dependencies - check_outdated_packages: Check for outdated packages with update priorities - generate_update_plan: Create comprehensive package update plans with strategies Trending Analysis Templates: - analyze_daily_trends: Analyze daily PyPI download trends and popular packages - find_trending_packages: Discover trending packages over different time periods - track_package_updates: Track recent package updates and releases Key Features: - Follow standard MCP workflow with {{parameter}} template variables - Support environment analysis (uvx pip list integration ready) - Enable trending package discovery and popularity analysis - Provide structured update planning with different strategies - Include comprehensive parameter validation and documentation - Add usage examples and integration guides All templates follow the established MCP prompt workflow: 1. User calls tool → MCP client sends request 2. Tool function executes → Collects necessary data and parameters 3. Call Prompt generator → Pass parameters to corresponding generator 4. Load template → Get template with {{parameter}} placeholders 5. Parameter replacement → Replace {{parameter_name}} with actual values 6. Return final prompt → As tool's response back to AI Updated documentation and README with new template examples and usage patterns. Signed-off-by: longhao <hal.long@outlook.com>
364 lines
11 KiB
Python
364 lines
11 KiB
Python
"""Trending analysis prompt templates for PyPI MCP server."""
|
|
|
|
from typing import Annotated, Literal
|
|
|
|
from fastmcp import Context
|
|
from pydantic import Field
|
|
|
|
|
|
class Message:
|
|
"""Simple message class for prompt templates."""
|
|
|
|
def __init__(self, text: str, role: str = "user"):
|
|
self.text = text
|
|
self.role = role
|
|
|
|
|
|
async def analyze_daily_trends(
|
|
date: Annotated[
|
|
str | None,
|
|
Field(description="Specific date to analyze (YYYY-MM-DD) or 'today'")
|
|
] = "today",
|
|
category: Annotated[
|
|
str | None,
|
|
Field(description="Package category to focus on (web, data, ml, etc.)")
|
|
] = None,
|
|
limit: Annotated[
|
|
int,
|
|
Field(description="Number of top packages to analyze", ge=5, le=50)
|
|
] = 20,
|
|
ctx: Context | None = None,
|
|
) -> str:
|
|
"""Generate a prompt template for analyzing daily PyPI trends.
|
|
|
|
This prompt template helps analyze the most downloaded packages on PyPI
|
|
for a specific day and understand trending patterns.
|
|
|
|
Returns a template string with {{date}}, {{category_filter}}, and {{limit}} variables.
|
|
"""
|
|
template = """Please analyze the daily PyPI download trends for {{date}}{{category_filter}}.
|
|
|
|
## 📊 Daily PyPI Trends Analysis
|
|
|
|
Show me the top {{limit}} most downloaded Python packages and provide insights into current trends.
|
|
|
|
### Download Statistics Analysis
|
|
- **Top Downloaded Packages**: List the most popular packages by download count
|
|
- **Download Numbers**: Specific download counts for each package
|
|
- **Growth Patterns**: Compare with previous days/weeks if possible
|
|
- **Market Share**: Relative popularity within the ecosystem
|
|
|
|
## 🔍 Trend Analysis Framework
|
|
|
|
### For Each Top Package, Analyze:
|
|
|
|
1. **Package Overview**
|
|
- Package name and primary purpose
|
|
- Current version and release status
|
|
- Maintainer and community info
|
|
|
|
2. **Download Metrics**
|
|
- Daily download count
|
|
- Weekly/monthly trends (if available)
|
|
- Growth rate and momentum
|
|
- Geographic distribution (if available)
|
|
|
|
3. **Ecosystem Context**
|
|
- Category/domain (web, data science, ML, etc.)
|
|
- Competing packages in same space
|
|
- Integration with other popular packages
|
|
- Enterprise vs. individual usage patterns
|
|
|
|
### Trending Insights
|
|
|
|
#### 🚀 Rising Stars
|
|
- Packages with significant growth
|
|
- New packages gaining traction
|
|
- Emerging technologies and frameworks
|
|
|
|
#### 📈 Steady Leaders
|
|
- Consistently popular packages
|
|
- Foundational libraries and tools
|
|
- Mature ecosystem components
|
|
|
|
#### 📉 Declining Trends
|
|
- Packages losing popularity
|
|
- Potential reasons for decline
|
|
- Alternative packages gaining ground
|
|
|
|
## 🎯 Market Intelligence
|
|
|
|
### Technology Trends
|
|
- What technologies are developers adopting?
|
|
- Which frameworks are gaining momentum?
|
|
- What problem domains are hot?
|
|
|
|
### Developer Behavior
|
|
- Package selection patterns
|
|
- Adoption speed of new technologies
|
|
- Community preferences and choices
|
|
|
|
### Ecosystem Health
|
|
- Diversity of popular packages
|
|
- Innovation vs. stability balance
|
|
- Open source project vitality
|
|
|
|
## 📋 Actionable Insights
|
|
|
|
Provide recommendations for:
|
|
- **Developers**: Which packages to consider for new projects
|
|
- **Maintainers**: Opportunities for package improvement
|
|
- **Organizations**: Technology adoption strategies
|
|
- **Investors**: Emerging technology trends
|
|
|
|
Include specific download numbers, growth percentages, and trend analysis."""
|
|
|
|
return template
|
|
|
|
|
|
async def find_trending_packages(
|
|
time_period: Annotated[
|
|
Literal["daily", "weekly", "monthly"],
|
|
Field(description="Time period for trend analysis")
|
|
] = "weekly",
|
|
trend_type: Annotated[
|
|
Literal["rising", "declining", "new", "all"],
|
|
Field(description="Type of trends to focus on")
|
|
] = "rising",
|
|
domain: Annotated[
|
|
str | None,
|
|
Field(description="Specific domain or category (web, ai, data, etc.)")
|
|
] = None,
|
|
ctx: Context | None = None,
|
|
) -> str:
|
|
"""Generate a prompt template for finding trending packages.
|
|
|
|
This prompt template helps identify packages that are trending up or down
|
|
in the PyPI ecosystem over specific time periods.
|
|
|
|
Returns a template string with {{time_period}}, {{trend_type}}, and {{domain_filter}} variables.
|
|
"""
|
|
template = """Please identify {{trend_type}} trending Python packages over the {{time_period}} period{{domain_filter}}.
|
|
|
|
## 📈 Trending Package Discovery
|
|
|
|
Focus on packages showing significant {{trend_type}} trends in downloads and adoption.
|
|
|
|
### Trend Analysis Criteria
|
|
|
|
#### For {{trend_type}} Packages:
|
|
- **Rising**: Packages with increasing download velocity
|
|
- **Declining**: Packages losing popularity or downloads
|
|
- **New**: Recently published packages gaining traction
|
|
- **All**: Comprehensive trend analysis across categories
|
|
|
|
### Time Period: {{time_period}}
|
|
- **Daily**: Last 24-48 hours trend analysis
|
|
- **Weekly**: 7-day trend patterns and changes
|
|
- **Monthly**: 30-day trend analysis and momentum
|
|
|
|
## 🔍 Discovery Framework
|
|
|
|
### Trend Identification Metrics
|
|
1. **Download Growth Rate**
|
|
- Percentage increase/decrease in downloads
|
|
- Velocity of change (acceleration/deceleration)
|
|
- Consistency of trend direction
|
|
|
|
2. **Community Engagement**
|
|
- GitHub stars and forks growth
|
|
- Issue activity and resolution
|
|
- Community discussions and mentions
|
|
|
|
3. **Release Activity**
|
|
- Recent version releases
|
|
- Update frequency and quality
|
|
- Feature development pace
|
|
|
|
### For Each Trending Package, Provide:
|
|
|
|
#### 📊 Trend Metrics
|
|
- Current download numbers
|
|
- Growth/decline percentage
|
|
- Trend duration and stability
|
|
- Comparison with similar packages
|
|
|
|
#### 🔍 Package Analysis
|
|
- **Purpose and Functionality**: What problem does it solve?
|
|
- **Target Audience**: Who is using this package?
|
|
- **Unique Value Proposition**: Why is it trending?
|
|
- **Competition Analysis**: How does it compare to alternatives?
|
|
|
|
#### 🚀 Trend Drivers
|
|
- **Technology Shifts**: New frameworks or paradigms
|
|
- **Community Events**: Conferences, tutorials, viral content
|
|
- **Industry Adoption**: Enterprise or startup usage
|
|
- **Integration Opportunities**: Works well with popular tools
|
|
|
|
## 🎯 Trend Categories
|
|
|
|
### 🌟 Breakout Stars
|
|
- New packages with explosive growth
|
|
- Innovative solutions to common problems
|
|
- Next-generation tools and frameworks
|
|
|
|
### 📈 Steady Climbers
|
|
- Consistent growth over time
|
|
- Building solid user base
|
|
- Proven value and reliability
|
|
|
|
### ⚡ Viral Hits
|
|
- Sudden popularity spikes
|
|
- Social media or community driven
|
|
- May need sustainability assessment
|
|
|
|
### 🔄 Comeback Stories
|
|
- Previously popular packages regaining traction
|
|
- Major updates or improvements
|
|
- Community revival efforts
|
|
|
|
## 📋 Strategic Insights
|
|
|
|
### For Developers
|
|
- Which trending packages to evaluate for projects
|
|
- Early adoption opportunities and risks
|
|
- Technology direction indicators
|
|
|
|
### For Package Maintainers
|
|
- Competitive landscape changes
|
|
- Opportunities for collaboration
|
|
- Feature gaps in trending solutions
|
|
|
|
### For Organizations
|
|
- Technology investment directions
|
|
- Skill development priorities
|
|
- Strategic technology partnerships
|
|
|
|
Include specific trend data, growth metrics, and actionable recommendations."""
|
|
|
|
return template
|
|
|
|
|
|
async def track_package_updates(
|
|
time_range: Annotated[
|
|
Literal["today", "week", "month"],
|
|
Field(description="Time range for update tracking")
|
|
] = "today",
|
|
update_type: Annotated[
|
|
Literal["all", "major", "security", "new"],
|
|
Field(description="Type of updates to track")
|
|
] = "all",
|
|
popular_only: Annotated[
|
|
bool,
|
|
Field(description="Focus only on popular packages (>1M downloads)")
|
|
] = False,
|
|
ctx: Context | None = None,
|
|
) -> str:
|
|
"""Generate a prompt template for tracking recent package updates.
|
|
|
|
This prompt template helps track and analyze recent package updates
|
|
on PyPI with filtering and categorization options.
|
|
|
|
Returns a template string with {{time_range}}, {{update_type}}, and {{popularity_filter}} variables.
|
|
"""
|
|
template = """Please track and analyze Python package updates from {{time_range}}{{popularity_filter}}.
|
|
|
|
## 📦 Package Update Tracking
|
|
|
|
Focus on {{update_type}} updates and provide insights into recent changes in the Python ecosystem.
|
|
|
|
### Update Analysis Scope
|
|
- **Time Range**: {{time_range}}
|
|
- **Update Type**: {{update_type}} updates
|
|
- **Package Selection**: {{popularity_description}}
|
|
|
|
## 🔍 Update Categories
|
|
|
|
### 🚨 Security Updates
|
|
- CVE fixes and security patches
|
|
- Vulnerability remediation
|
|
- Security-related improvements
|
|
|
|
### 🎯 Major Version Updates
|
|
- Breaking changes and API modifications
|
|
- New features and capabilities
|
|
- Architecture improvements
|
|
|
|
### 🔧 Minor Updates & Bug Fixes
|
|
- Bug fixes and stability improvements
|
|
- Performance enhancements
|
|
- Compatibility updates
|
|
|
|
### 🌟 New Package Releases
|
|
- Brand new packages published
|
|
- First stable releases (1.0.0)
|
|
- Emerging tools and libraries
|
|
|
|
## 📊 For Each Update, Provide:
|
|
|
|
### Update Details
|
|
1. **Package Information**
|
|
- Package name and description
|
|
- Previous version → New version
|
|
- Release date and timing
|
|
|
|
2. **Change Analysis**
|
|
- Key changes and improvements
|
|
- Breaking changes (if any)
|
|
- New features and capabilities
|
|
- Bug fixes and security patches
|
|
|
|
3. **Impact Assessment**
|
|
- Who should update and when
|
|
- Compatibility considerations
|
|
- Testing requirements
|
|
- Migration effort (for major updates)
|
|
|
|
### Ecosystem Impact
|
|
- **Dependency Effects**: How updates affect dependent packages
|
|
- **Community Response**: Developer adoption and feedback
|
|
- **Integration Impact**: Effects on popular development stacks
|
|
|
|
## 🎯 Update Insights
|
|
|
|
### 🔥 Notable Updates
|
|
- Most significant updates of the period
|
|
- High-impact changes for developers
|
|
- Security-critical updates requiring immediate attention
|
|
|
|
### 📈 Trend Patterns
|
|
- Which types of updates are most common
|
|
- Package maintenance activity levels
|
|
- Ecosystem health indicators
|
|
|
|
### ⚠️ Breaking Changes Alert
|
|
- Major version updates with breaking changes
|
|
- Migration guides and resources
|
|
- Timeline recommendations for updates
|
|
|
|
### 🌟 Innovation Highlights
|
|
- New features and capabilities
|
|
- Emerging patterns and technologies
|
|
- Developer experience improvements
|
|
|
|
## 📋 Action Recommendations
|
|
|
|
### Immediate Actions
|
|
- Critical security updates to apply now
|
|
- High-priority bug fixes
|
|
- Compatibility updates needed
|
|
|
|
### Planned Updates
|
|
- Major version upgrades requiring testing
|
|
- Feature updates worth evaluating
|
|
- Performance improvements to consider
|
|
|
|
### Monitoring Setup
|
|
- Packages to watch for future updates
|
|
- Automated update strategies
|
|
- Dependency management improvements
|
|
|
|
Include specific version numbers, release notes highlights, and update commands."""
|
|
|
|
return template
|