Token导航 LogoToken导航TokenDH.com
MCP Versioning logo
运维云端未说明官方级别未说明来源级核验

MCP Versioning

MCP Server

MCP版本服务器是一个用于查询多生态系统软件包版本的工具,支持批量操作、智能缓存和自动重试,适用于依赖管理和版本审计。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
包管理版本控制TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

torresgol10

提供方

torresgol10

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP Versioning Server

Servidor MCP (Model Context Protocol) para consultar versiones de paquetes en múltiples ecosistemas.

Características

  • 🚀 Operaciones por lotes (Batch): Consulta hasta 50 paquetes en paralelo (10-50x más rápido)
  • 🔍 Consulta de versiones: Obtén todas las versiones disponibles de un paquete
  • 📦 Última versión: Identifica rápidamente la versión más reciente
  • 📄 Inspección de manifiestos: Parsea archivos de dependencias y extrae información
  • 💾 Caché inteligente: Reduce llamadas a la API con TTL configurable por ecosistema
  • 🔄 Reintentos automáticos: Manejo robusto de errores con backoff exponencial
  • 🌐 Multi-ecosistema: Soporta NPM, Cargo, PyPI, Go, RubyGems y NuGet

Ecosistemas Soportados

EcosistemaSistemaManifiestos
npm (Node.js)NPMpackage.json
Cargo (Rust)CARGOCargo.toml
PyPI (Python)PYPIpyproject.toml, requirements.txt
Go ModulesGOgo.mod
RubyGemsRUBYGEMSGemfile
NuGet (.NET)NUGET.csproj, .fsproj, .vbproj

Instalación

Uso con npx (Recomendado)

No requiere instalación. Usa npx para ejecutar automáticamente:

{
  "mcpServers": {
    "versioning": {
      "command": "npx",
      "args": ["-y", "mcp-versioning"]
    }
  }
}

Instalación global (Opcional)

npm install -g mcp-versioning

Inicio Rápido

  1. Añadir a Claude Desktop:

Edita tu archivo de configuración (%APPDATA%\Claude\claude_desktop_config.json en Windows o ~/Library/Application Support/Claude/claude_desktop_config.json en macOS):

   {
     "mcpServers": {
       "versioning": {
         "command": "npx",
         "args": ["-y", "mcp-versioning"]
       }
     }
   }
  1. Reinicia Claude Desktop
  1. ¡Listo! Las 7 herramientas estarán disponibles automáticamente

Uso

Configuración en Claude Desktop

Añade el servidor a tu configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json en macOS o %APPDATA%\Claude\claude_desktop_config.json en Windows):

Opción 1: Usar npx (Recomendado)

{
  "mcpServers": {
    "versioning": {
      "command": "npx",
      "args": ["-y", "mcp-versioning"]
    }
  }
}

Opción 2: Instalación global

{
  "mcpServers": {
    "versioning": {
      "command": "mcp-versioning"
    }
  }
}

Herramientas Disponibles

Operaciones Individuales

1. get_package_versions

Obtiene todas las versiones disponibles de un paquete.

Entrada:

{
  "system": "NPM",
  "name": "react"
}

Salida:

{
  "system": "NPM",
  "name": "react",
  "versions": [
    {
      "version": "18.2.0",
      "publishedAt": "2023-06-14T...",
      "isDefault": true,
      "isDeprecated": false
    },
    {
      "version": "18.1.0",
      "publishedAt": "2023-04-26T...",
      "isDefault": false,
      "isDeprecated": false
    }
  ]
}
💡 Nota: Todas las herramientas devuelven structuredContent además del texto formateado, facilitando el procesamiento por parte de clientes MCP.

2. get_latest_version

Obtiene la última versión de un paquete.

Entrada:

{
  "system": "CARGO",
  "name": "serde",
  "includePrerelease": false
}

Salida:

{
  "version": "1.0.204",
  "publishedAt": "2024-07-01T...",
  "isDefault": true
}

3. inspect_manifest

Parsea un archivo de manifiesto y extrae las dependencias.

💡 Importante: Para evitar múltiples solicitudes de permisos, se recomienda pasar el contenido del archivo directamente usando el parámetro content en lugar de solo la ruta.

Entrada (recomendada - con contenido):

{
  "manifestPath": "package.json",
  "content": "{\n  \"dependencies\": {\n    \"react\": \"^18.2.0\"\n  }\n}"
}

Entrada (alternativa - solo ruta):

{
  "manifestPath": "./package.json"
}

Salida:

{
  "system": "NPM",
  "dependencies": [
    {
      "system": "NPM",
      "name": "react",
      "spec": "^18.2.0",
      "kind": "prod",
      "source": "manifest"
    },
    {
      "system": "NPM",
      "name": "typescript",
      "spec": "^5.0.0",
      "kind": "dev",
      "source": "manifest"
    }
  ],
  "warnings": [],
  "metadata": {
    "workspace": false
  }
}

Operaciones por Lotes (Batch) 🚀

4. get_package_versions_batch

Obtiene versiones de múltiples paquetes en paralelo. Mucho más eficiente que llamar get_package_versions múltiples veces.

Entrada:

{
  "packages": [
    { "system": "NPM", "name": "react" },
    { "system": "NPM", "name": "vue" },
    { "system": "CARGO", "name": "serde" }
  ]
}

Salida:

{
  "total": 3,
  "successful": 3,
  "cached": 1,
  "results": [
    {
      "system": "NPM",
      "name": "react",
      "cached": true,
      "result": { "system": "NPM", "name": "react", "versions": [...] }
    },
    {
      "system": "NPM",
      "name": "vue",
      "cached": false,
      "result": { "system": "NPM", "name": "vue", "versions": [...] }
    },
    {
      "system": "CARGO",
      "name": "serde",
      "cached": false,
      "result": { "system": "CARGO", "name": "serde", "versions": [...] }
    }
  ]
}

5. get_latest_versions_batch

Obtiene la última versión de múltiples paquetes en paralelo. Ideal para auditorías de dependencias.

Entrada:

{
  "packages": [
    { "system": "NPM", "name": "react" },
    { "system": "NPM", "name": "typescript" },
    { "system": "PYPI", "name": "django" }
  ]
}

Salida:

{
  "total": 3,
  "successful": 3,
  "failed": 0,
  "results": [
    {
      "system": "NPM",
      "name": "react",
      "result": { "version": "18.2.0", "publishedAt": "...", "isDefault": true }
    },
    {
      "system": "NPM",
      "name": "typescript",
      "result": { "version": "5.3.3", "publishedAt": "...", "isDefault": true }
    },
    {
      "system": "PYPI",
      "name": "django",
      "result": { "version": "5.0.1", "publishedAt": "...", "isDefault": true }
    }
  ]
}

💡 Ventajas del Batching:

  • 10-50x más rápido que operaciones individuales
  • Aprovecha paralelización de requests HTTP
  • Respeta el caché (paquetes ya consultados se devuelven instantáneamente)
  • Manejo de errores individual (un fallo no afecta a los demás)
  • Hasta 50 paquetes por request recomendado

Permisos y Acceso a Archivos

⚠️ Importante: Cuando uses inspect_manifest, Claude Desktop solicitará permisos para leer archivos. Para evitar múltiples solicitudes de permisos:

Opción 1 (Recomendada): Pasa el contenido del archivo directamente usando el parámetro content:

{
  "manifestPath": "package.json",
  "content": ""
}

Opción 2: Permite el acceso cuando se solicite (solo primera vez si usas solo la ruta)

Caché

El servidor implementa un sistema de caché en memoria con TTL (Time To Live) configurable por ecosistema:

  • NPM: 30 minutos
  • Cargo: 2 horas
  • PyPI: 1 hora
  • Go: 2 horas
  • RubyGems: 1 hora
  • NuGet: 1 hora

La caché reduce la carga en la API y mejora los tiempos de respuesta.

FAQ - Preguntas Frecuentes

¿Por qué Claude me pide permisos múltiples veces?

Cuando usas inspect_manifest solo con manifestPath, Claude debe solicitar permiso cada vez que el servidor lee el archivo.

Solución: Usa el parámetro content y pasa el contenido del archivo directamente:

{
  "manifestPath": "package.json",
  "content": "{ \"dependencies\": { \"react\": \"^18.2.0\" } }"
}

Así solo hay una solicitud de permiso cuando Claude lee el archivo inicialmente, y luego puede reutilizar ese contenido.

Consulta BEST_PRACTICES.md para más detalles.

¿Qué es PURL?

PURL (Package URL) es un formato estándar para identificar paquetes de software de forma uniforme a través de diferentes ecosistemas.

Formato: pkg://@

Ejemplos:

  • pkg:npm/react@18.2.0
  • pkg:cargo/serde@1.0.204
  • pkg:pypi/django@5.0

Los PURLs facilitan la correlación de paquetes en herramientas de seguridad, análisis de dependencias y gestión de licencias. En futuras versiones podríamos añadir herramientas para búsquedas masivas usando PURLs.

Resumen de Herramientas

HerramientaUsoVelocidad
get_package_versionsUna sola versiónNormal
get_latest_versionÚltima versión de 1 paqueteNormal
inspect_manifestParsear archivo localRápida
get_package_versions_batchVersiones de múltiples paquetes10-50x más rápida
get_latest_versions_batchÚltimas versiones de múltiples10-50x más rápida
generate_purlPURL para 1 paquete (resuelve versión)Rápida
generate_purls_batchPURLs múltiples (resolución masiva)Muy eficiente

Regla de oro: Si consultas 2+ paquetes, usa batching.

PURLs (Package URL)

Ahora dispones de herramientas para generar PURLs estandarizados:

generate_purl

Genera un PURL. Si no indicas version, se obtiene la última versión estable (semver, excluye prerelease salvo includePrerelease:true).

Ejemplo entrada sin versión:

{ "system": "NPM", "name": "react" }

Ejemplo salida:

{ "purl": "pkg:npm/react@18.2.0", "system": "NPM", "name": "react", "version": "18.2.0", "source": "latest_fetched" }

generate_purls_batch

Versión batch para múltiples paquetes; resuelve versión cuando falta.

Entrada:

{
  "packages": [
    { "system": "NPM", "name": "react" },
    { "system": "CARGO", "name": "serde" },
    { "system": "PYPI", "name": "django", "version": "5.0" }
  ]
}

Salida:

{
  "total": 3,
  "results": [
    { "purl": "pkg:npm/react@18.2.0", "system": "NPM", "name": "react", "version": "18.2.0", "source": "latest_fetched" },
    { "purl": "pkg:cargo/serde@1.0.204", "system": "CARGO", "name": "serde", "version": "1.0.204", "source": "latest_fetched" },
    { "purl": "pkg:pypi/django@5.0", "system": "PYPI", "name": "django", "version": "5.0", "source": "provided" }
  ]
}

Arquitectura

src/
├── index.ts                 # Servidor MCP principal
├── constants/
│   └── systems.ts           # Definiciones de ecosistemas y TTL
├── types/
│   └── index.ts             # Tipos TypeScript
├── deps/
│   └── client.ts            # Cliente API deps con retries
├── cache/
│   └── cache.ts             # Sistema de caché TTL/LRU
├── manifest/
│   └── inspect.ts           # Parsers de manifiestos
└── tools/
    └── index.ts             # Herramientas MCP y schemas Zod

Seguridad

  • ✅ Los manifiestos se parsean de forma estática (sin ejecución de código)
  • ✅ Límite de tamaño de archivo: 256 KB
  • ✅ Se omiten dependencias locales, VCS y workspace protocols
  • ✅ Validación de entrada con Zod schemas
  • ✅ Manejo seguro de errores HTTP

Referencias

Licencia

MIT

目录标签

目录标签

包管理版本控制TypeScriptClaude本地部署依赖管理多生态系统支持批量查询

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP