内容
# 版本管理器 MCP 服务器
[](https://github.com/trianglegrrl/versionator-mcp/actions/workflows/ci.yml)
[](https://badge.fury.io/py/versionator-mcp)
[](https://www.python.org/downloads/)
一个 MCP(模型上下文协议)服务器,查询 19 个不同生态系统的包注册表以检索包的最新发布版本。它遵循严格的故障保护策略,始终返回当前数据。
## 功能
- **19 个包注册表**:npm、RubyGems、PyPI、Hex.pm、crates.io、Bioconda、CRAN、Terraform Registry、DockerHub、CPAN、Go 模块、Composer、NuGet、Homebrew、Nextflow、nf-core 模块、nf-core 子工作流、Swift 包管理器、Maven Central
- **语言/生态系统别名**:使用熟悉的名称,如 `python`、`rust`、`go` 等。
- **无缓存**:始终返回最新的版本
- **故障保护错误处理**:无回退或过时数据
- **丰富的元数据**:包描述、主页和许可证信息
- **可配置的超时**:根据需要调整 API 请求超时
- **包含测试客户端**:`vmcp` 命令行工具用于测试和手动查询
- **针对 Claude Desktop 集成进行了优化**
## 快速入门
### 选项 1:使用 uvx(推荐)
使用 Versionator 与 Claude Desktop 最简单的方法是通过 [uvx](https://github.com/astral-sh/uv):
```bash
# 如果尚未安装,请安装 uvx
curl -LsSf https://astral.sh/uv/install.sh | sh
# 使用 uvx 直接运行 Versionator
uvx versionator-mcp
```
### 选项 2:本地安装
```bash
# 从 PyPI 安装
pip install versionator-mcp
# 或使用 pipx 安装隔离环境
pipx install versionator-mcp
```
## 编辑器集成
### Claude Desktop
将配置添加到您的 Claude Desktop MCP 设置:
**配置位置:**
- **macOS**:`~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**:`%APPDATA%\Claude\claude_desktop_config.json`
**推荐(uvx):**
```json
{
"mcpServers": {
"versionator": {
"command": "uvx",
"args": ["versionator-mcp"]
}
}
}
```
**替代方法:**
```json
{
"mcpServers": {
"versionator": {
"command": "pipx",
"args": ["run", "versionator-mcp"]
}
}
}
```
### Cursor
在项目根目录创建 `.cursor/mcp.json`:
```json
{
"mcpServers": {
"versionator": {
"command": "uvx",
"args": ["versionator-mcp"],
"env": {
"VERSIONATOR_REQUEST_TIMEOUT": "30"
}
}
}
}
```
**全局配置**:`~/.cursor/mcp.json`
**专业提示**:此存储库包含一个 `.cursor/mcp.json` 和 `.cursor/rules` 文件,用于:
- 配置 Versionator 以立即使用
- 设置规则以在安装前自动检查包版本
- 确保在处理依赖项时始终获取当前版本信息
### Windsurf
编辑 `~/.codeium/mcp_config.json`:
```json
{
"mcpServers": {
"versionator": {
"command": "uvx",
"args": ["versionator-mcp"]
}
}
}
```
**UI 方法**:设置 → 工具 → Windsurf 设置 → 添加服务器
### Claude Code
将以下内容添加到您的 Claude Code MCP 配置:
```json
{
"mcpServers": {
"versionator": {
"command": "uvx",
"args": ["versionator-mcp"]
}
}
}
```
> 📁 **示例配置**:请参阅 [`examples/`](examples/) 目录以获取完整的配置文件
## 可用函数
### 1. `get_package_version` - 通用包版本查询
查询任何受支持注册表的最新版本。
**参数:**
- `package_manager`(str):注册表名称或别名
- `package_name`(str):包名称
**支持的注册表:**
- `npm`(别名:`node`、`nodejs`)- Node.js 包
- `rubygems`(别名:`gem`、`ruby`)- Ruby gems
- `pypi`(别名:`pip`、`python`)- Python 包
- `hex`(别名:`elixir`、`hex.pm`)- Elixir 包
- `crates`(别名:`cargo`、`rust`)- Rust crates
- `bioconda`(别名:`conda`)- Bioconda 包
- `cran`(别名:`r`)- R 包
- `terraform`(别名:`tf`)- Terraform 提供者
- `dockerhub`(别名:`docker`)- Docker 镜像
- `cpan`(别名:`perl`)- Perl 模块
- `go`(别名:`golang`)- Go 模块
- `composer`(别名:`php`、`packagist`)- PHP 包
- `nuget`(别名:`dotnet`、`.net`)- .NET 包
- `homebrew`(别名:`brew`)- macOS 包
- `nextflow`(别名:`nf-core`)- Nextflow 管道
- `nf-core-module`(别名:`nfcore-module`、`nf-module`)- nf-core 模块
- `nf-core-subworkflow`(别名:`nfcore-subworkflow`、`nf-subworkflow`)- nf-core 子工作流
- `swift`(别名:`spm`)- Swift 包
- `maven`(别名:`mvn`)- Java 工件
**示例:**
```python
# 查询 npm 包
get_package_version("npm", "react")
# 返回:{"name": "react", "version": "19.1.1", ...}
# 使用别名查询
get_package_version("python", "django")
get_package_version("rust", "serde")
get_package_version("go", "github.com/gin-gonic/gin")
get_package_version("terraform", "hashicorp/aws")
get_package_version("docker", "nginx")
get_package_version("r", "ggplot2")
get_package_version("php", "symfony/console")
get_package_version("dotnet", "Newtonsoft.Json")
get_package_version("homebrew", "git")
get_package_version("nextflow", "nf-core/rnaseq")
get_package_version("nf-core-module", "fastqc")
get_package_version("nf-core-subworkflow", "bam_sort_stats_samtools")
get_package_version("swift", "apple/swift-package-manager")
get_package_version("maven", "org.springframework:spring-core")
```
### 2. 注册表特定函数
- `get_npm_package(package_name)` - NPM 包
- `get_ruby_gem(gem_name)` - RubyGems 包
- `get_python_package(package_name)` - PyPI 包
- `get_elixir_package(package_name)` - Hex.pm 包
- `get_rust_crate(crate_name)` - Rust crates
- `get_bioconda_package(package_name)` - Bioconda 包
- `get_r_package(package_name)` - R 包
- `get_terraform_provider(provider_path)` - Terraform 提供者
- `get_docker_image(image_name)` - Docker 镜像
- `get_perl_module(module_name)` - Perl 模块
- `get_go_module(module_path)` - Go 模块
- `get_php_package(package_name)` - PHP/Composer 包
- `get_dotnet_package(package_name)` - .NET/NuGet 包
- `get_homebrew_formula(formula_name)` - Homebrew 公式
- `get_nextflow_pipeline(pipeline_name)` - Nextflow 管道
- `get_nfcore_module(module_name)` - nf-core 模块
- `get_nfcore_subworkflow(subworkflow_name)` - nf-core 子工作流
- `get_swift_package(package_name)` - Swift 包
- `get_maven_artifact(artifact_name)` - Maven 工件
## 响应格式
所有函数返回一个 PackageVersion 对象:
```json
{
"name": "react",
"version": "19.1.1",
"registry": "npm",
"registry_url": "https://registry.npmjs.org/react/latest",
"query_time": "2025-08-13T10:30:00Z",
"description": "React is a JavaScript library for building user interfaces.",
"homepage": "https://react.dev/",
"license": "MIT"
}
```
## 使用 vmcp 测试
该项目包含一个名为 `vmcp` 的命令行测试客户端,用于手动测试和验证:
### 安装和使用
```bash
# 使 vmcp 脚本可执行(如果需要)
chmod +x vmcp
# 查询不同注册表的包
./vmcp python pandas # 查询 PyPI 的 pandas
./vmcp npm react # 查询 npm 的 react
./vmcp rust serde # 查询 crates.io 的 serde
./vmcp go github.com/gin-gonic/gin # 查询 Go 模块
./vmcp terraform hashicorp/aws # 查询 Terraform 注册表
./vmcp docker nginx # 查询 DockerHub
./vmcp perl JSON # 查询 CPAN
./vmcp r ggplot2 # 查询 CRAN
./vmcp bioconda samtools # 查询 Bioconda
./vmcp php symfony/console # 查询 Packagist 的 PHP 包
./vmcp dotnet Newtonsoft.Json # 查询 NuGet 的 .NET 包
./vmcp homebrew git # 查询 Homebrew 公式
./vmcp nextflow nf-core/rnaseq # 查询 Nextflow 管道
./vmcp nf-core-module fastqc # 查询 nf-core 模块
./vmcp nf-core-subworkflow bam_sort_stats_samtools # 查询 nf-core 子工作流
./vmcp swift apple/swift-package-manager # 查询 Swift 包
./vmcp maven org.springframework:spring-core # 查询 Maven Central
# 列出所有可用的 MCP 工具
./vmcp --list-tools
# 检查服务器健康状况
./vmcp --health
```
### 示例输出
```bash
$ ./vmcp rust serde
🔍 查询 rust/serde...
✅ serde @ v1.0.215 (crates)
📝 A generic serialization/deserialization framework
🏠 https://serde.rs
```
`vmcp` 客户端特别适用于:
- **测试您的 MCP 设置** 在与编辑器集成之前
- **验证包查询** 是否正确工作
- **调试连接问题** 与 MCP 服务器
- **探索可用工具** 及其功能
## 错误处理
服务器遵循严格的 **故障保护** 策略:
- **无回退**:永远不会返回缓存或默认值
- **无抑制**:所有错误都会传播到调用者
- **清晰的消息**:错误包括上下文和详细信息
- **输入验证**:验证后再进行 API 调用
常见错误:
- `ValueError`:无效的包名称或未知的包管理器
- `Exception`:包未找到或 API 失败
## 配置
环境变量(可选):
- `VERSIONATOR_REQUEST_TIMEOUT`:API 请求超时(秒)(默认:30)
## 故障排除
### 常见的 MCP 问题
1. **服务器未启动**:检查配置中的命令路径是否正确
2. **权限错误**:确保 Python 可执行文件具有适当的权限
3. **包未找到**:验证包是否已安装且可从命令行访问
4. **编辑器未检测到服务器**:在添加 MCP 配置后重启编辑器
### 测试您的设置
您可以直接从命令行测试服务器:
```bash
# 使用 uvx 测试
uvx versionator-mcp
# 使用 pipx 测试
pipx run versionator-mcp
# 直接安装测试
python -m versionator_mcp.main
```
服务器应该启动并显示初始化消息。按 `Ctrl+C` 停止。
## 替代:HTTP 服务器模式
对于高级用例,您可以以 HTTP 服务器模式运行 Versionator:
```bash
# 启动 HTTP 服务器(默认端口 8083)
FASTMCP_PORT=8083 python -m versionator_mcp.main
# 自定义端口
FASTMCP_PORT=9000 python -m versionator_mcp.main
```
然后使用以下配置配置 Claude Desktop:
```json
{
"mcpServers": {
"versionator": {
"url": "http://localhost:8083/mcp",
"transport": "http"
}
}
```
**注意**:HTTP 模式需要手动启动服务器后再使用 Claude Desktop。
## 开发
### 设置
```bash
# 克隆存储库
git clone https://github.com/trianglegrrl/versionator-mcp.git
cd versionator-mcp
# 在开发模式下安装并使用开发依赖项
pip install -e ".[dev]"
```
### 项目结构
项目遵循干净的模块化架构:
```
versionator_mcp/
├── __init__.py
├── app.py # FastMCP 应用工厂和配置
├── config.py # 环境配置管理
├── main.py # MCP 服务器入口点
├── models.py # Pydantic 数据模型
├── core/ # 核心实用程序和基类
│ ├── __init__.py
│ ├── base_registry.py # 注册表抽象基类
│ ├── http_client.py # 共享的 HTTP 客户端实用程序
│ └── registry_factory.py # 注册表工厂和映射
├── registries/ # 个别注册表实现
│ ├── __init__.py
│ ├── npm.py # NPM 注册表
│ ├── rubygems.py # RubyGems 注册表
│ ├── pypi.py # PyPI 注册表
│ ├── hex.py # Hex.pm 注册表
│ ├── crates.py # crates.io 注册表
│ ├── bioconda.py # Bioconda 注册表
│ ├── cran.py # CRAN 注册表
│ ├── terraform.py # Terraform 注册表
│ ├── dockerhub.py # DockerHub 注册表
│ ├── cpan.py # CPAN 注册表
│ ├── go.py # Go 模块注册表
│ ├── composer.py # PHP Composer 注册表
│ ├── nuget.py # NuGet 注册表
│ ├── homebrew.py # Homebrew 注册表
│ ├── nextflow.py # Nextflow 注册表
│ ├── nfcore.py # nf-core 模块/子工作流
│ ├── swift.py # Swift 包管理器
│ └── maven.py # Maven Central
└── tools/ # MCP 工具注册
├── __init__.py
└── registry_tools.py # MCP 工具定义
```
### 架构优势
- **模块化设计**:每个注册表都在其自己的文件中实现,具有一致的接口
- **单一责任**:每个模块都有明确、集中的目的
- **易于扩展**:添加新的注册表需要对现有代码进行最小更改
- **可测试性**:可以在隔离状态下测试各个注册表
- **DRY 原则**:公共的 HTTP 逻辑在所有注册表中共享
### 添加新注册表
添加对新包注册的支持:
1. **创建注册表实现**:在 `versionator_mcp/registries/` 创建一个新文件(例如 `new_registry.py`)
2. **扩展 BaseRegistry**:实现 `BaseRegistry` 的抽象方法
3. **注册工厂**:调用 `register_registry()` 并提供您的类和别名
4. **添加 MCP 工具**:在 `registry_tools.py` 添加相应的工具函数
```python
# versionator_mcp/registries/new_registry.py
from ..core import BaseRegistry, register_registry
from ..models import PackageVersion
class NewRegistry(BaseRegistry):
@property
def registry_name(self) -> str:
return "new_registry"
async def get_latest_version(self, package_name: str) -> PackageVersion:
package_name = self.validate_package_name(package_name)
url = f"https://api.new-registry.com/packages/{package_name}"
data = await self.http_client.get_json(url, registry_name="NewRegistry", package_name=package_name)
return PackageVersion(
name=package_name,
version=data.get("version", "unknown"),
registry="new_registry",
registry_url=url,
query_time=self.http_client.get_current_timestamp(),
description=data.get("description"),
homepage=data.get("homepage"),
license=data.get("license"),
)
# 注册并使用别名
register_registry(NewRegistry, ["new", "nr"])
```
### 仓库结构
该项目遵循干净、模块化的架构:
```
versionator_mcp/
├── __init__.py
├── app.py # FastMCP 应用工厂和配置
├── config.py # 环境配置管理
├── main.py # MCP 服务器入口点
├── models.py # Pydantic 数据模型
├── core/ # 核心实用程序和基类
│ ├── __init__.py
│ ├── base_registry.py # 注册表抽象基类
│ ├── http_client.py # 共享的 HTTP 客户端实用程序
│ └── registry_factory.py # 注册表工厂和映射
├── registries/ # 个别注册表实现
│ ├── __init__.py
│ ├── npm.py # NPM 注册表
│ ├── rubygems.py # RubyGems 注册表
│ ├── pypi.py # PyPI 注册表
│ ├── hex.py # Hex.pm 注册表
│ ├── crates.py # crates.io 注册表
│ ├── bioconda.py # Bioconda 注册表
│ ├── cran.py # CRAN 注册表
│ ├── terraform.py # Terraform 注册表
│ ├── dockerhub.py # DockerHub 注册表
│ ├── cpan.py # CPAN 注册表
│ ├── go.py # Go 模块注册表
│ ├── composer.py # PHP/Composer 注册表
│ ├── nuget.py # NuGet 注册表
│ ├── homebrew.py # Homebrew 注册表
│ ├── nextflow.py # Nextflow 注册表
│ ├── nfcore.py # nf-core 模块/子工作流
│ ├── swift.py # Swift 包管理器
│ └── maven.py # Maven Central
└── tools/ # MCP 工具注册
├── __init__.py
└── registry_tools.py # MCP 工具定义
```
### 架构优势
- **模块化设计**:每个注册表都在单独的文件中实现,具有一致的接口
- **单一职责**:每个模块都有明确、集中的用途
- **易于扩展**:添加新的注册表需要的更改很少
- **可测试性**:可以在隔离状态下测试各个注册表
- **可维护性**:对一个注册表进行的更改不会影响其他注册表
- **DRY 原则**:公共的 HTTP 逻辑在所有注册表中共享
### 添加新注册表
要添加对新包注册表的支持:
1. **创建注册表实现**:在 `versionator_mcp/registries/` 中创建一个新文件(例如 `new_registry.py`)
2. **扩展 BaseRegistry**:实现 `BaseRegistry` 的抽象方法
3. **注册工厂**:调用 `register_registry()` 并提供您的类和别名
4. **添加 MCP 工具**:在 `registry_tools.py` 中添加相应的工具函数
示例:
```python
# versionator_mcp/registries/new_registry.py
from ..core import BaseRegistry, register_registry
from ..models import PackageVersion
class NewRegistry(BaseRegistry):
@property
def registry_name(self) -> str:
return "new_registry"
async def get_latest_version(self, package_name: str) -> PackageVersion:
package_name = self.validate_package_name(package_name)
url = f"https://api.new-registry.com/packages/{package_name}"
data = await self.http_client.get_json(url, registry_name="NewRegistry", package_name=package_name)
return PackageVersion(
name=package_name,
version=data.get("version", "unknown"),
registry="new_registry",
registry_url=url,
query_time=self.http_client.get_current_timestamp(),
description=data.get("description"),
homepage=data.get("homepage"),
license=data.get("license"),
)
# 注册并使用别名
register_registry(NewRegistry, ["new", "nr"])
```
### 预提交钩子(推荐)
该项目使用预提交钩子来确保代码质量并防止问题:
```bash
# 安装预提交钩子
pre-commit install
pre-commit install --hook-type pre-push
# 手动在所有文件上运行钩子
pre-commit run --all-files
```
**预提交钩子**(在 `git commit` 时运行):
- 删除尾部空格,修复文件结尾,验证 YAML
- 大型文件检测,合并冲突检测,调试语句检测
- **Black** 代码格式化,**isort** 导入排序,**mypy** 类型检查
**预推送钩子**(在 `git push` 时运行):
- **pytest** 测试套件(跳过 GitHub API 测试以避免速率限制)
钩子会自动修复可能的格式化问题,并在可能的情况下防止提交/推送不满足质量标准的代码。
### 运行测试
```bash
# 运行测试
pytest
# 使用覆盖率运行测试
pytest --cov=versionator_mcp
# 运行 linting
black --check .
isort --check-only .
mypy versionator_mcp/
```
### 测试 MCP 服务器
```bash
# 使用标准 IO 传输(默认)进行测试
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | python -m versionator_mcp.main
```
## 贡献
1. 分叉存储库
2. 创建一个功能分支 (`git checkout -b feature/amazing-feature`)
3. 进行更改并添加测试
4. 运行测试套件 (`pytest`)
5. 提交更改 (`git commit -m 'Add amazing feature'`)
6. 推送到分支 (`git push origin feature/amazing-feature`)
7. 打开拉取请求
## 注册表 API
服务器查询这些端点:
- **npm**:`https://registry.npmjs.org/{package}/latest`
- **RubyGems**:`https://rubygems.org/api/v1/versions/{gem}/latest.json`
- **PyPI**:`https://pypi.org/pypi/{package}/json`
- **Hex.pm**:`https://hex.pm/api/packages/{package}`
- **crates.io**:`https://crates.io/api/v1/crates/{crate}`
- **Bioconda**:`https://api.anaconda.org/package/bioconda/{package}`
- **CRAN**:`https://crandb.r-pkg.org/{package}`
- **Terraform**:`https://registry.terraform.io/v1/providers/{provider_path}`
- **DockerHub**:`https://hub.docker.com/v2/repositories/{namespace}/{repo}/tags`
- **CPAN**:`https://fastapi.metacpan.org/v1/module/{module}`
- **Go 模块**:`https://api.github.com/repos/{owner}/{repo}/releases/latest`(GitHub 托管)
- **Composer**:`https://packagist.org/packages/{vendor}/{package}.json`
- **NuGet**:`https://api.nuget.org/v3-flatcontainer/{package}/index.json`
- **Homebrew**:`https://formulae.brew.sh/api/formula/{formula}.json`
- **Nextflow**:`https://api.github.com/repos/nf-core/{pipeline}/releases/latest`
- **nf-core 模块**:`https://api.github.com/repos/nf-core/modules/commits?path=modules/nf-core/{module}`
- **nf-core 子工作流**:`https://api.github.com/repos/nf-core/modules/commits?path=subworkflows/nf-core/{subworkflow}`
- **Swift**:`https://api.github.com/repos/{owner}/{repo}/releases/latest`
- **Maven**:`https://search.maven.org/solrsearch/select?q=g:{group}+AND+a:{artifact}`
## 性能考虑
- **无缓存**:每个调用都会进行新的 API 请求
- **超时**:可通过 `VERSIONATOR_REQUEST_TIMEOUT` 配置
- **并发请求**:异步实现允许并行查询
- **速率限制**:请注意注册表的速率限制
## 许可证
该项目根据 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 变更日志
### v1.3.1(发布流程修复)
- **修复**: GitHub 发布创建流程,用于自动 PyPI 发布
- **改进**: 适当的流程触发配置,实现无缝发布
- **维护**: 所有 v1.3.0 功能和改进均已包含
### v1.3.0(重构架构和类型安全)
- **重构**: 完整的代码库重构,以提高可维护性
- **新增**: 模块化注册表架构,每个包管理器都有单独的文件
- **新增**: 抽象基类模式,用于一致的注册表实现
- **新增**: 注册表管理和发现的工厂模式
- **新增**: 共享的 HTTP 客户端实用程序,以消除代码重复
- **新增**: 模块化测试结构,镜像主代码库组织
- **改进**: 100% 类型安全合规 - 30 个源文件中的 mypy 错误为零
- **改进**: 整个代码库中增强类型注释
- **改进**: HTTP 客户端返回类型灵活性,以适应多样化的 API 响应
- **改进**: 适当的向前引用处理,用于类型检查
- **改进**: 注册表工厂类型安全,带有可选参数处理
- **改进**: 关注点分离 - MCP 工具、注册表和核心实用程序
- **改进**: 易于扩展 - 添加新的注册表需要最少的代码更改
- **改进**: 更好的可测试性,带有隔离的注册表实现
- **改进**: 所有注册表中一致的错误处理
- **改进**: 开发者体验,带有清晰的项目结构和完整的 IDE 类型支持
- **维护**: 完全的向后兼容性 - 所有现有功能均已保留
- **维护**: 所有 19 个包注册表,行为保持一致
- **维护**: 完整的 MCP 工具兼容性
- **质量**: 56 个综合测试通过,6 个在 CI 中适当跳过
- **质量**: 有组织的测试结构,每个注册表都有单独的文件
### v1.2.3
- **修复**: 通过跳过依赖 GitHub 的测试,解决 CI 中的 GitHub API 速率限制问题
- **改进**: CI 可靠性 - 47 个测试通过,15 个在 CI 环境中适当跳过
- **增强**: 在本地保持完整的测试覆盖率,同时确保 CI 构建绿色
- **质量**: 解决由速率限制导致的 PyPI 发布工作流失败
- 所有 v1.2.2 的功能均已包含,CI 可靠性有所改进
### v1.2.2
- **修复**: nf-core 函数的 Black 代码格式化合规性
- **改进**: CI/CD 管道可靠性,直接在发布工作流中执行测试
- **增强**: 消除 CI 状态检查和 PyPI 发布之间的竞争条件
- 所有 v1.2.1 的功能均已包含,格式化修复
### v1.2.1
- **新增**: 支持 nf-core 模块和子工作流:
- **nf-core 模块** - `nf-core-module`, `nfcore-module`, `nf-module`
- **nf-core 子工作流** - `nf-core-subworkflow`, `nfcore-subworkflow`, `nf-subworkflow`
- **新增**: 注册表特定的 MCP 工具:
- `get_nfcore_module(module_name)` 用于 nf-core 模块
- `get_nfcore_subworkflow(subworkflow_name)` 用于 nf-core 子工作流
- **改进**: 增强的 Nextflow 生态系统覆盖,用于科学计算
- **改进**: 更新文档,包含 nf-core 模块/子工作流示例
- **质量**: 62 个综合测试 - 所有测试通过
- **质量**: 维护完整的向后兼容性
### v1.2.0
- **新增**: 支持 6 个额外的包注册表:
- PHP Composer (Packagist) - `composer`, `php`, `packagist`
- .NET NuGet - `nuget`, `dotnet`, `.net`
- Homebrew - `homebrew`, `brew`
- Nextflow (nf-core) - `nextflow`, `nf-core`
- Swift Package Manager - `swift`, `spm`
- Maven Central - `maven`, `mvn`
- **新增**: 所有新包管理器的注册表特定 MCP 工具
- **改进**: 增强的 vmcp 测试客户端,包含所有 17 个注册表的示例
- **改进**: 全面的文档更新,包含新的 API 端点
- **改进**: 更新的错误消息和新注册表的验证
- **质量**: 56 个综合测试 - 所有测试通过
- **质量**: 维护完整的向后兼容性
### v1.1.0
- **新增**: 支持 7 个额外的包注册表:
- Rust (crates.io) - `rust`, `cargo`, `crates`
- Bioconda (anaconda.org) - `bioconda`, `conda`
- R (CRAN) - `r`, `cran`
- Terraform Registry - `terraform`, `tf`
- DockerHub - `docker`, `dockerhub`
- Perl (CPAN) - `perl`, `cpan`
- Go Modules - `go`, `golang`
- **新增**: `vmcp` 命令行测试客户端
- **新增**: 每个包管理器的注册表特定 MCP 工具
- **改进**: 增强的文档,包含综合示例
- **改进**: 更新的错误消息和验证
### v1.0.0
- 初始发布
- 支持 npm, RubyGems, PyPI 和 Hex.pm
- 为 Claude Desktop 集成而优化
- uvx 和 pipx 支持
- 全面的错误处理
- MCP 协议合规
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器