Fossick

Busca en todo GitHub desde tu agente de IA: encuentra librerías, explora repositorios, localiza patrones de código.

Documentación

Fossick

Explora todo GitHub desde tu agente de IA.

Encuentra librerías, descubre gemas, busca patrones de código y lee código de producción real: en más de 200M de repos, PyPI y npm.

PyPI Downloads Tests Last commit MIT License Python 3.11+ MCP Protocol

Install in Cursor Install in VS Code


Contenido


Qué es Fossick

fossick /ˈfɒsɪk/ verbo (australiano/nuevozelandés) — prospectar o buscar gemas, especialmente el tipo de minería a pequeña escala donde se criban lechos de arroyos y relaves antiguos buscando lo que los operadores más grandes pasaron por alto.

Eso es exactamente lo que hace esta herramienta, pero para código.

Fossick le da a tu agente de IA siete herramientas de solo lectura para explorar todo GitHub, PyPI y npm, cubriendo el ciclo completo de descubrimiento de principio a fin:

  1. Busca y descubre. Criba más de 200M de repos con clasificación de relevancia multi-consulta, encuentra las librerías pequeñas pero buenas que las herramientas más grandes entierran, consulta paquetes en PyPI y npm.
  2. Profundiza en cualquier repo sin clonarlo. Navega el árbol de un repo remoto con filtros de profundidad y glob, lee cualquier archivo en cualquier rama/etiqueta/commit, y ve a la definición de cualquier clase, función o tipo — todo en GitHub remoto, sin necesidad de checkout local.
  3. Busca patrones de código en todo GitHub. Búsqueda de texto completo, regex y con cualificadores en todos los archivos públicos — descubre cómo se usa realmente una API en producción, no solo en la documentación.

Útil cada vez que quieras que tu agente acceda al corpus de código más grande del mundo:

  • Elige la librería correcta. Encuentra una opción pequeña, enfocada y mantenida activamente para cualquier tarea — no solo la más popular.
  • Descubre gemas ocultas. Superficie la librería de 500 estrellas que clasifica más alto en relevancia que la de 50,000 estrellas.
  • Profundiza en un repo que encontraste. Recorre su estructura, lee su README, encuentra dónde está definida su API principal — sin git clone.
  • Encuentra patrones de uso en código real. Busca cómo se llama una API en producción y luego lee los archivos coincidentes en contexto.
  • Inspírate. Mira cómo otros estructuraron proyectos similares, qué patrones usaron, qué compensaciones hicieron.
  • Mantente actualizado. Descubre qué está en tendencia, recién lanzado o nuevo en un ecosistema — más allá del corte de entrenamiento de tu modelo.

No hace arqueología de código — git blame, historial de PRs, diffs de versiones. Usa git y gh para eso.


Ejemplos

Una vez que Fossick está conectado, esto es lo que puedes pedirle a tu agente.

Descubre librerías y paquetes

  • "Encuéntrame una librería TUI de Rust pequeña y mantenida activamente — algo más nuevo que ratatui."
  • "¿Qué está usando la gente en lugar de LangChain estos días?"
  • "Muéstrame frameworks web de Python en tendencia lanzados en los últimos 90 días."
  • "¿Cuál es una buena alternativa ligera a Pydantic para validación en tiempo de ejecución?"

Profundiza en un repo específico

  • "Explora la estructura de astral-sh/uv — ¿qué hay en crates/?"
  • "Lee el __init__.py principal de pydantic/pydantic."
  • "¿Dónde está definida la clase Stream en anthropics/anthropic-sdk-python?"
  • "¿Cuál es la última versión de modelcontextprotocol/python-sdk y cuándo se lanzó?"

Encuentra patrones de código en el mundo real

  • "¿Cómo configuran realmente las apps FastAPI de producción el logging estructurado con structlog y asyncio?"
  • "Muéstrame ejemplos reales de tokio::select! usado con cancelación por timeout."
  • "Encuentra Dockerfiles que construyan imágenes Python multi-etapa con uv."
  • "¿Cómo llama la gente al endpoint de streaming de la API de OpenAI desde Go?"

Evalúa una dependencia antes de adoptarla

  • "¿La librería requests sigue mantenida?"
  • "Compara la frescura de httpx vs aiohttp — fechas de último lanzamiento, actividad reciente."
  • "¿Quién usa realmente msgspec? Muéstrame uso real en codebases de producción."
  • "Encuentra el repo de GitHub detrás del paquete PyPI polars y verifica su último lanzamiento."

Instalación

Requisito previo: uv — instala con curl -LsSf https://astral.sh/uv/install.sh | sh. Luego uvx descargará y ejecutará Fossick bajo demanda. Sin necesidad de clonar.

Claude Code

Tres ámbitos de instalación. Elige el que coincida con cómo quieres que Fossick esté disponible — globalmente, compartido con tu equipo, o solo para ti en un proyecto. El flag de ámbito controla dónde se escribe la configuración (ámbitos MCP de Claude Code).

Global (recomendado para uso personal)

Disponible en cada proyecto de tu máquina. Almacenado en ~/.claude.json, privado para tu cuenta de usuario.

claude mcp add fossick --scope user uvx fossick-mcp

Compartido con el equipo (commiteado en git)

Almacenado en .mcp.json en la raíz del proyecto, verificado en control de versiones. Cualquiera que clone el repo obtiene el mismo servidor MCP. Úsalo cuando todo el equipo debería tener Fossick.

claude mcp add fossick --scope project uvx fossick-mcp

Solo este proyecto (predeterminado)

El ámbito local es el predeterminado. Solo habilitado en el proyecto actual, solo para ti. Almacenado en ~/.claude.json bajo la ruta de este proyecto — no commiteado, no compartido con colaboradores.

claude mcp add fossick uvx fossick-mcp

Instalación manual

Si prefieres omitir la CLI, escribe la configuración tú mismo. La forma JSON es la misma independientemente del ámbito — solo cambia el archivo:

  • ~/.claude.json para ámbito de usuario / local
  • .mcp.json (raíz del proyecto) para ámbito de proyecto
{
  "mcpServers": {
    "fossick": {
      "command": "uvx",
      "args": ["fossick-mcp"]
    }
  }
}

Otros clientes

Cursor

Install in Cursor

O agrégalo manualmente a ~/.cursor/mcp.json o .cursor/mcp.json:

{
  "mcpServers": {
    "fossick": {
      "command": "uvx",
      "args": ["fossick-mcp"]
    }
  }
}
VS Code

Install in VS Code

O vía CLI:

code --add-mcp '{"name":"fossick","command":"uvx","args":["fossick-mcp"]}'
Claude Desktop

Edita ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "fossick": {
      "command": "uvx",
      "args": ["fossick-mcp"]
    }
  }
}

Reinicia Claude Desktop después de guardar.

Windsurf

Edita ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "fossick": {
      "command": "uvx",
      "args": ["fossick-mcp"]
    }
  }
}
Cline

Edita cline_mcp_settings.json a través del panel de configuración MCP de la extensión Cline:

{
  "mcpServers": {
    "fossick": {
      "type": "stdio",
      "command": "uvx",
      "args": ["fossick-mcp"]
    }
  }
}
Codex
codex mcp add fossick -- uvx fossick-mcp

O edita ~/.codex/config.toml:

[mcp_servers.fossick]
command = "uvx"
args = ["fossick-mcp"]
Desde el código fuente (desarrollo)
git clone https://github.com/Lipdog/fossick-mcp.git
cd fossick-mcp
uv sync

Luego apunta tu configuración MCP al clon local:

{
  "mcpServers": {
    "fossick": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/fossick-mcp", "fossick-mcp"]
    }
  }
}

Herramientas

Siete herramientas de solo lectura, organizadas por su rol en el flujo de trabajo de descubrimiento.

Encontrar candidatos

HerramientaQué hace
search_reposDescubre repositorios por tema, estrellas, lenguaje, actualidad o tendencia. Pasa múltiples formulaciones de consulta en una sola llamada para mejor recuperación.
search_packagesBúsqueda directa en PyPI o npm por nombre de paquete. Devuelve versión, descripción, enlaces y URL del repo de GitHub.

Evaluar un candidato

HerramientaQué hace
repo_treeExplora la estructura de archivos de un repo con filtros de profundidad y glob.
get_fileLee cualquier archivo en cualquier rama, etiqueta o commit.
find_symbolIr a la definición mediante consultas AST reales — encuentra dónde se declara realmente una clase, función o tipo, no solo coincidencias de subcadenas.
list_tagsVe etiquetas y lanzamientos recientes. La verificación más rápida de "¿sigue mantenido?".

Buscar código en GitHub

HerramientaQué hace
search_codeBúsqueda de texto completo en todos los archivos públicos de GitHub. Soporta repo:, language:, path:, operadores booleanos y regex. Encuentra patrones de uso del mundo real, ejemplos de configuración o cualquier otra cosa en el corpus de código más grande del mundo.

Todas las herramientas son de solo lectura, idempotentes y seguras para auto-aprobar. Cada respuesta termina con pasos siguientes encadenados por pistas para que el agente sepa qué hacer después.


Por qué Fossick

  • Construido para el flujo de trabajo de descubrimiento. Las herramientas siguen la forma natural: encontrar candidato → profundizar → leer la API → ver cómo otros la usan. Las sugerencias de pasos siguientes encadenadas mantienen a tu agente en el camino durante todo el ciclo.
  • Profundiza en cualquier repo público sin clonar. Explora árboles de repos remotos con filtros de profundidad + glob, lee cualquier archivo en cualquier rama/etiqueta/commit, y ejecuta búsqueda de símbolos basada en AST real para ir a la definición de cualquier clase, función o tipo — todo en GitHub remoto.
  • Búsqueda multi-consulta con clasificación inteligente. search_repos acepta una lista de formulaciones en una sola llamada y aplica clasificación de relevancia compuesta que prioriza la coincidencia literal sobre la popularidad bruta — saca a la superficie la gema de 500 estrellas que supera a la de 50,000 estrellas.
  • Eficiente con tokens por diseño. 7 herramientas enfocadas (no 30+), salidas en markdown formateado (no volcados JSON), caché TTL, encadenamiento de pistas que reduce las rondas de razonamiento del agente, y búsqueda multi-consulta que agrupa N solicitudes en 1. Cada descripción de herramienta y respuesta está dimensionada para mantener tu presupuesto de contexto libre para trabajo real.
  • Consciente de límites de tasa. Rastrea los buckets de la API de Búsqueda y Núcleo de GitHub por separado, duerme en agotamiento, reintenta con backoff exponencial.
  • Cero configuración para usuarios de gh. ¿Ya tienes la CLI de GitHub autenticada? Nada que configurar.
  • Se lleva bien con otros. De solo lectura, idempotente, seguro para auto-aprobar. Combina Fossick con github-mcp-server cuando también necesites actuar en tus propios repos (issues, PRs, Actions).

Preguntas frecuentes

¿Necesito un token de GitHub?

Sí — sin uno, alcanzarás el límite no autenticado de 60 solicitudes por hora de GitHub casi de inmediato. El camino más fácil es instalar la CLI de GitHub y ejecutar gh auth login una vez. Fossick recoge tu token automáticamente. No necesitas pasar nada en la configuración MCP.

¿Por qué uvx en lugar de pip install?

uvx ejecuta Fossick en un entorno transitorio y aislado sin contaminar tu Python global. Descarga en el primer uso, almacena en caché para ejecuciones posteriores y se actualiza sin esfuerzo. Tampoco necesitas gestionar un virtualenv ni preocuparte por conflictos de versión de Python. Si prefieres usar pip, pip install fossick-mcp funciona — solo apunta tu cliente MCP al binario fossick-mcp instalado.

¿Fossick usa mi cuota de API de GitHub?

Sí. Cada búsqueda, descarga de archivo y lista de etiquetas cuenta contra los límites de tasa de tu token. Fossick divide las solicitudes en dos buckets — API de Búsqueda (30/min) y API Núcleo (5,000/hora) — y se pausa automáticamente cuando cualquiera está agotado. Para la mayoría de las sesiones de descubrimiento nunca alcanzarás los límites.

¿Funcionará con el cliente MCP X?

Si tu cliente soporta el transporte estándar stdio de MCP, sí. La configuración estándar de uvx fossick-mcp funciona en Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Cline, Codex y la mayoría de los demás. Consulta la sección Instalación para ver fragmentos específicos por cliente.

¿Fossick busca en repositorios privados?

Solo en aquellos a los que tu token de GitHub pueda acceder. Los permisos del token son la única restricción: Fossick no tiene su propia capa de ACL. Si tu token puede leer un repositorio privado, Fossick puede buscarlo; si no, no puede.

¿Por qué no hace git blame / historial de PR / diferencias de versiones?

Es una decisión deliberada de alcance. La arqueología de código (quién cambió qué, por qué, cuándo) es un problema de otra naturaleza y está bien cubierta por git y la CLI de gh. Fossick se mantiene enfocado en el flujo de descubrimiento: encontrar y evaluar, no investigar.

¿Qué tan frescos están los datos?

En vivo desde GitHub en cada solicitud. Fossick almacena en caché los resultados brevemente para evitar saturar la API en llamadas idénticas repetidas, con TTL más largos para contenido fijado a un SHA de commit específico. Cualquier cosa más allá del TTL se obtiene de nuevo.


Configuración

Autenticación

Fossick resuelve un token de GitHub automáticamente:

  1. Variables de entorno GH_TOKEN, GITHUB_TOKEN o GITHUB_PERSONAL_ACCESS_TOKEN
  2. gh auth token de la CLI de GitHub — no se necesita configuración si ya has iniciado sesión

Para pasar un token explícitamente:

{
  "mcpServers": {
    "fossick": {
      "command": "uvx",
      "args": ["fossick-mcp"],
      "env": { "GITHUB_TOKEN": "ghp_your_token_here" }
    }
  }
}

Un token solo necesita acceso de lectura a repositorios públicos (no seleccionar ningún alcance está bien).

Límites de tasa

Fossick rastrea ambos buckets de la API de GitHub y se pausa automáticamente cuando cualquiera de ellos se agota.

BucketLímiteHerramientas
API de búsqueda30 req/minsearch_repos, search_code, find_symbol
API principal5,000 req/hget_file, repo_tree, list_tags
ExternoSin límite de GitHubsearch_packages (accede directamente a PyPI/npm)

Los reintentos usan retroceso exponencial en errores de límite de tasa y errores transitorios. Los resultados se almacenan en caché brevemente para evitar llamadas API redundantes, con TTL más largos para contenido fijado a un SHA de commit específico.


Desarrollo

Requisitos previos

  • Python 3.11+
  • uv

Configuración

git clone https://github.com/Lipdog/fossick-mcp.git
cd fossick-mcp
uv sync

Ejecutar

Inicia el servidor MCP en stdio (para pruebas manuales o configuración local del cliente MCP):

uv run fossick-mcp

Probar

Pruebas unitarias y de registro — sin red, se ejecutan en segundos:

uv run pytest

Pruebas de integración en vivo — acceden a GitHub real contra modelcontextprotocol/python-sdk@v1.14.0 fijado:

uv run pytest -m live

Compilar

uv build

Produce dist/fossick_mcp-<version>.tar.gz y la rueda correspondiente.

Arquitectura

Consulta CLAUDE.md para el recorrido completo de la arquitectura, patrones clave y la receta para agregar nuevas herramientas.


Historial de estrellas

Star History Chart

Licencia

MIT — a buscar sin límite.