Skip to main content
Glama
CSOAI-ORG

c2pa-watermark-mcp

c2pa-watermark-mcp

C2PA Content Credentials MCP サーバー — AI生成アセットの機械可読な来歴(provenance)を埋め込み・検証するためのもので、EU AI Act Article 50 の期限(2026年12月2日) を見据えています。

なぜこれが必要か

EU AI Act Article 50(Regulation (EU) 2024/1689)は、AI生成コンテンツが機械可読かつAI生成として検出可能であることを要求しています。c2pa.ai_generated アサーションは、C2PA仕様がこれを実現する方法として定めたものです。

期限は2026年12月2日 — 約6か月後です。C2PAに対応していないユーザー向け生成ツールを提供する企業は、最大**€35Mまたは世界売上高の7%**の罰金に直面します。

このMCPは、公式の c2pa-python SDK(≥0.9.0)をMCPサーバーとしてラップし、エージェントが生成時にC2PAマニフェストを添付し、実行時に来歴を検証できるようにします。c2pa-pythonのネイティブ依存関係がインストールできない環境(Vercelサーバーレス、CIサンドボックスなど)向けに、純粋な標準ライブラリによるHMACフォールバックも含まれています。

Related MCP server: mtl-c2pa-mcp

特徴

  • 3つのMCPツールsign_assetverify_assetstatus

  • EU AI Act Article 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 Act Article 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チェーン+暗号学的否認防止が必要な場合は、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