Skip to main content
Glama
piiiico

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 requests

Demo 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 PR

Cuando 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

packages

(auto)

Nombres de paquetes separados por comas (detectados automáticamente desde package.json/requirements.txt si no se establecen)

fail-on-critical

true

Falla el flujo de trabajo si se encuentran paquetes CRÍTICOS

max-packages

20

Máximo de paquetes a auditar al detectar automáticamente

comment-on-pr

true

Publica los resultados de la auditoría como un comentario en el PR (requiere permiso pull-requests: write)

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:

![commit score](https://poc-backend.amdal-dev.workers.dev/api/badge/npm/YOUR-PACKAGE)

Ejemplos:

Paquete

URL de la insignia

axios

![commit](https://poc-backend.amdal-dev.workers.dev/api/badge/npm/axios)

zod

![commit](https://poc-backend.amdal-dev.workers.dev/api/badge/npm/zod)

litellm

![commit](https://poc-backend.amdal-dev.workers.dev/api/badge/pypi/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

audit_dependencies

Auditoría de riesgo por lotes para hasta 20 paquetes npm/PyPI

lookup_npm_package

Perfil de comportamiento de un solo paquete npm

lookup_pypi_package

Perfil de comportamiento de un solo paquete PyPI

lookup_github_repo

Puntuación de compromiso de repositorio de GitHub (longevidad, frecuencia de confirmación, profundidad de colaboradores)

lookup_business

Registro mercantil noruego: años de operación, empleados, finanzas

lookup_business_by_org

Lo mismo, por número de organización

query_commitment

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ápida

  • ADVERTENCIA — 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-commitment

Stack

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.

getcommit.dev

Ejecutar localmente

bun install
bun run dev:backend     # local server with SQLite
bun run test:e2e        # E2E test with mock World ID

Desplegar:

bun run deploy          # deploys to Cloudflare Workers
-
security - not tested
F
license - not found
-
quality - not tested

Latest 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