VEYA について
VEYAはRobinhood Chain向けのMCPサーバーで、チェーン検証、暗号ツール、製品API、自分のウォレットによる書き込みを提供します。Streamable HTTPで接続し、暗号処理とチェーン操作は@veyanet/sdkが担います。
主な機能
- 01サービス情報と機能の確認
- 02Robinhood Chainの照会と取引検証
- 03BLAKE3ダイジェストと証明
- 04製品API、レジストリ、セッション用ツール
- 05APIキーと自分のウォレットによるオンチェーン書き込み
活用シーン
- 01サービス設定と書き込み状態の確認
- 02チェーン取引の検証やダイジェスト証明の作成
- 03製品APIを使ったセッションやレジストリの照会
- 04自分のウォレットからオンチェーン操作を送信
MCP 対応
@veyanet/mcpはStreamable HTTP経由で、暗号、チェーン検証、製品API、ウォレット書き込み用ツールをMCPクライアントに公開します。公開ツールにキーは不要ですが、製品ツールや書き込みには指定に応じてAPIキーと自分のウォレットが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.veyanet.tech/mcpclaude mcp add --transport http veyanet-veya https://mcp.veyanet.tech/mcp{"mcpServers":{"veyanet-veya":{"type":"http","url":"https://mcp.veyanet.tech/mcp"}}}Cursor で開く{"servers":{"veyanet-veya":{"type":"http","url":"https://mcp.veyanet.tech/mcp"}}}VS Code で開く{"mcpServers":{"veyanet-veya":{"type":"http","url":"https://mcp.veyanet.tech/mcp"}}}{"mcpServers":{"veyanet-veya":{"serverUrl":"https://mcp.veyanet.tech/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.veyanet.tech/mcp認証が必要ツール
詳細
VEYA MCP
Robinhood Chain 上で、ポスト量子エージェント向けツール、チェーン検証、シールド実行サービス情報、プロトコル決済を提供する公式 Model Context Protocol サーバーです。
公式ウェブサイト • X(Twitter) • 公開 MCP URL • ドキュメント索引 • ネットワーク仕様 • セキュリティポリシー
💡 情報:VEYA とは?
VEYA Protocol は、Robinhood Chain 上でポスト量子耐性を備えた自律エージェント群を実現するために設計された、分散型の暗号化実行レイヤーです。従来の LLM エージェントフレームワークには、深刻な構造的脆弱性があります。エージェントの実行には、API 統合の認証情報、独自のシステムプロンプト、トレジャリー権限、ポリシールールなどのプライベートな実行コンテキストが必要です。そのため、標準的なホストランタイムで実行すると、機密状態がホスト運用者、データベース管理者、ネットワーク仲介者に平文でさらされます。
VEYA は、クライアント側の暗号境界とポスト量子アテステーションのプリミティブを確立することで、このセキュリティ上の課題を解決します。機密性の高いエージェントワークロードは、ローカルでのポスト量子鍵生成(ML-DSA-44)、量子耐性のあるセッションネゴシエーション(Kyber-768)、高スループットの暗号ダイジェスト(BLAKE3-256)、AES-256-GCM によるシールド実行、2-of-3 マルチノードコンセンサスによって保護されます。このツリーのデフォルトは Mainnet です。そこでの Veya.sol は、プロトコルコントラクト 0x87dC582eEA544A434a5C1e30Ca3d12c1e548a674 です。ROBINHOOD_NETWORK=testnet にすると Testnet が使用されます。
VEYA MCP サーバー
@veyanet/mcp パッケージは、エージェント向けの全ツールセットを提供する、VEYA の標準的な Model Context Protocol インターフェースです。Streamable HTTP を使用するため、Claude、Cursor、その他の MCP クライアントは、@veyanet/sdk をクローンせずに単一の URL を貼り付けるだけで接続し、暗号、フリート、レジストリ、製品 API、自分のウォレットによるオンチェーン書き込みツールを呼び出せます。暗号処理、チェーン ID のガード、レシートの解析は @veyanet/sdk に委譲されます。このパッケージは、HTTP トランスポート、ツール登録、製品 apiKey の転送、公開サービス情報を担当します。
MCP クライアントを @veyanet/mcp に接続すると、次の主要機能を利用できます。
- URL を貼り付けてアクセス:
https://mcp.veyanet.tech/mcp(Streamable HTTP)経由で接続します。 - 公開ツール:スタックの説明、Robinhood Chain への ping、BLAKE3、
Veya.solのトランザクション検証、PQ 暗号、レジストリ、https://api.veyanet.tech経由の製品セッションを利用できます。 - 自分のウォレットによる書き込み:オンチェーンツールには製品 API キー(
veya_dev_/veya_live_)と、ご自身の資金が入ったウォレットが必要です。ホストされたリレイヤーはガス代を支払いません。 - SDK を利用した決済:チェーン呼び出しでは
@veyanet/sdkを使用します。デフォルトのプロファイルは Mainnet です。Testnet はROBINHOOD_NETWORK=testnetです。 - バックエンドが管理するフリート:コンセンサスバリデーターとシールド実行の容量は、製品 API(
https://api.veyanet.tech)に属します。
| サーフェス | ユーザーの接続方法 |
|---|---|
| 公開 MCP | https://mcp.veyanet.tech/mcp を貼り付けます |
| 製品 API | https://api.veyanet.tech(MCP ツール経由、または HTTPS で直接接続) |
| SDK | npm install @veyanet/sdk |
📖 目次
- アーキテクチャ設計の理念
- MCP の高レベルなデータフロー
- インストールと環境要件
- サーバーの設定と初期化
- Claude / Cursor で接続
- コアツールの概要
- 包括的なクイックスタート
- トランスポート、認証、信頼性
- 高度な暗号技術の境界
- 運用者向け診断と CLI ツール
- ドキュメントディレクトリの索引
- よくある質問(FAQ)
- コントリビューションとセキュリティガイドライン
- ライセンス
🛡️ アーキテクチャ設計の理念
@veyanet/mcp の設計は、厚い暗号クライアントの上に薄いプロトコルゲートを置くというパラダイムに基づいています。単純な MCP サーバーでは、ビジネスロジック、シークレット、チェーンへの書き込みが、認証の緩いツールハンドラーに混在しています。VEYA はこれらの役割を分離します。MCP プロセスはトランスポートとポリシーを担うシェルであり、@veyanet/sdk はハッシュ計算、検証、EvmAnchor への書き込みを実行する暗号エンジンとして機能します。
この中核的な理念は、次の 3 つの主要なアーキテクチャ上の柱によって実現されています。
1. 公開コントラクトとしての Streamable HTTP
公開ユーザーとエージェントのランタイムは、単一の URL で接続します。サーバーは @modelcontextprotocol/sdk を使用して MCP Streamable HTTP(POST /mcp)を実装します。
2. 自分のウォレットによる書き込み機能
オンチェーン書き込みツールは常に登録されています。製品への書き込みには、製品の apiKey と自身の payerPrivateKey が必要です。veya_prove はこれとは別で、読み取りにキーは不要です。アンカーには environmentId と payerPrivateKey のみが必要です。msg.sender はあなた自身のアドレスです。空のウォレットでは、次のメッセージが返されます。Mainnet: 'Your wallet has no ETH on Robinhood Chain.' Testnet: 'You don't have testnet tokens. Please get them for the transaction.'
3. 明確なサービス情報
GET /health と veya_describe は、選択されたプロファイル、sealed が AES-256-GCM であること、および書き込みが有効かどうかを示します。デフォルトのプロファイルは Mainnet です。クォーラムはハッシュの一致を意味します。到達不能なノードがある場合、consensus_reached: false が返されます。Veya.sol はプロトコルコントラクトです。
⚡ MCP の高レベルなデータフロー
次の図は、@veyanet/mcp が Streamable HTTP のツール呼び出しを受け付け、書き込みを制御し、@veyanet/sdk を通じて Robinhood Chain に処理を確定する仕組みを示しています。
flowchart TB
subgraph ClientSpace["MCP Client (Claude / Cursor / Agent Runtime)"]
PasteURL["Paste https://mcp.veyanet.tech/mcp"]
ToolCall["veya_* tool invocation"]
end
subgraph McpBoundary["@veyanet/mcp Streamable HTTP"]
Landing["GET /"]
Health["GET /health"]
PostMcp["POST /mcp"]
Auth{"product apiKey + your wallet?"}
PublicTools["Public tools"]
WriteTools["Own-wallet write tools"]
end
subgraph SdkBoundary["@veyanet/sdk"]
ReadClient["VeyaClient read / verify / hash"]
EvmAnchor["EvmAnchor writes + eth_chainId guard"]
end
subgraph ApiBoundary["VEYA Product API"]
ApiHealth["https://api.veyanet.tech/health"]
end
subgraph Blockchain["Protocol settlement (Mainnet by default)"]
VeyaSol["Veya.sol\nCommitments · Environments · Attestations"]
end
PasteURL --> PostMcp
ToolCall --> PostMcp
PostMcp --> Auth
Auth -->|"no key / public tools"| PublicTools
Auth -->|"apiKey + funded payer"| WriteTools
PublicTools --> ReadClient
PublicTools -->|"veya_api_health"| ApiHealth
WriteTools --> EvmAnchor
ReadClient --> VeyaSol
EvmAnchor --> VeyaSol
Landing --> McpBoundary
Health --> McpBoundary
📦 インストールと環境要件
公開ユーザー(推奨)
Claude / Cursor に貼り付けてください(Streamable HTTP)。
https://mcp.veyanet.tech/mcp
TypeScript ライブラリ(任意):
npm install @veyanet/sdk
npm パッケージ(任意)
npm install -g @veyanet/mcp
veya-mcp
# or: npx -y @veyanet/mcp
Streamable HTTP サーバーを起動します。TLS の設定後、クライアントから公開 HTTPS コネクターを指定します。ドキュメントとランディングページでは、製品の貼り付け用 URL として PUBLIC_MCP_URL=https://mcp.veyanet.tech/mcp を使用してください。詳しくは docs/DEPLOYMENT.md を参照してください。
要件
- Node.js ≥ 20
- Robinhood RPC および
https://api.veyanet.techへの HTTPS アウトバウンド接続 - 依存関係:npm の
@veyanet/sdk
🔑 サーバーの設定と初期化
プロセスは環境変数から設定を読み込みます。ROBINHOOD_NETWORK が未設定の場合は Mainnet になります。ROBINHOOD_NETWORK=testnet の場合は Testnet になります。ローカルで設定を上書きするには、.env.example を .env にコピーしてください。.env を絶対にコミットしないでください。
設定解決カスケード
パラメーターは、まずプロセス環境から解決され、次に Mainnet プロファイル(PUBLIC_MCP_URL=https://mcp.veyanet.tech/mcp)から解決されます。Testnet は ROBINHOOD_NETWORK=testnet です。アドレスについては、docs/NETWORK_PIN.md を参照してください。
import { loadConfig, createHttpApp, startHttpServer } from "@veyanet/mcp";
// 1. Zero-config start (Mainnet)
startHttpServer();
// 2. Explicit config for operators
const cfg = loadConfig();
const app = createHttpApp(cfg);
app.listen(cfg.port, cfg.host);
環境変数リファレンス
| 変数名 | 説明 | デフォルト/フォールバック |
|---|---|---|
PUBLIC_MCP_URL | ランディングページとヘルス情報で案内される公開ペースト URL | https://mcp.veyanet.tech/mcp |
PORT | リッスンポート | <mcp-port> |
HOST | バインドアドレス | 0.0.0.0 |
ROBINHOOD_RPC_URL | Testnet RPC(ROBINHOOD_NETWORK=testnet の場合に使用) | 公開 Testnet RPC |
ROBINHOOD_NETWORK | プロファイル | Mainnet。testnet を指定すると Testnet が選択されます |
ROBINHOOD_EXPLORER_URL | Testnet エクスプローラー(ROBINHOOD_NETWORK=testnet の場合に使用) | 公開 Testnet エクスプローラー |
VEYA_CONTRACT_ADDRESS | Testnet コントラクト(ROBINHOOD_NETWORK=testnet の場合に使用) | Testnet のデプロイアドレス |
ROBINHOOD_MAINNET_CHAIN_ID | Mainnet のチェーン ID オーバーライド | Mainnet プロファイル |
ROBINHOOD_MAINNET_RPC_URL | Mainnet RPC | https://rpc.mainnet.chain.robinhood.com |
ROBINHOOD_MAINNET_EXPLORER_URL | Mainnet エクスプローラー | https://robinhoodchain.blockscout.com |
VEYA_MAINNET_CONTRACT_ADDRESS | Mainnet プロトコルコントラクト | 0x87dC582eEA544A434a5C1e30Ca3d12c1e548a674 |
VEYA_API_URL | プロダクト API(ヘルス、レジストリ、セッション、フリート容量) | https://api.veyanet.tech |
CORS_ORIGIN | カンマ区切りの Origin 許可リスト | 空の場合、認証情報付きのブラウザー Origin を拒否 |
NODE_ENV | 実行モード | development |
VEYA_PAID_CALLS | 1 に設定すると Paid Call Guard が有効になります(ツールが 3 つ追加され、呼び出し元が自身のウォレットから支払います)。その他の VEYA_PAID_* 設定については、docs/CONFIGURATION.md を参照してください | オフ |
ホスト専用の設定(フリート URL とホスト署名キー)については、オペレーターガイドの docs/DEPLOYMENT.md を参照してください。一般ユーザーがこれらを設定することはありません。
🔌 Claude / Cursor に接続する
本番環境(一般ユーザー/公開クライアント)
Streamable HTTP トランスポートを使用するカスタム MCP コネクターに貼り付けます。
https://mcp.veyanet.tech/mcp
veya_prove を含む公開ツールには API キーは不要です。プロダクトツールには apiKey が必要です。プロダクトのオンチェーン書き込みには、そのキーに加えてご自身の資金のあるウォレットが必要です。veya_prove を使用したアンカーには、environmentId と payerPrivateKey のみが必要です。
Claude CLI
claude mcp add veya --transport http https://mcp.veyanet.tech/mcp
Cursor IDE
Settings → MCP → Add custom MCP server / connector → URL:
https://mcp.veyanet.tech/mcp
情報ページ
GET https://mcp.veyanet.tech/ は、情報ページ(概要、機能、API キーの取得手順)を返します。ブラウザーで https://mcp.veyanet.tech/mcp を開くと、Cursor、Claude Code、Codex のセットアップ方法と FAQ が表示されます。ヘルス情報:https://mcp.veyanet.tech/health。プロダクトのドキュメント:https://veyanet.tech/mcp。プロダクト API:https://api.veyanet.tech。
🧩 コアツールの概要
@veyanet/mcp 1.2.10 は、エージェント向け機能一式を提供します。完全なスキーマについては、docs/TOOLS.md を参照してください。読み取りにはキーは不要です。プロダクトツールにはサイト API キーが必要です。プロダクトのオンチェーン書き込みではご自身のウォレットから支払いを行い、サイト API キーも必要です。veya_prove には不要です。veya_seal_decision はエビデンス ID と判断を封印します。この呼び出しに payerPrivateKey を渡した場合、または VEYA_SEAL_DECISION_RELAYER=1 の場合に、レシートが書き込まれます。
0. 証明
Tool: veya_prove
Args: exactly one of text, json, txHash
anchor, environmentId, payerPrivateKey only when anchoring
テキスト、JSON文字列、またはレシートハッシュから証明を1つ取得します。実行前にCursorでhttps://mcp.veyanet.tech/mcpを貼り付けてください。そうしないと、ツールがエージェントのツールリストに表示されません。このURLはPOSTを受け付けます。レスポンスはストリーム形式です(event: messageとdata:行)。
読み取りでは何も送信されません。
{ "text": "hello" }
テキストhelloを入力すると、modeはdigest、anchoredはfalse、ダイジェストはea8f163db38682925e4491c5e58d4bb3506ef8c14eb78a86e908c5624a67200fが返されます。
アンカーでは、payerPrivateKeyのウォレットからstoreCommitmentを1回送信します。製品のapiKeyは使用せず、ホストのリレイヤーも使用しません。環境IDは、あらかじめVeya.sol上に存在している必要があります。これは存在します:7d0af0ba-2ae3-4d0e-bc75-0bbaccb3dd71。32桁の16進数のbytes16も解析できます。ハイフン区切りのIDは実在するUUIDである必要があるため、00000000-0000-0000-0000-000000000001は拒否されます。
{
"text": "a unique string",
"anchor": true,
"environmentId": "7d0af0ba-2ae3-4d0e-bc75-0bbaccb3dd71",
"payerPrivateKey": "<funded private key>"
}
VEYAのログがないレシートと、別のコントラクトを呼び出したレシートは、どちらも完全な証明オブジェクトを返します:okはfalse、modeはrefused、inputKindはtx、anchoredはfalseで、さらにtxHash、explorerUrl、refusalが含まれます。
1. サービス情報と検出
Tool: veya_describe
Args: (none)
サービス情報を返します:パッケージ名@veyanet/mcp、公開URL、決済、製品API、暗号化方式(AES-256-GCM)、書き込みポリシー。
Tool: veya_writes_status
Args: (none)
常に登録されています。自分のウォレットを使った書き込みについて説明します:製品のapiKeyとご自身のウォレットを使用します。空のウォレットメッセージが含まれています。
2. チェーンの読み取りと検証
Tool: veya_ping_chain
Args: (none)
選択したプロファイルに対して@veyanet/sdkのVeyaClient.pingChain()を使用し、ブロックのメタデータを返します。
Tool: veya_verify_transaction
Args: txHash (0x…, min 66 chars)
SDKのverifyTransactionを使ってVeya.solのレシートイベント(CommitmentStored / ExecutionAttested / 関連イベント)を解析します。実在するRobinhoodのエクスプローラーハッシュを使用してください。
テストネットのコミットメントトランザクションの例:
0xd68ab19671f0a3be63651cb6d6e24f5decf591da981708502827bca3689d31d8
3. BLAKE3コミットメントヘルパー
Tool: veya_hash_blake3
Args: data (string, min length 1)
SDKを使ってBLAKE3-256の16進ダイジェストを計算します。認証済みのveya_store_commitmentの前や、ローカルでコミットメントをプレビューする際に便利です。
4. 製品APIの稼働状況
Tool: veya_api_health
Args: (none)
GET {VEYA_API_URL}/health(デフォルトはhttps://api.veyanet.tech/health)。HTTPステータスとJSON本文を返し、フリートの状態も含まれます。
5. 認証済みオンチェーン書き込み
常に利用できます。msg.senderはホストのリレイヤーではなく、ご自身のウォレットです。
| ツール | 主な引数 | オンチェーンメソッド |
|---|---|---|
veya_store_commitment | apiKey, payerPrivateKey, environmentUuidHex, commitmentHex | storeCommitment |
veya_attest_execution | apiKey, payerPrivateKey, environmentUuidHex, blake3HashHex, mldsaSigHex | attestExecution |
veya_register_environment | apiKey, payerPrivateKey, environmentIdまたはenvironmentUuidHex | registerEnvironment |
書き込みはSDKのEvmAnchorを経由します。送信前にensureRobinhoodChain()を呼び出すため、RPCの接続先を誤っても、別のEVMに気付かず送信されることはありません。ウォレットにETHがない場合:Mainnet: 'Your wallet has no ETH on Robinhood Chain.' Testnet: 'You don't have testnet tokens. Please get them for the transaction.'
6. 有料呼び出しガード
Tools: veya_paid_discover, veya_paid_call, veya_paid_run
On the hosted URL: yes (check paidCallGuard in /health or veya_describe)
Needs: your VEYA apiKey + your own Solana key (pays USDC) + your own Robinhood Chain key (signs the record, pays gas)
Runs: saved to your VEYA account; veya_paid_run is private to that account
Receipts: public proof links (no keys, apiKey or input)
Kill switch: operator-only; callers cannot change it
エージェントは、ガードされた1つのツールを通じて、有料の x402 リソースを呼び出します。VEYA は、署名を行う前に固定ポリシーに照らして呼び出しをチェックし、API キーと両方のウォレット残高を確認したうえで、あなたの Solana ウォレットから承認済みの見積額ちょうどを支払い、Solana で支払いが finalized になったことを検証し、2-of-3 バリデーター署名を取得し、あなたの Robinhood Chain アドレスから Veya.sol にコミットメントをアンカーして、実行内容を VEYA アカウントに保存します。ブロックされた呼び出しには署名が行われず、資金も移動しません。同じ idempotencyKey で二重に支払われることはありません。各実行には /receipts/paid/<runId> にレシートが発行されます。レシートへのリンクは公開されており、リンクを知っている人は誰でも証明を閲覧できます。レシートにキー、apiKey、入力内容が含まれることはありません。拒否された場合はすべて、decision: "blocked"、安定した code、および payment: null が返されます。veya_paid_discover では、1回あたりの上限、タスク予算の最大額(0.04 USDC)とデフォルト値、各リソースのプロバイダー見積額とタスク予算への請求総額を確認できます。docs/PAID_CALLS.md を参照してください。
https://mcp.veyanet.tech/mcp に接続した任意の MCP クライアントから試すことができます。
veya_paid_discoverを実行し、許可されたリソース、入力フィールド、最新の見積額を確認します。taskId、新しいidempotencyKey、resourceId、input、apiKey、solanaPrivateKeyに Solana の秘密鍵、robinhoodPrivateKeyに Robinhood Chain のキーを指定してveya_paid_callを実行します。- 返信に含まれる Solscan、Blockscout、レシートの各リンクを開きます。
apiKeyを指定してveya_paid_runを実行すると、アカウントに保存された実行内容が一覧表示されます。
{
"name": "veya_paid_call",
"arguments": {
"taskId": "task-1",
"idempotencyKey": "<new uuid>",
"resourceId": "tokens.asset-risk-summary",
"input": { "assetId": "solana" },
"apiKey": "<your VEYA API key>",
"solanaPrivateKey": "<your Solana secret key>",
"robinhoodPrivateKey": "<your Robinhood Chain key>"
}
}
キーはその1回の呼び出し中、メモリ上で使用され、保存、ログ記録、返却されることはありません。専用ウォレットを使用してください。Solana には少量の USDC と SOL、Robinhood Chain には少量の ETH を用意します。値が不足していると、API_KEY_REQUIRED、SOLANA_KEY_REQUIRED、または ROBINHOOD_KEY_REQUIRED が返され、処理は行われません。VEYA_PAID_CALLS=1 を設定していないサーバーでは51個のツールが、設定したサーバーでは54個のツールが表示されます。ガイド:docs/PAID_CALLS.md。
🚀 包括的なクイックスタート
A. パブリック経路(キー不要、クローン不要)
- Claude または Cursor の MCP 設定を開きます。
- Streamable HTTP URL として
https://mcp.veyanet.tech/mcpを追加します。 - エージェントに
{ "text": "hello" }を指定してveya_proveを実行するよう依頼します。 - エージェントに
veya_describeを実行するよう依頼します。 - エージェントに
veya_ping_chainを実行するよう依頼し、選択したプロフィールが使われていることを確認します。
B. 開発者向け経路(ローカルプロセス)
git clone https://github.com/veyanet/veya-mcp.git
cd veya-mcp
npm install
cp .env.example .env # do not commit .env
npm run build
npm start
別のターミナルで実行します。
npm test
npm run smoke
Smoke はプロセス内サーバーを起動し、MCP の初期化と tools/list を実行してから、ライブ RPC に対して veya_describe と veya_ping_chain を呼び出します。
C. プロダクトへの書き込み経路(資金を入金した自分のウォレット)
これらのツールにはプロダクトの apiKey が必要です。veya_prove には不要です。veya_prove でアンカーする場合に必要なのは、environmentId と payerPrivateKey のみです。
- app.veyanet.tech で
veya_dev_/veya_live_キーを作成します。ウォレットを接続し、System → API Keys を開いて、Dev(veya_dev_…)または Live(veya_live_…)キーを作成します。キーが表示されるのは1回だけです。 - セルフホストサーバーで
VEYA_PAYER_PRIVATE_KEYを設定するか、ツールにpayerPrivateKeyを渡します。パブリックのveya_proveツールは引数のみを読み取ります。 apiKeyを指定してveya_store_commitment(またはveya_anchor_proof)を呼び出します。- 結果の
fromが自分のアドレスであることを確認し、エクスプローラーでtxHashを開きます。 - ウォレットが空の場合は、次のメッセージが表示されます。
Mainnet: 'Your wallet has no ETH on Robinhood Chain.' Testnet: 'You don't have testnet tokens. Please get them for the transaction.'
⚠️ トランスポート、認証、信頼性
HTTP エンドポイント
| メソッド | パス | 用途 |
|---|---|---|
GET | / | 貼り付け用 URL を含むランディング HTML |
GET | /health | サービス情報(service、version、chain、writesEnabled、sealed) |
POST | /mcp | ステートレス Streamable HTTP MCP |
POST | /mcp/session | 任意のステートフル経路(MCP-Session-Id) |
CORS
CORS_ORIGIN は許可リストです。許可リストが空の場合、認証情報を含むブラウザーの Origin 値は拒否されます。サーバー間の MCP クライアント(Origin なし)には影響しません。
認証モデル
- 公開ツール:キーは不要です。
- 製品ツール:製品サイトから取得した
apiKey(api.veyanet.techに対してX-Api-Keyを使用します)。 - 書き込みツール:同じ
apiKeyに加えて、ご自身のpayerPrivateKeyが必要です。fromはご自身のアドレスです。 - 秘密鍵が
/healthや成功時のペイロードに含まれることはありません。
失敗するケース
- 書き込み時の RPC チェーン ID が正しくない場合 → SDK の
CHAIN_MISMATCH(安全側に倒して処理を中止します)。 apiKeyがない場合 →{ "error": "apiKey required" }。- 支払い元に資金がない場合 →
Mainnet: 'Your wallet has no ETH on Robinhood Chain.' Testnet: 'You don't have testnet tokens. Please get them for the transaction.' veya_api_healthは API のステータスを返します。
🔒 高度な暗号技術の境界
@veyanet/mcp は PQ アルゴリズムを再実装しません。@veyanet/sdk を呼び出し、以下の機能を利用します。
1. ML-DSA-44 ポスト量子アイデンティティ(FIPS 204)
オペレーターが veya_attest_execution を通じてアテステーション署名バイト列を送信する際に使用されます。ML-DSA の検証は SDK/監査者側でオフチェーンにて行われます。チェーンには、サイズに上限のあるアテステーションバイト列とハッシュが保存されます。
2. BLAKE3-256 ダイジェスト生成
veya_hash_blake3 とコミットメントの書き込みでは、32 バイトのダイジェストを使用します。製品コンソールのユースモードにおける人間向けコンテンツ証明では、ブラウザーで扱いやすい SHA-256 を使用する場合があります。MCP のコミットメントヘルパーは、SDK の BLAKE3 処理に従います。
3. AES-256-GCM によるシールド実行
シールド実行は、AES-256-GCM を使用してオペレーターのシールドノード内で行われます。
4. チェーン ID ガード
オンチェーンへの書き込み前に EvmAnchor.ensureRobinhoodChain() が実行されるため、MCP オペレーターが誤って別の EVM で決済することはありません。
🛠️ オペレーター向け診断・CLI ツール
このパッケージには、オペレーターとパブリッシャー向けの検証スクリプトが付属しています。
# Typecheck
npm run lint
# Unit + HTTP /health service info (service name, network, AES string)
npm test
# Live MCP initialize + tools/list + ping (needs network)
npm run smoke
# Production-style process
npm run build && npm start
ヘルスプローブ:
curl -s https://mcp.veyanet.tech/health | jq .
# or local:
curl -s https://mcp.veyanet.tech/health | jq .
サービス情報には、service: "@veyanet/mcp"、選択したプロファイルの network、AES-256-GCM に言及する sealed、およびブール値の writesEnabled が含まれます。このツリーのデフォルトの network は mainnet です。
mcp.veyanet.tech の本番 TLS については、デプロイガイド を参照してください。
📚 ドキュメントディレクトリの索引
この README はエントリーポイントです。運用やインテグレーター向けの詳しい情報については、ドキュメントディレクトリを参照してください。
| ドキュメント | トピック | 説明 |
|---|---|---|
| ドキュメントハブ | 索引 | 公開ユーザーとオペレーター向けの主要カタログと閲覧手順です。 |
| ネットワーク仕様 | ネットワーク | チェーン ID、RPC、エクスプローラー、Veya.sol のアドレス、公開 MCP URL です。 |
| クイックスタートガイド | チュートリアル | URL を貼り付け → 最初のツール → ローカルループ → スモークテストです。 |
| システムアーキテクチャ | セキュリティ | MCP、SDK、API、チェーン間の信頼境界です。 |
| ツールリファレンス | リファレンス | すべての veya_* ツール、引数、認証要件です。 |
| 検証ガイド | 監査 | MCP とエクスプローラーを使ってコミットメントを証明する方法です。 |
| デプロイガイド | 運用 | mcp.veyanet.tech の nginx、環境変数、systemd、TLS です。 |
| 設定リファレンス | 設定 | 環境変数の優先順位とデフォルト値の全容です。 |
| HTTP トランスポート | プロトコル | Streamable HTTP、セッション、CORS、Accept ヘッダーです。 |
| 認証と書き込み | セキュリティ | 製品 API キーとご自身のウォレットの違い、および資金調達です。 |
| SDK との関係 | 統合 | MCP が @veyanet/sdk および製品 API で呼び出す機能です。 |
| 有料呼び出しガード | オプトイン機能 | VEYA ポリシーに基づく有料 x402 呼び出し。Solana で検証され、Robinhood Chain に記録されます。 |
| 変更履歴 | 履歴 | パッケージのバージョン履歴です。 |
| セキュリティポリシー | セキュリティ | 脆弱性の報告とシークレットの適切な管理について説明します。 |
❓ よくある質問(FAQ)
1. VEYA MCP を試すのに API キーは必要ですか?
いいえ。公開ツール(veya_describe、veya_ping_chain、veya_hash_blake3、veya_verify_transaction、veya_api_health)には必要ありません。プロダクトルームやオンチェーン書き込みには、プロダクトサイトで取得した veya_dev_ / veya_live_ キーが必要です。オンチェーン書き込みには、ご自身の資金が入ったウォレットも必要です。
2. MCP は秘密鍵を保存したり、クライアントに送信したりしますか?
ツールの結果や /health では、しません。公開 HTTP URL に payerPrivateKey を渡すと、そのホストが処理の間その鍵を保持します。そのため、VEYA_PAYER_PRIVATE_KEY を使用してセルフホストすることをおすすめします。メインネットの鍵は絶対に使用しないでください。
3. Veya.sol とは何ですか?
Veya.sol は、環境、エージェント、コミットメント、支出上限(wei)、ヌリファイアー、証明を扱うプロトコルコントラクトです。
4. シールド実行とは何ですか?
サービス情報には、シールドノードの暗号化方式として AES-256-GCM(ソフトウェアプロセス境界)が記載されています。
5. MCP と @veyanet/sdk の違いは何ですか?
SDK は、インポートして使用する TypeScript ライブラリです。MCP は、選択した SDK の機能を Streamable HTTP 経由で MCP ツールとして公開するネットワークサービスです。エージェントは URL を貼り付けるだけで利用できます。
6. 接続するにはどうすればよいですか?
https://mcp.veyanet.tech/mcp を貼り付けます。コンセンサスとシールド容量は、プロダクト API(https://api.veyanet.tech)で利用できます。TypeScript では npm の @veyanet/sdk を使用してください。
7. Robinhood RPC がダウンするとどうなりますか?
veya_ping_chain と検証ツールは、トランスポートエラーまたは RPC エラーで失敗します。https://mcp.veyanet.tech/health と Robinhood RPC を個別に確認してください。
8. このサーバーを別のチェーン ID に向けることはできますか?
ROBINHOOD_NETWORK で Mainnet または Testnet を選択してください。RPC の接続先をプロファイルと異なるチェーンに設定しないでください。SDK の書き込み処理では、この不一致は拒否されます。このツリーでは Mainnet がデフォルトのプロファイルです。
🤝 貢献とセキュリティのガイドライン
貢献の基準
@veyanet/mcp への貢献を歓迎します。プルリクエストでは、セキュリティの完全性を維持してください。
- 自身のウォレットからの書き込み:呼び出し元がプロダクト API キーを持っている場合、ホストされたリレイヤーからチェーンのトランザクションを送信しないでください。
msg.senderはユーザーのウォレットでなければなりません。 - シークレットの適切な取り扱い:
apiKey、payerPrivateKeyをログに記録したり、.envの内容をドキュメントに出力したりする変更は受け入れないでください。 - SDK の境界:ツールハンドラー内でハッシュ処理、検証、
EvmAnchorを再実装するのではなく、@veyanet/sdkの呼び出しを優先してください。
脆弱性の開示ポリシー
セキュリティ上の脆弱性を発見した場合、公開 GitHub Issue を作成しないでください。 発見内容は [email protected] に機密扱いで報告してください。詳細は Security Policy をご覧ください。
📄 ライセンス
このパッケージは MIT License のもとでライセンスされています。法的な詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。