Agent guide

Discover Omni for free, then approve each paid MCP tool call.

Omni exposes a stateless Streamable HTTP MCP endpoint. The catalog tool is free; the documented typed helper subset covers five paid research tools using x402 MCP payment requirements and a paid retry. listTools() determines the deployed inventory and schemas. Pay the amount in the challenge for that call.

At a glance

Transport
Streamable HTTP Canonical endpoint under /api/x402/mcp.
Free tool
get_market_catalog Discover prices, networks, symbols, and schemas.
Paid tools
5 Typed helpers: News, Market Risk, Entity Resolution, Market Carry, and Pre-Market Roundup. Other read-only tools use the live list.

Why It Matters

What traders and researchers should take away

  • Tool-using models can discover exact argument shapes and prices before requesting a paid result.
  • An application-owned approval callback keeps the model from becoming the final spending authority.
  • The same structured result can be used by a general assistant or a broker-connected research workflow.

How it works

What the product uses behind the scenes

  • The native endpoint is https://omniterminal.app/api/x402/mcp using MCP protocol 2025-06-18 and the official @x402/mcp wrapper.
  • Coinbase Bazaar offers a separate buyer-facing MCP server that discovers and proxies all thirteen indexed HTTP products; it is not a duplicate native Omni tool inventory.
  • OmniMcpClient validates arguments before the tool call and validates the paid JSON product plus settlement receipt after the retry.

Notes

Things to know

  • A generic MCP host that does not support x402 payment metadata can list tools but cannot complete paid calls automatically.
  • The SDK denies paid calls when approvePayment is absent or returns false.
  • Do not put a funded private key in a desktop client configuration file that is synced, shared, or committed.

Guide

Steps

  1. Connect the endpoint

    Use https://omniterminal.app/api/x402/mcp as a Streamable HTTP MCP server.

  2. Call the free catalog

    Call get_market_catalog without a wallet and inspect tool names, schemas, prices, networks, and supported symbols.

  3. Add a payment policy

    Provide a dedicated buyer key only to an x402-aware client, enforce maxPaymentUsd, and require an application-owned approval callback.

  4. Call one paid tool

    Choose get_market_moving_events, get_market_risk_context, resolve_market_entities, get_market_carry, or get_premarket_roundup and validate its receipt and schema. The roundup requires its own explicit approval and a cap sufficient for its current quote.

Safety

Before using this workflow

  • Treat tool selection by the model as a request, not final payment approval.
  • Reject arguments outside the published allowlists and bounded ranges before payment.
  • Use ACM or another buyer policy layer when you need daily budgets, human approval, reconciliation, and revocation.

Next

Open the workflow

Minimal x402-aware MCP example

The application approves payment; the model does not receive the buyer key.

javascript
import { OmniMcpClient } from "@omni-terminal/sdk";

const privateKey = process.env.EVM_PRIVATE_KEY;
if (!privateKey || !/^0x[0-9a-fA-F]{64}$/.test(privateKey)) {
  throw new Error("EVM_PRIVATE_KEY must be a 32-byte hex key");
}
const buyerKey = /** @type {`0x${string}`} */ (privateKey);

const client = await new OmniMcpClient({
  privateKey: buyerKey,
  maxPaymentUsd: 0.010,
  approvePayment: ({ toolName, paymentRequired }) => {
    console.log({ toolName, accepts: paymentRequired.accepts });
    return toolName === "get_market_risk_context";
  }
}).connect();

try {
  console.log((await client.catalogData()).data); // free
  const result = await client.marketRiskData({
    symbol: "BTC",
    scope: "current",
    limit: 5
  });
  console.log({ schema: result.data.schema, payment: result.payment });
} finally {
  await client.close();
}
  • The free catalog must never trigger payment; the SDK treats that as a contract error.
  • The approvePayment callback can inspect the selected tool and current requirements.
  • The independent payment-client cap still applies when the callback returns true.

Live tool list

The map below is the typed SDK set. The server can list more read-only tools.

javascript
import { OmniMcpClient } from "@omni-terminal/sdk";

const client = await new OmniMcpClient().connect();
try {
  const listed = await client.listTools();
  for (const tool of listed.tools) console.log(tool.name);
} finally {
  await client.close();
}
  • This call is free. It does not place orders or move collateral.
  • SDK 0.8.1 methods cover the six names in the tool map. A name with no method is still called through your MCP host.
  • Approve the amount in the payment challenge for that call. A price in the tool map does not apply to the other tools.

Native tool map

Choose the smallest tool that completes the task.

  • get_market_catalog: free discovery.
  • get_market_moving_events: 0.010 USDC for bounded equities, crypto, macro, or forex catalysts.
  • get_premarket_roundup: 0.100 USDC for the published roundup, with optional date and bounded limit. Confirm current terms in the live payment challenge before approving.
  • get_market_risk_context: 0.010 USDC for joined liquidation levels, stress, funding, and news.
  • resolve_market_entities: 0.001 USDC for 1–20 current aliases.
  • get_market_carry: 0.003 USDC for current 1h funding with mechanical 8h, 1d, and APR context.

Coinbase Bazaar MCP alternative

Use Bazaar when the agent already discovers x402 HTTP resources through Coinbase CDP.

  • Connect https://api.cdp.coinbase.com/platform/v2/x402/discovery/mcp.
  • Call search_resources for Omni and inspect the returned HTTP resource descriptors.
  • Pass the selected generated tool name and arguments to proxy_tool_call.
  • The proxy returns the same bounded x402 payment requirement and product; the currently indexed Bazaar resources remain HTTP resources.

Typed Omni MCP helpers cover six tools: one free catalog plus five paid products. Use listTools() to verify the deployed inventory and tool schemas. Coinbase Bazaar MCP exposes the currently indexed HTTP products through its own search/proxy interface.

References

Implementation references

  • MCP example

    https://github.com/InTheta/omni-universe-sdks/blob/main/packages/typescript/examples/mcp-all-tools.ts

    Guarded free and paid native tool lifecycle.

  • MCP client

    https://github.com/InTheta/omni-universe-sdks/blob/main/packages/typescript/src/mcp.ts

    Transport, approvals, validation, and payment result handling.

  • x402 API reference

    omni-terminal/docs/X402_API_REFERENCE.md

    Native MCP and Bazaar MCP contracts.