Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Check, limit, record and prove AI agent actions with 2-of-3 validators and onchain proofs.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
AuthorizationValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Run this in your terminal
claude mcp add --transport http veya https://mcp.veyanet.tech/mcp --header 'Authorization: Bearer {veya_api_key}'Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"veya": {
"url": "https://mcp.veyanet.tech/mcp",
"headers": {
"Authorization": "Bearer {veya_api_key}"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"veya": {
"type": "http",
"url": "https://mcp.veyanet.tech/mcp",
"headers": {
"Authorization": "Bearer {veya_api_key}"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
Authorization secret required HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account veyanet, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: Authorization
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.2.8) reached the registry 17 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, OpenTakeoff
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Construction takeoff for AI agents: load plans, set scale, measure, count, export with provenance.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
The official Model Context Protocol server for post-quantum agent tools, chain verification, sealed-execution service info, and protocol settlement on Robinhood Chain.
[Official Website](https://veyanet.tech) • [X (Twitter)](https://x.com/withveya) • [Public MCP URL](https://mcp.veyanet.tech/mcp) • [Documentation Index](./docs/README.md) • [Network Specifications](./docs/NETWORK_PIN.md) • [Security Policy](./SECURITY.md)
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 @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:
https://mcp.veyanet.tech/mcp (Streamable HTTP).Veya.sol txs, PQ crypto, registry, product sessions via https://api.veyanet.tech.veya_dev_ / veya_live_) and your funded wallet. The hosted signer is not the gas payer.@veyanet/sdk. The default profile is Mainnet. Testnet is ROBINHOOD_NETWORK=testnet.https://api.veyanet.tech).| Surface | How users connect |
|---|---|
| Public MCP | Paste https://mcp.veyanet.tech/mcp |
| Product API | https://api.veyanet.tech (via MCP tools or direct HTTPS) |
| SDK | npm install @veyanet/sdk |
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:
Public users and agent runtimes connect with a single URL. The server implements MCP Streamable HTTP (POST /mcp) using @modelcontextprotocol/sdk.
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.'
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.
The following diagram illustrates how @veyanet/mcp accepts Streamable HTTP tool calls, gates writes, and settles through @veyanet/sdk onto Robinhood Chain:
flowchart TB
subgraph ClientSpace["MCP Client (Claude / Cursor / Agent Runtime)"] PasteURL["Paste https://mcp.veyanet.tech/mcp"] ToolCall["veya_* tool invocation"] end
subgraph McpBoundary["@veyanet/mcp Streamable HTTP"] Landing["GET /"] Health["GET /health"] PostMcp["POST /mcp"] Auth{"product apiKey + your wallet?"} PublicTools["Public tools"] WriteTools["Own-wallet write tools"] end
subgraph SdkBoundary["@veyanet/sdk"] ReadClient["VeyaClient read / verify / hash"] EvmAnchor["EvmAnchor writes + eth_chainId guard"] end
subgraph ApiBoundary["VEYA Product API"] ApiHealth["https://api.veyanet.tech/health"] end
subgraph Blockchain["Protocol settlement (Mainnet by default)"] VeyaSol["Veya.sol\nCommitments · Environments · Attestations"] end
PasteURL --> PostMcp ToolCall --> PostMcp PostMcp --> Auth Auth -->|"no key / public tools"| PublicTools Auth -->|"apiKey + funded payer"| WriteTools PublicTools --> ReadClient PublicTools -->|"veya_api_health"| ApiHealth WriteTools --> EvmAnchor ReadClient --> VeyaSol EvmAnchor --> VeyaSol Landing --> McpBoundary Health --> McpBoundary
Paste into Claude / Cursor (Streamable HTTP):
https://mcp.veyanet.tech/mcp
Optional TypeScript library:
npm install @veyanet/sdk
npm install -g @veyanet/mcp
veya-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.
https://api.veyanet.tech@veyanet/sdk from npmThe 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`.
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.
import { loadConfig, createHttpApp, startHttpServer } from "@veyanet/mcp";
// 1. Zero-config start (Mainnet) startHttpServer();
// 2. Explicit config for operators const cfg = loadConfig(); const app = createHttpApp(cfg); app.listen(cfg.port, cfg.host);
| Variable Name | Description | Default / Fallback |
|---|---|---|
PUBLIC_MCP_URL | Public paste URL advertised in landing + health | https://mcp.veyanet.tech/mcp |
PORT | Listen port | |
HOST | Bind address | 0.0.0.0 |
ROBINHOOD_RPC_URL | Testnet RPC (used when ROBINHOOD_NETWORK=testnet) | Public testnet RPC |
ROBINHOOD_NETWORK | Profile | Mainnet. testnet selects Testnet |
ROBINHOOD_EXPLORER_URL | Testnet explorer (used when ROBINHOOD_NETWORK=testnet) | Public testnet explorer |
VEYA_CONTRACT_ADDRESS | Testnet contract (used when ROBINHOOD_NETWORK=testnet) | Testnet deploy address |
ROBINHOOD_MAINNET_CHAIN_ID | Mainnet chain id override | Mainnet profile |
ROBINHOOD_MAINNET_RPC_URL | Mainnet RPC | https://rpc.mainnet.chain.robinhood.com |
ROBINHOOD_MAINNET_EXPLORER_URL | Mainnet explorer | https://robinhoodchain.blockscout.com |
VEYA_MAINNET_CONTRACT_ADDRESS | Mainnet protocol contract | 0x87dC582eEA544A434a5C1e30Ca3d12c1e548a674 |
VEYA_API_URL | Product API (health, registry, sessions, fleet capacity) | https://api.veyanet.tech |
CORS_ORIGIN | Comma-separated Origin allowlist | empty = reject credentialed browser Origin |
NODE_ENV | Runtime mode | development |
VEYA_PAID_CALLS | 1 enables Metered Call Guard (3 more tools; callers pay from their own wallet). Its other VEYA_PAID_* settings are in docs/CONFIGURATION.md | off |
Host-only settings (fleet URLs and host signing keys) are covered in the operator guide, docs/DEPLOYMENT.md. Public users never set them.
Paste into a custom MCP connector using Streamable HTTP transport:
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 mcp add veya --transport http https://mcp.veyanet.tech/mcp
Settings → MCP → Add custom MCP server / connector
Only the beginning is shown; read the rest in the repo