📦 PyPI包MCP服务器
 
一个强大的模型上下文协议(MCP)服务器,使AI助手能够从PyPI上的任何Python包中获取、探索和分析源代码。
✨ 特性
- 📦 获取任何PyPI包:从数百万个软件包中下载并探索源代码
- 🔍 智能文件发现:使用智能代码检测列出和过滤文件
- 📄 选择性代码读取:获取特定文件或整个代码库
- 🏷️ 版本控制:支持任何已发布的软件包版本
- 🧹 自动清理:自动临时文件管理
- 🔒 类型安全:支持mypy的完整类型提示
- ⚡ 异步优先:贯穿始终的现代异步/等待模式
- 🤖 AI就绪:与Claude、ChatGPT和其他AI助手完美集成
🎯 用例
- 代码分析:在采用库之前对其进行分析
- 学习:学习编写良好的开源代码
- 人工智能开发:使AI助手能够理解包内部
- 文档:通过分析源代码生成文档
- 安全审计:审查安全问题的依赖关系
- 迁移规划:升级包时了解API
🚀 安装和设置
方案1:当地开发(标准模式)
git clone https://github.com/Qvakk/pypi-package-mcp-server.git
cd pypi-package-mcp-server
pip install -e .
pypi-package-mcp-server选项2:本地开发(HTTP模式)
git clone https://github.com/Qvakk/pypi-package-mcp-server.git
cd pypi-package-mcp-server
pip install -e .
TRANSPORT_MODE=http PORT=3000 pypi-package-mcp-server选项3:使用身份验证令牌
# Stdio mode with auth
AUTH_TOKEN=your-secret-token pypi-package-mcp-server
# HTTP mode with auth
TRANSPORT_MODE=http PORT=3000 AUTH_TOKEN=your-secret-token pypi-package-mcp-server选项4:Docker(生产-HTTP模式)
# Build Docker image
docker build -t pypi-package-mcp-server .
# Run in stdio mode (Claude Desktop)
docker run -it pypi-package-mcp-server
# Run in HTTP mode
docker run -p 3000:3000 \
-e TRANSPORT_MODE=http \
-e PORT=3000 \
pypi-package-mcp-server
# Run with authentication
docker run -p 3000:3000 \
-e TRANSPORT_MODE=http \
-e PORT=3000 \
-e AUTH_TOKEN=your-secret-token \
pypi-package-mcp-server
# Use Docker Compose
docker-compose up -d🔧 配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
TRANSPORT_MODE | stdio | 运输方式: stdio 或 http |
PORT | 3000 | HTTP服务器端口(仅用于 http 模式) |
AUTH_TOKEN | (none) | API访问的可选身份验证令牌 |
运输方式
标准模式(默认)
- 最适合:Claude Desktop,本地开发
- 连接:标准输入/输出流
- 命令:
pypi-package-mcp-server
HTTP模式
- 最适合:远程服务器、容器化部署
- 连接:指定端口上的HTTP请求
- 健康终点:
GET /health - MCP端点:
POST /mcp - 命令:
TRANSPORT_MODE=http PORT=3000 pypi-package-mcp-server
认证
当 AUTH_TOKEN 如果设置了环境变量,则所有HTTP请求都必须在 Authorization 头球
# Using Bearer token
curl -H "Authorization: Bearer your-secret-token" http://localhost:3000/health
# Or just the token
curl -H "Authorization: your-secret-token" http://localhost:3000/health📊 支持的软件包
- ✅ 所有公共PyPI包
- ✅ 任何已发布版本
- ✅ 来源分布(
.tar.gz) - ✅ 二进制车轮(
.whl) - ✅ Monorepo软件包
- ✅ 纯Python和原生扩展
🔥 要探索的热门套餐
使用您的AI助手尝试以下命令:
"Analyze the requests library implementation"
"Show me the Django ORM structure"
"Explore the Flask application framework"
"Review the NumPy array implementation"
"Study the pandas DataFrame code"🛠️ 工具
1. get_pypi_package_code
从Python包中获取源代码。
# Get all source files from the latest version
pypi_server.get_pypi_package_code(package_name="requests")
# Get a specific version
pypi_server.get_pypi_package_code(package_name="django", version="4.2.0")
# Get a specific file
pypi_server.get_pypi_package_code(
package_name="flask",
file_path="src/flask/app.py"
)2. list_package_files
列出包中的所有文件。
pypi_server.list_package_files(package_name="numpy")
pypi_server.list_package_files(package_name="pandas", version="2.0.0")3. get_package_info
获取有关包的元数据。
pypi_server.get_package_info(package_name="requests")4. search_pypi_packages
在PyPI上搜索包。
pypi_server.search_pypi_packages(query="web framework", limit=20)📋 需求
- Python 3.9或更高版本
mcp>= 0.1.0requests>= 2.31.0pydantic>= 2.0.0
🔒 身份验证(可选)
设置 AUTH_TOKEN API身份验证的环境变量:
export AUTH_TOKEN=your-secret-token
pypi-package-mcp-server🧪 发展
安装开发依赖项
pip install -e ".[dev]"运行测试
pytest格式码
black pypi_mcp_server/Lint代码
ruff check pypi_mcp_server/类型检查
mypy pypi_mcp_server/🐛 故障排除
未找到包
- 验证包名称是否正确(使用小写字母,连字符而不是下划线)
- 先搜索
search_pypi_packages查找确切名称
提取失败
- 某些软件包可能没有源代码发行版
- 检查是否有仅限车轮的包装
超时问题
- 大型软件包可能需要时间下载
- 如果需要,增加超时值
📚 相关项目
📄 许可证
MIT许可证-请参阅 许可证 详细信息文件
🤝 贡献
欢迎投稿!请随时提交拉取请求。
⭐ 鸣谢
灵感来自
______________________________________________________________________
由以下材料制成❤️
