policyrecall について
policyrecallは、ツール呼び出しのポリシー確認が必要なエージェント向けのCLI兼stdio MCPサーバーです。エージェントIDを登録し、ローカルのEd25519鍵で呼び出しの想起やポリシーのライブ校正リクエストに署名します。
主な機能
- 01Ed25519によるエージェントID登録
- 02準拠したツール呼び出し案の想起
- 03ライブポリシーに基づく呼び出しの校正
- 04CLIとstdio MCPサーバー
活用シーン
- 01決済呼び出し案の金融ポリシー確認
- 02実行前のツール呼び出しの校正
- 03署名リクエスト前のエージェント登録
MCP 対応
stdio MCPサーバーは、ID登録、ポリシー準拠した呼び出しの想起、ライブポリシー校正をツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| user_confirmed | boolean | はい | true である必要があります。ユーザーが新しいエージェント ID の登録を確認済みであることを示します。 |
詳細
policyrecall
policyrecall は、ホスト型の運用メモリーサービス用クライアントです。 エージェントの ID を登録すると、サービスはこれから実行するツール呼び出しについて、ポリシー検証済みの準拠バージョンを想起できます。また、ライブポリシーに照らして呼び出しを調整できます。 リクエストはローカルに保持された Ed25519 鍵で署名されるため、サービスは呼び出しが登録済みエージェントから実際に送信されたものか確認できます。 1 つのバイナリで、コマンドラインインターフェースと stdio MCP サーバーを提供します。
ID と設定
想起や調整を行うには、あらかじめ ID が登録されている必要があります。
policyrecall achromat_register_identity --user-confirmed true
登録時に新しい Ed25519 鍵ペアを生成し、公開鍵に対する小規模なプルーフ・オブ・ワークを計算して、公開鍵をサービスに送信します。
秘密鍵はサービスが受け入れた後にのみ、所有者だけがアクセスできる権限(0600)を設定した PKCS#8 PEM ファイルとして保存されます。
鍵ファイルがすでに存在する状態で再登録するとエラーになります。既存の鍵が上書きされることはありません。
鍵ファイルがない状態で想起または調整を実行すると、ID の設定が必要であることと、登録手順を示すエラーが発生します。
クライアントは次の 2 つの環境変数で設定します。
| 変数 | デフォルト |
|---|---|
ACHROMAT_BASE_URL | https://mom.achromat.ai |
ACHROMAT_AGENT_KEY_FILE | ~/.achromat/achromat_agent_key.pem |
ツールを鍵の状態に応じて動的に提供する元のサーバーとは異なり、policyrecall は常に 3 つすべてのツールを一覧表示し、ツールの呼び出し時に状態を確認します。
インストール
npx @reneturcios/policyrecall --version
または、コンテナーイメージを実行します。
docker run -i ghcr.io/cloudcorprecords/policyrecall
コンテナーはデフォルトで MCP サーバーを起動します(以下を参照)。CLI として使用するには、引数を渡してください。
CLI
サブコマンドの名前は MCP ツール名に対応しています。
policyrecall achromat_register_identity --user-confirmed true
policyrecall achromat_recall \
--domain fintech \
--tool-name send_payment \
--task-description "Pay a verified vendor invoice on time" \
--arguments '{"amount": 42, "currency": "USD"}'
policyrecall achromat_calibrate \
--domain robotics \
--tool-name move_arm \
--task-description "Move the arm to the loading position" \
--arguments '{"joint": 2, "angle": 45}' \
--trap-id trap-7
policyrecall --version
--arguments には JSON オブジェクトを指定します。結果には、上流から返された JSON ペイロードが出力されます。
終了コード:成功時は 0、呼び出しの失敗時(ID の未登録や上流エラーを含む)は 1、使用方法のエラー時は 2 です。
MCP サーバー
mcp サブコマンドで stdio MCP サーバーを起動します。
npx -y @reneturcios/policyrecall mcp
MCP クライアントの設定:
{
"mcpServers": {
"policyrecall": {
"command": "npx",
"args": ["-y", "@reneturcios/policyrecall", "mcp"],
"env": { "ACHROMAT_BASE_URL": "https://mom.achromat.ai" }
}
}
}
ツール
| ツール | 入力 | 説明 |
|---|---|---|
achromat_register_identity | user_confirmed(必須、true である必要があります) | Ed25519 鍵ペアを生成し、小規模なプルーフ・オブ・ワークを解き、公開鍵を登録して、秘密鍵をローカルに保存します。 |
achromat_recall | domain、tool_name、task_description、arguments(すべて必須) | 説明されたツール呼び出しについて、ポリシー検証済みの準拠バージョンを想起します。 |
achromat_calibrate | domain、tool_name、task_description、arguments(必須)、trap_id(任意) | 説明されたツール呼び出しをライブポリシーに照らして調整します。 |
domain は fintech、industrial_iot、robotics、devsecops のいずれかです。
task_description は 16~1000 文字です。arguments は呼び出しの引数オブジェクトで、空にすることはできません。
想起と調整のリクエストはローカル鍵で署名されます。サービスには、ツール名が tool フィールドに渡されます。
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, fake fetch only
npm run dev # run the CLI from source via tsx
テストでは、フェイクの fetch と、一時ディレクトリ内での実際のローカル鍵生成・署名を使用します。稼働中のサービスには接続しません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。