一个用于查询 PyPI 包信息、依赖关系以及兼容性检查的模型上下文协议(MCP)服务器。
# 直接运行
uvx pypi-query-mcp-server
# 或安装并运行特定脚本
uvx --from pypi-query-mcp-server pypi-query-mcp
# 从 PyPI 安装
pip install pypi-query-mcp-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
通过内置的 MCP 管理将 PyPI 查询 MCP 服务器添加到 Claude Code 中:
# 添加本地作用域(项目特定)
claude mcp add pypi uvx pypi-query-mcp-server -s local
# 添加用户作用域(适用于所有项目)
claude mcp add pypi uvx pypi-query-mcp-server -s user
📖 详细指南:参见 CLAUDE_CODE_INTEGRATION.md 获取全面的 Claude Code 集成文档。
在你的 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 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 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 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)# 使用多个镜像源以提高可用性
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/"
# 私有存储库配置
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 工具:
📖 了解更多关于提示模板:参见 PROMPT_TEMPLATES.md 获取详细文档和示例。
一旦在你的 MCP 客户端(Claude Desktop, Cline, Cursor, Windsurf)中配置好,你可以提出如下问题:
用户: "检查 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 工具获取两个包的信息]
# 示例: 检查 Django 是否兼容 Python 3.9
result = await mcp_client.call_tool("check_package_python_compatibility", {
"package_name": "django",
"target_python_version": "3.9"
})
# 示例: 获取包信息
info = await mcp_client.call_tool("get_package_info", {
"package_name": "requests"
})
# 示例: 获取下载统计信息
stats = await mcp_client.call_tool("get_download_statistics", {
"package_name": "numpy",
"period": "month"
})
# 示例: 获取下载量最多的包
top_packages = await mcp_client.call_tool("get_top_downloaded_packages", {
"period": "week",
"limit": 10
})
🎉 核心功能已实现并准备好使用!
当前实现状态:
欢迎贡献!请随意提交 Pull Request。
此项目根据 MIT 许可证发布 - 详情请参阅 LICENSE 文件。