# VEYA (remote · mcp.veyanet.tech)

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

- Trust score: 65/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-04

## Components

- remote · `mcp.veyanet.tech`: 65/100 (this document), [markdown](https://verifymcp.io/servers/veyanet-veya/mcp.md), [page](https://verifymcp.io/servers/veyanet-veya/mcp)

## Channel facts

- Endpoint: `https://mcp.veyanet.tech/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.2.8`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-04.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 55 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 59/100
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 4414 tokens (~80/item across 55 items; 55 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 47/100
  - Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 77/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 31% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "veya_sealed_execute" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 55 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the VEYA MCP server?

VEYA is a hosted endpoint at https://mcp.veyanet.tech/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

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

### Cursor

```json
{
  "mcpServers": {
    "veyanet-veya": {
      "url": "https://mcp.veyanet.tech/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "veyanet-veya": {
      "type": "http",
      "url": "https://mcp.veyanet.tech/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.veyanet-veya]
url = "https://mcp.veyanet.tech/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "veyanet-veya": {
      "type": "remote",
      "url": "https://mcp.veyanet.tech/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add veyanet-veya --url 'https://mcp.veyanet.tech/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  veyanet-veya:
    url: "https://mcp.veyanet.tech/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "veyanet-veya": {
      "Transport": "http",
      "Url": "https://mcp.veyanet.tech/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add veyanet-veya -t streamable-http -u 'https://mcp.veyanet.tech/mcp'
```

### Other

```json
{
  "mcpServers": {
    "veyanet-veya": {
      "type": "http",
      "url": "https://mcp.veyanet.tech/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 63, 0)

- [functional] Server version: 1.2.11 → 1.2.12
- [functional] New tool “veya_tier”

### 2026-10-31 (score 63, +1)

- [security] Tool “veya_anchor_proof” rewrote its description, which is the text the model reads
- [security] Tool “veya_paid_call” rewrote its description, which is the text the model reads
- [security] Tool “veya_ping_chain” rewrote its description, which is the text the model reads
- [security] Tool “veya_seal_decision” rewrote its description, which is the text the model reads
- [security] Tool “veya_writes_status” rewrote its description, which is the text the model reads
- [functional] Server version: 1.2.10 → 1.2.11
- [cosmetic] “veya_paid_call” reworded the description of “environmentUuid”

### 2026-10-29 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-26 (score 60, +1)

- [security] Tool “veya_paid_call” rewrote its description, which is the text the model reads
- [security] Tool “veya_paid_discover” rewrote its description, which is the text the model reads
- [security] Tool “veya_paid_run” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 66 → 79
- [functional regression] “veya_paid_call” added a required parameter “apiKey”, so existing callers break
- [functional regression] “veya_paid_run” added a required parameter “apiKey”, so existing callers break
- [functional improvement] Tool coverage: 22% → 30%
- [functional] Server version: 1.2.9 → 1.2.10
- [cosmetic] “veya_paid_call” added an optional parameter “environmentUuid”
- [cosmetic] “veya_paid_call” added an optional parameter “robinhoodPrivateKey”
- [cosmetic] “veya_paid_call” added an optional parameter “solanaPrivateKey”
- [cosmetic] “veya_paid_run” added an optional parameter “robinhoodPrivateKey”
- [cosmetic] “veya_paid_call” reworded the description of “idempotencyKey”
- [cosmetic] “veya_paid_call” reworded the description of “input”
- [cosmetic] “veya_paid_call” reworded the description of “resourceId”
- [cosmetic] “veya_paid_call” reworded the description of “taskBudgetAtomic”
- [cosmetic] “veya_paid_call” reworded the description of “taskId”
- [cosmetic] “veya_paid_call” reworded the description of “url”
- [cosmetic] “veya_paid_run” reworded the description of “resume”
- [cosmetic] “veya_paid_run” reworded the description of “runId”
- [cosmetic] “veya_paid_run” made “runId” optional

### 2026-10-25 (score 59, 0)

- [functional] Server version: 1.2.8 → 1.2.9
- [functional] New tool “veya_paid_call”
- [functional] New tool “veya_paid_discover”
- [functional] New tool “veya_paid_run”

## MCP tools (55)

### `veya_describe` (~25 tokens)

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

### `veya_ping_chain` (~19 tokens)

Ping Robinhood Chain RPC — block, contract

### `veya_hash_blake3` (~30 tokens)

Compute BLAKE3 hex digest (commitment helper)

Input parameters:

- `data` (string, required)

### `veya_verify_transaction` (~31 tokens)

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

Input parameters:

- `txHash` (string, required)

### `veya_api_health` (~28 tokens)

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

### `veya_prove` (~90 tokens)

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

Input parameters:

- `anchor` (boolean)
- `apiKey` (string)
- `environmentId` (string)
- `json` (string)
- `payerPrivateKey` (string)
- `text` (string)
- `txHash` (string)

### `veya_seal_decision` (~120 tokens)

Seal an evidence id and a decision. attestExecution is sent only when a payer key is passed, or when this host's seal-decision host-signer 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.

Input parameters:

- `apiKey` (string)
- `decision` (string, required)
- `environmentId` (string)
- `evidenceId` (string, required)
- `payerPrivateKey` (string)

### `veya_pq_keygen` (~33 tokens)

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

### `veya_pq_sign` (~39 tokens)

Sign UTF-8 text with ML-DSA-44

Input parameters:

- `message` (string, required)
- `privateKeyHex` (string, required)

### `veya_pq_verify` (~49 tokens)

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

Input parameters:

- `message` (string, required)
- `publicKeyHex` (string, required)
- `signatureHex` (string, required)

### `veya_run_consensus` (~68 tokens)

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.

Input parameters:

- `apiKey` (string)
- `payload` (object)
- `taskId` (string, required)

### `veya_sealed_execute` (~88 tokens)

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.

Input parameters:

- `agentId` (string, required)
- `apiKey` (string)
- `environmentId` (string, required)
- `eventType` (string, required)
- `payload` (object, required)
- `sessionEntropyHex` (string, required)

### `veya_set_tool_policy` (~71 tokens)

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

Input parameters:

- `agentId` (string, required)
- `allowed` (boolean, required)
- `apiKey` (string)
- `environmentId` (string, required)
- `tool` (string, required)

### `veya_route_message` (~77 tokens)

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

Input parameters:

- `apiKey` (string)
- `environmentId` (string, required)
- `fromAgent` (string, required)
- `id` (string, required)
- `payload`
- `toAgent` (string, required)
- `tool` (string, required)

### `veya_route_secure_message` (~113 tokens)

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.

Input parameters:

- `apiKey` (string)
- `environmentId` (string, required)
- `fromAgent` (string, required)
- `id` (string, required)
- `payload`
- `senderPrivateKeyHex` (string, required)
- `senderPublicKeyHex` (string, required)
- `toAgent` (string, required)
- `tool` (string, required)

### `veya_verify_secure_message` (~40 tokens)

Verify ML-DSA signature on a secure routed message envelope

Input parameters:

- `message` (object, required)
- `senderPublicKeyHex` (string, required)

### `veya_store_memory` (~57 tokens)

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

Input parameters:

- `agentId` (string, required)
- `apiKey` (string)
- `data` (string, required)
- `environmentId` (string, required)

### `veya_read_memory` (~42 tokens)

Read one memory row owned by this API key.

Input parameters:

- `apiKey` (string)
- `environmentId` (string, required)
- `id` (string, required)

### `veya_invalidate_memory` (~44 tokens)

Nullify one memory row owned by this API key.

Input parameters:

- `apiKey` (string)
- `environmentId` (string, required)
- `id` (string, required)

### `veya_client_run_consensus` (~53 tokens)

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

Input parameters:

- `apiKey` (string)
- `payload` (object)
- `taskId` (string, required)

### `veya_pq_fingerprint` (~35 tokens)

BLAKE3 fingerprint of an ML-DSA public key hex

Input parameters:

- `publicKeyHex` (string, required)

### `veya_public_stats` (~22 tokens)

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

### `veya_public_list_agents` (~30 tokens)

List public agent registry rows

Input parameters:

- `limit` (integer)
- `offset` (integer)

### `veya_public_get_agent` (~24 tokens)

Fetch one public agent by id

Input parameters:

- `id` (string, required)

### `veya_public_list_certificates` (~33 tokens)

List public certificate / attestation rows

Input parameters:

- `limit` (integer)
- `offset` (integer)

### `veya_public_get_certificate` (~24 tokens)

Fetch one public certificate by id

Input parameters:

- `id` (string, required)

### `veya_public_get_execution` (~25 tokens)

Fetch a public execution proof by id

Input parameters:

- `id` (string, required)

### `veya_verify_commitment_onchain` (~40 tokens)

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

Input parameters:

- `txHash` (string, required)

### `veya_commitment_exists` (~31 tokens)

eth_call Veya.sol commitments(bytes32) for a digest

Input parameters:

- `digestHex` (string, required)

### `veya_read_environment_onchain` (~34 tokens)

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

Input parameters:

- `environmentUuidHex` (string, required)

### `veya_read_agent_onchain` (~34 tokens)

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

Input parameters:

- `agentUuidHex` (string, required)

### `veya_guest_login` (~32 tokens)

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

### `veya_account` (~72 tokens)

Return the wallet bound to a product API key

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.

### `veya_tier` (~137 tokens)

Your $VEYA account tier and the limits it sets on the product API: daily actions, daily receipts, receipt history window and API key rate per minute, plus today's use. The tier comes from the $VEYA held by your sign-in wallet plus up to 3 linked wallets on Robinhood Chain mainnet. Without a key, returns the public tier table.

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.

### `veya_list_environments` (~81 tokens)

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

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.

### `veya_get_environment` (~77 tokens)

Get one environment by id

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `environmentId` (string, required)
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.

### `veya_create_environment` (~156 tokens)

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.

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `name` (string, required)
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.
- `type` (string)

### `veya_list_agents` (~77 tokens)

List agents in an environment

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `environmentId` (string, required)
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.

### `veya_deploy_agent` (~147 tokens)

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.

Input parameters:

- `agentKind` (string)
- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `environmentId` (string, required)
- `permissionConfig` (object)
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.
- `type` (string)

### `veya_list_api_memory` (~89 tokens)

List memory entries via product API for an environment

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `environmentId` (string, required)
- `scope` (string)
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.

### `veya_list_executions` (~82 tokens)

List executions for an environment via product API

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `environmentId` (string, required)
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.

### `veya_run_protected_execution` (~124 tokens)

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

Input parameters:

- `agentId` (string, required)
- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `disclose` (array)
- `environmentId` (string, required)
- `eventType` (string, required)
- `payload` (object, required)
- `seal` (array)
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.

### `veya_boundnet_invoke` (~110 tokens)

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

Input parameters:

- `agentId` (string, required)
- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `arguments` (object)
- `environmentId` (string, required)
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.
- `toolName` (string, required)

### `veya_list_proofs` (~73 tokens)

List Use-mode proof anchors for the account

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.

### `veya_anchor_proof` (~142 tokens)

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

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Mint on the product site. Guest JWT is not a write credential.
- `content` (string, required)
- `environmentId` (string)
- `label` (string, required)
- `payerPrivateKey` (string): User wallet private key that pays gas. Prefer VEYA_PAYER_PRIVATE_KEY on a self-hosted MCP.
- `sessionToken` (string): Optional guest JWT for Use listing only. Prefer apiKey.

### `veya_verify_proof_api` (~44 tokens)

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

Input parameters:

- `signature` (string, required)

### `veya_writes_status` (~32 tokens)

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

### `veya_store_commitment` (~105 tokens)

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

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Required for on-chain writes.
- `commitmentHex` (string, required)
- `environmentUuidHex` (string, required)
- `payerPrivateKey` (string): User wallet private key that pays gas. Prefer VEYA_PAYER_PRIVATE_KEY on a self-hosted MCP.

### `veya_attest_execution` (~114 tokens)

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

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Required for on-chain writes.
- `blake3HashHex` (string, required)
- `environmentUuidHex` (string, required)
- `mldsaSigHex` (string, required)
- `payerPrivateKey` (string): User wallet private key that pays gas. Prefer VEYA_PAYER_PRIVATE_KEY on a self-hosted MCP.

### `veya_register_environment` (~125 tokens)

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

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Required for on-chain writes.
- `envType` (integer)
- `environmentId` (string)
- `environmentUuidHex` (string)
- `payerPrivateKey` (string): User wallet private key that pays gas. Prefer VEYA_PAYER_PRIVATE_KEY on a self-hosted MCP.
- `pqPubkeyHashHex` (string)

### `veya_register_pq_onchain` (~96 tokens)

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

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Required for on-chain writes.
- `envType` (integer)
- `payerPrivateKey` (string): User wallet private key that pays gas. Prefer VEYA_PAYER_PRIVATE_KEY on a self-hosted MCP.

### `veya_anchor_pq_attestation` (~111 tokens)

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

Input parameters:

- `apiKey` (string): Product API key (veya_dev_… / veya_live_…). Required for on-chain writes.
- `environmentUuidHex` (string, required)
- `executionHashHex` (string, required)
- `identityHashHex` (string, required)
- `payerPrivateKey` (string): User wallet private key that pays gas. Prefer VEYA_PAYER_PRIVATE_KEY on a self-hosted MCP.

### `veya_paid_discover` (~68 tokens)

Read-only. List the resources this VEYA policy allows, with their input fields, a live quote (nothing is sent), the provider quote and total charged to your task budget for each resource, the per-call cap, task budget maximum and default, and a policy preview. Cannot pay.

### `veya_paid_call` (~610 tokens)

Run one metered x402 resource call through the VEYA policy gate. Needs your VEYA apiKey, your Solana key (solanaPrivateKey, pays the USDC) and your Robinhood Chain key (robinhoodPrivateKey, signs the VEYA record and pays its ETH gas). Keys are used in memory for this call only and never stored. Before anything is signed VEYA checks the apiKey, both keys, your USDC and ETH balances, and the policy (tool, host, resource, network, asset, payee, per-call cap, task budget, input). It then pays, verifies the Solana payment at finalized, runs a 2-of-3 validator check, records a commitment on Robinhood Chain from your address and saves the run to your VEYA account. Every refusal returns decision blocked, a stable code and payment: null. The kill switch is operator-only; callers cannot change it. Allow at least 120 s for the tool call timeout.

Input parameters:

- `apiKey` (string, required): Your VEYA product API key (veya_dev_... or veya_live_...) from https://app.veyanet.tech (System -> API Keys). Every run is saved to this key's VEYA account.
- `environmentUuid` (string): Optional VEYA environment on Veya.sol to record under (yours, from veya_register_environment). Defaults to the VEYA metered-call environment shown by veya_paid_discover.
- `idempotencyKey` (string, required): Unique per intended payment (per VEYA account). Repeating it returns the same run and never pays again; use a new key for a new payment.
- `input` (object, required): Input fields for the resource, exactly as listed by veya_paid_discover (string values only).
- `resourceId` (string): A resource id from veya_paid_discover, e.g. tokens.asset-risk-summary.
- `robinhoodPrivateKey` (string): Your own Robinhood Chain wallet private key (0x + 64 hex). It signs the VEYA record (storeCommitment on Veya.sol) and pays its small ETH gas, so the record comes from your address. Used in memory onl…
- `solanaPrivateKey` (string): Your own Solana wallet secret key (base58, or a JSON array of 64 numbers). It pays the USDC for this one call from your wallet. Used in memory only, never stored, logged or returned.
- `taskBudgetAtomic` (string): Optional task budget in USDC atomic units (6 decimals, 10000 = 0.01 USDC). Defaults to the policy budget; cannot exceed the policy maximum.
- `taskId` (string, required): Your task id. Calls with the same taskId share one task budget (per VEYA account).
- `url` (string): Optional. Normally omit it and use resourceId; any URL outside the allowlist is blocked before payment.

### `veya_paid_run` (~261 tokens)

Read your VEYA runs. Private to the account of the apiKey you pass; another key cannot read them. With runId: one run (state, payment, validators, Robinhood record, receipt). Without runId: the runs saved to your VEYA account. With resume=true: retries Solana verification, the 2-of-3 validator check or the Robinhood record for an unfinished run; pass robinhoodPrivateKey to sign the record. Never pays.

Input parameters:

- `apiKey` (string, required): Your VEYA product API key (veya_dev_... or veya_live_...) from https://app.veyanet.tech (System -> API Keys). Every run is saved to this key's VEYA account.
- `resume` (boolean): Retry the unfinished steps of this run. Never pays again.
- `robinhoodPrivateKey` (string): Your own Robinhood Chain wallet private key (0x + 64 hex). It signs the VEYA record (storeCommitment on Veya.sol) and pays its small ETH gas, so the record comes from your address. Used in memory onl…
- `runId` (string): Run id returned by veya_paid_call. Omit to list your runs.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/veyanet-veya/mcp#diagnostics

## Score history

- 2026-11-04: 65
- 2026-11-03: 64
- 2026-11-02: 64
- 2026-11-01: 63
- 2026-10-31: 63
- 2026-10-30: 62
- 2026-10-29: 62
- 2026-10-28: 61
- 2026-10-27: 61
- 2026-10-26: 60
- 2026-10-25: 59
- 2026-10-24: 59
- 2026-10-23: 58
- 2026-10-22: 58
- 2026-10-21: 57

## Common questions

### What is the VEYA MCP server?

VEYA is an MCP server listed in the public MCP registry as io.github.veyanet/veya. Check, limit, record and prove AI agent actions with 2-of-3 validators and onchain proofs. This page covers its hosted endpoint (https://mcp.veyanet.tech/mcp).

### Is the VEYA MCP server safe to use?

VEYA scores 65 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the VEYA MCP server expose?

VEYA exposes 55 tools: veya_describe, veya_ping_chain, veya_hash_blake3, veya_verify_transaction, veya_api_health, and 50 more. Their descriptions and schemas cost roughly 4,414 tokens of context every time the server is loaded.

### Does the VEYA MCP server require authentication?

No. We connected to VEYA without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the VEYA MCP server still maintained?

VEYA is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://mcp.veyanet.tech/mcp
- Authorisation metadata: https://mcp.veyanet.tech/.well-known/oauth-protected-resource/mcp
- Repository: https://github.com/veyanet/veya-mcp
- Website: https://veyanet.tech/docs
- Changelog RSS feed: https://verifymcp.io/servers/veyanet-veya/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/veyanet-veya/mcp.json
- HTML version of this page: https://verifymcp.io/servers/veyanet-veya/mcp
