mcpField
H
Hive Secrets

Hive Secrets

リモート
hiveagentiq.comセキュリティ026 週間前に更新
リポジトリ公式サイト

Hive Secrets について

Hive Secretsは、A2Aネットワークのエージェント向け暗号化認証情報ストアです。AES-256-GCMで保護し、エージェントDIDごとに名前空間を分離します。操作監査ログを記録し、有料操作ではBase上のUSDC決済を検証します。

主な機能

  1. 01AES-256-GCMによる暗号化保存
  2. 02エージェントDID単位の名前空間
  3. 03シークレットの読み書きと削除
  4. 04名前空間ごとの監査ログ確認
  5. 05Base USDC決済の検証

活用シーン

  1. 01エージェントの認証情報を保存
  2. 02DIDごとにシークレットを分離
  3. 03シークレット操作履歴を確認

MCP 対応

シークレットの読み取り、書き込み、一覧表示、監査のツールを提供します。クライアントはStreamable-HTTPでJSON-RPCを送り、有料操作にはBase上のUSDC決済証明が必要です。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://hive-mcp-secrets.onrender.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

hive-mcp-secrets

srotzin/hive-mcp-secrets MCP server

A2A ネットワーク — Hive Civilization 向けの暗号化シークレットストアです。 保存時の暗号化には AES-256-GCM を使用し、エージェント DID スコープの名前空間、監査ログ、Base L2 上での x402 USDC 決済に対応しています。MCP 2024-11-05。受信専用です。

エージェントは (namespace, key) をキーとして暗号化されたシークレットを保存し、後で取得できます。名前空間はエージェント DID であり、呼び出し元は自身の名前空間のデータのみを参照・書き込みできます。マスターキーは運用者の環境に保管され、コミット、ログ記録、または通信経由で返却されることはありません。

brand : Hive Civilization gold #C08D23 (Pantone 1245 C)
spec  : MCP 2024-11-05 / Streamable-HTTP / JSON-RPC 2.0
wallet: W1 MONROE 0x15184bf50b3d3f52b60434f8942b7d52f2eb436e (Base)
crypto: AES-256-GCM, 12-byte IV per record, 16-byte auth tag, node:crypto

クイックスタート

git clone https://github.com/srotzin/hive-mcp-secrets
cd hive-mcp-secrets
npm install

# 32 random bytes as hex — never commit this value
export SECRETS_MASTER_KEY=$(node -e "console.log(require('crypto').randomBytes(32).toString('hex'))")

npm start
# hive-mcp-secrets on :3000

ホスト型エンドポイント:https://hive-mcp-secrets.onrender.com/mcp

ツールと料金

ツールUSD / 呼び出し備考
secrets_get$0.002シークレットを読み取り、復号します。呼び出し元はその名前空間の所有者である必要があります。
secrets_put$0.005シークレットを暗号化して保存します。マスターキーが設定されていない場合は 503 を返します。
secrets_list無料名前空間内のキーを一覧表示します。Tier 0。
secrets_audit$0.002名前空間の監査ログを読み取ります。

すべての支払いは受信専用です。リクエストボディまたは x402-tx-hash ヘッダーで Base USDC の tx_hash(呼び出し元 → W1)を送信します。シムは Base RPC からレシートを読み取り、USDC の Transfer ログをデコードして、呼び出しに応じる前に受取人と金額を検証します。

運用者向け注意事項 — 書き込みにはマスターキーが必要です

hive-mcp-secrets は、起動時にプロセス環境から SECRETS_MASTER_KEY を読み取ります。

  • 設定されている場合は、64 文字の 16 進数として解析して 32 バイトの生データにするか、base64 として解析して 32 バイトの生データにします。それ以外の場合は、SHA-256 でハッシュ化して 32 バイトにします。
  • 設定されていない場合、書き込みは reason: "SECRETS_MASTER_KEY not set" を含む 503 service_unavailable を返します。存在しないレコードの読み取りは通常どおり 404 を返します。保存済みレコードの読み取りには、書き込み時と同じキーが必要です。AES-256-GCM は別のキーでは復号できないためです。

キーがリポジトリにコミットされたり、ログに記録されたり、通信経由で返却されたりすることはありません。本番トラフィックを有効にする前に、運用者がデプロイ環境(Render の環境変数、Kubernetes シークレットなど)でキーを設定する必要があります。キーをローテーションすると、以前に保存されたすべての暗号文が無効になります。

名前空間モデル

すべてのエンドポイントの namespace パラメーターは、データを所有するエージェント DID です。すべてのエンドポイントで caller_did === namespace を検証し、一致しない場合は forbidden_namespace_mismatch を返します。v1 にはスーパーユーザーも、名前空間をまたぐ読み取りも、複数 DID 間での共有もありません。

監査ログは名前空間ごとに記録され、get、put、delete、list、audit に加え、payment_required、error:not_found、error:integrity_check_failed などの失敗経路を含むすべての操作を記録します。エントリには caller_did、action、ts_ms と、有料操作の場合は tx_hash、payer、amount_usd が保存されます。

REST エンドポイント

メソッドパス用途
GET/v1/secrets/{namespace}/{key}シークレットを 1 件読み取り、復号します。有料。
PUT/v1/secrets/{namespace}/{key}シークレットを 1 件暗号化して保存します。有料。マスターキーがない場合は 503 を返します。
DELETE/v1/secrets/{namespace}/{key}シークレットを削除します。無料。呼び出し元が所有するデータに限ります。
GET/v1/secrets/{namespace}名前空間内のキーを一覧表示します。無料、Tier 0。
GET/v1/secrets/audit監査ログを読み取ります。有料。クエリ:namespace、caller_did、since_ms?、until_ms?、limit?。
GET/v1/secrets/today本日の収益スナップショットを表示します。無料。
GET/healthmaster_key_loaded を含むサービスの健全性を表示します。
GET/.well-known/mcp.jsonMCP ディスカバリー。
POST/mcpMCP JSON-RPC。
PUT /v1/secrets/{namespace}/{key} のボディ
{
  "value": "the-secret-string",
  "caller_did": "did:hive:0xabc...",
  "tx_hash": "0x...64-char-tx-on-base..."
}

tx_hash がない場合、レスポンスは 402 エンベロープになります。

{
  "error": "payment_required",
  "x402": {
    "type": "x402", "version": "1", "kind": "secrets_put",
    "asking_usd": 0.005, "accept_min_usd": 0.005,
    "asset": "USDC", "asset_address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "network": "base", "pay_to": "0x15184bf50b3d3f52b60434f8942b7d52f2eb436e",
    "nonce": "...", "issued_ms": 1714200000000
  }
}

暗号化の詳細

  • アルゴリズム:aes-256-gcm(FIPS 認定の AEAD)
  • キー長:32 バイト
  • IV 長:12 バイト。レコードごとに新しい crypto.randomBytes(12) を使用します
  • 認証タグ長:16 バイト
  • 保存先:SQLite の secrets テーブル — (namespace, key, ciphertext, iv, auth_tag, created_ms, updated_ms, version)。PRIMARY KEY は (namespace, key) です
  • 書き込み処理:node:crypto.createCipheriv → update → final の後に getAuthTag() を呼び出します。3 つの値はすべて base64 の TEXT として保存されます
  • 読み取り処理:createDecipheriv → setAuthTag → update → final。ciphertext、iv、auth_tag のいずれか 1 ビットでも反転すると final() がエラーをスローし、integrity_check_failed として通知されます

以下のスモークテストでは、改ざんされた暗号文の復号に失敗することを検証します。これは事後に付け加えた整合性チェックではなく、実際の AES-GCM です。

MCP の使用方法

curl -X POST https://hive-mcp-secrets.onrender.com/mcp \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
curl -X POST https://hive-mcp-secrets.onrender.com/mcp \
  -H "content-type: application/json" \
  -d '{
    "jsonrpc":"2.0","id":2,"method":"tools/call",
    "params":{
      "name":"secrets_put",
      "arguments":{
        "namespace":"did:hive:0xabc",
        "key":"openai_api_key",
        "value":"sk-...",
        "caller_did":"did:hive:0xabc",
        "tx_hash":"0x..."
      }
    }
  }'

ローカルスモークテスト

export SECRETS_MASTER_KEY=$(node -e "console.log(require('crypto').randomBytes(32).toString('hex'))")
npm start &
sleep 1

# Tier 0 list (empty)
curl -s "http://localhost:3000/v1/secrets/did:hive:0xa/" | jq .

# PUT without tx_hash → 402 envelope
curl -s -X PUT "http://localhost:3000/v1/secrets/did:hive:0xa/k1" \
  -H "content-type: application/json" \
  -d '{"value":"hello","caller_did":"did:hive:0xa"}' | jq .

# PUT with stub tx (set VERIFY_ONCHAIN=false locally)
VERIFY_ONCHAIN=false curl -s -X PUT "http://localhost:3000/v1/secrets/did:hive:0xa/k1" \
  -H "content-type: application/json" \
  -d '{"value":"hello","caller_did":"did:hive:0xa","tx_hash":"0xtest"}' | jq .

# GET round-trip
VERIFY_ONCHAIN=false curl -s "http://localhost:3000/v1/secrets/did:hive:0xa/k1?caller_did=did:hive:0xa&tx_hash=0xtest" | jq .

ホスティング

Render にデプロイされています:srv hive-mcp-secrets、oregon、starter、autoDeploy=true。Render の環境変数 SECRETS_MASTER_KEY は、運用者が設定する必要があります。設定しなくてもデプロイ済みサービスは実行され、/health は master_key_loaded: false を返し、書き込みは 503 を返します。

ライセンス

MIT — LICENSE を参照してください。

Hive Civilization Directory

Hive Civilization の一部 — エージェントネイティブな金融インフラストラクチャです。

ブランドカラー:#C08D23

コメント

MCP は初めてですか?

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

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