Skip to main content
Glama

The boundary is the point

flowchart LR
    A["Agent"] <-->|stdio| M["cluby-mcp<br/><i>reads only</i>"]
    M -->|"eth_call"| C["Robinhood Chain"]
    M -.->|"history only, optional"| I["Indexer"]
    A -->|"transaction"| W["User's wallet"]
    W --> C

    style M fill:#03926B,color:#fff
    style W fill:#8a6d1f,color:#fff

It reads. It does not sign anything and holds no key. An agent that wants to act gets the numbers here and the transaction from a wallet its user controls.

That boundary is what lets this be run against a live protocol without anyone having to trust it.

Everything about the present comes from the chain. Only history and past liquidations need the indexer, which is optional.


Related MCP server: voidly-agent-wallet-mcp

Tools

Tool

Answers

list_markets

Every market, with price, rates, and whether it actually exists on chain

get_market

One market in detail — oracle, LLTV, caps, utilisation, liquidity

get_position

A borrower's collateral, debt, health factor and liquidation price

quote_borrow

What a borrow would do, and whether it exceeds the cap the app enforces

quote_multiply

Exposure, debt, LTV, health factor and liquidation price of a leveraged position

list_vaults

The Earn side, with fee and timelock

protocol_facts

Addresses, fee split, LLTV tiers, how to take a free flash loan

The quotes are the same arithmetic the interface signs against, not a second implementation that can drift from it. Both import @cluby/sdk.


Run it

pnpm install
CLUBY_RPC_URL=<rpc> pnpm start

Point a client at it:

{
  "mcpServers": {
    "cluby": {
      "command": "node",
      "args": ["--experimental-strip-types", "/path/to/cluby-mcp/src/index.ts"],
      "env": { "CLUBY_RPC_URL": "https://rpc.mainnet.chain.robinhood.com" }
    }
  }
}

The public RPC is enough for everything except history.


What a quote_multiply actually returns

Not a marketing number. The leverage a market can fund is bounded by exit liquidity as well as by the tier, and the smaller bound wins:

$$\text{max multiple} = \min\left(\frac{1}{1 - \text{LLTV}},\ 1 + \frac{\text{liquidity}{USD}}{\text{collateral value}{USD}}\right)$$

An agent asking for 3× on a long-tail market gets told the market cannot fund it, and why — rather than a quote that reverts when it is signed.

bigint values are serialised as strings, so a client never silently loses precision on a wei amount.


Layout

src/index.ts     tool definitions and the stdio server
src/markets.ts   describeMarket, describePosition, quoteBorrow, quoteMultiply, protocolFacts
src/chain.ts     the RPC client and the optional indexer fetch
vendor/          @cluby/config, @cluby/abi, @cluby/sdk

Part of Cluby

Repository

What it holds

cluby-mcp

← you are here

cluby-sdk

The arithmetic behind every quote

cluby-lens

The on-chain contract the reads go through

cluby-oracles

Where the prices come from

cluby.cash · @ClubyTech

Available Tools

9 tools
get_marketB

One market in detail, by key (NVDA, SPY, ETH, NVDA-SHORT …).

Inputs: key (required).

get_positionB

A borrower's position in one market: collateral, debt, health factor and the price at which it is liquidated.

Inputs: market (required), address (required).

list_marketsA

Every Cluby market: collateral, loan asset, liquidation LTV, live price, rates and whether it exists on chain yet.

Inputs: side.

list_vaultsA

The Earn side: vaults, what they hold, their fee and timelock.

Inputs: no named parameters.

market_historyB

Supply, borrow, utilization and price over time for one market. Requires CLUBY_INDEXER_URL.

Inputs: market (required), sinceUnix.

protocol_factsB

Addresses, fee split, LLTV tiers and how to take a free Morpho flash loan.

Inputs: no named parameters.

quote_borrowB

What a borrow would do before it is signed: health factor, liquidation price, and whether it exceeds the cap the app enforces.

Inputs: market (required), borrowAmount (required), collateralAmount (required).

quote_multiplyA

A leveraged position before it is opened: exposure, debt, resulting LTV, health factor and liquidation price.

Inputs: market (required), leverage (required), equityUsd (required).

recent_liquidationsA

Liquidations the indexer has seen. Requires CLUBY_INDEXER_URL; returns an empty list without it.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 9 tools

    Disambiguation4/5

    Most tools target distinct resources or actions: markets, positions, vaults, liquidations, and quotes. The main ambiguity is between quote_multiply and quote_borrow, since both preview health factor and liquidation price, though their use cases differ.

    Naming Consistency3/5

    The set mixes verb-prefixed names like list_markets, get_market, and quote_borrow with bare noun phrases like protocol_facts, recent_liquidations, and market_history. Names are readable and descriptive, but the pattern is inconsistent.

    Tool Count5/5

    Nine tools is well-scoped for a Cluby analytics and quoting server. Each tool covers a meaningful slice of the domain without excessive redundancy or unnecessary surface area.

    Completeness4/5

    The surface covers market discovery, position details, borrow/multiply quotes, vaults, liquidations, and historical data. Minor gaps like a vault detail view or a list-positions operation exist, but core workflows are supported.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Provides read-only access to CWI's trust infrastructure, enabling Gear Ledger provenance queries, agent trust scoring via the Verdict Engine, and NEEDLE DROP ledger hash-chain verification over stdio.
      7
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables local AI clients such as Claude Code and Cursor to search, analyze, and monitor prediction-market data, and, once live mode is explicitly switched on, sign and submit CLOB orders from the operator's own wallet. It runs in a safe preview mode by default, writing simulated trades to local SQLite instead of sending orders.
      197 npm
      3
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables compatible AI clients to connect to a local Coinbase Agentic Wallet through stdio MCP, so they can read wallet status, public address, Base USDC balance, and saved operations without signing, transferring, trading, or making payments.
      MIT