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
PackageLens MCP
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:
| Ecosistema | Búsqueda | README | Versiones | Dependencias | Descargas |
|---|---|---|---|---|---|
| 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@latestgarantiza 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.mdpara todos los detalles técnicos. - Consulta
CONTRIBUTING.mdpara 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:
- Palabras clave de la consulta - Detecta menciones de lenguajes (Python, Rust, JavaScript, etc.)
- Análisis del código base - Comprueba el directorio actual en busca de archivos de paquetes (package.json → npm, Cargo.toml → Crates.io, etc.)
- 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
- Argumentos:
-
smart_get_readme- Obtén el README del paquete- Argumentos:
packageName,ecosystem?,context?,version?,truncateAt? - Ejemplo: "Obtén el README de django" → detecta PyPI
- Argumentos:
-
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
- Argumentos:
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
- Argumentos:
-
smart_get_dependencies- Obtén las dependencias del paquete- Argumentos:
packageName,context?,version? - Ejemplo: "¿De qué depende express?" → detecta npm
- Argumentos:
Descargas:
smart_get_downloads- Obtén estadísticas de descargas- Argumentos:
packageName,context?,period? - Ejemplo: "¿Cuántas descargas tiene flask?" → detecta PyPI
- Argumentos:
Comparación:
compare_packages- Compara paquetes entre ecosistemas- Argumentos:
items[]con objetos{ecosystem, name} - Ejemplo: Compara axios (npm), requests (PyPI), httparty (RubyGems)
- Argumentos:
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
- Primera consulta: Usa contexto de lenguaje ("Python", "Rust") o deja que funcione la detección del código base
- Consultas posteriores: Usa el parámetro
ecosystemde la primera respuesta - Comparaciones: Solo compara entre ecosistemas cuando estés comparando alternativas explícitamente
- 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!