mcpField
V
vantic

vantic

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

vantic について

vanticは、決済を行うAIエージェント向けのTypeScript認可レイヤーです。署名付きの委任状で予算と支払先を呼び出し前に検証し、許可された操作の監査可能な記録を残します。

主な機能

  1. 01署名付き支出委任状
  2. 02取引単位と期間予算の上限
  3. 03支払先の許可リスト
  4. 04改ざん検知可能な署名レシート
  5. 05W3C DIDと認証情報による識別

活用シーン

  1. 01エージェントの決済権限の制限
  2. 02既存の決済ツールへの保護追加
  3. 03許可された決済操作の監査

MCP 対応

既存のMCPツールを保護する`wrapMcpTool`を提供します。MCPサーバーは委任状、レシートチェーン、認証情報、DIDのステートレスな検証ツールを公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"ai-vanticlabs-vantic": {
"command": "npx",
"args": [
"-y",
"@vantic/sdk"
]
}
}
}
起動コマンドnpx -y @vantic/sdk

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

パッケージ
npm@vantic/sdk0.1.2

ツール

4

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

パラメーター型必須説明
actionobjectはい候補となる操作:{ type, counterparty, amount (minor units), currency }。
action.typestringはい
action.amountnumberはい
action.currencystringはい
action.counterpartystringはい
envelopeobjectはい署名済みの委任エンベロープ。
priorReceiptsarrayいいえこのエンベロープの下ですでに発行されたレシート(順序付き)。

詳細

Vantic

AI エージェント向けの支出ファイアウォールと権限レイヤーです。 エージェントに上限を超えられない署名付き予算を与えます。プロンプトインジェクションを受けた場合でも上限を超えることはできません。また、エージェントのすべての動作について改ざん防止レシートを取得できます。

依存関係ゼロ · TypeScript · Ed25519 + W3C DID · MCP、LangChain、または任意のツール呼び出しエージェントで動作します。


問題

AI エージェントはウォレットを持ち、決済 API を呼び出せます。これは便利ですが、危険でもあります。悪意のある Web ページからのプロンプトインジェクションが 1 件、ハルシネーションが 1 件、バグが 1 件あるだけで、エージェントは誤った相手に支払ってしまいます。これは実際に報告され、現在も悪用されている障害モードです。エージェントがだまされ、攻撃者が管理するアカウントに資金を送金してしまいます。

Vantic の機能

エージェントに署名付き委任状を発行します。そこには予算、1 回あたりの取引上限、許可される操作、および支払い可能な相手の許可リストを指定します。そして、資金を動かす呼び出し(購入、サブスクリプション登録、送金、従量課金、払い出し、返金など、価値を移動させるすべての操作)をラップします。それ以降、範囲外の支払いは実行不可能です。チェックは資金を動かすコードの前に実行されるため、モデルが完全に侵害されても、その支払いを実行できません。許可された操作ごとに、署名付きの改ざん防止レシートが発行されます。明確な監査証跡になり、請求に異議が申し立てられた場合の証拠にもなります。

インストール

npm install @vantic/sdk

約 5 行でエージェントを保護する

import { generateKeyPair, issueMandate, AgentWallet } from "@vantic/sdk";

const owner = generateKeyPair();   // you (the principal)
const agent = generateKeyPair();   // your autonomous agent

// Authorize the agent: what it may pay for, ≤ $200 each, ≤ $500/week, only these counterparties.
const mandate = issueMandate({
  agent: agent.publicKey,
  principal: owner.publicKey,
  principalPrivateKeyPem: owner.privateKeyPem,
  ttlSeconds: 7 * 24 * 3600,
  scope: {
    budget: { currency: "USD", amount: 50000, windowSeconds: 7 * 24 * 3600 }, // $500 / 7 days
    maxPerTransaction: 20000,                                                  // $200
    allowedActions: ["purchase", "subscribe"], // any money-moving action: transfer, payout, refund, …
    allowedCounterparties: ["etsy.com", "*.shop.example"],
  },
});

const wallet = new AgentWallet(mandate, agent.privateKeyPem);

// Your real payment call goes inside the executor. The guard runs FIRST;
// if the action is out of scope, the executor is never called.
await wallet.spend(
  { type: "purchase", counterparty: "etsy.com", amount: 4500, currency: "USD" },
  async (action) => ({ outcome: "settled", result: await pay(action) }),
);

// A prompt-injected wallet.spend({ counterparty: "attacker.xyz", ... })
// throws GuardViolation — before any money moves.

npm run guard-demo を実行すると、攻撃者による支払いをリアルタイムでブロックする様子を確認できます。

すでに決済ツールをお使いですか? 一度ラップするだけです。

MCP/LangChain/関数呼び出しエージェントの場合、構成を変更せずに既存のツールを制御できます。

import { wrapMcpTool } from "@vantic/sdk";

const guardedPurchase = wrapMcpTool(purchaseTool, {
  wallet,
  toAction: (args) => ({ type: "purchase", counterparty: args.merchant, amount: args.amountCents, currency: args.currency }),
});
// Register `guardedPurchase` instead of `purchaseTool`. A blocked call comes back as a tool
// error the model can read and recover from; the real charge never fires.

フレームワーク別ガイド(OpenAI、LangChain、Vercel AI SDK、MCP、raw):docs/integrations.md。

利用できる機能

  • 厳格な支出上限 — 1 回あたりの取引上限とローリング予算期間を決定論的に適用します。
  • 取引相手の許可リスト — エージェントは許可された相手にのみ支払えます(完全一致またはワイルドカードドメイン)。
  • プロンプトインジェクション対策 — 委任状はモデルの外部で適用されるため、侵害されたエージェントでも範囲外の支出はできません。
  • 改ざん防止レシート — すべての操作を記録した署名付きのハッシュチェーン記録です。オフラインで検証でき、紛争時の証拠として利用できます。
  • 標準的なアイデンティティ — エージェントと所有者は W3C did:key/did:web DID で表され、所有者からエージェントへの関係は W3C 検証可能クレデンシャルです。
  • MCP サーバー — npx vantic-mcp を使って、任意の MCP ホストに検証ツールを公開できます。
  • 依存関係ゼロ — Node の組み込み暗号機能のみを使用します。Ed25519 + SHA-256。

仕組み

2 つのプリミティブを使用します(仕様の全文は spec/SPEC.md を参照)。

  • 委任状 — 所有者がエージェントに対し、スコープ(予算、上限、取引相手、有効期限、取り消し)内での操作を許可する署名付きステートメントです。
  • レシート — 各操作を委任状とその結果に紐付ける、署名付きのハッシュチェーン記録です。改ざんを検知できます。

すべての処理は決定論的で、エージェントのモデルの外部で実行されます。

MCP ホストから使用する

npm run mcp        # or, once published: npx vantic-mcp

ステートレスな検証ツールを公開します(秘密鍵は不要です)。mandate_authorize、mandate_verify_chain、mandate_verify_credential、mandate_resolve_did。

アイデンティティ

エージェントと所有者は、ベアキー(key:<x>)または W3C did:key DID で識別できます。両者は相互に置き換え可能で、どちらでも検証できます。generateKeyPair() は両方を返します。DID はオフラインで標準的な DID ドキュメントに解決され(resolveDidKey)、同じ鍵を did:web として公開することもできます(buildDidWebDocument)。また、所有者からエージェントへの関係は、持ち運び可能な W3C 検証可能クレデンシャルです(issueSponsorCredential/verifySponsorCredential)。npm run identity-demo を参照してください。

開発

cd sdk
npm install
npm test          # 39 tests
npm run demo      # end-to-end walkthrough

詳細

ステータスとセキュリティ

v0.1 — 初期段階であることを率直に示しています。 コードは本番品質です(Ed25519 + SHA-256 + 正規化 JSON、did:key/did:web + 検証可能な認証情報によるアイデンティティ、実行時依存関係ゼロ)。ただし、まだ監査を受けておらず、ワイヤーフォーマットも確定していません。

  • ROADMAP.md — 何が強化済みで何が未強化なのか、および v1.0 までの道筋を正確に記載しています。
  • SECURITY.md — 脆弱性の報告方法(公開の issue は作成しないでください)。
  • spec/SPEC.md §8 — 脅威モデルと対象外事項。

フィードバックや PR を歓迎します。Apache-2.0。

コメント

MCP は初めてですか?

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

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