63 Commits

Author SHA1 Message Date
8b43927493 chore: upgrade all Python packages and fix linting issues
- Update all dependencies to latest versions (fastmcp, httpx, packaging, etc.)
- Downgrade click from yanked 8.2.2 to stable 8.1.7
- Fix code formatting and linting issues with ruff
- Most tests passing (2 test failures in dependency resolver need investigation)
2025-08-15 20:23:14 -06:00
503ea589f1 Resolve merge conflict: combine version parameter support with transitive dependencies 2025-08-15 11:55:48 -06:00
f57189f590 Merge feature/dev-dependencies: Add development dependency support 2025-08-15 11:55:26 -06:00
6be887dd2e Resolve merge conflict: use enhanced top packages implementation 2025-08-15 11:55:26 -06:00
f70e48f600 Merge fix/extras-validation: Fix include_extras parameter validation 2025-08-15 11:54:22 -06:00
183ae2c028 Merge investigate/stats-502-errors: Resolve HTTP 502 statistics errors 2025-08-15 11:54:20 -06:00
9cc4798d1d Merge fix/version-parameter: Enable version parameter functionality 2025-08-15 11:54:20 -06:00
5d5d9b2da5 Merge fix/version-sorting: Implement semantic version sorting 2025-08-15 11:54:19 -06:00
f231c6079a feat: add transitive dependency analysis to get_package_dependencies
- Implement recursive dependency resolution with cycle detection
- Add include_transitive and max_depth parameters
- Create dependency tree visualization with complexity scoring
- Add performance impact assessment and maintenance risk analysis
- Provide comprehensive circular dependency detection and reporting
2025-08-15 11:54:10 -06:00
29994dd611 feat: add development dependency support to get_package_dependencies
- Implement parsing of development dependencies from extra markers
- Add comprehensive development keyword detection (20+ patterns)
- Enhance response format with dev dependency categorization
- Add development_optional_dependencies and provides_extra fields
- Test with pytest, setuptools, sphinx, wheel packages
2025-08-15 11:54:09 -06:00
530d1ba51b feat: improve get_top_downloaded_packages with robust fallback system
- Add curated popular packages database with 100+ packages
- Implement GitHub API integration for real-time popularity metrics
- Create multi-tier fallback strategy (live API -> curated -> enhanced)
- Add period scaling and realistic download estimates
- Provide rich metadata with categories and descriptions
2025-08-15 11:54:08 -06:00
114a7d8d5a fix: resolve include_extras parameter validation in resolve_dependencies
- Fix extra dependencies being filtered out by Python version checks
- Add proper handling for extra markers in dependency parsing
- Update parameter descriptions and documentation
- Add comprehensive examples and demo script
- Test with requests[socks], django[argon2,bcrypt], setuptools[test]
2025-08-15 11:53:54 -06:00
aa55420ef1 fix: resolve HTTP 502 errors in download statistics tools
- Implement exponential backoff retry logic with jitter
- Add intelligent fallback mechanisms with realistic data estimates
- Enhance caching strategy with multi-tier validation (24hr + 7day TTL)
- Improve error handling and transparent user communication
- Add API health monitoring with consecutive failure tracking
2025-08-15 11:53:51 -06:00
0087573fc3 fix: enable version parameter functionality in get_package_dependencies
- Fix version parameter being ignored - now properly fetches specified versions
- Enhance PyPIClient with version-specific URL construction
- Add version format validation with regex patterns
- Improve error handling for non-existent versions
- Test with Django 4.2.0, FastAPI 0.100.0, NumPy 1.20.0
2025-08-15 11:53:41 -06:00
251ceb4c2d fix: implement semantic version sorting
- Add sort_versions_semantically function using packaging library
- Fix issue where pre-release versions appeared before stable (5.2rc1 vs 5.2.5)
- Handle edge cases: dev, post, invalid versions with graceful fallback
- Add comprehensive test suite covering all scenarios
- Maintain backward compatibility with existing functionality
2025-08-15 11:53:40 -06:00
github-actions[bot]
146952f404 bump: version 0.6.4 → 0.6.5 2025-08-02 07:12:49 +00:00
renovate[bot]
ab88b75703 fix(deps): update dependency fastmcp to v2.11.0 2025-08-02 15:11:40 +08:00
github-actions[bot]
2903740c8a bump: version 0.6.3 → 0.6.4 2025-08-02 07:11:37 +00:00
renovate[bot]
f52df0c3d2 chore(deps): update dependency ruff to ^0.12.0 2025-08-02 15:11:28 +08:00
renovate[bot]
f7e38c599a fix(deps): update dependency click to v8.2.2 2025-08-02 15:11:16 +08:00
github-actions[bot]
94343ce009 bump: version 0.6.2 → 0.6.3 2025-07-13 17:07:41 +00:00
renovate[bot]
8d175ac4ec fix(deps): update dependency pydantic to v2.11.7 2025-07-14 01:07:17 +08:00
github-actions[bot]
3dcca5d28c bump: version 0.6.1 → 0.6.2 2025-07-13 17:07:12 +00:00
dependabot[bot]
a10948e886 chore(deps): bump mcp from 1.9.4 to 1.10.0
Bumps [mcp](https://github.com/modelcontextprotocol/python-sdk) from 1.9.4 to 1.10.0.
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.9.4...v1.10.0)

---
updated-dependencies:
- dependency-name: mcp
  dependency-version: 1.10.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 01:06:46 +08:00
github-actions[bot]
134e642946 bump: version 0.6.0 → 0.6.1 2025-06-25 16:12:51 +00:00
renovate[bot]
452be24e90 fix(deps): update dependency fastmcp to v2.9.0 2025-06-26 00:12:46 +08:00
renovate[bot]
3c387c00c4 fix(deps): update dependency pydantic-settings to v2.10.1 2025-06-26 00:12:31 +08:00
renovate[bot]
63ef17f0ac chore(deps): update dependency pytest-cov to v6 2025-05-30 03:19:56 +08:00
renovate[bot]
798cf0e5de chore(deps): update dependency ruff to v0.11.12 2025-05-30 03:19:35 +08:00
github-actions[bot]
07f10856bc bump: version 0.5.1 → 0.6.0 2025-05-29 10:47:39 +00:00
longhao
a28d999958 fix: resolve all lint issues and fix failing tests
- Fix blank line whitespace issues (W293) using ruff --unsafe-fixes
- Reformat code using ruff format for consistent styling
- Fix analyze_package_quality function to return list[Message] instead of string
- Add missing 'assessment' keyword to package analysis template
- Update tests to use real prompt functions instead of mocks for structure validation
- Fix import ordering in test files
- All 64 tests now pass with 47% code coverage

Signed-off-by: longhao <hal.long@outlook.com>
2025-05-29 18:47:15 +08:00
longhao
d63ef02ef3 feat: add comprehensive environment and trending analysis prompt templates
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>
2025-05-29 18:47:15 +08:00
longhao
4bdf38d455 refactor: update prompt templates to follow standard MCP workflow
- Implement standard MCP prompt workflow with template variables
- Use {{parameter_name}} placeholders instead of direct string interpolation
- Add proper parameter replacement in server prompt registrations
- Update templates to return template strings with placeholders
- Follow MCP workflow: load template → parameter replacement → return final prompt
- Update documentation to reflect standard MCP workflow implementation
- Remove TEMPLATES_USE environment variable as requested
- Maintain all existing functionality while improving MCP compliance

Signed-off-by: longhao <hal.long@outlook.com>
2025-05-29 18:47:15 +08:00
longhao
de54e1e0e8 chore: remove temporary test file 2025-05-29 18:47:15 +08:00
longhao
e481711053 feat: add MCP prompt templates for PyPI package analysis and decision-making
- Add comprehensive prompt templates for package analysis, dependency management, and migration planning
- Implement 8 prompt templates covering quality analysis, package comparison, alternatives suggestion, dependency conflicts, version upgrades, security audits, and migration planning
- Add detailed documentation in PROMPT_TEMPLATES.md with usage examples
- Include demo script and test coverage for prompt template functionality
- Update README.md to highlight new prompt template features
- Templates provide structured guidance for common PyPI package scenarios

Signed-off-by: longhao <hal.long@outlook.com>
2025-05-29 18:47:15 +08:00
renovate[bot]
ed0cf45c18 chore(deps): update dependency pre-commit to v4 2025-05-28 00:33:29 +08:00
renovate[bot]
458481f8c0 chore(deps): update dependency ruff to ^0.11.0 2025-05-28 00:27:01 +08:00
github-actions[bot]
328028ac21 bump: version 0.5.0 → 0.5.1 2025-05-27 13:23:49 +00:00
renovate[bot]
0f70c6f532 chore(deps): update codecov/codecov-action action to v5 2025-05-27 21:23:10 +08:00
renovate[bot]
1725df0ca1 fix(deps): update dependency fastmcp to v2 2025-05-27 21:22:53 +08:00
github-actions[bot]
0153f89882 bump: version 0.4.0 → 0.5.0 2025-05-27 13:22:47 +00:00
longhao
3d9d7b4208 style: fix code formatting and linting issues
- Remove unused imports in stats_client.py and download_stats.py
- Fix import sorting in test files
- Remove unnecessary f-strings in server.py and demo script
- Clean up whitespace and formatting issues
- Ensure all files pass ruff and isort checks

Signed-off-by: longhao <hal.long@outlook.com>
2025-05-27 21:22:18 +08:00
longhao
99c603ed37 feat: add PyPI package download statistics and popularity analysis tools
- Add PyPIStatsClient for pypistats.org API integration
- Implement get_package_download_stats for recent download statistics
- Implement get_package_download_trends for time series analysis
- Implement get_top_packages_by_downloads for popularity rankings
- Add comprehensive MCP tools for download statistics
- Include download trends analysis with growth indicators
- Add repository information and metadata integration
- Provide comprehensive test coverage
- Add demo script and usage examples
- Update README with new features and examples

Signed-off-by: longhao <hal.long@outlook.com>
2025-05-27 21:22:18 +08:00
github-actions[bot]
5344726014 bump: version 0.3.0 → 0.4.0 2025-05-27 11:06:42 +00:00
longhao
f2b92ff0ee style: fix code formatting and linting issues
- Fix whitespace in docstrings and blank lines
- Remove unused variables in tests
- Rename unused loop variables to follow conventions
- All ruff checks now pass

Signed-off-by: Hal <hal.long@outlook.com>
2025-05-27 19:06:18 +08:00
longhao
6b14ff6da5 feat: add advanced dependency resolution and package download tools
- Add DependencyParser for parsing and categorizing package dependencies
- Add DependencyResolver for recursive dependency tree analysis
- Add PackageDownloader for downloading packages with dependencies
- Add resolve_dependencies MCP tool for comprehensive dependency analysis
- Add download_package MCP tool for package collection
- Support Python version filtering and extra dependencies
- Include comprehensive test coverage for new functionality
- Add demonstration script for new features
- Update README with new capabilities and usage examples

Signed-off-by: Hal <hal.long@outlook.com>
2025-05-27 19:06:18 +08:00
github-actions[bot]
04c98b26db bump: version 0.2.0 → 0.3.0 2025-05-27 09:42:07 +00:00
longhao
a0c507c3ff feat: implement comprehensive configuration management system with multi-mirror support
- Add ServerSettings class with pydantic-settings for type-safe configuration
- Support multiple PyPI mirror sources with priority-based fallback mechanism
- Implement RepositoryConfig and RepositoryManager for multi-repository support
- Add environment variable support for all configuration options
- Include private repository authentication configuration
- Add advanced dependency analysis settings (max depth, concurrency, security)
- Provide secure credential management with sensitive data masking
- Update documentation and configuration examples
- Add comprehensive test suite with 23 test cases covering all features
- Include demo script showcasing multi-mirror configuration capabilities

Configuration features:
- Primary, additional, and fallback index URLs
- Automatic duplicate URL removal with priority preservation
- Runtime configuration reloading
- Integration with repository manager for seamless multi-source queries

Signed-off-by: longhao <hal.long@outlook.com>
2025-05-27 17:41:42 +08:00
github-actions[bot]
f27493d8d2 bump: version 0.1.0 → 0.2.0 2025-05-27 06:52:22 +00:00
longhao
ba8536f718 feat: add commitizen configuration for automated version management
- Add commitizen to dev dependencies for semantic versioning
- Configure commitizen with conventional commits and poetry integration
- Set up automatic changelog generation and PEP440 version scheme
- Enable major version zero mode for pre-1.0 releases
- Update poetry.lock with new commitizen dependency

Signed-off-by: longhao <hal.long@outlook.com>
2025-05-27 14:51:58 +08:00