VEYA

io.github.veyanet由 GitHub 帳號 veyanet 發布v1.2.8更新於 Nov 4, 2026

Check, limit, record and prove AI agent actions with 2-of-3 validators and onchain proofs.

已驗證Streamable HTTP可網頁執行開發者工具安全與監控AI 與機器學習

概覽

AI 產生的概覽

VEYA 讓助理對代理動作做雜湊、產生證明與驗證,提供後量子密碼工具,並在 Robinhood Chain 上錨定承諾。

可以做什麼
  • 查看服務資訊、探測鏈狀態、檢查 API 健康度,並讀取代理、憑證與執行紀錄的公開註冊表
  • 以 BLAKE3 計算摘要,從文字、JSON 或交易雜湊產生證明,並驗證 Veya.sol 交易與鏈上承諾
  • 產生、簽署、驗證 ML-DSA-44 後量子金鑰並計算指紋,透過產品 API 執行 2-of-3 共識或密封執行
  • 儲存、讀取與作廢代理記憶,為代理設定工具允許/拒絕規則,並路由或驗證 Kyber-768 封裝訊息
  • 管理工作區與代理、列出環境與執行紀錄,並透過產品 API 建立訪客工作階段或 API 金鑰
適用情境
當你需要密碼學承諾、在 Robinhood Chain 上對代理活動做鏈上證明或驗證、後量子簽章工具,或面向代理機群的託管註冊表與政策層時使用。公開的讀取與雜湊工具不需帳號即可試用。
執行需求
遠端 Streamable HTTP 端點,不需本機安裝;也可用 npm 套件自行架設(需 Node.js 20 以上)。公開工具不需金鑰。產品工具需要 VEYA 應用程式簽發的 bearer API 金鑰,放在 Authorization 標頭中。鏈上寫入還需要你自己的有餘額錢包與私鑰,並能對 Robinhood RPC 與 VEYA API 發出 HTTPS 連線。
安裝前請注意
寫入與錨定工具會從你自己的錢包支付 gas,並要求傳入私鑰(payerPrivateKey,自行架設時可用 VEYA_PAYER_PRIVATE_KEY);README 提醒不要使用主網金鑰,並說明託管位址會在呼叫期間持有該金鑰。可選的計量呼叫工具會從你的 Solana 錢包支付 USDC,需要 solanaPrivateKey 與 robinhoodPrivateKey。記憶、政策與工作區工具會寫入你的帳號。收據連結對任何持有連結的人公開。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 VEYA,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.veyanet%2Fveya/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "veya": {
      "type": "http",
      "url": "https://mcp.veyanet.tech/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

[VEYA Logo]

VEYA MCP

The official Model Context Protocol server for post-quantum agent tools, chain verification, sealed-execution service info, and protocol settlement on Robinhood Chain.

[License: MIT] [Package] [Node Version] [TypeScript] [MCP Endpoint]

Official Website • X (Twitter) • Public MCP URL • Documentation Index • Network Specifications • Security Policy


💡 Information: What is VEYA?

The VEYA Protocol is a cryptographically shielded execution layer engineered for post-quantum resilient autonomous agent fleets on Robinhood Chain. Traditional LLM agent frameworks suffer from severe structural vulnerabilities: because agents require private execution contexts—such as API integration credentials, proprietary system prompts, treasury authority, and policy rules—running them in standard host runtimes exposes sensitive state in plaintext to host operators, database administrators, and network intermediaries.

VEYA solves this security gap by establishing client-side cryptographic boundaries and post-quantum attestation primitives. Sensitive agent workloads are protected through local post-quantum key generation (ML-DSA-44), quantum-resistant session negotiation (Kyber-768), high-throughput cryptographic digests (BLAKE3-256), sealed execution with AES-256-GCM, and 2-of-3 multi-node consensus. This tree defaults to Mainnet. Veya.sol there is the protocol contract 0x87dC582eEA544A434a5C1e30Ca3d12c1e548a674. ROBINHOOD_NETWORK=testnet keeps Testnet.

The VEYA MCP Server

The @veyanet/mcp package is the canonical Model Context Protocol surface for VEYA — the full agent-facing tool set. It speaks Streamable HTTP so Claude, Cursor, and other MCP clients can paste a single URL and invoke crypto, fleet, registry, product API, and own-wallet on-chain write tools without cloning @veyanet/sdk. Cryptography, chain-id guards, and receipt parsing are delegated to @veyanet/sdk; this package owns the HTTP transport, tool registration, product apiKey forwarding, and the public service info.

By connecting an MCP client to @veyanet/mcp, you enable the following core capabilities:

  • Paste-URL Access: Connect via https://mcp.veyanet.tech/mcp (Streamable HTTP).
  • Public Tools: Describe the stack, ping Robinhood Chain, BLAKE3, verify Veya.sol txs, PQ crypto, registry, product sessions via https://api.veyanet.tech.
  • Own-wallet writes: On-chain tools need a product API key (veya_dev_ / veya_live_) and your funded wallet. The hosted signer is not the gas payer.
  • SDK-Backed Settlement: Chain calls use @veyanet/sdk. The default profile is Mainnet. Testnet is ROBINHOOD_NETWORK=testnet.
  • Backend-owned fleet: Consensus validators and sealed capacity belong to the product API (https://api.veyanet.tech).
SurfaceHow users connect
Public MCPPaste https://mcp.veyanet.tech/mcp
Product APIhttps://api.veyanet.tech (via MCP tools or direct HTTPS)
SDKnpm install @veyanet/sdk

📖 Table of Contents

  1. Architectural Design Philosophy
  2. High-Level MCP Data Flow
  3. Installation & Environmental Requirements
  4. Server Configuration & Initialization
  5. Connect in Claude / Cursor
  6. Core Tools Overview
  7. Comprehensive Quickstart
  8. Transport, Auth & Reliability
  9. Advanced Cryptography Boundaries
  10. Operator Diagnostics & CLI Tools
  11. Documentation Directory Index
  12. Frequently Asked Questions (FAQ)
  13. Contributing & Security Guidelines
  14. License

🛡️ Architectural Design Philosophy

The design of @veyanet/mcp is governed by the paradigm of Thin Protocol Gate over Thick Cryptographic Client. In naive MCP servers, business logic, secrets, and chain writes are mixed into tool handlers with soft auth. VEYA separates those concerns: the MCP process is a transport and policy shell; @veyanet/sdk remains the cryptographic engine that executes hashing, verification, and EvmAnchor writes.

This core philosophy is implemented through three primary architectural pillars:

1. Streamable HTTP as the Public Contract

Public users and agent runtimes connect with a single URL. The server implements MCP Streamable HTTP (POST /mcp) using @modelcontextprotocol/sdk.

2. Own-wallet write surface

On-chain write tools are always registered. Product writes need a product apiKey and your payerPrivateKey. veya_prove is separate: a read needs no key, and an anchor needs environmentId plus payerPrivateKey only. msg.sender is your address. An empty wallet returns: Mainnet: 'Your wallet has no ETH on Robinhood Chain.' Testnet: 'You don't have testnet tokens. Please get them for the transaction.'

3. Clear service info

GET /health and veya_describe name the selected profile, sealed = AES-256-GCM, and whether writes are enabled. The default profile is Mainnet. Quorum is matching hashes; unreachable nodes return consensus_reached: false. Veya.sol is a protocol contract.


⚡ High-Level MCP Data Flow

The following diagram illustrates how @veyanet/mcp accepts Streamable HTTP tool calls, gates writes, and settles through @veyanet/sdk onto Robinhood Chain:

mermaid
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

📦 Installation & Environmental Requirements

Public users (recommended)

Paste into Claude / Cursor (Streamable HTTP):

text
https://mcp.veyanet.tech/mcp

Optional TypeScript library:

bash
npm install @veyanet/sdk

npm package (optional)

bash
npm install -g @veyanet/mcpveya-mcp# or: npx -y @veyanet/mcp

Starts a Streamable HTTP server. After TLS, point clients at your public HTTPS connector. Keep PUBLIC_MCP_URL=https://mcp.veyanet.tech/mcp as the product paste URL in docs and landing. See docs/DEPLOYMENT.md.

Requirements

  • Node.js ≥ 20
  • Outbound HTTPS to Robinhood RPC and https://api.veyanet.tech
  • Dependency: @veyanet/sdk from npm

🔑 Server Configuration & Initialization

The process loads configuration from environment variables. Unset ROBINHOOD_NETWORK is Mainnet. ROBINHOOD_NETWORK=testnet is Testnet. Copy .env.example to .env for local overrides. Never commit .env.

Configuration Resolution Cascade

Parameters resolve from process environment first, then the Mainnet profile (PUBLIC_MCP_URL=https://mcp.veyanet.tech/mcp). Testnet is ROBINHOOD_NETWORK=testnet. Addresses are in docs/NETWORK_PIN.md.

typescript
import { loadConfig, createHttpApp, startHttpServer } from "@veyanet/mcp";
// 1. Zero-config start (Mainnet)startHttpServer();
// 2. Explicit config for operatorsconst cfg = loadConfig();const app = createHttpApp(cfg);app.listen(cfg.port, cfg.host);

Environment Variables Reference

Variable NameDescriptionDefault / Fallback
PUBLIC_MCP_URLPublic paste URL advertised in landing + healthhttps://mcp.veyanet.tech/mcp
PORTListen port<mcp-port>
HOSTBind address0.0.0.0
ROBINHOOD_RPC_URLTestnet RPC (used when ROBINHOOD_NETWORK=testnet)Public testnet RPC
ROBINHOOD_NETWORKProfileMainnet. testnet selects Testnet
ROBINHOOD_EXPLORER_URLTestnet explorer (used when ROBINHOOD_NETWORK=testnet)Public testnet explorer
VEYA_CONTRACT_ADDRESSTestnet contract (used when ROBINHOOD_NETWORK=testnet)Testnet deploy address
ROBINHOOD_MAINNET_CHAIN_IDMainnet chain id overrideMainnet profile
ROBINHOOD_MAINNET_RPC_URLMainnet RPChttps://rpc.mainnet.chain.robinhood.com
ROBINHOOD_MAINNET_EXPLORER_URLMainnet explorerhttps://robinhoodchain.blockscout.com
VEYA_MAINNET_CONTRACT_ADDRESSMainnet protocol contract0x87dC582eEA544A434a5C1e30Ca3d12c1e548a674
VEYA_API_URLProduct API (health, registry, sessions, fleet capacity)https://api.veyanet.tech
CORS_ORIGINComma-separated Origin allowlistempty = reject credentialed browser Origin
NODE_ENVRuntime modedevelopment
VEYA_PAID_CALLS1 enables Metered Call Guard (3 more tools; callers pay from their own wallet). Its other VEYA_PAID_* settings are in docs/CONFIGURATION.mdoff

Host-only settings (fleet URLs and host signing keys) are covered in the operator guide, docs/DEPLOYMENT.md. Public users never set them.


🔌 Connect in Claude / Cursor

Production (public users / public clients)

Paste into a custom MCP connector using Streamable HTTP transport:

text
https://mcp.veyanet.tech/mcp

No API key is required for public tools, including veya_prove. Product tools need apiKey. Product on-chain writes need that key plus your funded wallet. An anchor through veya_prove needs environmentId and payerPrivateKey only.

Claude CLI

bash
claude mcp add veya --transport http https://mcp.veyanet.tech/mcp

Cursor IDE

Settings → MCP → Add custom MCP server / connector → URL:

text
https://mcp.veyanet.tech/mcp

Info pages

GET https://mcp.veyanet.tech/ returns an info page (overview, capabilities, API key steps). Opening https://mcp.veyanet.tech/mcp in a browser shows setup for Cursor, Claude Code and Codex, plus an FAQ. Health: https://mcp.veyanet.tech/health. Product docs: https://veyanet.tech/mcp. Product API: https://api.veyanet.tech.


🧩 Core Tools Overview

@veyanet/mcp 1.2.11 exposes the full agent surface. Full schemas: docs/TOOLS.md. Reads need no key. Product tools need a site API key. Product on-chain writes spend your wallet and also need that API key. veya_prove does not. veya_seal_decision seals an evidence id and a decision. The receipt is written when that call passes payerPrivateKey, or when VEYA_SEAL_DECISION_RELAYER=1.

0. Proof

text
Tool: veya_proveArgs: exactly one of text, json, txHash      anchor, environmentId, payerPrivateKey only when anchoring

One proof from text, a JSON string, or a receipt hash. Paste https://mcp.veyanet.tech/mcp in Cursor before the run, or the tool is not in the agent's tool list. The URL accepts POST. The response is a stream (event: message and a data: line).

A read sends nothing:

json
{ "text": "hello" }

Text hello returns mode digest, anchored false, and digest ea8f163db38682925e4491c5e58d4bb3506ef8c14eb78a86e908c5624a67200f.

An anchor sends one storeCommitment from the wallet in payerPrivateKey. It does not use a product apiKey, and it does not use the host signer. The environment id must already exist on Veya.sol. This one does: 7d0af0ba-2ae3-4d0e-bc75-0bbaccb3dd71. A 32-hex bytes16 also parses. A hyphenated id must be a real UUID, so 00000000-0000-0000-0000-000000000001 is refused.

json
{  "text": "a unique string",  "anchor": true,  "environmentId": "7d0af0ba-2ae3-4d0e-bc75-0bbaccb3dd71",  "payerPrivateKey": "<funded private key>"}

A receipt with no VEYA log and a receipt that called another contract both return the full proof object: ok false, mode refused, inputKind tx, anchored false, plus txHash, explorerUrl, and refusal.

1. Service info & Discovery

text
Tool: veya_describeArgs: (none)

Returns the service info: package name @veyanet/mcp, public URL, settlement, product API, sealed = AES-256-GCM, write policy.

text
Tool: veya_writes_statusArgs: (none)

Always registered. Explains own-wallet writes: product apiKey + your wallet. Empty wallet message is included.

2. Chain Read & Verify

text
Tool: veya_ping_chainArgs: (none)

Uses @veyanet/sdk VeyaClient.pingChain() against the selected profile and returns block metadata.

text
Tool: veya_verify_transactionArgs: txHash (0x…, min 66 chars)

Parses Veya.sol receipt events via SDK verifyTransaction (CommitmentStored / ExecutionAttested / related). Use a real Robinhood explorer hash.

Example testnet commitment tx:

text
0xd68ab19671f0a3be63651cb6d6e24f5decf591da981708502827bca3689d31d8

3. BLAKE3 Commitment Helper

text
Tool: veya_hash_blake3Args: data (string, min length 1)

Computes a BLAKE3-256 hex digest through the SDK. Useful before an authenticated veya_store_commitment or for local commitment previews.

4. Product API Health

text
Tool: veya_api_healthArgs: (none)

GET {VEYA_API_URL}/health (default https://api.veyanet.tech/health). Returns HTTP status and JSON body, including fleet status.

5. Authenticated On-Chain Writes

Always available. msg.sender is your wallet, not the hosted signer.

ToolPrimary argsOn-chain method
veya_store_commitmentapiKey, payerPrivateKey, environmentUuidHex, commitmentHexstoreCommitment
veya_attest_executionapiKey, payerPrivateKey, environmentUuidHex, blake3HashHex, mldsaSigHexattestExecution
veya_register_environmentapiKey, payerPrivateKey, environmentId or environmentUuidHexregisterEnvironment

Writes go through SDK EvmAnchor, which calls ensureRobinhoodChain() before submit so a mis-pointed RPC cannot silently land on another EVM. If the wallet has no ETH: Mainnet: 'Your wallet has no ETH on Robinhood Chain.' Testnet: 'You don't have testnet tokens. Please get them for the transaction.'


6. Metered Call Guard

text
Tools: veya_paid_discover, veya_paid_call, veya_paid_runOn 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 accountReceipts: public proof links (no keys, apiKey or input)Kill switch: operator-only; callers cannot change it

An agent calls a metered x402 resource through one guarded tool. VEYA checks the call against a fixed policy before anything is signed, checks your API key and both wallet balances, pays exactly the approved quote from your Solana wallet, verifies the payment on Solana at finalized, gets 2-of-3 validator signatures, anchors a commitment on Veya.sol from your Robinhood Chain address and saves the run to your VEYA account. A blocked call is never signed and moves no money. The same idempotencyKey never pays twice. Every run gets a receipt at /receipts/paid/<runId>. Receipt links are public: anyone with the link can read the proof, and a receipt never holds keys, your apiKey or your input. Every refusal returns decision: "blocked", a stable code and payment: null. veya_paid_discover shows the per-call cap, the task budget maximum (0.04 USDC) and default, and for each resource the provider quote and the total charged to your task budget. See docs/PAID_CALLS.md.

Try it from any MCP client connected to https://mcp.veyanet.tech/mcp:

  1. veya_paid_discover to see allowed resources, input fields and a live quote.
  2. veya_paid_call with taskId, a new idempotencyKey, resourceId, input, your apiKey, your Solana secret key in solanaPrivateKey and your Robinhood Chain key in robinhoodPrivateKey.
  3. Open the Solscan, Blockscout and receipt links in the reply.
  4. veya_paid_run with your apiKey lists the runs saved to your account.
json
{  "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>"  }}

Keys are used in memory for that one call and never stored, logged or returned. Use dedicated wallets: a little USDC and SOL on Solana, a little ETH on Robinhood Chain. A missing value returns API_KEY_REQUIRED, SOLANA_KEY_REQUIRED or ROBINHOOD_KEY_REQUIRED and nothing happens. Servers without VEYA_PAID_CALLS=1 list 51 tools; with it, 54. Guide: docs/PAID_CALLS.md.


🚀 Comprehensive Quickstart

A. Public path (no keys, no clone)

  1. Open Claude or Cursor MCP settings.
  2. Add Streamable HTTP URL: https://mcp.veyanet.tech/mcp.
  3. Ask the agent to run veya_prove with { "text": "hello" }.
  4. Ask the agent to run veya_describe.
  5. Ask the agent to run veya_ping_chain and confirm the profile is the one you selected.

B. Developer path (local process)

bash
git clone https://github.com/veyanet/veya-mcp.gitcd veya-mcpnpm installcp .env.example .env   # do not commit .envnpm run buildnpm start

In another terminal:

bash
npm testnpm run smoke

Smoke starts an in-process server, performs MCP initialize + tools/list, then calls veya_describe and veya_ping_chain against live RPC.

C. Product write path (your funded wallet)

These tools need a product apiKey. veya_prove does not. An anchor on veya_prove is environmentId plus payerPrivateKey only.

  1. Create a veya_dev_ / veya_live_ key at app.veyanet.tech: connect your wallet, open System → API Keys, and create a Dev (veya_dev_…) or Live (veya_live_…) key. The key is shown once.
  2. Set VEYA_PAYER_PRIVATE_KEY on a self-hosted server, or pass payerPrivateKey on the tool. The public veya_prove tool reads only the argument.
  3. Call veya_store_commitment (or veya_anchor_proof) with apiKey.
  4. Confirm from in the result is your address, and open the explorer txHash.
  5. If the wallet is empty you get: Mainnet: 'Your wallet has no ETH on Robinhood Chain.' Testnet: 'You don't have testnet tokens. Please get them for the transaction.'

⚠️ Transport, Auth & Reliability

HTTP Endpoints

MethodPathPurpose
GET/Landing HTML with paste URL
GET/healthservice info (service, version, chain, writesEnabled, sealed)
POST/mcpStateless Streamable HTTP MCP
POST/mcp/sessionOptional sessionful path (MCP-Session-Id)

CORS

CORS_ORIGIN is an allowlist. Empty allowlist rejects credentialed browser Origin values. Server-to-server MCP clients (no Origin) are unaffected.

Auth Model

  • Public tools: no key.
  • Product tools: apiKey from the product site (X-Api-Key toward api.veyanet.tech).
  • Write tools: same apiKey plus your payerPrivateKey. from is your address.
  • Private keys never appear in /health or success payloads.

Failure Modes

  • Wrong RPC chain id on writes → SDK CHAIN_MISMATCH (fail closed).
  • Missing apiKey → { "error": "apiKey required" }.
  • Unfunded payer → 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 returns the API status.

🔒 Advanced Cryptography Boundaries

@veyanet/mcp does not re-implement PQ algorithms. It calls @veyanet/sdk, which provides:

1. ML-DSA-44 Post-Quantum Identity (FIPS 204)

Used when operators submit attestation signature bytes through veya_attest_execution. Verification of ML-DSA remains off-chain in the SDK / auditors; the chain stores bounded attestation bytes and hashes.

2. BLAKE3-256 Digesting

veya_hash_blake3 and commitment writes use 32-byte digests. Use-mode human content proofs on the product console may use SHA-256 for browser convenience; MCP commitment helpers follow the SDK BLAKE3 path.

3. AES-256-GCM Sealed Execution

Sealed execution runs in the operator sealed node with AES-256-GCM.

4. Chain Id Guard

EvmAnchor.ensureRobinhoodChain() runs before on-chain writes so MCP operators cannot accidentally settle on the wrong EVM.


🛠️ Operator Diagnostics & CLI Tools

The package ships with verification scripts for operators and publishers:

bash
# Typechecknpm 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 processnpm run build && npm start

Health probe:

bash
curl -s https://mcp.veyanet.tech/health | jq .# or local:curl -s https://mcp.veyanet.tech/health | jq .

Expected service info fields include service: "@veyanet/mcp", network for the selected profile, sealed mentioning AES-256-GCM, and writesEnabled boolean. This tree's default network is mainnet.

Production TLS for mcp.veyanet.tech: see Deployment Guide.


📚 Documentation Directory Index

This README serves as the entry point. For detailed operational and integrator material, refer to the documentation directory:

DocumentTopicDescription
Documentation HubIndexMaster catalog and reading paths for public users vs operators.
Network SpecificationsNetworkChain id, RPC, explorer, Veya.sol address, public MCP URL.
Quickstart GuideTutorialPaste URL → first tools → local loop → smoke.
System ArchitectureSecurityTrust boundaries between MCP, SDK, API, and chain.
Tools ReferenceReferenceEvery veya_* tool, args, and auth requirements.
Verification GuideAuditHow to prove a commitment via MCP + explorer.
Deployment GuideOperationsnginx, env, systemd, TLS for mcp.veyanet.tech.
Configuration ReferenceConfigFull environment variable cascade and defaults.
HTTP TransportProtocolStreamable HTTP, sessions, CORS, Accept headers.
Authentication & WritesSecurityProduct API key vs your wallet; funding.
SDK RelationshipIntegrationWhat MCP calls in @veyanet/sdk and the product API.
Metered Call GuardOpt-in featureMetered x402 calls under a VEYA policy, verified on Solana and recorded on Robinhood Chain.
ChangelogHistoryPackage version history.
Security PolicySecurityDisclosure and secrets hygiene.

❓ Frequently Asked Questions (FAQ)

1. Do I need an API key to try VEYA MCP?

No for public tools (veya_describe, veya_ping_chain, veya_hash_blake3, veya_verify_transaction, veya_api_health). Product rooms and on-chain writes need a veya_dev_ / veya_live_ key from the product site. On-chain writes also need your funded wallet.

2. Does the MCP store or transmit my private keys to clients?

No in tool results or /health. If you pass payerPrivateKey to the public HTTP URL, that host holds it for the call — prefer self-host with VEYA_PAYER_PRIVATE_KEY. Never use a mainnet key.

3. What is Veya.sol?

Veya.sol is a protocol contract for environments, agents, commitments, spending limits (wei), nullifiers, and attestations.

4. What is sealed execution?

The service info names AES-256-GCM sealed-node cryptography (software process boundary).

5. How is MCP different from @veyanet/sdk?

The SDK is a TypeScript library you import. MCP is a network service that exposes selected SDK capabilities as MCP tools over Streamable HTTP so agents can paste a URL.

6. How do I connect?

Paste https://mcp.veyanet.tech/mcp. Consensus and sealed capacity belong to the product API (https://api.veyanet.tech). Use @veyanet/sdk from npm for TypeScript.

7. What happens if Robinhood RPC is down?

veya_ping_chain and verify tools fail with transport / RPC errors. Check https://mcp.veyanet.tech/health and the Robinhood RPC separately.

8. Can I point this server at another chain id?

Select Mainnet or Testnet with ROBINHOOD_NETWORK. Do not point the RPC at a different chain from the profile. SDK writes reject that mismatch. Mainnet is the default profile in this tree.


🤝 Contributing & Security Guidelines

Contribution Standards

We welcome contributions to @veyanet/mcp. Pull requests must preserve security integrity:

  • Own-wallet writes: Do not send chain txs from a hosted signer when the caller has a product API key; msg.sender must be the user's wallet.
  • Secret Hygiene: Reject changes that log apiKey, payerPrivateKey, or dump .env into docs.
  • SDK Boundary: Prefer calling @veyanet/sdk over re-implementing hashing, verify, or EvmAnchor inside tool handlers.

Vulnerability Disclosure Policy

If you discover a security vulnerability, do not file a public GitHub issue. Submit findings confidentially to [email protected]. See our Security Policy for full details.


📄 License

This package is licensed under the MIT License. See the LICENSE file for legal details.

來源:README.md,提交 c68123c

工具

51

veya_describe

Service info: AES-256-GCM sealed execution and the selected settlement profile

無需輸入參數。

veya_ping_chain

Ping Robinhood Chain RPC — chain id, block, contract

無需輸入參數。

veya_hash_blake3

Compute BLAKE3 hex digest (commitment helper)

輸入參數data必填

veya_verify_transaction

Verify a Veya.sol commitment from a Robinhood Chain tx hash

輸入參數txHash必填

veya_api_health

Check the VEYA API /health status (api.veyanet.tech), including fleet status

無需輸入參數。

veya_prove

Prove text, canonical JSON, or a receipt hash. Anchor writes only when a product API key and a payer key are passed.

輸入參數jsontextanchorapiKeytxHashenvironmentIdpayerPrivateKey

veya_seal_decision

Seal an evidence id and a decision. attestExecution is sent only when a payer key is passed, or when this host's seal-decision relayer switch is on. On Mainnet pass environmentId or set VEYA_SEAL_DECISION_ENVIRONMENT_ID. Without either, the result is SEAL_ENVIRONMENT_REQUIRED and nothing is sent.

輸入參數apiKeydecision必填evidenceId必填environmentIdpayerPrivateKey

veya_pq_keygen

Generate an ML-DSA-44 post-quantum identity keypair (local, no chain write)

無需輸入參數。

veya_pq_sign

Sign UTF-8 text with ML-DSA-44

輸入參數message必填privateKeyHex必填

veya_pq_verify

Verify an ML-DSA-44 signature over UTF-8 text

輸入參數message必填publicKeyHex必填signatureHex必填

veya_run_consensus

Run 2-of-3 BLAKE3 consensus on this server's validator list. Needs a product API key. Returns consensus_reached: false if validators are unreachable.

輸入參數apiKeytaskId必填payload

veya_sealed_execute

AES-256-GCM protected execution on this server's sealed node. Needs a product API key. The call fails closed when that capacity is unreachable.

輸入參數apiKeyagentId必填payload必填eventType必填environmentId必填sessionEntropyHex必填

veya_set_tool_policy

Allow or deny a tool for an agent. Requires the API key that owns the environment. Saved on that account.

輸入參數tool必填apiKeyagentId必填allowed必填environmentId必填

veya_route_message

Check the saved tool rule for this API key before routing. Deny stays deny.

輸入參數id必填tool必填apiKeypayloadtoAgent必填fromAgent必填environmentId必填

veya_route_secure_message

Check the saved tool rule for this API key, then wrap an allowed message in a Kyber-768 session and an ML-DSA-44 signature.

輸入參數id必填tool必填apiKeypayloadtoAgent必填fromAgent必填environmentId必填senderPublicKeyHex必填senderPrivateKeyHex必填

veya_verify_secure_message

Verify ML-DSA signature on a secure routed message envelope

輸入參數message必填senderPublicKeyHex必填

veya_store_memory

Store agent memory for the account behind this API key. No key, no write.

輸入參數data必填apiKeyagentId必填environmentId必填

veya_read_memory

Read one memory row owned by this API key.

輸入參數id必填apiKeyenvironmentId必填

veya_invalidate_memory

Nullify one memory row owned by this API key.

輸入參數id必填apiKeyenvironmentId必填

veya_client_run_consensus

Deprecated: use veya_run_consensus. Same server validator list. Needs a product API key.

輸入參數apiKeytaskId必填payload

veya_pq_fingerprint

BLAKE3 fingerprint of an ML-DSA public key hex

輸入參數publicKeyHex必填

veya_public_stats

Public registry stats from the product API (verified agents / proofs)

無需輸入參數。

veya_public_list_agents

List public agent registry rows

輸入參數limitoffset

veya_public_get_agent

Fetch one public agent by id

輸入參數id必填

veya_public_list_certificates

List public certificate / attestation rows

輸入參數limitoffset

veya_public_get_certificate

Fetch one public certificate by id

輸入參數id必填

veya_public_get_execution

Fetch a public execution proof by id

輸入參數id必填

veya_verify_commitment_onchain

Parse Veya.sol events from a tx and eth_call commitments(digest) for each CommitmentStored

輸入參數txHash必填

veya_commitment_exists

eth_call Veya.sol commitments(bytes32) for a digest

輸入參數digestHex必填

veya_read_environment_onchain

Read environment record from Veya.sol by 16-byte UUID hex

輸入參數environmentUuidHex必填

veya_read_agent_onchain

Read agent record from Veya.sol by 16-byte UUID hex

輸入參數agentUuidHex必填

veya_guest_login

Create a guest session on the product API (Use listing only). Guest cannot mint API keys or write from MCP.

無需輸入參數。

veya_account

Return the wallet bound to a product API key

輸入參數apiKeysessionToken

veya_list_environments

List environments for a product API key (guest JWT sees showcase / Use scope only)

輸入參數apiKeysessionToken

veya_get_environment

Get one environment by id

輸入參數apiKeysessionTokenenvironmentId必填

veya_create_environment

Create a workspace in the product API. This does not spend gas and sends no transaction. Guests and non-keys are refused. type is stored for the API and defaults to research when omitted. Names that start with test, demo, tmp, sandbox, or e2e are refused. Use a real workspace name of at least 6 characters, or a name that starts with VEYA.

輸入參數name必填typeapiKeysessionToken

veya_list_agents

List agents in an environment

輸入參數apiKeysessionTokenenvironmentId必填

veya_deploy_agent

Create an agent in a workspace. This does not spend gas and sends no transaction. Limit the agent with permissionConfig.allowedTools. If allowedTools is omitted, the agent cannot call a tool. type is stored for the API and defaults to coordination when omitted.

輸入參數typeapiKeyagentKindsessionTokenenvironmentId必填permissionConfig

veya_list_api_memory

List memory entries via product API for an environment

輸入參數scopeapiKeysessionTokenenvironmentId必填

veya_list_executions

List executions for an environment via product API

輸入參數apiKeysessionTokenenvironmentId必填

veya_run_protected_execution

Run protected execution via product API (Build). Product API key required.

輸入參數sealapiKeyagentId必填payload必填discloseeventType必填sessionTokenenvironmentId必填

veya_boundnet_invoke

Invoke a Boundnet / coordination tool via product API (policy gated)

輸入參數apiKeyagentId必填toolName必填argumentssessionTokenenvironmentId必填

veya_list_proofs

List Use-mode proof anchors for the account

輸入參數apiKeysessionToken

veya_anchor_proof

Anchor a content proof on Veya.sol from YOUR wallet (apiKey + payerPrivateKey). Does not use the hosted relayer.

輸入參數label必填apiKeycontent必填sessionTokenenvironmentIdpayerPrivateKey

veya_verify_proof_api

Check a commitment or anchor transaction through the product API. A registration transaction is not a proof and returns NOT_VEYA_TX.

輸入參數signature必填

veya_writes_status

Reports how on-chain writes work on this server: your own wallet sends them, the host relayer does not

無需輸入參數。

veya_store_commitment

Write a 32-byte commitment to Veya.sol from YOUR wallet (apiKey + payerPrivateKey)

輸入參數apiKeycommitmentHex必填payerPrivateKeyenvironmentUuidHex必填

veya_attest_execution

attestExecution on Veya.sol from YOUR wallet with ML-DSA bytes

輸入參數apiKeymldsaSigHex必填blake3HashHex必填payerPrivateKeyenvironmentUuidHex必填

veya_register_environment

registerEnvironment on Veya.sol from YOUR wallet. Pass product environmentId to confirm the tx on the product API.

輸入參數apiKeyenvTypeenvironmentIdpayerPrivateKeypqPubkeyHashHexenvironmentUuidHex

veya_register_pq_onchain

Generate ML-DSA identity and register environment + commitment on Veya.sol from YOUR wallet

輸入參數apiKeyenvTypepayerPrivateKey

veya_anchor_pq_attestation

Link PQ identity hash to execution hash on Veya.sol from YOUR wallet

輸入參數apiKeyidentityHashHex必填payerPrivateKeyexecutionHashHex必填environmentUuidHex必填

版本歷史

1
  1. v1.2.8最新Oct 21, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分