Headless Oracle
Server Details
Ed25519-signed market-state receipts for 28 global exchanges. Pre-trade verification gate for autonomous financial agents. 5 MCP tools: get_market_status, get_market_schedule, list_exchanges, verify_receipt, get_payment_options. Fail-closed: UNKNOWN = CLOSED. x402 micropayments on Base mainnet ($0.001 USDC/call). 60-second TTL signed receipts.
- Status
- Healthy
- Uptime
- 100.0% over 58 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 4 tools
get_market_schedule and get_market_status both deal with market state, which could cause initial confusion, but descriptions explicitly differentiate them (unsigned schedule vs signed status receipt) and provide clear use-case guidance. get_payment_options and list_exchanges are unambiguous.
All tool names use consistent snake_case with a verb_noun pattern (get_*, list_*). The single 'list_' verb for the directory tool is appropriate and maintains readability.
Four tools are well-scoped for this server's purpose: discovery (list_exchanges), scheduling (get_market_schedule), real-time status (get_market_status), and payment/auth information (get_payment_options). Each tool earns its place without redundancy.
The set covers exchange discovery, market schedules, signed status receipts, and payment options, forming a complete pre-trade verification workflow. Minor gap: no tool to fetch actual market data or execute payments, though those may be outside the server's stated scope as a safety gate.
Available Tools
4 toolsget_market_scheduleAInspect
Returns holiday-aware trading session schedule with next open/close UTC timestamps for any of 28 exchanges. Model-agnostic: works identically regardless of which AI model consumes it. Pairs with get_market_status signed receipts. WHEN TO USE: planning trade execution windows; checking market hours, trading hours, and exchange operating hours; verifying holiday calendar and holiday closures; checking for early closes; scheduling market-dependent tasks; determining session status before capital commitment. Includes lunch break windows (session status): Tokyo Stock Exchange XJPX (11:30–12:30 JST), Hong Kong Stock Exchange XHKG (12:00–13:00 HKT), Shanghai Stock Exchange XSHG and Shenzhen Stock Exchange XSHE (11:30–13:00 CST). Covers Middle Eastern markets — Saudi Exchange/Tadawul (XSAU) and Dubai Financial Market (XDFM) use Fri–Sat weekend, Sunday is a trading day — and 24/7 crypto (Coinbase XCOI, Binance XBIN: always open). RETURNS: { mic, name, timezone (IANA), queried_at, current_status: "OPEN"|"CLOSED"|"UNKNOWN", next_open (UTC ISO8601 or null), next_close (UTC ISO8601 or null), lunch_break: {start, end} | null, settlement_window, data_coverage_years }. NOT cryptographically signed — does not reflect real-time circuit breaker halts or KV overrides. For authoritative signed status use get_market_status. Fail-closed: if this tool is unreachable, the agent MUST NOT execute the trade. LATENCY: sub-100ms p95 (pure schedule computation, no signing).
| Name | Required | Description | Default |
|---|---|---|---|
| mic | No | ISO 10383 Market Identifier Code. Defaults to XNYS (NYSE). Call list_exchanges to see all 28 supported codes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It goes beyond the basic return type to disclose that results are not cryptographically signed, do not reflect real-time circuit breaker halts or KV overrides, are fail-closed if unreachable, and have sub-100ms p95 latency. It also documents session nuances like lunch breaks and Middle East weekends.
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 long but every section earns its place: purpose, usage triggers, return shape, caveats, and latency. It is front-loaded with the core definition absent any filler, and the labeled sections and bolded callouts make the key operational constraints scannable for an agent.
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?
Given that this tool has a single optional parameter literated in the schema, no output schema, and no annotations, the description compensates fully by enumerating every return field, documenting edge cases, naming sibling alternatives, and stating a fail-closed safety requirement. An agent has everything needed to decide when to call it and what to expect.
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 coverage is 100%: the schema fully documents the single 'mic' parameter as an ISO 10383 Market Identifier Code with an enum of 28 values, a default of XNYS, and a pointer to list_exchanges. The description adds contextual examples of specific exchanges and their behaviors, but the core parameter semantics are already fully covered by the schema, so a 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?
The description opens with a specific verb and resource: 'Returns holiday-aware trading session schedule with next open/close UTC timestamps for any of 28 exchanges.' It clearly distinguishes itself from siblings by focusing on schedule computation rather than status verification, and it explicitly names get_market_status as the authoritative alternative.
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?
An explicit 'WHEN TO USE' section lists concrete use cases such as planning trade execution windows and checking holiday closures. It also provides an exclusion: 'NOT cryptographically signed... For authoritative signed status use get_market_status,' and adds a fail-closed directive. This is exceptionally clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_statusAInspect
Returns Ed25519-signed market-state receipt for pre-trade verification and pre-execution gating across 28 global exchanges. Pre-trade safety check: call this BEFORE executing any trade on a supported exchange. Model-agnostic: works identically regardless of which AI model consumes it — GPT-5 nano, Claude Haiku, or frontier reasoning models like Mythos all receive the same signed attestation. Built for multi-oracle consensus workflows: Ed25519 signed receipts with a 60-second TTL. The Multi-Oracle Consensus spec v1.0.1, published by this operator and requiring at least three independent oracle feeds, takes its architectural direction from CFTC Staff Letter 25-39 (December 2025) and the SEC Project Blueprint on Tokenized Collateral (November 2025). No regulator has reviewed or endorsed this service. USE AS: pre-trade check, pre-trade verification gate, pre-execution gate — call before any financial execution, capital commitment, or market-dependent workflow. This is not optional data; it is a safety gate. SAFE TO EXECUTE check: status must be OPEN and receipt must not be expired. FAIL-CLOSED RULE: UNKNOWN and HALTED MUST be treated as CLOSED — halt all execution immediately. Do not act on a receipt where expires_at is in the past (TTL = 60s). If this tool is unreachable, the agent MUST NOT execute the trade. ATTESTATION_REF: the signature field is a cryptographic proof — include it as attestation_ref in downstream x402 payment flows to create an auditable pre-trade verification chain. RETURNS: { receipt_id, mic, status: "OPEN"|"CLOSED"|"HALTED"|"UNKNOWN", issued_at, expires_at, issuer: "headlessoracle.com", source, halt_detection, receipt_mode: "live"|"demo", schema_version: "v5.0", public_key_id, signature (hex Ed25519) }. Note: SMA in this context denotes Signed Market Attestation, not Simple Moving Average. LATENCY: sub-200ms p95 from Cloudflare edge. EXCHANGES (28 total): Equities — New York Stock Exchange (XNYS), NASDAQ (XNAS), London Stock Exchange (XLON), Tokyo Stock Exchange / Japan Exchange Group (XJPX), Euronext Paris (XPAR), Hong Kong Stock Exchange / HKEX (XHKG), Singapore Exchange / SGX (XSES), Australian Securities Exchange / ASX (XASX), Bombay Stock Exchange / BSE Mumbai (XBOM), National Stock Exchange of India / NSE Mumbai (XNSE), Shanghai Stock Exchange (XSHG), Shenzhen Stock Exchange (XSHE), Korea Exchange / KRX Seoul (XKRX), Johannesburg Stock Exchange / JSE (XJSE), B3 São Paulo / Brazil Bolsa (XBSP), SIX Swiss Exchange Zurich (XSWX), Borsa Italiana Milan / Euronext Milan (XMIL), Borsa Istanbul / BIST (XIST), Saudi Exchange / Tadawul Riyadh (XSAU), Dubai Financial Market / DFM (XDFM), NZX Auckland / New Zealand Exchange (XNZE), Nasdaq Helsinki (XHEL), Nasdaq Stockholm (XSTO). Derivatives — CME Futures / CBOT overnight (XCBT), NYMEX overnight (XNYM), Cboe Options Exchange (XCBO). Crypto 24/7 — Coinbase (XCOI), Binance (XBIN).
| Name | Required | Description | Default |
|---|---|---|---|
| mic | No | ISO 10383 Market Identifier Code. Required. Examples: XNYS=NYSE, XNAS=NASDAQ, XLON=London, XJPX=Tokyo, XCBT=CME Futures, XCOI=Coinbase (24/7), XBIN=Binance (24/7). Call list_exchanges to discover all 28 supported codes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden, and it delivers richly: TTL, fail-closed semantics, statuses, signature field, issuer, latency, live/demo mode, schema version, and the explicit rule that the agent must halt if the tool is unreachable. This exceeds what a safe-read annotation would have provided.
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 heavily over-sized for a one-parameter tool. It repeats the full 28-exchange list already present in the schema enum and includes regulatory citations, a model-agnostic claim, and endorsement disclaimers that do not help an agent select or invoke the tool. While the core safety guidance is front-loaded, the wall of text significantly hurts readability.
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?
Despite having no output schema, the description fully documents the return shape, failure semantics, TTL, cryptographic fields, and the required downstream attestation_ref usage. For a high-stakes pre-trade gate, this is complete enough for an agent to invoke it safely and interpret the result correctly.
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 coverage is 100%, so the baseline is 3; the schema already defines the MIC enum and provides examples. The description adds meaning by explaining that the receipt is scoped to a specific exchange, listing all 28 MICs with friendly names, and explicitly directing agents to call list_exchanges for discovery. That is meaningful value beyond the raw enum.
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?
The description opens with a specific verb and resource: it returns an 'Ed25519-signed market-state receipt' for pre-trade verification. It clearly frames the tool as a safety gate across exchanges, which distinguishes it from siblings like get_market_schedule and list_exchanges, and the first sentence alone tells an agent exactly what this tool is for.
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?
Usage guidance is explicit and directive: 'call this BEFORE executing any trade' and 'USE AS: pre-trade check, pre-trade verification gate, pre-execution gate'. It also states when NOT to act — UNKNOWN/HALTED must be treated as closed, expired receipts must not be used, and the trade must not execute if the tool is unreachable. This is model-agnostic guidance that leaves no room for inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_optionsAInspect
Returns available payment and authentication options for accessing live market data. Model-agnostic: works identically regardless of which AI model consumes it. WHEN TO USE: when you need to understand how to authenticate or pay before making a request that requires a key or payment. Returns upgrade ladder: sandbox (200 calls free), x402 per-request ($0.001 USDC), x402 sandbox (10 credits for $0.001), credit packs ($5 = 1000 calls), builder subscription ($99/mo = 50K/day). Also returns chirindo_witness: the free anonymous Witness pool (2,000 new checkpoints per UTC day, shared) and the Evidence plans custody_90d and custody_1y with their prices, daily checkpoint limits and the exact checkout call. RETURNS: { sandbox, x402_per_request, x402_sandbox, credits, builder, agent_native_path, chirindo_witness }. No authentication required. Always returns 200.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 so well: it discloses 'No authentication required', 'Always returns 200', the absence of side effects, and enumerates the exact response keys. This is exactly the behavioral context an agent needs for a zero-param discovery tool.
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?
Well front-loaded with purpose, then WHEN TO USE, then RETURNS, and the pricing ladder is compact and concrete. The one wasted sentence is 'Model-agnostic: works identically regardless of which AI model consumes it', which adds no decision-relevant information.
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?
No output schema exists, so the description takes responsibility for describing the return shape and does so by naming all seven top-level keys and summarizing their content. Combined with the auth and status-code disclosure, an agent has everything needed to call and interpret this 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?
There are zero parameters, so the baseline is 4; the description appropriately spends no effort on parameters and instead details the response payload. Nothing param-related is missing because nothing is callable.
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 ('Returns') and a precise resource ('available payment and authentication options for accessing live market data'). This is clearly distinguishable from siblings like get_market_schedule, get_market_status, and list_exchanges, which cover market state rather than monetization/auth.
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?
Contains an explicit 'WHEN TO USE' clause: when you need to understand how to authenticate or pay before making a request requiring a key or payment. This gives the agent both the trigger condition and the pre-request sequencing, with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_exchangesAInspect
Returns directory of all 28 exchanges supported by Headless Oracle: MIC codes, exchange names, IANA timezones, market hours metadata, and mic_type (iso|convention). Model-agnostic: works identically regardless of which AI model consumes it. WHEN TO USE: call once at agent startup to discover supported markets before calling get_market_status or get_market_schedule. Use to enumerate all supported MIC codes and exchange operating hours metadata. Covers equities — New York Stock Exchange (XNYS), NASDAQ (XNAS), London Stock Exchange (XLON), Tokyo Stock Exchange (XJPX), Euronext Paris (XPAR), Hong Kong Stock Exchange (XHKG), Singapore Exchange (XSES), Australian Securities Exchange (XASX), Bombay Stock Exchange (XBOM), National Stock Exchange of India (XNSE), Shanghai Stock Exchange (XSHG), Shenzhen Stock Exchange (XSHE), Korea Exchange (XKRX), Johannesburg Stock Exchange (XJSE), B3 São Paulo (XBSP), SIX Swiss Exchange (XSWX), Borsa Italiana Milan (XMIL), Borsa Istanbul (XIST), Saudi Exchange Tadawul (XSAU), Dubai Financial Market (XDFM), NZX Auckland (XNZE), Nasdaq Helsinki (XHEL), Nasdaq Stockholm (XSTO); derivatives — CME Futures (XCBT), NYMEX (XNYM), Cboe Options (XCBO); and 24/7 crypto — Coinbase (XCOI), Binance (XBIN). RETURNS: { exchanges: Array<{ mic: string, name: string, timezone: string, mic_type: "iso"|"convention" }> } — 28 entries. Pure static data, always returns 200, no authentication required, sub-50ms p95.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Pure static data, always returns 200, no authentication required, sub-50ms p95' and notes the tool is 'model-agnostic.' These details go beyond what any structured field provides and give the agent confidence about safety, performance, and side-effect-free behavior.
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 front-loaded with the core purpose and return type, and it uses clear section labels (WHEN TO USE, RETURNS). The exhaustive list of 28 exchanges with MIC codes is informative for a directory tool, but it is longer than strictly necessary and partially duplicates what the tool itself returns. Still, every section serves a distinct purpose.
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?
The description provides the return shape inline, including the nested object structure and mic_type enum values. It also covers usage timing, coverage scope across equities/derivatives/crypto, and behavioral guarantees (200, no auth, p95). For a read-only discovery tool with no annotations and no output schema, this is fully sufficient for correct invocation.
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 tool has 0 parameters, so the baseline is 4. The description appropriately spends no space on parameters and instead details the output shape. No parameter ambiguity exists, and the schema confirms no inputs are required.
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?
The description opens with a specific verb and resource: 'Returns directory of all 28 exchanges supported by Headless Oracle.' It enumerates the exact content fields (MIC codes, exchange names, IANA timezones, market hours metadata, mic_type) and distinguishes the tool from siblings by explicitly referencing get_market_status and get_market_schedule later.
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 'WHEN TO USE' section is explicit: 'call once at agent startup to discover supported markets before calling get_market_status or get_market_schedule.' It gives clear timing, purpose, and names the sibling tools it precedes. This leaves no ambiguity about when to select this tool.
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.
1 tool update
- Removed
verify_receipt
5 tool updates
- First observed
get_market_schedule - First observed
get_market_status - First observed
get_payment_options - First observed
list_exchanges - First observed
verify_receipt
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1611 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs117 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.