VELQIRIS Market Truth MCP Server
Sources Binance spot prices for the multi-venue market truth consensus engine, contributing to fail-closed consensus for BTC, ETH, SOL, and ICP.
Sources Coinbase spot prices for the multi-venue market truth consensus engine, contributing to fail-closed consensus for BTC, ETH, SOL, and ICP.
Sources OKX spot prices for the multi-venue market truth consensus engine, contributing to fail-closed consensus for BTC, ETH, SOL, and ICP.
VELQIRIS Alexa+ & Model Context Protocol (MCP) Market Truth Server
![]()
A market truth consensus engine implementing:
Model Context Protocol (MCP) server (
http_mcp_server.js,mcp_server.js, andnetlify/functions/amazon-mcp.js) with the JSON-RPC 2.0 and Streamable HTTP behaviors exercised by this project's tests (protocol version2025-11-25).Alexa+ Web Simulation & In-Browser MCP Client (
public/index.html/sale_site/alexa-simulation.html) implementing the complete client lifecycle (initialize->notifications/initialized->tools/list->tools/call).
It answers spot-price questions only when at least two independent venues respond and strictly refuses to invent a market regime from a point-in-time snapshot (fail-closed).
Live Demo (Simulated Alexa+ Interface & MCP Client)
https://velqiris-acquisition.netlify.app/alexa-simulation.html
(Note: Explicitly labeled as a developer simulation per hackathon guidelines. Does not claim proprietary Amazon certification or direct production consumer hardware deployment).
Related MCP server: ReserveOracle
Model Context Protocol (MCP) Integration
VELQIRIS implements a standard MCP server for agentic AI architectures (Claude Desktop, MCP clients, Amazon Alexa Agentic workflows):
Protocol Details
Transports:
Local / Container Streamable HTTP: Native Node.js HTTP server (
http_mcp_server.js) with chunked transfer (Transfer-Encoding: chunked), session lifecycle tracking (Mcp-Session-Id), and Origin validation (403 on untrusted origins).Serverless HTTP: Stateless edge endpoint (
netlify/functions/amazon-mcp.js) designed to operate across non-sticky serverless function instances.Standard I/O (stdio): CLI / desktop MCP adapter (
mcp_server.js).
Protocol Version:
2025-11-25(Model Context Protocol specification)Specification: JSON-RPC 2.0 with session tracking and version negotiation
Tools Exposed
get_market_truth_consensus: Fetches multi-venue spot price consensus (Coinbase, Binance, OKX). Fails closed if fewer than 2 independent sources respond.Schema:
{ symbol: "BTC" | "ETH" | "SOL" | "ICP" }
verify_risk_regime: Refuses to label a market regime from a single snapshot. The public serverless response usesstatus: REGIME_VERIFICATION_REFUSEDandrisk_status: INSUFFICIENT_TIME_SERIES_FOR_REGIME_FORECAST.Schema:
{ symbol: "BTC" | "ETH" | "SOL" | "ICP" }
Resources Exposed
velqiris://provenance/policy: Invariants for multi-venue price consensus and fail-closed security rules.velqiris://architecture/summary: Overview of VELQIRIS agentic verification layer.
Verification & Judging Deliverables
Judge Start Here:
JUDGE_START_HERE.md(Quick verification guide)MCP Behavior Report:
AMAZON_MCP_COMPLIANCE_REPORT.md(40/40 project-owned assertions pass)Developer Friction Log & Product Feedback:
FRICTION_LOG.md(submitted for the optional judging bonus of up to 10%)Video Demo Script & Shotlist:
AMAZON_VIDEO_SCRIPT.md|AMAZON_VIDEO_SHOTLIST.mdSmithery Registry Config:
smithery.yaml
Running & Testing Locally
Run all unit and MCP protocol tests (deterministic, offline):
npm testRun internal MCP Protocol Verification Test Suite (40 assertions):
npm run verify:mcp
# or: node scripts/verify_amazon_mcp.jsOptional: Run network-dependent live smoke test against live venues:
npm run test:liveStart the Streamable HTTP server:
node http_mcp_server.js
# Listening on http://0.0.0.0:3333/mcpStart the MCP stdio server:
node mcp_server.jsBuild and run the supplied local container:
docker build -t velqiris-market-truth .
docker run --rm -p 3333:3333 velqiris-market-truth
curl http://127.0.0.1:3333/healthStart local Netlify development server:
netlify devInstallation via Smithery & Claude Desktop
To install this MCP server into Claude Desktop via Smithery:
npx -y smithery mcp add chitara-trading/velqiris-market-truthOr configure manually in your claude_desktop_config.json:
{
"mcpServers": {
"velqiris-market-truth": {
"command": "node",
"args": ["/path/to/velqiris-alexa-market-truth/mcp_server.js"]
}
}
}Open-Source Core
This repository is MIT licensed, including commercial-use rights under the terms of the MIT License.
Hackathon Disclosure
This project implements the Model Context Protocol (MCP) and uses the simulated Alexa+ experience path expressly described in the competition requirements. It is not connected to a proprietary consumer Alexa account and does not claim certification or endorsement by Amazon.
License
MIT. See LICENSE.
Available Tools
2 toolsget_market_truth_consensusB
Fetches multi-venue spot price consensus across independent venues (Coinbase, Binance, OKX). Fails closed if fewer than 2 independent sources respond.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Asset ticker to verify (e.g. BTC, ETH, SOL, ICP) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose important behavior: multi-venue consensus and fail-closed if fewer than two independent sources respond. However, it omits other behavioral details such as permissions, rate limits, and what the successful response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The core purpose is front-loaded and the fail-closed constraint follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with a fully described enum and no output schema, the description gives enough to invoke it correctly and highlights a critical failure mode. It could still say more about the successful return shape and its relationship to the sibling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds no parameter meaning beyond the schema. The enum for symbol is fully documented in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Fetches) and resource (multi-venue spot price consensus), and names the independent venues. It is clear what the tool does, though it does not explicitly distinguish itself from the sibling verify_risk_regime.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no explicit guidance on when to use this tool versus alternatives, and does not mention the sibling tool. The fail-closed condition is operational behavior, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_risk_regimeB
Evaluates market risk regime for an asset. Fails closed against inventing market regimes from point-in-time snapshots.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Asset ticker to evaluate (e.g. BTC, ETH, SOL, ICP) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses a meaningful safety trait, failing closed against inventing regimes from point-in-time snapshots, but does not explain what failing closed means operationally or what the evaluation returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the core purpose. The second sentence is somewhat jargon-heavy but still earns its place by adding a behavioral constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description is minimally adequate. However, with no output schema and no annotation coverage, it leaves important gaps around what the evaluation actually returns and how the fail-closed behavior manifests.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single symbol parameter, including an enum of supported assets. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: evaluates market risk regime for an asset. It is clear what the tool does, but it does not explicitly distinguish itself from the sibling get_market_truth_consensus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use guidance, no exclusions, and no comparison to the sibling tool. The fail-closed sentence hints at reliability, but it does not tell an agent when this tool should be selected over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
get_market_truth_consensus - First observed
verify_risk_regime
TDQS
Scored across 2 tools
The two tools target clearly different concerns: one returns cross-venue spot price consensus, the other evaluates a risk regime. There is no plausible scenario where an agent would confuse them, and the failure semantics (fail-closed) are described for each.
Both names use snake_case with a leading verb (get_/verify_) followed by a noun phrase, which is predictable and readable. The only minor deviation is that the verbs differ in style ('get' is retrieval, 'verify' implies validation), but this reflects genuinely different operations rather than inconsistency.
Two tools is thin for a server, though the scope here is deliberately narrow (trustworthy market data primitives). Each tool earns its place, but the surface feels like a partial slice rather than a complete server.
Core operations exist for price consensus and risk regime, but there is no way to discover supported assets or venues, check venue health/freshness, or query historical/stale data. Agents hitting an unsupported asset have no recovery path within the tool set.
Maintenance
Related MCP Connectors
CoinDesk Data (formerly CryptoCompare / CCData) MCP.
Read-only educational MCP for CryptoDecentral Sovereign. No auth, trading, custody, or advice.
Indicative fiat and crypto rates over MCP, paid per request via x402 at $0.0001/request.
Real-time crypto prices from Binance, Coinbase, Kraken, OKX, and Bybit
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceReal-time currency exchange rates and crypto prices via MCP. Convert between 60+ fiat currencies and 30+ cryptocurrencies with multi-source failover. No API keys needed for upstream data.4 npmISC
- AlicenseNot gradedqualityCmaintenanceReserve Asset Intelligence MCP — live gold/silver prices as ES256K-signed evidence payloads, 80+ RWA token profiles (PAXG, XAUT, BlackRock BUIDL) with issuer LEI, custody, MiCA Art.36 context, and real cryptographic signatures.MIT
- AlicenseNot gradedqualityCmaintenanceEd25519-signed market-state receipts for 28 exchanges: is the venue open right now, as a receipt any agent can verify without trusting the operator, fail-closed (unknown is reported as closed). MCP tools: get_market_status, get_market_schedule, list_exchanges, get_payment_options. Free tier 500 calls a day with an instant key; x402 pay-per-call at 0.001 USDC on Base; Builder 99 USDC a monthMIT
- AlicenseNot gradedqualityDmaintenanceCrypto intelligence MCP: 104 tools for market data, ML signals, on-chain analytics, derivatives, and Bittensor subnets. Pay-per-call via x402 USDC on Base/Solana/Algorand/Stellar or $9.99/mo API key.MIT