proof-of-commitment
Prueba de Compromiso
Las estrellas mienten. Las señales de comportamiento no.
Un servidor MCP y una herramienta web que puntúan paquetes de npm, PyPI y repositorios de GitHub según su compromiso de comportamiento: señales que son más difíciles de falsificar que las estrellas, los archivos README o el número de descargas.
El problema de la cadena de suministro
Tres paquetes en un proyecto típico de Node.js son CRÍTICOS en este momento:
chalk — 399M de descargas/semana, 1 mantenedor
zod — 139M de descargas/semana, 1 mantenedor
axios — 96M de descargas/semana, 1 mantenedor (atacado el 1 de abril de 2026)
Las estrellas y la calidad del README no revelan esto. Las señales de comportamiento sí.
Pruébalo ahora
Terminal (sin instalación):
npx proof-of-commitment axios zod chalk
# or scan your own project:
npx proof-of-commitment --file package.json
# PyPI too:
npx proof-of-commitment --pypi litellm langchain requestsDemo web (sin instalación): getcommit.dev/audit — pega tus paquetes y obtén puntuaciones de riesgo en segundos.
Servidor MCP (sin instalación):
{
"mcpServers": {
"proof-of-commitment": {
"type": "streamable-http",
"url": "https://poc-backend.amdal-dev.workers.dev/mcp"
}
}
}Agrégalo a Claude Desktop, Cursor, Windsurf o cualquier herramienta de IA compatible con MCP. Luego pregunta:
"Audita mi package.json en busca de riesgos en la cadena de suministro" "Puntúa axios, zod, chalk, lodash: ¿cuál tiene mayor riesgo?" "¿Está vercel/ai mantenido activamente?"
GitHub Action
Agrega auditoría de la cadena de suministro a cualquier pipeline de CI: detecta automáticamente paquetes desde package.json o requirements.txt, publica los resultados como un comentario en el PR, escribe en el Resumen de Pasos de GitHub y, opcionalmente, falla en paquetes CRÍTICOS.
# .github/workflows/supply-chain-audit.yml
name: Supply Chain Audit
on: [push, pull_request]
jobs:
audit:
runs-on: ubuntu-latest
permissions:
pull-requests: write # needed for PR comments
steps:
- uses: actions/checkout@v4
- uses: piiiico/proof-of-commitment@main
with:
fail-on-critical: false # set true to block merges
comment-on-pr: true # posts audit table directly on the PRCuando comment-on-pr: true (predeterminado), la acción publica automáticamente la tabla de auditoría como un comentario en la solicitud de extracción (pull request) y actualiza el mismo comentario al volver a ejecutarse, para que no recibas spam de comentarios. Los revisores ven la tabla de riesgos sin salir del PR.
Entradas:
Entrada | Predeterminado | Descripción |
| (auto) | Nombres de paquetes separados por comas (detectados automáticamente desde |
|
| Falla el flujo de trabajo si se encuentran paquetes CRÍTICOS |
|
| Máximo de paquetes a auditar al detectar automáticamente |
|
| Publica los resultados de la auditoría como un comentario en el PR (requiere permiso |
Salidas: has-critical, critical-count, audit-summary (tabla markdown, también escrita en el Resumen de Pasos).
Ejemplo de comentario en PR / salida del Resumen de Pasos:
| Package | Risk | Score | Maintainers | Downloads/wk | Age |
|---------|-------------|-------|-------------|--------------|-------|
| chalk | 🔴 CRITICAL | 75 | 1 | 380M | 12.7y |
| zod | 🔴 CRITICAL | 83 | 1 | 133M | 6.1y |
| axios | 🔴 CRITICAL | 89 | 1 | 93M | 11.6y |Insignias de README
Agrega una insignia de puntuación de compromiso a cualquier paquete que mantengas o del que dependas:
Ejemplos:
Paquete | URL de la insignia |
axios |
|
zod |
|
litellm |
|
Colores: 🟢 saludable (75+) · 🟡 bueno (60–74) · 🟡 moderado (40–59) · 🟠 alto riesgo (<40) · 🔴 CRÍTICO (un solo mantenedor + >10M de descargas/semana)
Las insignias se almacenan en caché durante 5 minutos en el borde de Cloudflare. No se necesita clave de API.
API REST
Sin clave de API. Sin instalación.
curl https://poc-backend.amdal-dev.workers.dev/api/audit \
-X POST \
-H "Content-Type: application/json" \
-d '{"packages": ["axios", "zod", "chalk", "lodash", "express"]}'{
"count": 5,
"results": [
{
"name": "chalk",
"ecosystem": "npm",
"score": 75,
"maintainers": 1,
"weeklyDownloads": 398397580,
"ageYears": 12.7,
"trend": "stable",
"riskFlags": ["CRITICAL"]
},
...
]
}7 herramientas MCP
Herramienta | Descripción |
| Auditoría de riesgo por lotes para hasta 20 paquetes npm/PyPI |
| Perfil de comportamiento de un solo paquete npm |
| Perfil de comportamiento de un solo paquete PyPI |
| Puntuación de compromiso de repositorio de GitHub (longevidad, frecuencia de confirmación, profundidad de colaboradores) |
| Registro mercantil noruego: años de operación, empleados, finanzas |
| Lo mismo, por número de organización |
| Datos de comportamiento de la extensión del navegador (visitantes verificados únicos, tasa de repetición) |
Qué mide la puntuación
Cada paquete se puntúa de 0 a 100 en:
Longevidad — ¿Cuánto tiempo ha existido el paquete? Los paquetes abandonados se reactivan para ataques.
Profundidad del mantenedor — Un solo mantenedor + millones de descargas semanales = la superficie de ataque que LiteLLM explotó.
Consistencia de lanzamiento — Los lanzamientos regulares señalan una supervisión activa. Largos intervalos = acumulación de vulnerabilidades.
Tendencia de descargas — Los paquetes en crecimiento atraen más escrutinio (y ataques). Estable = perfil más bajo.
Indicadores de riesgo:
CRÍTICO— un solo mantenedor + >10M de descargas semanales (perfil exacto de ataque de LiteLLM/axios)ALTO— paquete <1 año de antigüedad + adopción rápidaADVERTENCIA— sin lanzamientos en más de 12 meses
Puntos de datos reales
chalk — score 75, 1 maintainer, 399M/week ⚑ CRITICAL
zod — score 83, 1 maintainer, 139M/week ⚑ CRITICAL
axios — score 89, 1 maintainer, 96M/week ⚑ CRITICAL (attacked Apr 1 2026)
lodash — score 88, 3 maintainers, 68M/week
express — score 91, 5 maintainers, 35M/week
litellm — score 74, 1 maintainer ⚑ CRITICAL (supply chain attack Mar 2026)Por qué señales de comportamiento
El ataque a LiteLLM (marzo de 2026) y el ataque a axios (abril de 2026) siguieron el mismo patrón: credenciales robadas → paquete malicioso enviado → más de 97M de máquinas expuestas. Ambos paquetes fueron calificados como CRÍTICOS por estas métricas antes de los ataques.
Las señales declarativas (estrellas, calidad del README, insignias de CI) no capturan este riesgo. El compromiso de comportamiento sí.
Listado en el registro oficial de MCP
registry.modelcontextprotocol.io → io.github.piiiico/proof-of-commitmentStack
Capa | Tecnología |
Backend | Cloudflare Workers + D1 |
MCP | SDK del Protocolo de Contexto de Modelo |
Datos | registro npm, PyPI, API de GitHub, Brønnøysund (NO) |
Landing | Astro + Cloudflare Pages |
La visión más amplia
La auditoría de la cadena de suministro es la primera herramienta. La primitiva subyacente es un grafo de compromiso: señales de comportamiento que reemplazan la confianza basada en el contenido en cualquier dominio.
Cuando el contenido es fácil de falsificar (reseñas, estrellas, READMEs), el compromiso se convierte en la señal. Un mantenedor que ha realizado 847 lanzamientos durante 12 años es un tipo de compromiso diferente al de alguien que publicó una vez en 2023.
La misma lógica se aplica a sitios web, empresas y agentes de IA. Dos redes de tarjetas han nombrado independientemente esta brecha: Mastercard Verifiable Intent §9.2 enumera explícitamente la confianza conductual como "no cubierta". Visa TAP identifica agentes sin responder si se debe confiar en ellos.
La Prueba de Compromiso es la capa de confianza a la que apuntan.
Ejecutar localmente
bun install
bun run dev:backend # local server with SQLite
bun run test:e2e # E2E test with mock World IDDesplegar:
bun run deploy # deploys to Cloudflare WorkersLatest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/piiiico/proof-of-commitment'
If you have feedback or need assistance with the MCP directory API, please join our Discord server