mcpField
A
ActionProof

ActionProof

ローカル
github.comセキュリティ017 週間前に更新

ActionProof について

ActionProofは、AIエージェントの行動に対して、バックエンドなしでオフライン検証可能な暗号署名付きレシートを作成します。既存のオブザーバビリティツールと併用し、持ち運び可能な改ざん検知証拠を必要とする開発者やチーム向けです。

主な機能

  1. 01Ed25519による行動レシートの署名
  2. 02レシートのオフライン検証
  3. 03SHA-256による機密値のハッシュ化
  4. 04did:keyに基づくエージェントID
  5. 05ツールをラップしてレシートを自動生成
  6. 06TypeScriptとPython間でのレシート共有

活用シーン

  1. 01重要なエージェント行動の検証可能な記録
  2. 02レシートが改ざんされたかの確認
  3. 03値を平文で保存せずに一致を証明
  4. 04エージェントのツール呼び出しへの署名証拠の付加

MCP 対応

MCPサーバーは、行動の証明、レシートの検証、エージェントIDの取得を行うツールを提供します。サーバーはローカルに保存された安定したEd25519 IDを使用します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"burakfenerci5-actionproof": {
"command": "npx",
"args": [
"-y",
"actionproof"
]
}
}
}
起動コマンドnpx -y actionproof

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

パッケージ
npmactionproof0.0.3

ツール

3

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
typestringはい逆ドット形式の操作動詞。例:'email.send'、'payment.send'。
paramsanyいいえ操作の入力。ハッシュとしてのみ保存されます(プライバシー保護)。
resultanyいいえ観測された結果/応答。ハッシュとしてのみ保存されます。
targetstringいいえ操作対象のシステム/リソース。例:'acme-crm'。
outcomeenumいいえ操作の結果。デフォルトは 'ok' です。ok | failed | partial
summarystringいいえ実行した内容を人が読める一行で説明します。
delegation_bystringいいえこの操作を許可した主体の did:key または ID(該当する場合)。
delegation_refstringいいえ許可へのポインター(OAuth grant、AP2 mandate URL/URN)。
delegation_scopestringいいえ付与された権限。例:'email.send'。

詳細

ActionProof

AI エージェントの改ざん不能な監査証跡です。 検証可能な可観測性により、エージェントが実行するすべてのアクションに、どこでもオフラインで検証できる暗号署名付きのレシートが発行されます。バックエンドは不要です。

可観測性ツール(LangSmith、Langfuse、Arize)では、エージェントが「そうしたと報告している」内容が表示されます。つまり、プラットフォーム内に記録されたトレースを、プラットフォームの言葉を信頼して見ることになります。しかし、そのログは自己申告です。エージェント、バグ、攻撃者は何でも書き込めますし、後になって記録が編集されていないことを証明することもできません。

ActionProof は、欠けていた層である検証可能な可観測性を追加します。メール送信、フォーム提出、支払いなど、各アクションに、何が、どのエージェントによって、いつ、誰の権限で実行されたかを記録する、改ざんを検知できる Ed25519 署名付きのレシートが発行されます。フィールドを1つでも編集すると、検証に失敗します。これは、エージェント、ベンダー、あるいは私たちを信頼せずとも、あなた(または監査人、ユーザー、取引相手)が信頼できる監査証跡です。

今後求められるコンプライアンスの基盤として構築されています。EU AI Act(第12条)と ISO 42001 は、自動化された意思決定について、追跡可能で改ざんを検知できるログを求めています。ActionProof は、ウォールドガーデン型のプラットフォームではなく、持ち運び可能なプリミティブとして、それをそのまま実現します。

インストール

npm install actionproof      # TypeScript / JavaScript
pip install actionproof      # Python

レシートには相互互換性があります。TypeScript で署名したレシートは Python で検証でき、その逆も可能です。

クイックスタート(TypeScript)

import { attest, verify, generateKeypair } from "actionproof";

const agent = generateKeypair();               // agent's identity = its key (did:key)

const receipt = attest(agent, {
  type: "email.send",
  summary: "Sent renewal quote to [email protected]",
  params: { to: "[email protected]", amount: 4200 }, // hashed, not stored in clear
  result: { smtp: 250 },
  outcome: "ok",
});

verify(receipt);            // -> { valid: true, agent: "did:key:z6Mk..." }

クイックスタート(Python)

from actionproof import attest, verify, generate_keypair

agent = generate_keypair()

receipt = attest(
    agent,
    type="email.send",
    summary="Sent renewal quote to [email protected]",
    params={"to": "[email protected]", "amount": 4200},  # hashed, not stored in clear
    result={"smtp": 250},
    outcome="ok",
)

verify(receipt)             # -> VerifyResult(valid=True, agent="did:key:z6Mk...")

このレシートのフィールドを1つでも編集すると、verify は無効を返します。それがすべてです。

活用方法:エージェントの可観測性における検証可能なレイヤー

ActionProof は可観測性スタックを置き換えるのではなく、補完します。豊富なトレース、レイテンシ、コストの把握には引き続き LangSmith/Langfuse/Arize を使い、重要なアクション(資金を移動する、状態を変更する、ユーザーデータを扱うもの)には ActionProof のレシートを添付します。そうすることで、証跡のその部分を改ざん検知可能かつ独立して検証可能にできます。

可観測性プラットフォームActionProof
記録ベンダー内のトレース/ログあなたが保持する署名付きレシート
信頼モデルプラットフォームに保存された記録を信頼する暗号技術で検証し、誰も信頼しない
改ざん検知DB にアクセスできる人なら編集可能編集すると署名が無効になる
ポータビリティベンダー内に保存されるオフライン、言語間で利用可能、どこでも使える
大規模利用時のコストイベントごとの従量課金約0ドル(ローカル署名、バックエンド不要)

これは単なるログエントリーではなく、証明です。「ダッシュボードにはエージェントがこれを実行したと表示されている」と「誰でも検証できる署名付きレシートはこちらです」の違いです。

設計原則

  • オフラインでバックエンド不要です。 エージェントは独自の Ed25519 キーを持ちます。署名と検証にはネイティブの暗号機能だけを使います。サーバー、アカウント、ネットワークは不要です。(これが、どの規模でも実行コストがほぼかからない理由でもあります。)
  • プライバシーを保護します。 機密性の高い入力/出力は SHA-256 ハッシュとして保存されます。値をレシートに記録せずに、後からその値が一致することを証明できます。
  • 競合するのではなく、組み合わせて使えます。 ActionProof はレシートのエンベロープです。result_hash に、より強力な証拠(x402 の決済、AP2 の権限参照、DKIM 署名付き SMTP 250 など)を紐づけることで、取引相手の証拠に見合う強度のレシートにできます。
  • レジストリ不要のアイデンティティです。 エージェントのアイデンティティは did:key(自己記述型の公開鍵)です。何を信頼するかは、あなたのポリシー(固定したキー、許可リスト、または以下のオプションのログ)で決まります。

ワイヤーフォーマットについては SPEC.md を参照してください。

MCP サーバーとして使う(コード不要)

エージェントにレシート機能を最速で追加する方法は、ActionProof を MCP サーバーとして実行し、Claude Desktop/Cursor に追加することです。エージェントは attest_action、verify_receipt、get_identity の3つのツールを使えるようになり、何かを実行した直後にレシートを発行できます。

MCP クライアントの設定(例:Claude Desktop の claude_desktop_config.json)に追加します。

{
  "mcpServers": {
    "actionproof": {
      "command": "npx",
      "args": ["-y", "actionproof-mcp"]
    }
  }
}

サーバーは初回起動時に、固定の Ed25519 アイデンティティを生成します(~/.actionproof/agent.key.pem に保存されます。ACTIONPROOF_KEY_PATH で変更できます)。サーバーが署名するすべてのレシートは、この1つのエージェント did:key に紐づきます。

自動でレシートを発行(フレームワークラッパー)

各アクションの後に毎回手動で attest を呼び出す必要はありません。ツールを一度ラップすれば、呼び出すたびにレシートが発行されます。

TypeScript(フレームワークに依存せず、LangChain.js、Mastra、Vercel AI SDK で動作します):

import { withReceipts, generateKeypair } from "actionproof";

const agent = generateKeypair();
const send = withReceipts(agent, rawSendEmail, {
  type: "email.send",
  onReceipt: (r) => store(r),   // called with a signed receipt on every call
});

Python(@attest_action デコレーター、または LangChain/CrewAI コールバック):

from actionproof import attest_action, ActionProofCallbackHandler

@attest_action(agent, type="email.send", on_receipt=store)
def send_email(to, body): ...

# or attest every tool a framework agent runs, no per-tool code:
handler = ActionProofCallbackHandler(agent, on_receipt=store)
agent_executor.invoke(input, config={"callbacks": [handler]})

ローカルで開発する

git clone https://github.com/Burakfenerci5/actionproof
cd actionproof && npm install
npm run demo     # full sign → verify → tamper loop
npm test         # TS suite (9 tests)
npm run mcp      # start the MCP server over stdio

cd python && pip install -e ".[dev]" && pytest   # Python suite (7 tests, incl. TS↔Python interop)

ロードマップ

  • 現在(リリース済み): TypeScript ライブラリ+MCP サーバー+フレームワークラッパー、およびデコレーターと LangChain/CrewAI コールバックを備えた Python パッケージ。両者の間でレシートを相互運用できます。
  • 次の予定: LlamaIndex / CrewAI のファーストクラスプラグイン、既存のオブザーバビリティスタック(OpenTelemetry、LangSmith、Langfuse)のスパンにレシートを付加するエクスポーター。
  • 後日(オプション、ホスト型): 検証可能な監査ダッシュボード — 検索・共有が可能で、改ざんの痕跡を確認できる、エージェント群の活動のタイムラインです。追記専用ログを基盤とし、自力で構築することなくコンプライアンスレベルの証跡(EU AI Act / ISO 42001)を必要とするチーム向けです。ライブラリと MCP サーバーは今後も無料で、オフラインで利用できます。 有料サービスとなるのはホスト型ダッシュボードのみです。

ライセンス

MIT。

コメント

MCP は初めてですか?

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

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