返回市场
派派艾姆西佩

派派艾姆西佩

作者:AstroAir2 星标更新:2025-11-17

项目介绍

PyPI MCP Server

一个全面的模型上下文协议(MCP)服务器,用于PyPI包信息管理和查询。该服务器为AI模型提供了强大的工具,可以查询PyPI包数据、分析依赖关系、检查漏洞以及管理Python包信息。

功能

🔍 包发现与搜索

  • 按名称或关键词搜索包
  • 获取详细的包元数据和信息
  • 列出包的所有可用版本
  • 对比不同版本的包

📊 依赖分析

  • 分析包的依赖关系和需求
  • 检查Python版本兼容性
  • 识别可选依赖项和额外功能
  • 依赖树分析

🔒 安全与漏洞检查

  • 检查已知的安全漏洞
  • 获取详细的CVE信息
  • 提供安全建议和缓解措施
  • 包健康评估

📈 统计与分析

  • PyPI范围内的统计信息和顶级包
  • 包下载统计信息(当可用时)
  • 包大小和文件信息
  • 维护和活动指标

🛠️ 高级功能

  • 支持异步/等待以实现高性能
  • 带有TTL的智能缓存
  • 速率限制和错误处理
  • 支持HTTP和STDIO传输
  • 全面的日志记录和监控

安装

使用uv(推荐)

git clone https://github.com/AstroAir/pypi-mcp.git
cd pypi-mcp
uv sync

使用pip

git clone https://github.com/AstroAir/pypi-mcp.git
cd pypi-mcp
pip install -e .

快速开始

使用STDIO运行(适用于本地MCP客户端)

# 使用安装的脚本
pypi-mcp

# 或直接使用Python
python -m pypi_mcp.server

使用HTTP传输运行

pypi-mcp --transport http --host 0.0.0.0 --port 8000

可用工具

包信息

  • get_package_info(package_name, version?, include_files?) - 获取详细的包元数据
  • get_package_versions(package_name, limit?, include_prereleases?) - 列出包的版本
  • search_packages(query, limit?, include_description?) - 搜索包

版本管理

  • compare_versions(package_name, version1, version2) - 比较两个包的版本
  • check_compatibility(package_name, version?, python_version?) - 检查Python兼容性

依赖关系

  • get_dependencies(package_name, version?, include_extras?) - 分析包的依赖关系

安全

  • check_vulnerabilities(package_name, version?) - 检查安全漏洞
  • get_package_health(package_name, version?) - 评估包的健康状况和维护情况

统计

  • get_pypi_stats() - 获取PyPI范围内的统计信息
  • get_cache_info() - 获取服务器缓存信息

可用资源

  • pypi://stats/overview - PyPI统计概览
  • pypi://package/{package_name} - 包元数据资源

可用提示

  • analyze_package(package_name, version?) - 生成综合包分析
  • compare_packages(package1, package2) - 生成包比较分析
  • security_review(package_name) - 生成安全审查提示

配置

服务器可以通过环境变量进行配置:

# PyPI API设置
export PYPI_MCP_PYPI_BASE_URL="https://pypi.org"
export PYPI_MCP_USER_AGENT="pypi-mcp/0.1.0"

# 性能设置
export PYPI_MCP_TIMEOUT=30.0
export PYPI_MCP_RATE_LIMIT=1.0
export PYPI_MCP_CACHE_TTL=300
export PYPI_MCP_CACHE_MAX_SIZE=1000

# 日志记录
export PYPI_MCP_LOG_LEVEL="INFO"

# 功能标志
export PYPI_MCP_ENABLE_VULNERABILITY_CHECK=true
export PYPI_MCP_ENABLE_STATS=true
export PYPI_MCP_ENABLE_SEARCH=true

使用示例

与Claude Desktop一起使用

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "pypi": {
      "command": "pypi-mcp",
      "args": []
    }
  }
}

示例查询

  1. 包信息: "FastAPI的最新版本是什么?它的依赖关系有哪些?"

  2. 安全检查: "检查Django 3.2.0是否有任何已知的安全漏洞"

  3. 包比较: "比较FastAPI和Flask用于构建Web API"

  4. 依赖分析: "requests的运行时依赖关系是什么?"

  5. 兼容性检查: "numpy 1.24.0是否与Python 3.11兼容?"

开发

设置开发环境

git clone https://github.com/AstroAir/pypi-mcp.git
cd pypi-mcp
uv sync --dev

运行测试

uv run pytest

代码格式化

uv run black pypi_mcp/
uv run isort pypi_mcp/

类型检查

uv run mypy pypi_mcp/

构建和打包

# 验证打包配置
python scripts/packaging_utils.py

# 构建包
uv build

# 验证构建的包
python scripts/validate_package.py

有关详细的打包信息,请参阅docs/developer-guide/packaging.md

架构

服务器由以下组件构建:

  • FastMCP:Python的现代MCP框架
  • httpx:用于PyPI API调用的异步HTTP客户端
  • Pydantic:数据验证和序列化
  • packaging:Python包版本处理
  • cachetools:智能缓存系统

关键组件

  • server.py - 主要的FastMCP服务器,带有工具定义
  • client.py - 带有异步支持的PyPI API客户端
  • models.py - Pydantic数据模型
  • cache.py - 缓存实用程序
  • config.py - 配置管理
  • utils.py - 辅助函数
  • exceptions.py - 自定义异常

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 为新功能添加测试
  5. 运行测试套件
  6. 提交拉取请求

许可证

此项目根据MIT许可证发布 - 详情见LICENSE文件。

致谢

  • PyPI 提供了包索引API
  • FastMCP 提供了优秀的MCP框架
  • Python打包社区提供了他们的工具和标准