{
  "name": "curb-mcp",
  "description": "A Model Context Protocol server for Curb: whether a tokenized stock's home market is open, when it reopens, and how Curb's reopen marks were graded on chain, for six xStock wrappers on X Layer. Read-only, free, no key.",
  "mcp": {
    "url": "https://mcp.curb.markets/mcp",
    "transport": "streamable-http (stateless, JSON responses)",
    "protocol": "Model Context Protocol"
  },
  "connect": {
    "claudeCode": "claude mcp add --transport http curb https://mcp.curb.markets/mcp",
    "generic": "POST https://mcp.curb.markets/mcp with Accept: application/json, text/event-stream"
  },
  "tools": [
    {
      "name": "curb_regime",
      "title": "Is the home market open?",
      "description": "Whether a tokenized stock's home market is open right now, read live from Curb's MarketClock contract on X Layer (chain 196). Call this before trading, lending against or liquidating a Hong Kong or US xStock wrapper: while the primary market is shut the issuer's order cap is zero, creation and redemption stop, and the pool price is no longer held to the underlying share. Returns status OPEN / SHUT / UNKNOWN, the regime code in words, the issuer's order cap in USD, any corporate-action blackout, the next published schedule boundary, and when the attestor last read the issuer, all at one block. Omit symbol for all six assets.",
      "arguments": [
        "symbol"
      ]
    },
    {
      "name": "curb_next_reopen",
      "title": "When does the home market reopen?",
      "description": "When primary capacity is expected back for one asset, computed from the issuer's published schedule and limits with the rule Curb's keeper commits every Scorecard row under (curb.reopen/1: the issuer cuts capacity 5 minutes before each period ends, and it returns at the first period with a non-zero cap). Returns the closure in progress and its expected end, or the next closure if the market is open, in UTC and venue-local time, next to MarketClock's live state, and says so when the chain and the schedule disagree. The full 1-14 day calendar is a paid route; see curb_paid_services.",
      "arguments": [
        "symbol"
      ]
    },
    {
      "name": "curb_scorecard",
      "title": "Curb's graded record",
      "description": "Curb's accuracy record from its Scorecard v2 contract on X Layer: skill() (settled rows, and strict wins of Curb's reopen mark against the last print and against the pre-close price, the contract's closingVwap: the 15-minute closing VWAP, or the last pool price when nothing traded; a tie is not a win) and the most recent rows, newest first, each with its mark, both baselines, the reopen price the contract read from the pool itself, and the errors in basis points, plus the commit transaction to check with curb-verify. Every value is read at one block.",
      "arguments": [
        "limit"
      ]
    },
    {
      "name": "curb_credit",
      "title": "What would CurbCredit lend?",
      "description": "CurbCredit's published loan-to-value for one wrapper on X Layer: ltvFor (min of a regime cap, 60% while the primary market is open and 30% while shut, and what the lowest bonded DepthCert bid would pay), ltvEffective, the USDG reserve, and the honoured bonded depth behind it, read at one block, with the reason when ltvFor is 0. wSHEINx is not listed as collateral.",
      "arguments": [
        "symbol"
      ]
    },
    {
      "name": "curb_corporate_actions",
      "title": "Corporate actions",
      "description": "Every version of the issuer's corporate actions for one asset (dividends, splits, spin-offs; Cancelled and Corrected versions included), newest first, from curb-asp's free feed at api.curb.markets. Check it before comparing a wrapper price with the underlying share: the wrapper's share price already contains every multiplier change.",
      "arguments": [
        "symbol",
        "limit"
      ]
    },
    {
      "name": "curb_paid_services",
      "title": "Curb's paid x402 services",
      "description": "The three answers curb-asp sells over x402 (closure calendar $0.01, accuracy record $0.05, discount by duration $0.10, paid in USD₮0 on X Layer): route, parameters, terms read live from api.curb.markets/.well-known/x402, the exact onchainos commands to quote and pay, and how to verify the receipt. This tool never pays.",
      "arguments": []
    }
  ],
  "assets": [
    {
      "symbol": "wTCENTx",
      "ticker": "TCENTx",
      "wrapper": "0x41333Df9E7639188BBfca5522dC4844398Af9f9E",
      "venue": "XHKG"
    },
    {
      "symbol": "wXIAOx",
      "ticker": "XIAOx",
      "wrapper": "0x076CF393E701839FC7a5832D2c68AaFA235682AE",
      "venue": "XHKG"
    },
    {
      "symbol": "wMEITx",
      "ticker": "MEITx",
      "wrapper": "0xad1b65C8556957cf23d1B5e9accdc449b415fA97",
      "venue": "XHKG"
    },
    {
      "symbol": "wSHEINx",
      "ticker": "SHEINx",
      "wrapper": "0xff637d2d435D6745Df3faf61272B1216e7e8b727",
      "venue": "XHKG"
    },
    {
      "symbol": "wNVDAx",
      "ticker": "NVDAx",
      "wrapper": "0xa8ddb5Cd96b5222AFe198316E9A57CAA642850D5",
      "venue": "XNAS"
    },
    {
      "symbol": "wAAPLx",
      "ticker": "AAPLx",
      "wrapper": "0x943BF64D566c32A2Bcd41AC92FB63C111cC9De8f",
      "venue": "XNAS"
    }
  ],
  "contracts": {
    "chainId": 196,
    "marketClock": "0x160Dc415902971a7a9B5ade7f43005b36FE5B09b",
    "scorecard": "0x3b4076c364AbDaE93e6419CeAdEEe8CB283BEf1f",
    "curbCredit": "0x23c778c88C3ABf0Ad750f703C5F04cB3129ee339",
    "depthCert": "0x702b1a988765f85162F4829175EF4232197e9C6D"
  },
  "links": {
    "site": "https://curb.markets",
    "api": "https://api.curb.markets",
    "health": "https://mcp.curb.markets/healthz"
  },
  "server": {
    "name": "curb",
    "version": "1.0.0"
  }
}