PackageLens MCP
Permite que seu agente de codificação (como Claude, Cursor, Copilot, Gemini ou Codex) pesquise registros de pacotes em vários ecossistemas (npm, PyPI, RubyGems, Crates.io, Packagist, Hex) e obtenha contexto do pacote (README, downloads, informações do GitHub, trechos de uso)
Documentação
PackageLens MCP
packagelens-mcp permite que seu agente de codificação (como Claude, Cursor, Copilot,
Gemini ou Codex) pesquise registros de pacotes em múltiplos ecossistemas
(npm, PyPI, RubyGems, Crates.io, Packagist, Hex) e obtenha contexto de pacotes
(README, downloads, informações do GitHub, trechos de uso). Ele possui detecção
automática inteligente de ecossistema, para que sua IA possa encontrar pacotes sem
precisar especificar qual ecossistema pesquisar. Ele atua como um servidor
Model‑Context‑Protocol (MCP), dando ao seu assistente de IA uma forma estruturada de descobrir
bibliotecas e integrá-las rapidamente.
Changelog | Contribuindo | Exemplos de Consultas | Solução de Problemas | Referência de Ferramentas
Ecossistemas Suportados
O PackageLens MCP suporta 6 ecossistemas de pacotes com disponibilidade variada de recursos:
| Ecossistema | Pesquisa | README | Versões | Dependências | Downloads |
|---|---|---|---|---|---|
| npm | ✅ | ✅ | ✅ | ✅ | ✅ |
| RubyGems (Ruby) | ✅ | ✅ | ✅ | ✅ | ✅ |
| Crates.io (Rust) | ✅ | ✅ | ✅ | ✅ | ✅ |
| Packagist (PHP) | ✅ | ✅ | ✅ | ✅ | ✅ |
| Hex (Elixir) | ✅ | ✅ | ✅ | ✅ | ✅ |
| PyPI (Python) | ✅ | ✅ | ✅ | ✅ | ❌* |
* PyPI não fornece uma API oficial de downloads
Principais recursos
- 🌟 Detecção automática inteligente de ecossistema - Pergunte "Encontre clientes HTTP" sem especificar npm, PyPI, etc.
- 🔍 Suporte a múltiplos ecossistemas: npm, PyPI, RubyGems, Crates.io, Packagist, Hex
- 📦 Pesquisa estruturada de pacotes com pesos de classificação opcionais
- 📄 Busca direta de README (opcionalmente truncado)
- 📊 Informações enriquecidas do pacote (downloads + detalhes do GitHub)
- 🔖 Listagem de versões e análise de dependências
- 💡 Extração de trechos de uso do README
- 🔌 Transporte MCP Stdio, pronto para clientes compatíveis com MCP
Avisos
packagelens-mcp realiza requisições de rede para registros de pacotes (npm, PyPI,
RubyGems, Crates.io, Packagist, Hex) e GitHub quando as ferramentas são usadas. Evite compartilhar
segredos em prompts; defina GITHUB_TOKEN apenas se quiser limites de taxa
mais altos do GitHub.
Requisitos
- Node.js v18.17 ou mais recente
- npm (ou pnpm)
Começando
Adicione a seguinte configuração ao seu cliente MCP:
{
"mcpServers": {
"packagelens": {
"command": "npx",
"args": ["-y", "packagelens-mcp@latest"]
}
}
}
[!NOTE] Usar
packagelens-mcp@latestgarante que seu cliente MCP sempre execute a versão publicada mais recente.
Configuração do cliente MCP
Amp
Siga a documentação do Amp e use a configuração fornecida acima. Você também pode instalar via CLI:amp mcp add packagelens -- npx packagelens-mcp@latest
Claude Code
Use a CLI do Claude Code para adicionar o servidor PackageLens MCP (veja o guia MCP do Claude Code):claude mcp add packagelens npx packagelens-mcp@latest
Cline
Siga e use a configuração fornecida acima.Codex
Use a CLI do Codex para adicionar o servidor:codex mcp add packagelens -- npx packagelens-mcp@latest
Copilot CLI
Inicie o Copilot CLI:
copilot
Inicie o diálogo para adicionar um novo servidor MCP executando:
/mcp add
Configure os seguintes campos e pressione CTRL+S para salvar:
- Nome do servidor:
packagelens - Tipo de servidor:
Local - Comando:
npx -y packagelens-mcp@latest
Copilot / VS Code
Use a CLI do VS Code:code --add-mcp '{"name":"packagelens","command":"npx","args":["-y","packagelens-mcp@latest"]}'
Cursor
Vá para Cursor Settings -> MCP -> New MCP Server. Use a configuração fornecida acima.
Gemini CLI
Instale o servidor PackageLens MCP usando a CLI do Gemini.Em todo o projeto:
gemini mcp add packagelens npx packagelens-mcp@latest
Globalmente:
gemini mcp add -s user packagelens npx packagelens-mcp@latest
Alternativamente, siga o guia MCP do Gemini CLI e use a configuração padrão acima.
Gemini Code Assist
Siga o guia do provedor para configurar servidores MCP e use a configuração padrão acima.JetBrains AI Assistant & Junie
Vá para Settings | Tools | AI Assistant | Model Context Protocol (MCP)
-> Add. Use a configuração fornecida acima. O mesmo para Junie em
Settings | Tools | Junie | MCP Settings -> Add.
Warp
Vá para Settings | AI | Manage MCP Servers -> + Add e use a
configuração fornecida acima.
Seu primeiro prompt
Digite uma destas consultas inteligentes (sem necessidade de ecossistema!) para verificar se tudo funciona:
Pesquisa inteligente (detecta ecossistemas automaticamente):
Find HTTP client libraries
Find async runtime packages for Rust
Informações inteligentes do pacote (detecta ecossistema automaticamente):
Tell me about react
Get info for django including README
Exemplos de uso inteligentes:
Show me how to use axios
Comparar pacotes:
Compare react-query, swr, and apollo-client
Avançado: Consultas específicas de ecossistema (quando você precisa de controle):
Search npm for React debounce hooks, show weekly downloads
What are the dependencies of express in npm? Include dev dependencies.
Uso Avançado e Local
Procurando por exemplos JSON‑RPC, esquemas de ferramentas, a CLI de desenvolvimento local, solução de problemas ou configuração de colaboradores?
- Veja
docs/advanced.mdpara todos os detalhes técnicos. - Veja
CONTRIBUTING.mdpara diretrizes de contribuição.
Ferramentas
O PackageLens MCP fornece 8 ferramentas com detecção automática de ecossistema. Para esquemas JSON completos, veja a Referência de Ferramentas.
🌟 Ferramenta Principal: smart_search
A principal ferramenta que você usará para encontrar pacotes. Ela detecta automaticamente qual ecossistema de pacotes pesquisar com base no seu projeto ou consulta.
Estratégia de Detecção:
- Palavras-chave da consulta - Detecta menções a linguagens (Python, Rust, JavaScript, etc.)
- Análise do código - Verifica o diretório atual em busca de arquivos de pacotes (package.json → npm, Cargo.toml → Crates.io, etc.)
- Esclarecimento do usuário - Se ainda não estiver claro, pede especificação
Argumentos: query, ecosystem?, packageName?, size?
Importante: Uma vez que um ecossistema é detectado, a resposta inclui uma diretiva
para usar o parâmetro ecosystem="..." em TODAS as pesquisas de acompanhamento para manter
a consistência. NÃO pesquise em outros ecossistemas, a menos que seja explicitamente solicitado.
Exemplos:
// 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
Outras Ferramentas Inteligentes
Todas as ferramentas inteligentes suportam um parâmetro opcional ecosystem para especificação
explícita.
Informações do Pacote:
-
smart_package_info- Obter informações detalhadas do pacote- Argumentos:
packageName,ecosystem?,context?,includeReadme? - Exemplo: "Fale sobre react" → detecta npm
- Argumentos:
-
smart_get_readme- Buscar README do pacote- Argumentos:
packageName,ecosystem?,context?,version?,truncateAt? - Exemplo: "Obter README para django" → detecta PyPI
- Argumentos:
-
smart_get_usage_snippet- Extrair exemplos de código do README- Argumentos:
packageName,ecosystem?,context?,version? - Exemplo: "Mostre-me como usar axios" → detecta npm
- Argumentos:
Versões e Dependências:
-
smart_get_versions- Listar versões do pacote- Argumentos:
packageName,context?,limit?,since? - Exemplo: "Mostrar versões de tokio" → detecta Crates.io
- Argumentos:
-
smart_get_dependencies- Obter dependências do pacote- Argumentos:
packageName,context?,version? - Exemplo: "Do que o express depende?" → detecta npm
- Argumentos:
Downloads:
smart_get_downloads- Obter estatísticas de download- Argumentos:
packageName,context?,period? - Exemplo: "Quantos downloads o flask tem?" → detecta PyPI
- Argumentos:
Comparação:
compare_packages- Comparar pacotes entre ecossistemas- Argumentos:
items[]com objetos{ecosystem, name} - Exemplo: Comparar axios (npm), requests (PyPI), httparty (RubyGems)
- Argumentos:
Exemplos de consultas de uso
O PackageLens MCP suporta dois estilos de consulta: consultas inteligentes (detecção automática) e consultas específicas (ecossistema explícito). Uma vez que um ecossistema é detectado, use o mesmo ecossistema para consultas de acompanhamento para manter a consistência.
🌟 Consultas Inteligentes (Detecção Automática)
Pesquisa inicial com contexto de linguagem:
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"
Pesquisa inicial no diretório do projeto:
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"
Pesquisas de acompanhamento (mantendo consistência):
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
Informações do pacote com detecção 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
Exemplos 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
Versões e dependências:
What versions of react are available?
→ Detects npm, lists recent versions
What does express depend on?
→ Detects npm, shows dependency tree
Downloads:
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
Comparação entre ecossistemas (intenção 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 (Ecossistema Explícito)
Use estas quando precisar de controle preciso ou quiser substituir a detecção automática:
Pesquisa com ecossistema explícito:
Search npm for React debounce hooks
→ Uses npm regardless of project type
Search crates for tokio alternatives
→ Uses Crates.io regardless of project type
Mantendo consistência com 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)
Alternando ecossistemas (quando necessário):
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 pacotes:
Get info for @types/node from npm
→ Scoped package, explicitly npm
Show README for symfony/console from packagist
→ Vendor/package format, explicitly Packagist
Consultas avançadas de dependências:
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
💡 Melhores Práticas
- Primeira consulta: Use contexto de linguagem ("Python", "Rust") ou deixe a detecção de código funcionar
- Consultas de acompanhamento: Use o parâmetro
ecosystemda primeira resposta - Comparações: Compare entre ecossistemas apenas quando estiver explicitamente comparando alternativas
- Pacotes específicos: Nomes de pacotes conhecidos são detectados automaticamente de forma confiável (react → npm, django → PyPI)
Licença e Contribuição
O PackageLens MCP é licenciado sob MIT. Contribuições são bem-vindas! Por favor, veja CONTRIBUTING.md para diretrizes.
Encontrou um bug ou tem uma solicitação de recurso? Abra uma issue no GitHub.
Feito com ❤️ para a comunidade de codificação vibe. Boa codificação!