MCP server for HiveOracle — aggregated price feeds, TWAPs, and oracle service for autonomous agents. Multi-source signed price quotes, threshold subscriptions, and on-chain signature verification. USDC settlement on Base L2.
HiveOracle is a feature-gated scaffold with honest 503 responses and no mock data (Rails Rule 1 compliance). However, definition quality is severely compromised: all four tools have descriptions that explicitly state 'Backend pending (Q3 2026)', which signals to LLMs that these tools are non-functional. Tool descriptions are 150-180 chars but lack actionable guidance on when/why to use them. Parameter descriptions are minimal (10-30 chars). No output schemas are documented. The server correctly implements MCP JSON-RPC transport and tool registration, but the tools themselves are placeholders. Naming is verb-forward (list_, get_, subscribe, verify_) which is good, but the descriptions undermine usability by advertising unavailability.
Fetch a cryptographically signed price quote for a given symbol. Response includes price, timestamp, and oracle signature for on-chain verification. Backend pending (Q3 2026).
List all available oracle data feeds: price feeds, off-chain event feeds, and index feeds. Returns catalog with symbol, description, update frequency, and data source. Backend pending (Q3 2026).
Subscribe to threshold-triggered oracle notifications for a symbol. USDC settlement via x402 on Base, Ethereum, or Solana. Returns subscription_id. Backend pending (Q3 2026).
Verify the cryptographic signature on an oracle quote. Returns boolean. Used by smart contracts and agent workflows to confirm data provenance. Backend pending (Q3 2026).
All tool descriptions advertise non-functionality ('Backend pending Q3 2026'). LLMs will deprioritize or refuse to call these tools, defeating the purpose of publishing them.
No output schemas documented. LLMs cannot plan downstream tool calls or extract structured data. E.g., get_price should document it returns {price, timestamp, signature, symbol}.
Parameter descriptions are too brief (10-30 chars). 'Feed symbol to subscribe to' lacks guidance on format, valid values, or examples. Descriptions should be 50-150 chars with format hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
subscribe tool accepts 'threshold' as a number with no bounds, units, or validation guidance. Should specify: 'Price threshold in USD (e.g., 50000 for BTC). Must be positive.'
verify_signature expects 'quote' as a JSON-serialized string and 'sig' as hex-encoded, but no validation rules or error guidance provided. LLMs will guess at format.