Headless Oracle Mcp

io.github.LembaGangPublished by GitHub account LembaGangv1.0.3Updated Oct 24, 2026

Ed25519-signed market-state receipts for 28 exchanges. Fail-closed pre-trade gate.

VerifiedSTDIODesktop onlyFinanceDeveloper Tools

Overview

AI-generated overview

Local MCP server that gives an assistant signed market-open/closed status and schedules for 28 global exchanges, with a fail-closed pre-trade gate.

What you can do
  • Check whether a given exchange is currently open or closed, with UNKNOWN treated as CLOSED
  • Read exchange trading schedules, including holidays, half-days and lunch breaks for 2026-2027
  • List the 28 covered exchanges, spanning 23 traditional markets and 5 extended ones
  • Retrieve payment options for the service
  • Receive Ed25519-signed receipts that can be verified independently, though verification itself is REST-only or offline via a separate package
When to use it
Useful when an assistant or autonomous trading agent needs to confirm an exchange is open before acting, or needs holiday and session schedules for major global markets. Not needed if you only want price data or order execution.
Requirements
Runs as a local process via npx from the npm package headless-oracle-mcp, so Node.js is required. No authentication, environment variables or headers are declared. The service itself is a hosted Cloudflare Worker; a demo receipt needs no auth, and a sandbox key is obtained by posting an email address.
Before you install
The server is a client for a third-party hosted service, so market-state queries go to that operator's endpoint. Obtaining a sandbox key requires submitting an email address. Receipt verification is not available through the MCP tools and must be done over REST or with a separate verification package. Treat status as advisory: UNKNOWN is reported as CLOSED.

Installation

In SourceWeft

  1. Open Headless Oracle Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Headless Oracle

Ed25519-signed market-state attestations for 28 global exchanges.

What It Does

Autonomous trading agents need to know if an exchange is open before executing trades. Headless Oracle answers that question with a cryptographically signed receipt that any agent can verify independently — no trust in the operator required. UNKNOWN states are always treated as CLOSED (fail-closed).

Quick Start

bash
# MCP (Claude Desktop, Cursor, any MCP client)npx headless-oracle-mcp
# REST API — demo receipt (no auth required)curl https://headlessoracle.com/v5/demo?mic=XNYS
# Sandbox key (200 calls, 7 days, no card) - POST with an emailcurl -X POST https://headlessoracle.com/v5/sandbox \  -H 'Content-Type: application/json' \  -d '{"email":"[email protected]"}'

Architecture

Single TypeScript Cloudflare Worker. Ed25519 signing via @noble/ed25519. Three KV namespaces (overrides, API keys, telemetry). Two Durable Objects (webhooks, SSE streams). Runs on Cloudflare's edge network - no origin server.

4-tier fail-closed: KV override check -> schedule engine -> UNKNOWN fallback -> unsigned critical failure.

See docs/architecture/overview.md for the full architecture.

API

Four MCP tools - get_market_status, get_market_schedule, list_exchanges, get_payment_options. Receipt verification is REST-only (POST /v5/verify) or offline with @headlessoracle/verify.

The REST surface is enumerated in the OpenAPI 3.1 spec, which is served live and is the list of record. Full references:

Exchanges

23 traditional markets (XNYS, XNAS, XLON, XJPX, XPAR, XHKG, XSES, XASX, XBOM, XNSE, XSHG, XSHE, XKRX, XJSE, XBSP, XSWX, XMIL, XIST, XSAU, XDFM, XNZE, XHEL, XSTO) plus 5 extended (XCBT, XNYM, XCBO, XCOI, XBIN). DST handled automatically via IANA timezone names. Lunch breaks, half-days, and holidays for 2026-2027.

Testing

bash
npm test              # the full unit/integration suitenpm run test:smoke    # 11 smoke tests against live production

The passing count is published by the worker itself at /v5/metrics/public as tests_passing, and CI fails if that number and the suite disagree. It is not restated here, because a number in a README is a number nothing checks.

Security

Ed25519 signatures on every response. 60-second receipt TTL. Fail-closed architecture (UNKNOWN = CLOSED). Security headers on all responses (HSTS, CSP, X-Content-Type-Options, X-Frame-Options).

See SECURITY.md for the responsible disclosure policy.

Documentation

Full documentation organized by audience:

See docs/README.md for the full index.

License

MIT — see LICENSE

Source: README.md at commit 3f58128

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.3LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts