Skip to main content
Glama
piiiico

proof-of-commitment

Proof of Commitment

별점은 거짓말을 합니다. 행동 신호는 그렇지 않습니다.

별점, README, 다운로드 수보다 위조하기 어려운 행동적 헌신(behavioral commitment) 신호를 기반으로 npm 패키지, PyPI 패키지 및 GitHub 저장소의 점수를 매기는 MCP 서버이자 웹 도구입니다.

공급망 문제

일반적인 Node.js 프로젝트에서 다음 세 가지 패키지는 현재 매우 중요(CRITICAL)합니다:

  • chalk — 주당 3억 9,900만 다운로드, 유지보수자 1명

  • zod — 주당 1억 3,900만 다운로드, 유지보수자 1명

  • axios — 주당 9,600만 다운로드, 유지보수자 1명 (2026년 4월 1일 공격 발생)

별점이나 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 또는 MCP 호환 AI 도구에 추가하세요. 그런 다음 다음과 같이 질문하세요:

"내 package.json의 공급망 위험을 감사해 줘" "axios, zod, chalk, lodash의 점수를 매겨줘 — 가장 위험한 것은 무엇인가?" "vercel/ai는 활발하게 유지보수되고 있는가?"

GitHub Action

모든 CI 파이프라인에 공급망 감사를 추가하세요. package.json 또는 requirements.txt에서 패키지를 자동 감지하고, 결과를 PR 댓글로 게시하며, GitHub Step Summary에 기록하고, 선택적으로 CRITICAL 패키지 발견 시 실패하도록 설정할 수 있습니다.

# .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(기본값)로 설정하면, 액션이 자동으로 감사 표를 PR 댓글로 게시합니다. 재실행 시 동일한 댓글을 업데이트하므로 댓글 스팸이 발생하지 않습니다. 검토자는 PR을 떠나지 않고도 위험 표를 확인할 수 있습니다.

입력값:

입력

기본값

설명

packages

(자동)

쉼표로 구분된 패키지 이름 (설정되지 않은 경우 package.json/requirements.txt에서 자동 감지)

fail-on-critical

true

CRITICAL 패키지 발견 시 워크플로우 실패 처리

max-packages

20

자동 감지 시 감사할 최대 패키지 수

comment-on-pr

true

감사 결과를 PR 댓글로 게시 (pull-requests: write 권한 필요)

출력값: has-critical, critical-count, audit-summary (마크다운 표, 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) · 🔴 CRITICAL (유지보수자 1명 + 주당 1,000만 다운로드 초과)

배지는 Cloudflare 엣지에서 5분간 캐시됩니다. 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 — 단일 유지보수자 + 주당 1,000만 다운로드 초과 (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년 3월)과 axios 공격(2026년 4월)은 동일한 패턴을 따랐습니다: 자격 증명 탈취 → 악성 패키지 배포 → 9,700만 대 이상의 기기 노출. 두 패키지 모두 공격 이전에 이러한 지표에 의해 CRITICAL 점수를 받았습니다.

선언적 신호(별점, 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

더 넓은 비전

공급망 감사는 첫 번째 도구일 뿐입니다. 근본적인 원리는 **헌신 그래프(commitment graph)**입니다. 이는 모든 도메인에서 콘텐츠 기반의 신뢰를 대체하는 행동 신호입니다.

콘텐츠(리뷰, 별점, README)를 위조하기 쉬운 세상에서, 헌신은 신뢰의 신호가 됩니다. 12년 동안 847번의 릴리스를 수행한 유지보수자의 헌신은 2023년에 한 번 게시한 사람의 헌신과는 차원이 다릅니다.

동일한 논리가 웹사이트, 기업, AI 에이전트에도 적용됩니다. 두 개의 카드 네트워크가 독립적으로 이 격차를 지적했습니다: 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