Skip to main content
Glama
piiiico

proof-of-commitment

Proof of Commitment

Звезды врут. Поведенческие сигналы — нет.

MCP-сервер и веб-инструмент, который оценивает пакеты npm, PyPI и репозитории GitHub на основе поведенческой приверженности — сигналов, которые сложнее подделать, чем звезды, README или количество скачиваний.

Проблема цепочки поставок

Три пакета в типичном проекте Node.js сейчас находятся в КРИТИЧЕСКОМ состоянии:

  • chalk — 399 млн скачиваний/неделю, 1 мейнтейнер

  • zod — 139 млн скачиваний/неделю, 1 мейнтейнер

  • axios — 96 млн скачиваний/неделю, 1 мейнтейнер (атакован 1 апреля 2026 г.)

Звезды и качество README не показывают этого. Поведенческие сигналы — показывают.

Попробуйте прямо сейчас

Терминал (без установки):

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

Веб-демо (без установки): getcommit.dev/audit — вставьте свои пакеты и получите оценку риска за секунды.

MCP-сервер (без установки):

{
  "mcpServers": {
    "proof-of-commitment": {
      "type": "streamable-http",
      "url": "https://poc-backend.amdal-dev.workers.dev/mcp"
    }
  }
}

Добавьте в Claude Desktop, Cursor, Windsurf или любой другой AI-инструмент с поддержкой MCP. Затем спросите:

"Проверь мой package.json на риски цепочки поставок" "Оцени axios, zod, chalk, lodash — какой из них наиболее рискованный?" "Активно ли поддерживается vercel/ai?"

GitHub Action

Добавьте аудит цепочки поставок в любой CI-конвейер — он автоматически обнаруживает пакеты из package.json или requirements.txt, публикует результаты в виде комментария к PR, записывает их в сводку GitHub Step Summary и при необходимости прерывает выполнение при обнаружении КРИТИЧЕСКИХ пакетов.

# .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

Когда comment-on-pr: true (по умолчанию), действие автоматически публикует таблицу аудита в виде комментария к pull request — и обновляет тот же комментарий при повторном запуске, чтобы не спамить. Ревьюеры видят таблицу рисков, не покидая PR.

Входные данные:

Входной параметр

По умолчанию

Описание

packages

(авто)

Имена пакетов через запятую (автоматически определяются из package.json/requirements.txt, если не заданы)

fail-on-critical

true

Прервать рабочий процесс, если найдены КРИТИЧЕСКИЕ пакеты

max-packages

20

Максимальное количество пакетов для аудита при автоопределении

comment-on-pr

true

Опубликовать результаты аудита в виде комментария к PR (требуется разрешение pull-requests: write)

Выходные данные: has-critical, critical-count, audit-summary (таблица в формате markdown, также записывается в Step Summary).

Пример комментария к PR / вывода Step Summary:

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

Бейджи README

Добавьте бейдж с оценкой приверженности к любому пакету, который вы поддерживаете или используете:

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

Примеры:

Пакет

URL бейджа

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)

Цвета: 🟢 здоровый (75+) · 🟡 хороший (60–74) · 🟡 умеренный (40–59) · 🟠 высокий риск (<40) · 🔴 КРИТИЧЕСКИЙ (один мейнтейнер + >10 млн скачиваний/неделю)

Бейджи кэшируются на 5 минут на edge-серверах Cloudflare. API-ключ не требуется.

REST API

Без API-ключа. Без установки.

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 инструментов MCP

Инструмент

Описание

audit_dependencies

Пакетный аудит рисков для 20 пакетов npm/PyPI

lookup_npm_package

Поведенческий профиль одного пакета npm

lookup_pypi_package

Поведенческий профиль одного пакета PyPI

lookup_github_repo

Оценка приверженности репозитория GitHub (долговечность, частота коммитов, глубина участия контрибьюторов)

lookup_business

Норвежский бизнес-регистр — годы работы, сотрудники, финансовые показатели

lookup_business_by_org

То же самое, по номеру организации

query_commitment

Поведенческие данные расширения браузера (уникальные проверенные посетители, частота повторных посещений)

Что измеряет оценка

Каждый пакет оценивается по шкале 0–100 по следующим критериям:

  • Долговечность — Как долго существует пакет? Заброшенные пакеты часто реактивируются для атак.

  • Глубина поддержки — Один мейнтейнер + миллионы еженедельных скачиваний = поверхность атаки, которую использовал LiteLLM.

  • Стабильность релизов — Регулярные релизы сигнализируют об активном контроле. Длительные перерывы = накопление уязвимостей.

  • Тенденция скачиваний — Растущие пакеты привлекают больше внимания (и атак). Стабильные = менее заметны.

Флаги риска:

  • CRITICAL — один мейнтейнер + >10 млн еженедельных скачиваний (точный профиль атаки LiteLLM/axios)

  • HIGH — пакету <1 года + быстрое внедрение

  • WARN — не было релизов в течение 12+ месяцев

Реальные точки данных

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)

Почему поведенческие сигналы

Атака на LiteLLM (март 2026 г.) и атака на axios (апрель 2026 г.) следовали одному и тому же шаблону: кража учетных данных → публикация вредоносного пакета → заражение 97 млн+ машин. Оба пакета получили оценку КРИТИЧЕСКИЙ по этим метрикам до атак.

Декларативные сигналы (звезды, качество README, CI-бейджи) не фиксируют этот риск. Поведенческая приверженность — фиксирует.

Включено в официальный реестр MCP

registry.modelcontextprotocol.io → io.github.piiiico/proof-of-commitment

Стек

Уровень

Технология

Бэкенд

Cloudflare Workers + D1

MCP

Model Context Protocol SDK

Данные

npm registry, PyPI, GitHub API, Brønnøysund (NO)

Лендинг

Astro + Cloudflare Pages

Более широкое видение

Аудит цепочки поставок — это первый инструмент. Фундаментальный примитив — это граф приверженности — поведенческие сигналы, которые заменяют доверие на основе контента в любой области.

Когда контент легко подделать (отзывы, звезды, README), приверженность становится сигналом. Мейнтейнер, выпустивший 847 релизов за 12 лет, демонстрирует иной уровень приверженности, чем тот, кто опубликовал что-то один раз в 2023 году.

Та же логика применима к веб-сайтам, компаниям и ИИ-агентам. Две карточные сети независимо друг от друга назвали этот пробел: Mastercard Verifiable Intent §9.2 прямо указывает, что поведенческое доверие «не охвачено». Visa TAP идентифицирует агентов, не отвечая на вопрос, стоит ли им доверять.

Proof of Commitment — это уровень доверия, на который они указывают.

getcommit.dev

Запуск локально

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

Развертывание:

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