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 分