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 Logo

PackageLens MCP

npm version CI npm downloads TypeScript Node MCP Tests Coverage Lint License

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:

EcossistemaPesquisaREADMEVersõesDependênciasDownloads
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@latest garante 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.md para todos os detalhes técnicos.
  • Veja CONTRIBUTING.md para 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:

  1. Palavras-chave da consulta - Detecta menções a linguagens (Python, Rust, JavaScript, etc.)
  2. Análise do código - Verifica o diretório atual em busca de arquivos de pacotes (package.json → npm, Cargo.toml → Crates.io, etc.)
  3. 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
  • smart_get_readme - Buscar README do pacote

    • Argumentos: packageName, ecosystem?, context?, version?, truncateAt?
    • Exemplo: "Obter README para django" → detecta PyPI
  • smart_get_usage_snippet - Extrair exemplos de código do README

    • Argumentos: packageName, ecosystem?, context?, version?
    • Exemplo: "Mostre-me como usar axios" → detecta npm

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
  • smart_get_dependencies - Obter dependências do pacote

    • Argumentos: packageName, context?, version?
    • Exemplo: "Do que o express depende?" → detecta npm

Downloads:

  • smart_get_downloads - Obter estatísticas de download
    • Argumentos: packageName, context?, period?
    • Exemplo: "Quantos downloads o flask tem?" → detecta PyPI

Comparação:

  • compare_packages - Comparar pacotes entre ecossistemas
    • Argumentos: items[] com objetos {ecosystem, name}
    • Exemplo: Comparar axios (npm), requests (PyPI), httparty (RubyGems)

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

  1. Primeira consulta: Use contexto de linguagem ("Python", "Rust") ou deixe a detecção de código funcionar
  2. Consultas de acompanhamento: Use o parâmetro ecosystem da primeira resposta
  3. Comparações: Compare entre ecossistemas apenas quando estiver explicitamente comparando alternativas
  4. 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!