mcpField
C
c2pa-watermark-mcp

c2pa-watermark-mcp

ローカル
github.com/CSOAI-ORGセキュリティ020 週間前に更新

c2pa-watermark-mcp について

c2pa-watermark-mcpは、デジタルアセットにC2PAマニフェストを付与し、検証するMCPサーバーです。`c2pa-python`を利用し、ネイティブ依存関係が使えない環境向けにHMAC-SHA256の代替方式も備えています。

主な機能

  1. 01アセットへのC2PAマニフェスト付与
  2. 02アセットの来歴検証
  3. 03AI生成アサーションの自動追加
  4. 04HMAC-SHA256の代替方式
  5. 05オプションのX.509チェーン

活用シーン

  1. 01AI生成アセットへの表示
  2. 02マニフェストとアセットバイト列の照合

MCP 対応

アセットの署名、来歴検証、サーバー機能の確認に使う`sign_asset`、`verify_asset`、`status`ツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"csoai-org-c2pa-watermark": {
"command": "uvx",
"args": [
"c2pa-watermark-mcp"
]
}
}
}
起動コマンドuvx c2pa-watermark-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypic2pa-watermark-mcp0.1.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

c2pa-watermark-mcp

C2PA Content Credentials MCP サーバー — AI 生成アセットの機械可読な来歴情報を埋め込み、検証します。**EU AI Act 第50条の期限(2026年12月2日)**に先立ち対応できます。

開発の背景

EU AI Act 第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フォールバックも含まれています。

機能

  • MCP ツール3個 — sign_asset、verify_asset、status
  • EU AI Act 第50条に対応 — c2pa.ai_generated アサーションを自動挿入
  • 純粋な標準ライブラリによるフォールバック — c2pa-pythonのネイティブ依存関係なしで動作
  • HMAC-SHA256署名 — 改ざんを検知できるマニフェスト
  • オプションのX.509チェーン — c2pa-python[evm] extra経由
  • 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 第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_KEYとNEW_KEYの両方を設定してデプロイします。すべてのマニフェストにNEW_KEYで再署名した後、有効期限が切れたらOLD_KEYを削除してください。このパッケージは、コンストラクター引数のsigning_keyを使ったキーのローテーションに対応しています。

Q: 本番環境で使用できますか? A: 改ざん検知(HMAC)については使用できます。完全なX.509 C2PAチェーンと暗号学的な否認防止が必要な場合は、c2pa-python ≥ 0.9.0をインストールしてください。

ライセンス

MIT © MEOK AI Labs / CSOAI-ORG

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。