About AIMarket Oracle Gateway
AIMarket Oracle Gateway is a stdio MCP server for agents, bringing 17 oracle families together as pay-per-call tools, plus free capability discovery. Results can be independently checked using signatures, proofs, or deterministic replay.
Key features
- 01Aggregate 17 oracle families
- 02Offer 35 pay-per-call tools
- 03List capabilities with a free tool
- 04Enable independent verification of results
- 05Set per-call and cumulative spending caps
Use cases
- 01Fetch verifiable randomness for an agent
- 02Compute and verify routes or network risks
- 03Use reputation, sampling, and optimization capabilities
- 04Call oracle services within a spending budget
MCP support
The stdio server exposes 35 oracle tools and a free capability-discovery tool to MCP clients. Clients can configure an AIMarket Hub or a direct oracle URL, with spending limits enforced.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
uvx aimarket-oracle-gatewayAIMARKET_HUB_URLAIMarket Hub base URL (recommended metered path)AIMARKET_ORACLE_URLDirect oracle-family URL (demo/free path if no hub)AIMARKET_MAX_PER_CALL_USDHard cap per call in USD (default 0.10)AIMARKET_MAX_SPEND_USDHard cumulative budget for this process (default 5.0)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README🔄 Synced from a monorepo — but with a live history.
aimarket-oracle-gatewaymirrors the canonical AI-Factory monorepo. History here is append-only (no force-push). Pull requests are welcome — merged PRs are imported back into the monorepo and re-synced here, so your contribution becomes canonical. 💬 Issues · Pull requests both welcome.
aimarket-oracle-gateway — MCP server
One MCP server. Seventeen oracle families. Pay-per-call.
Transport: stdio (aimarket_oracle_gateway/stdio_server.py). Built with the official
Model Context Protocol Python SDK (mcp, FastMCP).
Compatible hosts: Claude Desktop, Cursor, Glama, and any MCP client that supports stdio servers.
| Item | Location |
|---|---|
| MCP entrypoint | aimarket_oracle_gateway/stdio_server.py |
| Tool routing core | aimarket_oracle_gateway/gateway_core.py |
| Extended tool surface | aimarket_oracle_gateway/mcp_tool_surface.py |
| Glama / Docker run | Dockerfile, glama.json |
A passthrough MCP server — the discovery + consumption storefront for the entire oracle-as-a-service specs. One server, 35 oracle capabilities plus a free discovery tool (36 MCP tools), every result independently verifiable (signatures, VDF proofs, classical certificates, deterministic replay).
Tools (35 capabilities plus discovery)
| Category | MCP tool | capabilityId | price |
|---|---|---|---|
| Randomness | get_random | platon.random@v1 | $0.004 |
get_randomness_beacon | platon.beacon@v1 | $0.004 | |
ask_oracle | platon.ask@v1 | $0.003 | |
verify_random | platon.verify@v1 | $0.001 | |
| Delay | compute_vdf | chronos.eval@v1 | $0.01 |
verify_vdf | chronos.verify@v1 | $0.001 | |
| Reputation | get_reputation_scores | lumen.reputation@v1 | $0.005 |
get_agent_trust | lumen.score@v1 | $0.003 | |
verify_reputation | lumen.verify@v1 | $0.002 | |
| Consensus | aggregate_values | murmuration.aggregate@v1 | $0.002 |
| Thermodynamics | audit_compute_cost | landauer.audit@v1 | $0.01 |
verify_compute_cost | landauer.verify@v1 | $0.001 | |
| Routing | compute_least_time_route | fermat.route@v1 | $0.01 |
verify_least_time_route | fermat.verify@v1 | $0.001 | |
| Cascade risk | analyze_cascade_risk | ablation.cascade@v1 | $0.01 |
verify_cascade_risk | ablation.verify@v1 | $0.001 | |
| Sampling | get_quasirandom_sequence | lattice.sequence@v1 | $0.002 |
get_blue_noise | turing.bluenoise@v1 | $0.002 | |
| Optimization | optimize_route | colony.optimize@v1 | $0.005 |
| Resilience | analyze_network_resilience | percola.threshold@v1 | $0.01 |
verify_network_resilience | percola.verify@v1 | $0.001 | |
| Randomness | sortes_draw | sortes.draw@v1 | $0.006 |
sortes_verify | sortes.verify@v1 | $0.001 | |
| Learning | gauss_field | gauss.field@v1 | $0.006 |
gauss_suggest | gauss.suggest@v1 | $0.006 | |
gauss_verify | gauss.verify@v1 | $0.001 | |
| Time-lock | aestus_seal | aestus.seal@v1 | $0.006 |
aestus_open | aestus.open@v1 | $0.01 | |
aestus_verify | aestus.verify@v1 | $0.001 | |
| Topology | betti_homology | betti.homology@v1 | $0.008 |
betti_distance | betti.distance@v1 | $0.004 | |
| Transport | kantor_transport | kantor.transport@v1 | $0.006 |
kantor_verify | kantor.verify@v1 | $0.001 | |
| Spectral | fourier_spectrum | fourier.spectrum@v1 | $0.005 |
fourier_verify | fourier.verify@v1 | $0.001 | |
| Discovery | list_oracle_capabilities | — | free |
Subscription tiers (optional Hub bundles)
High-volume tools also advertise monthly bundles in list_oracle_capabilities:
| Tool | Starter | Pro |
|---|---|---|
aggregate_values | 10k calls / $10 | 100k / $50 |
get_reputation_scores | 5k / $20 | 50k / $100 |
audit_compute_cost | 10k / $15 | 100k / $75 |
compute_least_time_route | 10k / $25 | 100k / $120 |
analyze_cascade_risk | 5k / $50 | 50k / $250 |
Pay-per-call remains the default; bundles are Hub-side packaging.
Configure (env)
| var | meaning |
|---|---|
AIMARKET_HUB_URL | AIMarket Hub base URL — recommended: metered + paid |
AIMARKET_ORACLE_URL | direct oracle-family URL (if no hub) — demo/free path |
AIMARKET_PAYMENT_CHANNEL | optional pre-opened payment channel id |
AIMARKET_PAYMENT_CHANNEL_SECRET | per-channel debit secret |
AIMARKET_API_TOKEN | optional bearer token |
AIMARKET_MAX_PER_CALL_USD | hard cap per call (default 0.10) |
AIMARKET_MAX_SPEND_USD | hard cumulative budget (default 5.0) |
AIMARKET_PRICE_TOLERANCE | reject overcharge vs advertised (default 0.10) |
If neither URL is set the server fails closed with a clear message.
Payment safety (spec 03): spending caps are enforced client-side and cannot be overridden by a prompt-injected agent. See docs/specs/03-mcp-payment-and-security.md.
Run
pip install -r requirements-mcp.txt && pip install --no-deps -e .
AIMARKET_HUB_URL=https://modelmarket.dev python -m aimarket_oracle_gateway.stdio_server
Claude Desktop (mcpServers entry):
{ "mcpServers": { "aimarket-oracle-gateway": {
"command": "python", "args": ["-m", "aimarket_oracle_gateway.stdio_server"],
"env": { "AIMARKET_HUB_URL": "https://modelmarket.dev" } } } }
Test MCP startup locally
From this package directory, in an environment with the package's runtime and dev
dependencies installed:
python -m pytest tests/test_stdio_startup.py tests/test_stdio_schema.py -q
The startup regression launches the real stdio server in a separate process, completes
initialize and all tools/list pages, and checks the full catalogue, reported version
and constrained schemas. It uses an isolated directory and a clean environment, with
network connections and child processes denied. It does not invoke oracle tools or require
API credentials. Process lifetime and cleanup are bounded.
Release 0.3.1 could exit before initialize: postponed annotations left function-local
aliases such as ValuesList as strings that FastMCP could not resolve. Release 0.3.2
evaluates annotations in mcp_tool_surface.py when the nested functions are defined,
preserving their types and validation constraints. Keep these registrar annotations
evaluated; an import-only check does not cover the complete stdio startup lifecycle.
Publish on Glama
Listing: glama.ai/mcp/servers/alexar76/aimarket-oracle-gateway
Verifiability
- Platon — Ed25519 signature over
(random_hex ‖ proof) - Chronos — Wesolowski VDF proof, cheap
verify_vdf - LUMEN — re-derive PageRank from committed graph
- Murmuration — deterministic re-aggregation from input values
- Landauer — bit-for-bit erasure count from ops DAG +
circuit_commitment - Fermat — dual certificate
T(v)checked in O(E) - Ablation — sandpile replay, order-independent
topple_total+tau - Lattice / Turing — deterministic from
(count, dim, skip)/seed - Colony — admissible
lower_bound+gapcertificate - Percola — recomputable percolation sweep +
f_c - Sortes — ECVRF 80-byte proof, verifiable offline by anyone (RFC 9381)
- Gauss — deterministic replay of GP posterior + Expected-Improvement suggestion
- Aestus — RSW time-lock puzzle re-derivable; modulus factorization burned each seal
- Betti — recomputable Vietoris-Rips persistence diagram + bottleneck distance
- Kantor — Kantorovich dual potentials checked in O(m*n) without re-solving
- Fourier — recomputable Laplacian spectrum + Fiedler value
lambda-2
Tests
PYTHONPATH=. pytest tests/
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.