TaskBounty Check
MCP local, CLI y Acción de GitHub que verifica riesgos de mantenimiento de GitHub Actions y CI sin modificar código ni realizar solicitudes salientes por defecto.
Documentación
taskbounty-check
Una verificación local para el mantenimiento e higiene de GitHub Actions y CI (fijación de acciones de terceros, permisos de tokens de flujos de trabajo y automatización de actualizaciones), creada para aplicaciones publicadas con Lovable, Bolt, Replit, Cursor o v0.
Local por defecto. Sin cargas. Sin telemetría. Solo lee tus archivos de flujo de trabajo, en tu máquina.
La ruta de código predeterminada no realiza solicitudes de red salientes, escribe su informe localmente y no envía
nada a ningún lugar. No hay análisis ni comunicación con el hogar de ningún tipo. Solo el modo opt-in --gh-org
usa la red (a través de tu propia sesión de gh).
Funciona con Cursor, Claude Code y Codex (servidor MCP local, abajo).
Tres formas de usarlo
1. GitHub Action — agrega una verificación de mantenimiento a CI que escribe un resumen en la ejecución (sin comentarios en PR, sin carga de código fuente):
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- run: npx taskbounty-check@0.1.6 . --github-summary --no-network
¿Quieres que un humano interprete o corrija lo que la Action detecta? Solicita una revisión gratuita de seguridad de lanzamiento. TaskBounty no obtiene acceso a tu repositorio, código fuente o flujos de trabajo a menos que envíes ese formulario.
2. Agente / MCP — un servidor stdio local para Cursor, Claude Code y Codex:
npx -y taskbounty-check@0.1.6 mcp
3. CLI de una sola vez — escanea el repositorio actual localmente y escribe un informe:
npx -y taskbounty-check@0.1.6 .
Fija una versión (
@0.1.6) en la configuración confirmada y en CI para reproducibilidad.@latestes conveniente para una ejecución rápida, pero una versión fijada es la opción reproducible.
El resumen del trabajo de GitHub
La Action escribe un resumen de mantenimiento solo con conteos en la ejecución del flujo de trabajo (categorías y próximos pasos, sin nombres de archivos, números de línea ni código fuente del repositorio). A continuación se muestra ese resumen exacto, renderizado desde la salida de CI de este propio repositorio:

Míralo producido en vivo por el trabajo de autoverificación en las ejecuciones de Actions de este repositorio.
¿Prefieres un recorrido guiado? Sigue el inicio rápido de cinco minutos con un repositorio real.
Aprende más
- Metodología — exactamente qué revisa y cómo se etiquetan los hallazgos.
- Privacidad y alcance — manejo de datos local por defecto.
- Limitaciones — qué NO verifica (abajo).
Verificaciones compatibles (y limitaciones honestas)
Verificaciones (mantenimiento e higiene de GitHub Actions + CI):
- Acciones de terceros fijadas a una etiqueta/rama móvil en lugar de un SHA de commit
- Permisos amplios (write-all) de tokens de flujos de trabajo
- Bloque explícito de
permissions:faltante - Presencia de automatización de actualizaciones (Dependabot/Renovate)
- Patrones de flujo de trabajo dependientes del contexto marcados para revisión privada (p. ej.,
pull_request_target, inyección de scripts)
NO verifica (esto requiere revisión manual): secretos expuestos, autenticación/autorización, pagos, webhooks, comportamiento en tiempo de ejecución. Es una verificación de mantenimiento/higiene, no una auditoría de seguridad completa ni una prueba de penetración.
Qué hace
- Lee solo tus archivos de flujo de trabajo de GitHub Actions y la configuración de automatización de actualizaciones, los escanea en proceso con un conjunto de reglas determinista (las mismas reglas que el verificador público) y escribe un informe local en HTML + JSON. No ejecuta flujos de trabajo, instala dependencias ni ejecuta ningún código del repositorio.
Modos
| Modo | Comando | Red |
|---|---|---|
| Repositorio único | npx taskbounty-check . | ninguna |
| Directorio de repositorios | npx taskbounty-check ./all-repos | ninguna |
| Rutas explícitas | npx taskbounty-check --manifest repos.json | ninguna |
Organización de GitHub (tu sesión de gh) | npx taskbounty-check --gh-org <org> | sí, opt-in |
--gh-org usa tu sesión existente de CLI de gh para obtener los archivos de flujo de trabajo de cada repositorio a esta
máquina (solo lectura). Tu token de GitHub nunca es leído por esta herramienta ni enviado a TaskBounty.
Qué se lee, escribe y transmite
Ejecuta --explain-data para imprimir esto en cualquier momento.
- Lee (lista blanca — nada más se abre):
<repo>/.github/workflows/*.yml|*.yamly configuración de automatización de actualizaciones (dependabot.yml/renovate.json*). Nunca archivos fuente,.env, secretos, claves SSH, almacenes de credenciales ni nada fuera de las raíces del repositorio seleccionado. Los enlaces simbólicos que escapan de una raíz se omiten, nunca se siguen. - Escribe (solo local):
<out>.json(detalle completo) y<out>.html. - Transmite: nada por defecto.
--shareno carga nada — escribe un archivo saneado, solo con conteos (id de escaneo, etiqueta, conteos de candidatos por categoría, conteo de revisión privada, versión del escáner, marcas de tiempo; nombres de repositorios solo con--include-repo-names) para que lo envíes manualmente. La red permanece apagada bajo--share. Solo--gh-orgusa la red intencionalmente.
Banderas
--share · --gh-org <org> · --manifest <file> · --org-label <label> ·
--include-repo-names · --dry-run · --explain-data · --delete-local-report ·
--no-network (predeterminado en todos lados excepto --gh-org) · --out <basename> · --version · --help
¿Necesitas ayuda para interpretar o corregir estos resultados?
Solicita una revisión gratuita de seguridad de lanzamiento de 20 minutos: https://www.task-bounty.com/ai-app-security-check/review?utm_source=npm&utm_medium=npm_readme&utm_campaign=workflow_security
TaskBounty no recibe nada a menos que envíes ese formulario. El escaneo se ejecuta localmente y el informe completo permanece en tu máquina; el formulario de revisión no nos da acceso a tus repositorios, código fuente, flujos de trabajo ni secretos.
GitHub Code Scanning (SARIF)
Emite SARIF 2.1.0 y muestra los hallazgos en la pestaña Security → Code scanning de tu repositorio:
npx taskbounty-check@latest . --format sarif --output taskbounty.sarif
El SARIF lleva identificadores de reglas deterministas (taskbounty/<rule>), niveles de severidad y referencias de archivo/línea —
sin contenidos de código fuente, secretos ni valores de entorno, y sin acceso a la red.
Los hallazgos confirmados se emiten como kind: fail; los elementos de menor confianza como kind: review.
Ayuda para interpretar resultados SARIF: https://www.task-bounty.com/ai-app-security-check/review?utm_source=github&utm_medium=sarif_docs&utm_campaign=workflow_security
Súbelo con la acción oficial (ejemplo completo en examples/code-scanning.yml):
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@v4
- run: npx taskbounty-check@0.1.6 . --format sarif --output taskbounty.sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: taskbounty.sarif
Agente local (MCP)
Ejecuta un servidor MCP stdio local para que Codex, Claude Code o Cursor puedan escanear y razonar sobre los hallazgos
en tu editor. Se ejecuta localmente, hace cero solicitudes de red salientes, no carga código fuente y
nunca modifica archivos — generate_fix_plan devuelve un plan como texto para que lo apliques tú mismo.
npx taskbounty-check@latest mcp
Herramientas: scan_repo (resumen de escaneo local), explain_finding (explicación en lenguaje sencillo), generate_fix_plan (plan de corrección en texto).
¿Quieres que un humano revise el plan? https://www.task-bounty.com/ai-app-security-check/review?utm_source=mcp&utm_medium=mcp_docs&utm_campaign=workflow_security
Cursor — .cursor/mcp.json:
{ "mcpServers": { "taskbounty-check": { "command": "npx", "args": ["-y", "taskbounty-check@latest", "mcp"] } } }
Claude Code:
claude mcp add taskbounty-check -- npx -y taskbounty-check@latest mcp
Codex — en ~/.codex/config.toml:
[mcp_servers.taskbounty-check]
command = "npx"
args = ["-y", "taskbounty-check@latest", "mcp"]
Seguridad
Cero dependencias en tiempo de ejecución. Publicado en npm con procedencia (verifica en la página npm del paquete). La ejecución predeterminada no hace solicitudes salientes y no carga nada; consulta la metodología para conocer los límites completos de manejo de datos y alcance.