Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.Domirep/the-floor

REMOTE · THEFLOOR-DASHBOARD-PRODUCTION.UP.RAILWAY.APP · SCANNED AUG 3

Read & play The Floor, an on-chain strategy game on Robinhood Chain. Unofficial companion.

+4 this week 66 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability70
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4305 tokens (~134/item across 32 items; 32 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · thefloor-dashboard-production.up.railway.app

# add to Claude Code
claude mcp add --transport http domirep-the-floor https://thefloor-dashboard-production.up.railway.app/mcp
# ~/.codex/config.toml
[mcp_servers.domirep-the-floor]
url = "https://thefloor-dashboard-production.up.railway.app/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "domirep-the-floor": {
      "type": "remote",
      "url": "https://thefloor-dashboard-production.up.railway.app/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add domirep-the-floor --url https://thefloor-dashboard-production.up.railway.app/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  domirep-the-floor:
    url: "https://thefloor-dashboard-production.up.railway.app/mcp"
// mcp.json
{
  "mcpServers": {
    "domirep-the-floor": {
      "type": "http",
      "url": "https://thefloor-dashboard-production.up.railway.app/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 62

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://thefloor-dashboard-production.up.railway.app/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.up.railway.app CN=YE1,O=Let's Encrypt,C=US 29 Jul 2026 27 Oct 2026 ECDSA 256 ECDSA-SHA384 6da79bb561da3efeb0e751ca21abd3999fe
SANs: *.up.railway.app, up.railway.app
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd
DNSSEC insecure

Validation of thefloor-dashboard-production.up.railway.app. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
app. present 23684 8 Verified
railway.app. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://thefloor-dashboard-production.up.railway.app/mcp Verified 200
http (plaintext) http://thefloor-dashboard-production.up.railway.app/mcp HTTPS enforced 301 https://thefloor-dashboard-production.up.railway.app/mcp
MCP tools — 32 exposed · ~3,799 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
get_behavior ~90

Do desk owners reinvest or dump? Splits FLOOR flow into player / trader / routed / liquidity. playerSellShare is a share of ATTRIBUTABLE sells only; routed = aggregator/bot flow with no identifiable human; liquidity (LP adds/withdrawals) is excluded from buys and sells entirely. Use these buckets — deriving "sells" from raw pool transfers double-counts LP deposits as dumps.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_broker ~89

One StonkBroker by id (1-4444): owner, its ERC-6551 wallet address and holdings, the stock it was seeded with, per-stock dividends received, activation tier, whether its wallet owns a Floor desk (floor.hasDesk), and its on-chain art. null means unknown, never zero.

NameTypeReqDescription
idintegeryesBroker token id, 1-4444

No output schema declared.

No examples provided.

get_broker_activation_math ~150

The decision math for activating a StonkBroker: per tier — activation fee in $STONKBROKER and USD, your weight share of the dividend pool after dilution, estimated dividends/day (from the observed drop rate), and payback days. Pass `id` for an exact on-chain fee quote (handles upgrade credit for already-active brokers). FACTS not advice: the drop rate tracks AMM trading volume and varies; new activations dilute everyone; token prices move.

NameTypeReqDescription
idintegerBroker token id for an exact quoteActivation fee (optional — omit for table prices)
tierintegerTier 1-5 to analyze (optional — omit for all five)

No output schema declared.

No examples provided.

get_broker_floor_status ~121

Cross-game: does this StonkBroker's ERC-6551 wallet play The Floor? Returns the wallet, whether it owns a desk, and if so its live desk state (alpha, share, pending PnL, FLOOR balance). Binding rule: the desk itself (level/alpha) is permanently bound to the NFT and transfers on sale; liquid contents (FLOOR balance, operator NFTs, tokens) remain removable by the current owner until the sale lands.

NameTypeReqDescription
idintegeryesBroker token id, 1-4444

No output schema declared.

No examples provided.

get_broker_leaderboard ~134

Activated StonkBrokers ranked by the USD value of their wallet CONTENTS right now (the 3 dividend stocks + $STONKBROKER + ETH, priced from their on-chain pools). IMPORTANT framing: contents are a removable snapshot — the current owner can move everything out before a sale; a paid activation is cleared on every transfer (buyers re-activate); a Floor desk lives on the broker's wallet and survives sales. Report this as data, never as an appraisal or a promise of value.

NameTypeReqDescription
limitintegerMax ranked rows to return (1-50, default 20)

No output schema declared.

No examples provided.

get_brokers ~82

StonkBrokers collection state in one call: minted/holders, activation tier census, stock-dividend rounds (~10-min cadence, ETH value per round), $STONKBROKER price + burns, and the Floor-crossover count. Different game, same chain — each broker NFT owns a real ERC-6551 wallet seeded with tokenized stock.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_distribution ~33

How desks and alpha are spread across players: tier counts and alpha concentration (top 1% / top 10%).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_firms ~26

Firms, their members and contributions, plus unaffiliated free agents ranked by alpha.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_floor_state ~54

The whole state of the floor in one call: price, market cap, supply, burned, emissions/halving, global alpha, player count, and the reinvest-vs-sell split. Start here for context.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_history ~66

Daily snapshots for trends: price, market cap, burned, supply, players, alpha, holders. Rows before live tracking began are reconstructed from chain events and marked seeded:true; a metric absent on a row could not be honestly sourced for that day — treat it as unknown, not zero.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_holders ~18

Top $FLOOR holders by balance.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_leaderboard ~57

Wallets ranked by alpha (earning power), plus top recruiters by referral earned. A wallet's recruiter is fixed forever at desk creation.

NameTypeReqDescription
limitintegerMax ranked wallets to return (1-100, default 20)

No output schema declared.

No examples provided.

get_live_actions ~57

Recent on-chain game actions: collect, claim, seat, recruit, starter, unseat, upgrade, newdesk, referral, firmburn.

NameTypeReqDescription
limitintegerMax actions to return (1-60, default 25)

No output schema declared.

No examples provided.

get_player ~81

One wallet: desk tier, alpha, share of emissions, FLOOR/day, pending PnL, balance, seated operator roster, and lifetime spend/sold. Fields may be null if an upstream scan failed — check partial and unknownFields; null means unknown, not zero.

NameTypeReqDescription
addressstringyes0x-prefixed 40-hex wallet address

No output schema declared.

No examples provided.

get_stock_tokens ~233

The three DIVIDEND stocks the StockBooster drops into broker wallets (currently AAPL/AMZN/NVDA): symbol, address, decimals, live USD price, and each Uniswap V3 pool with real liquidity (fee tier + quote asset + pool address). This is NOT the full set a broker can hold or trade — wallets also hold SLV, USO, SPCX, GOOGL, META, INTC, ORCL and more; call get_broker for a wallet's complete holdings, which returns an address and USD value per token that you can pass straight to prepare_broker_trade. PRICING THIS CHAIN, if you compute your own: these RWAs quote against USDG (6 decimals) not WETH — assuming WETH finds no AMZN market at all and routes AAPL into EMPTY pools that getPool still returns an address for; check pool.liquidity() before trusting a quote; and beware copycat tokens (AMZNAMZN, AMZNC, AMZNUSDG all exist with large nominal liquidity) — pricing off one is confidently wrong.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_strategy ~141

The decision-relevant math for one wallet, so an agent can reason about its next move: current alpha/share, FLOOR earned per day (and USD), pending PnL waiting to be collected, seat + bandwidth headroom, the next desk upgrade (cost and what it unlocks), each operator's payback in days at the current emission rate, and the halving countdown (emissions ~halve after it). These are FACTS and paybacks, not instructions — the agent decides. Ignores halving decay in payback (best case). Needs the wallet to have a desk.

NameTypeReqDescription
addressstringyes0x wallet to analyze

No output schema declared.

No examples provided.

get_swap_info ~107

Everything needed to swap ETH↔FLOOR on Robinhood Chain: the Uniswap V3 router, WETH address, the FLOOR/WETH pool and its 1% fee tier, and the LIVE spot price (FLOOR per ETH) read from the pool. Note the pool is thin (~tens of $k liquidity) so large buys move the price hard — size accordingly. Read this before prepare_swap_eth_for_floor, or to construct/verify a swap yourself.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_operators ~60

The operator catalogue: id (zero-based, as passed to prepare_recruit_operator), name, FLOOR cost, alpha and bandwidth. Read this before recruiting so you pick the right id — ids are positional and an off-by-one silently buys a different operator.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

prepare_activate_broker ~220

VERIFICATION-GATED: build the UNSIGNED transaction(s) to activate a StonkBroker's dividend drops at a tier (or upgrade an active one — the on-chain quote credits what was already paid). This tool ERRORS and returns no calldata unless every check passes live on-chain: the fee quote and the signer's $STONKBROKER allowance (so `from` is required). Fee is paid by the signer (50% burned, 50% treasury); `approveFirst` is included when the allowance is short. IMPORTANT: the NFT's transfer hook CLEARS activation on every ownership change — activate AFTER any planned transfer (e.g. moving the broker to an agent wallet), never right before one, or the fee is wasted.

NameTypeReqDescription
fromstringREQUIRED: the wallet that will pay — the on-chain allowance check is mandatory.
idintegeryesBroker token id, 1-4444
tierintegeryesTarget tier 1-5 (5 = 3.33x dividend weight)

No output schema declared.

No examples provided.

prepare_approve_floor ~88

Build the UNSIGNED ERC20 approve letting the game contract spend your FLOOR. Needed before recruiting or upgrading. Approves an exact amount by default rather than unlimited — pass `amount` in whole FLOOR.

NameTypeReqDescription
amountnumberyesHow much FLOOR to approve (whole tokens, not wei).
fromstringThe wallet that will sign (optional; used to report current allowance).

No output schema declared.

No examples provided.

prepare_broker_floor_collect ~129

VERIFICATION-GATED: build the UNSIGNED transaction that makes a StonkBroker's wallet collect its Floor desk's pending PnL. Errors with no calldata unless `from` matches ownerOf on-chain and the wallet verifiably has a desk. The collected FLOOR lands IN the broker's wallet (it belongs to the NFT, not to you — use the wallet's executeCall for anything further).

NameTypeReqDescription
fromstringREQUIRED: the broker's current owner — verified against ownerOf on-chain.
idintegeryesBroker token id, 1-4444

No output schema declared.

No examples provided.

prepare_broker_floor_desk ~309

VERIFICATION-GATED cross-game move (nobody on the chain has done it yet): build the UNSIGNED transaction that makes a StonkBroker's OWN ERC-6551 wallet open a desk on The Floor. This tool ERRORS and returns no calldata unless every check passes live on-chain: the broker must be ACTIVATED (policy — activation is the commitment step, the desk is the perk; activate first if not), `from` is required and must match ownerOf (executeCall is owner-gated), and the broker wallet must verifiably have no desk. Why do it: the desk and its alpha bind to the NFT and transfer with it on sale — the only way a Floor position can change hands — giving the broker a second income stream alongside its stock dividends (liquid wallet contents remain owner-removable until a sale; never promise a buyer the wallet's tokens). The 0.01 ETH rides along with your signature (no prior wallet funding). Referrer: on-chain, permanent, defaults to this dashboard's address, overridable — always tell the user who it is before signing.

NameTypeReqDescription
fromstringREQUIRED: the broker's current owner — verified against ownerOf on-chain before any calldata is returned.
idintegeryesBroker token id, 1-4444
referrerstringReferrer to credit (permanent). Omit for this dashboard's default; 0x0…0 for none.

No output schema declared.

No examples provided.

prepare_broker_trade ~451

VERIFICATION-GATED: build the UNSIGNED Uniswap V3 swap that makes a StonkBroker's OWN ERC-6551 wallet trade one token for another on Robinhood Chain — the wallet spends, and the OUTPUT LANDS IN THE WALLET, so both sides belong to the NFT and transfer with it on sale. Errors with no calldata unless `from` matches ownerOf on-chain (executeCall is owner-gated) and the broker wallet verifiably holds enough tokenIn. Refuses to build a swap with no price floor: pass `pool` for a live on-chain quote (amountOutMinimum = quote − slippagePct) or `minAmountOut` yourself — a zero minimum is a guaranteed sandwich. The router pulls via transferFrom, so if the WALLET'S allowance is short an `approveFirst` transaction is returned and both must be signed in order. Nothing here is signed or broadcast; the owner signs both.

NameTypeReqDescription
amountInnumberyesAmount of tokenIn in whole tokens (not wei).
decimalsintegertokenIn decimals (default 18). Wrong decimals means a wrong-sized trade — check it.
feeintegerUniswap V3 fee tier: 100, 500, 3000 or 10000. Default 10000.
fromstringyesREQUIRED: the broker's current owner — verified against ownerOf on-chain before any calldata is returned.
idintegeryesBroker token id, 1-4444
minAmountOutnumberExplicit floor in whole tokenOut. Use when you priced it elsewhere; skips the pool quote.
outDecimalsintegertokenOut decimals (default 18), used for the minimum-out maths.
poolstringThe V3 pool for this pair+tier. Given, the amountOutMinimum is quoted live from slot0.
slippagePctnumberMax slippage when quoting from `pool` (default 2).
tokenInstringyesToken the broker wallet spends (0x address).
tokenOutstringyesToken the broker wallet receives (0x address).

No output schema declared.

No examples provided.

prepare_collect ~66

Build the UNSIGNED transaction to collect your desk's pending PnL. Free (no FLOOR, no ETH beyond gas). Use get_player first to see pendingPnL.

NameTypeReqDescription
fromstringThe wallet that will sign (optional; used to sanity-check you have a desk).

No output schema declared.

No examples provided.

prepare_create_desk ~222

Build the UNSIGNED transaction that opens a desk (joins the game). Returns {to, value, data} for the caller to sign with their OWN wallet — this server never sees, holds, or asks for a private key, and never broadcasts. Costs 0.01 ETH. IMPORTANT: the recruiter is written on-chain at desk creation and can NEVER be changed afterwards; it defaults to this dashboard's address (which earns 5% of what the player later spends, paid from the game treasury, costing the player nothing). Pass `referrer` to set your own, or the zero address for none. Always tell the user who the referrer is before they sign.

NameTypeReqDescription
fromstringThe wallet that will sign. Optional but recommended — lets this tool check the wallet does not already have a desk and would not revert.
referrerstringReferrer address to credit. Omit to use this dashboard's default; pass 0x0000000000000000000000000000000000000000 for none.

No output schema declared.

No examples provided.

prepare_recruit_operator ~125

Build the UNSIGNED transaction to recruit an operator by id (see list_operators — ids are ZERO-BASED). Spends FLOOR, so it requires an ERC20 approve first; if your allowance is short, the response includes an `approveFirst` transaction to sign before this one. 75% of what you spend is burned.

NameTypeReqDescription
fromstringThe wallet that will sign. Recommended — enables the allowance check.
operatorIdintegeryesZero-based operator id from list_operators (0 = Retail Analyst … 14 = The Closer)

No output schema declared.

No examples provided.

prepare_recruit_starter ~41

Build the UNSIGNED transaction to recruit the free starter operator. No FLOOR cost.

NameTypeReqDescription
fromstringThe wallet that will sign (optional).

No output schema declared.

No examples provided.

prepare_seat_operator ~81

Build the UNSIGNED transaction to seat an operator you own (by its FLOOROP NFT token id) at your desk, so it starts earning alpha. Seats and bandwidth are limited by your desk tier.

NameTypeReqDescription
fromstringThe wallet that will sign (optional).
tokenIdintegeryesThe FLOOROP operator NFT token id to seat

No output schema declared.

No examples provided.

prepare_swap_eth_for_floor ~230

Build the UNSIGNED Uniswap V3 swap that buys FLOOR with WETH (exactInputSingle). Full buy flow is 3 signed steps: (1) prepare_wrap_eth, (2) approve WETH to the router [included as approveWeth when `from` is given and allowance is short], (3) this swap. amountOutMinimum is computed from the LIVE pool price minus your slippage, so you are protected from a bad fill — but VERIFY the numbers before signing; this spends real money and the pool is thin. Selling FLOOR for ETH is the reverse and not built here.

NameTypeReqDescription
amountEthnumberyesWETH to spend (whole ETH). You must already hold this much WETH — see prepare_wrap_eth.
fromstringSigning wallet, used to check WETH allowance and include an approve if needed.
recipientstringyesAddress to receive the FLOOR (the signing wallet).
slippagePctnumberMax slippage tolerance in percent (default 2). amountOutMinimum = live quote × (1 − this).

No output schema declared.

No examples provided.

prepare_unseat_operator ~60

Build the UNSIGNED transaction to unseat an operator (frees its seat and bandwidth).

NameTypeReqDescription
fromstringThe wallet that will sign (optional).
tokenIdintegeryesThe FLOOROP operator NFT token id to unseat

No output schema declared.

No examples provided.

prepare_upgrade_desk ~102

Build the UNSIGNED transaction to upgrade your desk to the next tier (takes no arguments — it always steps up one tier). Spends FLOOR, so an approve may be needed first; pass `costFloor` from the desk table if you want the allowance checked against the exact price.

NameTypeReqDescription
costFloornumberExpected FLOOR cost of the upgrade, used only for the allowance check.
fromstringThe wallet that will sign (recommended).

No output schema declared.

No examples provided.

prepare_wrap_eth ~76

Build the UNSIGNED transaction to wrap native ETH into WETH (step 1 of buying FLOOR — the router swaps WETH, not raw ETH). Returns a WETH.deposit() call carrying your ETH as value.

NameTypeReqDescription
amountEthnumberyesHow much ETH to wrap (whole ETH, e.g. 0.05).

No output schema declared.

No examples provided.