mcpField
R
repo-template

repo-template

本地服务
github.com/loonghao版本控制195 周前更新

关于 repo-template

PyPI Query MCP 服务用于查询 PyPI 软件包信息、依赖关系和 Python 版本兼容性,并支持 GitHub 仓库相关查询。适合需要在 LLM 交互中获取 Python 包元数据的开发者。

主要功能

  1. 01查询软件包版本、描述与元数据
  2. 02检查 Python 版本兼容性
  3. 03递归解析依赖关系
  4. 04下载软件包及其依赖
  5. 05查询下载统计与热门排名

适用场景

  1. 01确认某个包是否支持目标 Python 版本
  2. 02分析项目的传递依赖树
  3. 03比较多个 Python 框架的下载热度

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露包查询、依赖分析和下载统计等工具,并提供提示词模板。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

PyPI Query MCP 服务

PyPI 版本

用于查询 PyPI 软件包信息、依赖项和兼容性的模型上下文协议(MCP)服务。

功能

  • 📦 查询 PyPI 软件包信息(名称、版本、描述、依赖项)
  • 🐍 检查 Python 版本兼容性
  • 🔍 高级依赖分析和递归解析
  • 📥 下载软件包并收集依赖项
  • 📊 下载统计和受欢迎程度分析
  • 🏆 热门软件包排名和趋势
  • 🎯 用于引导分析和决策的 MCP 提示词模板
  • 🏢 支持私有 PyPI 仓库
  • ⚡ 通过缓存实现快速异步操作
  • 🛠️ 轻松集成 MCP 客户端

安装

使用 uvx(推荐)
# 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
使用 pip
# 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

配置

Claude Code(推荐)

使用内置的 MCP 管理功能,将 PyPI Query MCP 服务添加到 Claude Code:

# 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

📖 详细指南:请参阅 CLAUDE_CODE_INTEGRATION.md,了解完整的 Claude Code 集成文档。

Claude Desktop

将以下内容添加到 Claude Desktop 配置文件:

MacOS:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%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"
      }
    }
  }
}
Cline

添加到 Cline MCP 设置(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"
      }
    }
  }
}
Cursor

添加到 Cursor MCP 配置(.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"
      }
    }
  }
}
Windsurf

添加到 Windsurf MCP 配置(~/.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:主 PyPI 索引 URL(默认值:https://pypi.org/pypi)
  • PYPI_CACHE_TTL:缓存生存时间,单位为秒(默认值:3600)
  • PYPI_LOG_LEVEL:日志级别(默认值:INFO)
  • PYPI_REQUEST_TIMEOUT:HTTP 请求超时时间,单位为秒(默认值:30.0)
支持多个镜像源
  • PYPI_INDEX_URLS:其他 PyPI 索引 URL(逗号分隔,可选)
  • PYPI_EXTRA_INDEX_URLS:用于回退的额外 PyPI 索引 URL(逗号分隔,可选)
支持私有仓库
  • PYPI_PRIVATE_PYPI_URL:私有 PyPI 仓库 URL(可选)
  • PYPI_PRIVATE_PYPI_USERNAME:私有 PyPI 用户名(可选)
  • PYPI_PRIVATE_PYPI_PASSWORD:私有 PyPI 密码(可选)
高级依赖分析
  • PYPI_DEPENDENCY_MAX_DEPTH:递归依赖分析的最大深度(默认值:5)
  • PYPI_DEPENDENCY_MAX_CONCURRENT:并发依赖查询的最大数量(默认值:10)
  • PYPI_ENABLE_SECURITY_ANALYSIS:启用安全漏洞分析(默认值: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"

可用的 MCP 工具

该服务提供以下 MCP 工具:

核心软件包信息
  1. get_package_info - 获取全面的软件包信息
  2. get_package_versions - 列出软件包的所有可用版本
  3. get_package_dependencies - 分析软件包依赖项
Python 兼容性
  1. check_package_python_compatibility - 检查 Python 版本兼容性
  2. get_package_compatible_python_versions - 获取所有兼容的 Python 版本
高级依赖分析
  1. resolve_dependencies - 递归解析软件包的所有依赖项并进行详细分析
  2. download_package - 将软件包及其所有依赖项下载到本地目录
下载统计与受欢迎程度
  1. get_download_statistics - 获取任意软件包的全面下载统计信息
  2. get_download_trends - 分析下载趋势和时间序列数据(最近 180 天)
  3. get_top_downloaded_packages - 按下载量获取最受欢迎的软件包
MCP 提示词模板
  1. analyze_package_quality - 生成全面的软件包质量分析提示词
  2. compare_packages - 生成详细的软件包比较提示词
  3. suggest_alternatives - 生成用于查找软件包替代方案的提示词
  4. resolve_dependency_conflicts - 生成用于解决依赖冲突的提示词
  5. plan_version_upgrade - 生成用于规划软件包版本升级的提示词
  6. audit_security_risks - 生成用于安全风险审计的提示词
  7. plan_package_migration - 生成全面的软件包迁移计划提示词
  8. generate_migration_checklist - 生成详细的迁移检查清单提示词
环境分析模板
  1. analyze_environment_dependencies - 生成用于分析当前环境依赖项的提示词
  2. check_outdated_packages - 生成用于检查过时软件包及其更新优先级的提示词
  3. generate_update_plan - 生成用于制定全面软件包更新计划的提示词
趋势分析模板
  1. analyze_daily_trends - 生成用于分析每日 PyPI 下载趋势的提示词
  2. find_trending_packages - 生成用于发现一段时间内热门软件包的提示词
  3. track_package_updates - 生成用于跟踪近期软件包更新和发布的提示词

📖 详细了解提示词模板:请参阅 PROMPT_TEMPLATES.md,了解详细文档和示例。

使用示例

在 MCP 客户端(Claude Desktop、Cline、Cursor、Windsurf)中完成配置后,你可以提出如下问题:

基本软件包查询
  • “Django 4.2 有哪些依赖项?”
  • “FastAPI 是否兼容 Python 3.9?”
  • “显示 requests 软件包的所有版本”
  • “numpy 支持哪些 Python 版本?”
  • “获取 pandas 软件包的详细信息”
高级依赖分析
  • “请帮我分析 PySide2 在 Python 3.10 下的完整依赖树”
  • “解析 Django 的所有依赖项,包括开发依赖项”
  • “FastAPI 的所有传递依赖项有哪些?”
软件包下载
  • “请帮我将 PySide2 及其所有依赖项下载到我的本地计算机,适用于 Python 3.10”
  • “将 requests 软件包及其所有依赖项下载到 ./downloads 文件夹”
  • “收集 Django 开发所需的所有软件包”
下载统计与受欢迎程度分析
  • “requests 软件包本月的下载统计数据是什么?”
  • “显示 numpy 过去 180 天的下载趋势”
  • “今天下载量最高的 10 个 Python 软件包是什么?”
  • “比较 Django、Flask 和 FastAPI 的受欢迎程度”
  • “本周哪个 Web 框架的下载量最高?”
MCP 提示词模板
  • “使用 analyze_package_quality 提示词评估 requests 软件包”
  • “生成一个比较提示词,比较 Django、FastAPI 和 Flask 在构建 API 方面的表现”
  • “为从 Flask 迁移到 FastAPI 创建迁移计划提示词”
  • “用结构化提示词帮我解决依赖冲突”
  • “为我的生产环境软件包生成安全审计提示词”
环境分析
  • “分析我当前 Python 环境中的依赖项,并检查是否有过时的软件包”
  • “检查我的环境中哪些软件包有可用的安全更新”
  • “为我的生产环境生成一份采用保守策略的更新计划”
  • “帮我识别哪些软件包需要立即更新,哪些可以计划更新”
趋势分析
  • “今天下载量最高的 Python 软件包有哪些?”
  • “显示本周机器学习领域的热门软件包”
  • “跟踪近期的安全更新和新软件包发布”
  • “查找 Web 开发领域正在兴起、值得考虑的软件包”
对话示例

用户:“检查 Django 4.2 是否兼容 Python 3.9”

AI 助手:我来为你检查 Django 4.2 与 Python 3.9 的兼容性。

[使用 get_package_info 和 check_package_python_compatibility 工具]

用户:“FastAPI 的主要依赖项有哪些?”

AI 助手:我来获取 FastAPI 的依赖项信息。

[使用 get_package_dependencies 工具]

用户:“显示 requests 包的下载统计数据,并告诉我 requests 和 urllib3 哪个更受欢迎?”

AI 助手:我来获取这两个包的下载统计数据,并比较它们的受欢迎程度。

[分别对这两个包使用 get_download_statistics 工具]

编程使用
# 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
})

开发状态

🎉 核心功能已实现,可以使用!

当前实现状态:

  • ✅ 基本项目结构
  • ✅ 带缓存的 PyPI API 客户端
  • ✅ MCP 工具实现(包信息、版本、依赖项)
  • ✅ Python 版本兼容性检查
  • ✅ 高级依赖项分析和递归解析
  • ✅ 下载包并收集依赖项
  • ✅ 下载统计和受欢迎程度分析
  • ✅ 热门包排名和趋势
  • ✅ 支持多平台测试的 CI/CD 流水线
  • ⏳ 私有仓库支持(计划中)

贡献

欢迎贡献!欢迎提交 Pull Request。

许可证

本项目基于 MIT 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。