mcpField
L
Lumi Trades: x402 seller checks and test-buys

Lumi Trades: x402 seller checks and test-buys

Remote
api.lumitrades.ioSecurity0Updated 1d ago

About Lumi Trades: x402 seller checks and test-buys

Lumi Trades is an MCP server for checking x402 sellers before payment, alongside crypto market data and informational market readings. It offers free seller checks and paid tools that can pay from a locally configured wallet.

Key features

  1. 01Signed allow/warn/block seller checks
  2. 02Seller quotes, scores, and test-buy evidence
  3. 03Crypto market and policy briefs
  4. 04Trend readings for 50 coins
  5. 05Wallet-based pay-per-call tools

Use cases

  1. 01Check a seller before an x402 payment
  2. 02Review seller quotes and delivery history
  3. 03Read sourced market and policy updates
  4. 04Compare coin trend readings

MCP support

The server runs over stdio and exposes Lumi Trades checks, seller research, market data, and readings as MCP tools. It can also be reached remotely over Streamable HTTP; paid calls through the local package can be paid from a configured wallet.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://api.lumitrades.io/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Packages
npmlumi-trades-mcp0.9.9

Tools

Details

From the project README

lumi-trades-mcp

MCP server (stdio) for Lumi Trades: Lumi Check, a free signed allow/warn/block check before your agent pays an x402 seller, backed by Lumi's own paid test-buys on XRPL, Base and Stellar. Also a daily Institutional & Policy Brief, crypto market data, and, as a separate product line, Lumi Trades market readings for 50 coins (educational, not advice). Works with Claude Desktop, Cursor, Claude Code, Cline, Windsurf and any other MCP client. Paid tools pay per call via x402 with your own wallet: USDC on Base (gasless) or XRP / RLUSD / USDC on the XRP Ledger (the API also accepts USDC on Stellar; this package pays only on Base or the XRP Ledger). No API key, no account: each paid tool call is one small payment, signed locally on your machine.

Analytics and education only. Not financial advice and not a recommendation to buy, sell or hold. Readings are mechanical momentum/trend summaries, not forecasts.

Lumi Trades market readings (lumi_signal, lumi_lite, lumi_scan, lumi_levels, lumi_slate): Information only, not investment advice. Lumi does not trade real money.

No install needed to browse: the same tools are also served remotely at https://api.lumitrades.io/mcp (Streamable HTTP), for clients that take a remote MCP server URL. A remote connector has no wallet, so its paid tools return the price and how to pay; use this package when you want paid tools to pay automatically from your own wallet.

Tools

General (free)

ToolPaid?Price (USD)What you get
lumi_catalogfree–Endpoints, live prices, this server's wallet + spend caps
lumi_samplesfreeroute?Truncated, labelled samples of every paid product with USD price and full URL
lumi_coinsfree–Lists all 50 coins: trend readings for every coin; reference zones only for the 13 watchlist/major coins (XRP XLM HBAR XDC AXL ZBCN SHX BTC ETH DOGE ADA LINK SUI)
lumi_quotefree–The x402 quote for any paid path, without paying

Lumi Trades seller checks (x402)

ToolPaid?Price (USD)What you get
lumi_verdict$0.01url payTo? amount?One label before paying, same data and signing as /v1/check: checks_passed (Delivered in recent checks) / check_first (Check first) / checks_failed (Recent checks failed) / no_data (Not enough data), with dates, evidence window, sample count, reason codes, evidence and appeal links. Paying Lumi never changes a result
lumi_vendor_scoresfreeurl? domain? payTo? vendor_id?Look up any x402 seller before paying: tier (catalogued / quote-checked, low confidence / test-bought), last free 402-quote check, price and payTo vs its Bazaar listing, on-chain test-buy evidence. No args: Lumi's curated vendor scores
lumi_seller_monitoringfreeenrollment_id?Seller monitoring plans (per endpoint per 30d: Watch $5, Watch Plus $12, Watch Pro $20; 10+ endpoints -20% or 3 terms prepaid -10%, not stacked; Audit $99 one-off; free Watch tier; 14-day Watch Plus trial), enrolment steps; with an id, that seller's public entry and badge. Paying never changes a score
lumi_trust_feedfree–Trust data feed plans (free key 1,000 lookups/month, Feed $99/30d, Feed Pro $199/30d) and licence terms
lumi_checkfreeurl? pay_to? amount_usd? network?Lumi Check before you pay any x402 seller: allow / warn / block with reasons, the seller's score and a link to its live report. Signed by Lumi and verified locally. Only origin + path of the URL is sent. Fail-open: warn if Lumi is unreachable within 2.5 s
lumi_scan_sellerfreeurlFetch an x402 seller's 402 quote without paying, plus a dry-run test-buy plan against local caps
lumi_report_receiptfreeendpoint network tx_hash …Sign a receipt for a purchase you already made. submit: true is tier 2 sharing: off by default, needs LUMI_SHARE_RECEIPTS=1 or lumi-scan sharing on. Shares the payment's chain and transaction ID, which is public on-chain and linkable to the paying wallet. Verified receipts earn a public badge only
lumi_trust_checkpaid$0.02Pre-payment check of any x402 URL you are about to pay: payTo/price mismatches vs listings and Lumi's observations. url required
lumi_vendor_reportpaid$0.02Full observation history for one x402 vendor on Lumi's trust list: every quote check (90 days) and paid test-buy with tx hash and delivered yes/no, latency stats and trend, uptime %, agent reports, vendor replies, confidence labels. vendor_id required

Market data

ToolPaid?Price (USD)What you get
lumi_briefpaid$0.02Today's market brief (BTC, CoinMarketCap Fear & Greed, movers, key levels, yen, events, news; no trade plans). format: "md" for markdown
lumi_marketpaid$0.02BTC + macro backdrop and breadth
lumi_macro_yenpaid$0.01USD/JPY, Nikkei, carry-trade risk around 155, Japan events
lumi_sentimentpaid$0.005Fear & Greed, funding read, OI, dominance, breadth
lumi_eventspaid$0.005Sourced upcoming macro/crypto events and catalysts
lumi_fundingpaid$0.003Perp funding rates for every Lumi coin listed on OKX (8h-normalised, annualised, plain-English read)
lumi_fear_greedpaid$0.003CoinMarketCap Fear & Greed now vs yesterday/week/month, yearly high/low, 30-day series
lumi_events_48hpaid$0.003What is scheduled in the next 48 hours (UTC + US Central), why it matters, sources
lumi_institutional_briefpaid$0.10Daily Institutional & Policy Brief: BIS, IMF, US Treasury/regulators, JPMorgan, SBI, Cross River, Securitize, R3 and others mapped to XRP, XLM, XDC, QNT, AXL, HBAR (confirmed vs indirect-alignment links, sourced). format: "md" for markdown. Allowed by the default caps (0.30 USD / 0.25 XRP)

Lumi Trades market readings (Information only, not investment advice. Lumi does not trade real money.)

ToolPaid?Price (USD)What you get
lumi_signalpaid$0.01Momentum/trend bias (positive/neutral/negative) + score for one coin (1h/4h/1d + indicators)
lumi_levelspaid$0.01Chart reference zones and commentary for one coin
lumi_scanpaid$0.02Whole-market screen: momentum/trend bias, score, 1h RSI, price and 24h change for 49 large-cap coins, highest score first
lumi_litepaid$0.004Cheap headline read for one coin: label, score, 1h/4h/1d labels, price, 24h change
lumi_slatepaid$0.02Current watchlist as momentum/trend bias (no entries, stops, targets or leverage)

How to pay, in order of preference: 1. USDC on Base (gasless, EVM_PRIVATE_KEY), 2. the XRP Ledger (XRPL_SEED): RLUSD or USDC at the same USD price, or XRP at the live XRP/USD rate (quoted per call, rounded up to 0.0001 XRP). Prices are read live from each 402 quote; the table is for orientation. You only pay when you get data: the API refuses to quote (503, "Not charged.") when its data is missing or stale, so a payment is never settled without data.

Install

Requires Node 20+. Published on npm as lumi-trades-mcp and in the official MCP Registry as io.github.cypher-osiris/lumi-trades-mcp.

npx -y lumi-trades-mcp
Claude Desktop / Cursor / any MCP client (mcpServers JSON)
{
  "mcpServers": {
    "lumi-trades": {
      "command": "npx",
      "args": ["-y", "lumi-trades-mcp"],
      "env": {
        "EVM_PRIVATE_KEY": "0x...your Base agent wallet key (holds USDC, no ETH needed)...",
        "LUMI_MAX_USD_PER_CALL": "0.30",
        "LUMI_SESSION_BUDGET": "1"
      }
    }
  }
}

Paying on the XRP Ledger instead: set "XRPL_SEED": "sEd..." (and optionally "LUMI_PAY_ASSET": "RLUSD" or "USDC", default XRP) in place of EVM_PRIVATE_KEY.

From a clone instead: "command": "node", "args": ["/absolute/path/to/lumi-api/mcp/src/index.js"] (after npm install in mcp/). Claude Code: claude mcp add lumi-trades -e EVM_PRIVATE_KEY=0x... -- npx -y lumi-trades-mcp (or -e XRPL_SEED=sEd...).

Without a wallet the free tools work and paid tools return the price quote instead of paying.

Lumi Check from your own code (x402 / MCP hooks)

import { lumiCheckHooks } from "lumi-trades-mcp/src/check.js";
const { lumi, x402Hook, mcpHook } = await lumiCheckHooks();   // options: { failMode: "open"|"closed", timeoutMs, publicKeys }

x402Client.onBeforePaymentCreation(x402Hook);   // @x402 core: returns { abort: true, reason } on "block"
mcpClient.onPaymentRequired(mcpHook);           // @x402/mcp: returns { abort: true } on "block" (checked by payTo)
const v = await lumi.check({ url, payTo, amountUsd: 0.01 }); // { decision, reasons, score, link, verified }

Defaults: fail-open (a timeout or an unverifiable answer gives warn, payment goes ahead) and a 2.5 s timeout. Set failMode: "closed" to block instead. Paying Lumi never changes any seller's score, tier, ranking or badge. The adapters come from lumi-check on npm (Apache-2.0); scoring and verification stay on Lumi's servers.

What the kit shares: nothing until the user says yes. The lumi-scan CLI asks once, after the first check ("Share your results to help improve Lumi's public trust list? [Y/n]"). The MCP server cannot ask, so here sharing stays off and one hint is written to stderr; turn it on with LUMI_CHECK_TELEMETRY=on or lumi-scan telemetry on. Tier 1 is only an anonymous delivery outcome after a paid call: seller host, delivered yes/no, a coarse status class and a random one-time token. No wallet, amount, tx hash, query string or stable ID. Sharing never changes any score. Tier 2 (off by default) sends full signed receipts. Each receipt shares the payment's chain and transaction ID (no amount or wallet field); a transaction ID is public on-chain and can be linked to the paying wallet. Contributors get a public badge only, nothing of monetary value. See the kit README.

Configuration (environment)

VariableDefaultMeaning
EVM_PRIVATE_KEY–0x private key of your Base wallet that pays in USDC via an EIP-3009 authorization (gasless: the facilitator pays gas). Kept in memory only; never logged, returned to the model or sent anywhere (only the signature is sent). Use a dedicated low-balance agent wallet.
XRPL_SEED–Seed of your XRPL wallet that pays. Kept in memory only; never logged, returned to the model or sent anywhere (payments are signed locally, the API only receives the signed blob). Use a dedicated low-balance agent wallet.
LUMI_PAY_ASSETXRP if XRPL_SEED is set, else BASE_USDCBASE_USDC (USDC on Base), or XRP, RLUSD, USDC on the XRP Ledger (XRPL stablecoins need a trust line + balance)
LUMI_MAX_XRP_PER_CALL0.25Refuse any XRP quote above this
LUMI_MAX_USD_PER_CALL0.30Refuse any stablecoin quote (Base or XRPL) above this. The refusal message names this variable and the value needed
LUMI_SESSION_BUDGET1Max total spend per server process, in the pay asset
XRPL_NETWORKxrpl:0xrpl:0 mainnet, xrpl:1 testnet
LUMI_API_URLhttps://api.lumitrades.ioAPI base URL
LUMI_EXPECTED_PAY_TOLumi's wallets on the official API: rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM (XRPL mainnet), 0x5E617bac19912e6d212CB303ae84655E9E203532 (Base)Refuse to pay any other address
LUMI_CHECK_APILUMI_API_URLBase URL for lumi_check
LUMI_KIT_HOME / LUMI_KIT_CONFIG~/.lumi-scanner-kit/config.jsonKit config (saved sharing answer, telemetry and sharing switches)
LUMI_CHECK_TELEMETRYoff (until the user says yes)on enables tier 1 outcome reports, off disables them; overrides the saved answer
LUMI_SHARE_RECEIPTSoff1 enables tier 2 receipt submission
LUMI_CONTRIB_KEY_FILE–Contributor key for tier 2 submissions (lumi-scan keygen)
XRPL_WS_URLwss://xrplcluster.com / wss://testnet.xrpl-labs.comLedger connection used to autofill and sign

Safety: before signing, the server checks network, scheme, asset, payee, per-call cap and session budget. Anything off and it does not sign. Every paid result carries the on-chain transaction hash.

Tests

npm test                         # spend-cap / payee / settings unit tests + a mocked Base USDC payment through @x402/fetch
node scripts-e2e-testnet.mjs     # testnet only: real x402 payments through MCP against a local testnet API (see the file header)

Testnet run, Oct 22 2026 (via MCP stdio, x402 on XRPL Testnet, all tesSUCCESS): lumi_sentiment 9137C1AE…, lumi_macro_yen 38DDADD0…, lumi_events EBD235D3…, lumi_trades 661D8180…, lumi_brief (markdown) 16F1BEFA….

License

MIT

Comments

Markdown supported

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.