PackageLens MCP

Permite que tu agente de codificación (como Claude, Cursor, Copilot, Gemini o Codex) busque en registros de paquetes de múltiples ecosistemas (npm, PyPI, RubyGems, Crates.io, Packagist, Hex) y obtenga contexto del paquete (README, descargas, información de GitHub, fragmentos de uso)

Documentación

Logotipo de PackageLens MCP

PackageLens MCP

versión de npm CI descargas de npm TypeScript Node MCP Tests Coverage Lint License

packagelens-mcp permite que tu agente de codificación (como Claude, Cursor, Copilot, Gemini o Codex) busque en registros de paquetes de múltiples ecosistemas (npm, PyPI, RubyGems, Crates.io, Packagist, Hex) y obtenga contexto de paquetes (README, descargas, información de GitHub, fragmentos de uso). Cuenta con detección automática inteligente de ecosistemas, para que tu IA pueda encontrar paquetes sin necesidad de especificar qué ecosistema buscar. Actúa como un servidor Model‑Context‑Protocol (MCP), brindando a tu asistente de IA una forma estructurada de descubrir librerías e integrarlas rápidamente.

Registro de cambios | Contribuciones | Consultas de ejemplo | Solución de problemas | Referencia de herramientas

Ecosistemas compatibles

PackageLens MCP admite 6 ecosistemas de paquetes con disponibilidad variable de funciones:

EcosistemaBúsquedaREADMEVersionesDependenciasDescargas
npm✅✅✅✅✅
RubyGems (Ruby)✅✅✅✅✅
Crates.io (Rust)✅✅✅✅✅
Packagist (PHP)✅✅✅✅✅
Hex (Elixir)✅✅✅✅✅
PyPI (Python)✅✅✅✅❌*

* PyPI no proporciona una API oficial de descargas

Características principales

  • 🌟 Detección automática inteligente de ecosistemas - Pregunta "Encuentra clientes HTTP" sin especificar npm, PyPI, etc.
  • 🔍 Soporte multi-ecosistema: npm, PyPI, RubyGems, Crates.io, Packagist, Hex
  • 📦 Búsqueda estructurada de paquetes con pesos de clasificación opcionales
  • 📄 Obtención directa de README (opcionalmente truncado)
  • 📊 Información enriquecida de paquetes (descargas + detalles de GitHub)
  • 🔖 Listado de versiones y análisis de dependencias
  • 💡 Extracción de fragmentos de uso del README
  • 🔌 Transporte MCP Stdio, listo para clientes compatibles con MCP

Descargos de responsabilidad

packagelens-mcp realiza solicitudes de red a los registros de paquetes (npm, PyPI, RubyGems, Crates.io, Packagist, Hex) y a GitHub cuando se utilizan las herramientas. Evita compartir secretos en los prompts; configura GITHUB_TOKEN solo si deseas límites de tasa más altos de GitHub.

Requisitos

  • Node.js v18.17 o más reciente
  • npm (o pnpm)

Primeros pasos

Añade la siguiente configuración a tu cliente MCP:

{
  "mcpServers": {
    "packagelens": {
      "command": "npx",
      "args": ["-y", "packagelens-mcp@latest"]
    }
  }
}

[!NOTE] Usar packagelens-mcp@latest garantiza que tu cliente MCP siempre ejecute la versión publicada más reciente.

Configuración del cliente MCP

Amp Sigue la documentación de Amp y usa la configuración proporcionada arriba. También puedes instalar mediante CLI:
amp mcp add packagelens -- npx packagelens-mcp@latest
Claude Code Usa la CLI de Claude Code para añadir el servidor PackageLens MCP (consulta la guía MCP de Claude Code):
claude mcp add packagelens npx packagelens-mcp@latest
Cline Sigue y usa la configuración proporcionada arriba.
Codex Usa la CLI de Codex para añadir el servidor:
codex mcp add packagelens -- npx packagelens-mcp@latest
Copilot CLI

Inicia Copilot CLI:

copilot

Inicia el diálogo para añadir un nuevo servidor MCP ejecutando:

/mcp add

Configura los siguientes campos y presiona CTRL+S para guardar:

  • Nombre del servidor: packagelens
  • Tipo de servidor: Local
  • Comando: npx -y packagelens-mcp@latest
Copilot / VS Code Usa la CLI de VS Code:
code --add-mcp '{"name":"packagelens","command":"npx","args":["-y","packagelens-mcp@latest"]}'
Cursor

Ve a Cursor Settings -> MCP -> New MCP Server. Usa la configuración proporcionada arriba.

Gemini CLI Instala el servidor PackageLens MCP usando la CLI de Gemini.

A nivel de proyecto:

gemini mcp add packagelens npx packagelens-mcp@latest

A nivel global:

gemini mcp add -s user packagelens npx packagelens-mcp@latest

Alternativamente, sigue la guía MCP de la CLI de Gemini y usa la configuración estándar de arriba.

Gemini Code Assist Sigue la guía del proveedor para configurar servidores MCP y usa la configuración estándar de arriba.
JetBrains AI Assistant y Junie

Ve a Settings | Tools | AI Assistant | Model Context Protocol (MCP) -> Add. Usa la configuración proporcionada arriba. Lo mismo para Junie en Settings | Tools | Junie | MCP Settings -> Add.

Warp

Ve a Settings | AI | Manage MCP Servers -> + Add y usa la configuración proporcionada arriba.

Tu primer prompt

Introduce una de estas consultas inteligentes (¡no necesitas ecosistema!) para comprobar si todo funciona:

Búsqueda inteligente (detecta ecosistemas automáticamente):

Find HTTP client libraries
Find async runtime packages for Rust

Información inteligente de paquetes (detecta ecosistema automáticamente):

Tell me about react
Get info for django including README

Ejemplos de uso inteligentes:

Show me how to use axios

Comparar paquetes:

Compare react-query, swr, and apollo-client

Avanzado: Consultas específicas por ecosistema (cuando necesitas control):

Search npm for React debounce hooks, show weekly downloads
What are the dependencies of express in npm? Include dev dependencies.

Uso avanzado y local

¿Buscas ejemplos JSON‑RPC, esquemas de herramientas, la CLI de desarrollo local, solución de problemas o configuración para contribuidores?

  • Consulta docs/advanced.md para todos los detalles técnicos.
  • Consulta CONTRIBUTING.md para las pautas de contribución.

Herramientas

PackageLens MCP proporciona 8 herramientas con detección automática de ecosistemas. Para los esquemas JSON completos, consulta la Referencia de herramientas.

🌟 Herramienta principal: smart_search

La herramienta principal que usarás para encontrar paquetes. Detecta automáticamente qué ecosistema de paquetes buscar según tu proyecto o consulta.

Estrategia de detección:

  1. Palabras clave de la consulta - Detecta menciones de lenguajes (Python, Rust, JavaScript, etc.)
  2. Análisis del código base - Comprueba el directorio actual en busca de archivos de paquetes (package.json → npm, Cargo.toml → Crates.io, etc.)
  3. Aclaración del usuario - Si aún no está claro, solicita una especificación

Argumentos: query, ecosystem?, packageName?, size?

Importante: Una vez que se detecta un ecosistema, la respuesta incluye una directiva para usar el parámetro ecosystem="..." en TODAS las búsquedas posteriores para mantener la coherencia. NO busques en otros ecosistemas a menos que se solicite explícitamente.

Ejemplos:

// In a TypeScript project with package.json
{ query: "HTTP clients" }
// → Auto-detects npm, searches npm only

// Follow-up query (maintaining consistency)
{ query: "async libraries", ecosystem: "npm" }
// → Continues searching npm

// Explicit ecosystem
{ query: "web frameworks", ecosystem: "pypi" }
// → Searches PyPI regardless of project type

// With language context
{ query: "Find Rust async runtime libraries" }
// → Detects "Rust", searches Crates.io

Otras herramientas inteligentes

Todas las herramientas inteligentes admiten un parámetro opcional ecosystem para especificación explícita.

Información de paquetes:

  • smart_package_info - Obtén información detallada del paquete

    • Argumentos: packageName, ecosystem?, context?, includeReadme?
    • Ejemplo: "Cuéntame sobre react" → detecta npm
  • smart_get_readme - Obtén el README del paquete

    • Argumentos: packageName, ecosystem?, context?, version?, truncateAt?
    • Ejemplo: "Obtén el README de django" → detecta PyPI
  • smart_get_usage_snippet - Extrae ejemplos de código del README

    • Argumentos: packageName, ecosystem?, context?, version?
    • Ejemplo: "Muéstrame cómo usar axios" → detecta npm

Versiones y dependencias:

  • smart_get_versions - Lista las versiones del paquete

    • Argumentos: packageName, context?, limit?, since?
    • Ejemplo: "Muestra las versiones de tokio" → detecta Crates.io
  • smart_get_dependencies - Obtén las dependencias del paquete

    • Argumentos: packageName, context?, version?
    • Ejemplo: "¿De qué depende express?" → detecta npm

Descargas:

  • smart_get_downloads - Obtén estadísticas de descargas
    • Argumentos: packageName, context?, period?
    • Ejemplo: "¿Cuántas descargas tiene flask?" → detecta PyPI

Comparación:

  • compare_packages - Compara paquetes entre ecosistemas
    • Argumentos: items[] con objetos {ecosystem, name}
    • Ejemplo: Compara axios (npm), requests (PyPI), httparty (RubyGems)

Consultas de uso de ejemplo

PackageLens MCP admite dos estilos de consulta: consultas inteligentes (detección automática) y consultas específicas (ecosistema explícito). Una vez que se detecta un ecosistema, usa el mismo ecosistema para las consultas posteriores para mantener la coherencia.

🌟 Consultas inteligentes (detección automática)

Búsqueda inicial con contexto de lenguaje:

Find Python HTTP client libraries
→ Detects PyPI from "Python" keyword
→ Response: "Use ecosystem='pypi' for follow-up searches"
Search for Rust async libraries
→ Detects Crates.io from "Rust" keyword
→ Response: "Use ecosystem='crates' for follow-up searches"

Búsqueda inicial en el directorio del proyecto:

Find HTTP client libraries
→ In TypeScript project with package.json
→ Detects npm from codebase
→ Response: "Use ecosystem='npm' for follow-up searches"
Search for async runtime packages
→ In Rust project with Cargo.toml
→ Detects Crates.io from codebase
→ Response: "Use ecosystem='crates' for follow-up searches"

Búsquedas posteriores (manteniendo la coherencia):

Initial: "Find Python web frameworks"
→ Detects PyPI, finds django, flask, fastapi

Follow-up: "Show me more async frameworks" (with ecosystem='pypi')
→ Continues searching PyPI only
→ Finds aiohttp, starlette, tornado
Initial: "Search for JavaScript testing libraries"
→ Detects npm, finds jest, mocha, vitest

Follow-up: "Find assertion libraries" (with ecosystem='npm')
→ Continues searching npm only
→ Finds chai, expect, should

Información de paquetes con detección automática:

Tell me about react
→ Detects npm from well-known package name
Get info for django including README
→ Detects PyPI from well-known package name
Show me details for tokio
→ Detects Crates.io from well-known package name

Ejemplos de uso:

Show me how to use axios
→ Detects npm, extracts usage snippet from README
Get usage example for requests
→ Detects PyPI, extracts usage snippet from README

Versiones y dependencias:

What versions of react are available?
→ Detects npm, lists recent versions
What does express depend on?
→ Detects npm, shows dependency tree

Descargas:

How many downloads does django have?
→ Detects PyPI (note: PyPI doesn't provide download stats)
Show me weekly downloads for lodash
→ Detects npm, shows weekly download count

Comparación entre ecosistemas (intención explícita):

Compare axios from npm with requests from PyPI
→ Compares HTTP clients across ecosystems
Compare react, vue, and angular
→ All detected as npm packages, compares within npm

🎯 Consultas específicas (ecosistema explícito)

Úsalas cuando necesites un control preciso o quieras anular la detección automática:

Búsqueda explícita por ecosistema:

Search npm for React debounce hooks
→ Uses npm regardless of project type
Search crates for tokio alternatives
→ Uses Crates.io regardless of project type

Manteniendo la coherencia con parámetro explícito:

Initial: "Find web frameworks" (in TypeScript project)
→ Detects npm

Follow-up: Search for "validation libraries" with ecosystem="npm"
→ Continues in npm (recommended approach)

Cambiando de ecosistema (cuando sea necesario):

Initial: "Find Python web frameworks"
→ Detects PyPI, finds django, flask

Explicit switch: "Now search npm for web frameworks"
→ Explicitly switches to npm ecosystem

Consultas específicas de paquetes:

Get info for @types/node from npm
→ Scoped package, explicitly npm
Show README for symfony/console from packagist
→ Vendor/package format, explicitly Packagist

Consultas avanzadas de dependencias:

What are the dependencies of express in npm? Include dev dependencies.
→ Explicit npm query with dev dependencies
Show me versions of tokio from crates published in last 6 months
→ Explicit crates query with time filter

💡 Buenas prácticas

  1. Primera consulta: Usa contexto de lenguaje ("Python", "Rust") o deja que funcione la detección del código base
  2. Consultas posteriores: Usa el parámetro ecosystem de la primera respuesta
  3. Comparaciones: Solo compara entre ecosistemas cuando estés comparando alternativas explícitamente
  4. Paquetes específicos: Los nombres de paquetes conocidos se detectan automáticamente de forma fiable (react → npm, django → PyPI)

Licencia y contribuciones

PackageLens MCP tiene licencia MIT. ¡Las contribuciones son bienvenidas! Consulta CONTRIBUTING.md para las pautas.

¿Encontraste un error o tienes una solicitud de función? Abre un issue en GitHub.


Hecho con ❤️ para la comunidad de vibe coding. ¡Feliz codificación!