Skip to main content
Glama
CSOAI-ORG

c2pa-watermark-mcp

c2pa-watermark-mcp

C2PA 콘텐츠 자격 증명(Content Credentials) MCP 서버 — **EU AI 법 제50조 마감(2026년 12월 2일)**을 앞두고 AI 생성 자산에 대한 기계 판독 가능한 출처(provenance)를 삽입하고 검증합니다.

왜 필요한가

EU AI 법 제50조(규정 (EU) 2024/1689)는 AI 생성 콘텐츠가 기계 판독 가능하고 AI 생성임을 감지 가능해야 한다고 요구합니다. c2pa.ai_generated 어서션(assertion)은 C2PA 사양이 이를 수행하도록 규정한 방식입니다.

마감일은 2026년 12월 2일 — 약 6개월 남았습니다. C2PA 지원 없이 사용자 대상 생성 도구를 출시하는 기업은 최대 **€3,500만 또는 글로벌 매출의 7%**에 달하는 벌금에 직면합니다.

이 MCP는 공식 c2pa-python SDK(≥0.9.0)를 MCP 서버로 래핑하여 에이전트가 생성 시점에 C2PA 매니페스트를 첨부하고 런타임에 출처를 검증할 수 있게 합니다. c2pa-python의 네이티브 의존성을 설치할 수 없는 환경(Vercel 서버리스, CI 샌드박스 등)을 위해 순수 표준 라이브러리 HMAC 폴백(fallback)도 포함되어 있습니다.

Related MCP server: mtl-c2pa-mcp

기능

  • MCP 도구 3개sign_asset, verify_asset, status

  • EU AI 법 제50조 대비c2pa.ai_generated 어서션 자동 주입

  • 순수 표준 라이브러리 폴백 — c2pa-python의 네이티브 의존성 없이 동작

  • HMAC-SHA256 서명 — 변조 감지 가능한 매니페스트

  • 선택적 X.509 체인c2pa-python[evm] 엑스트라를 통해

  • Vercel 배포 가능c2pa-watermark-vercel 자매 저장소 참조

도구

도구

용도

등급

sign_asset

자산에 C2PA 매니페스트를 HMAC 서명과 함께 삽입

Pro

verify_asset

자산 바이트에 대한 매니페스트 검증

Free

status

서버 상태 및 네이티브 SDK 가용성 보고

Free

설치

# Core (HMAC fallback, no native deps)
pip install c2pa-watermark-mcp

# With full c2pa-python (X.509 chain)
pip install 'c2pa-watermark-mcp[c2pa]'

# For local development
git clone https://github.com/CSOAI-ORG/c2pa-watermark-mcp
cd c2pa-watermark-mcp
pip install -e .[dev]

사용법

자산 서명 (Pro 등급)

from c2pa_watermark_mcp import sign_asset, verify_asset, status

# Server health
print(status())
# → {'server': 'c2pa-watermark-mcp', 'c2pa_python_available': False, ...}

# Sign an asset
with open("output.png", "rb") as f:
    asset = f.read()
key = b"my-hmac-key-32-bytes-long-aaaaaa"
result = sign_asset(
    asset_bytes=asset,
    asset_mime="image/png",
    claim_generator="MEOK-SDXL/1.0",
    signing_key=key,
    ai_generated=True,
    assertions=[
        {"label": "c2pa.training", "value": {"model": "sdxl-1.0", "dataset": "internal"}},
    ],
)
print(result["manifest_id"])

# Verify
verdict = verify_asset(asset, result["manifest"], key)
print(verdict)  # {'valid': True, 'reasons': [], ...}

MCP 서버로 실행 (stdio)

c2pa-watermark-mcp
# or with full c2pa-python
pip install 'c2pa-watermark-mcp[c2pa]'
c2pa-watermark-mcp

Docker로 실행

docker build -t c2pa-watermark-mcp .
docker compose up -d
# status endpoint on http://localhost:8000

Vercel 배포

서버리스 래퍼로 /sign, /verify, /status 라우트를 노출하는 자매 저장소 c2pa-watermark-vercel을 참조하세요.

아키텍처

┌─────────────────────────────────────────────────────────────┐
│                c2pa-watermark-mcp                            │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │ sign_asset  │  │verify_asset │  │   status    │         │
│  │  (HMAC +    │  │  (HMAC +    │  │ (health +   │         │
│  │   c2pa.io)  │  │   tamper)   │  │  capability)│         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│         │                │                │                  │
│         └────────────────┴────────────────┘                  │
│                          │                                   │
│                   ┌──────┴──────┐                           │
│                   │ HMAC-SHA256 │  (always available)       │
│                   │ + c2pa.io  │   (if c2pa-python installed)│
│                   └──────┬──────┘                           │
│                          │                                   │
│  ┌─────────────┐  ┌──────┴──────┐  ┌─────────────┐         │
│  │  manifest   │  │  signing   │  │  AI-Act     │         │
│  │  generator  │  │   keys     │  │ assertions  │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
└─────────────────────────────────────────────────────────────┘

c2pa.ai_generated를 자동 주입하는 이유

C2PA 사양은 이를 AI 생성 콘텐츠를 공개하는 표준 방식으로 정의합니다. EU AI 법 제50조는 AI 콘텐츠가 "기계 판독 가능하고 AI 생성임을 감지 가능"해야 한다고 요구하며, 사양의 답변은 바로 이 어서션입니다. 자동 주입을 생략하면 규정 위반이 발생할 수 있습니다.

FAQ

Q: c2pa-python이 필요한가요? A: 아닙니다. 순수 표준 라이브러리 HMAC-SHA256 폴백은 변조 감지 매니페스트에 완전히 기능합니다. 전체 X.509 체인이 필요할 때만 c2pa-python을 설치하세요.

Q: PNG/JPEG가 아닌 자산도 서명할 수 있나요? A: 네. asset_mime 매개변수는 단지 메타데이터일 뿐이며, HMAC은 바이트 자체에 대해 계산됩니다. 비디오, 오디오, PDF 등에서도 작동합니다.

Q: 서명 키를 어떻게 교체하나요? A: 새 키를 생성하고 OLD_KEYNEW_KEY를 모두 사용하여 배포한 다음, 모든 매니페스트를 NEW_KEY로 다시 서명하고 만료 후 OLD_KEY를 제거하세요. 이 패키지는 signing_key 생성자 인자를 통한 키 교체를 지원합니다.

Q: 프로덕션에 사용할 수 있나요? A: 변조 감지(HMAC) 측면에서는 그렇습니다. 전체 X.509 C2PA 체인 및 암호화 기반 부인 방지(non-repudiation)가 필요하다면 c2pa-python ≥ 0.9.0을 설치하세요.

라이선스

MIT © MEOK AI Labs / CSOAI-ORG

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    -
    quality
    B
    maintenance
    MCP server for compliance automation of AI agents, enabling EU AI Act compliance, verifiable credentials, and decentralized identity management with 47 tools across 9 modules.
    17
    Apache 2.0
  • A
    license
    -
    quality
    D
    maintenance
    MCP server for reading C2PA content provenance manifests from media files, enabling natural language queries about AI-generated content, signatures, and provenance.
    2
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    A hosted remote MCP server for C2PA disclosure policy, enabling AI governance teams to check disclosure policies, validate C2PA status, issue AI media receipts, explain region rules, and export disclosure logs.
    MIT

View all related MCP servers

Related MCP Connectors

  • Remote MCP for C2PA intake verifier MCP, structured receipts, audit logs, and reviewer-ready evidenc

  • Remote MCP for C2PA disclosure policy MCP, structured receipts, audit logs, and reviewer-ready evide

  • MCP server for verifying EUDI/Talao wallet data via OIDC4VP (pull) for AI agents.

View all MCP Connectors

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/CSOAI-ORG/c2pa-watermark-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server