Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_PORTNoHTTP port.8788
BOPSTER_API_URLNoBopster API.https://api.bopster.fun
BOPSTER_RPC_URLNoBase RPC. The public one rate-limits bursts, so use a dedicated one in production. It must return transaction receipts (publicnode's free tier doesn't). Checked at startup and shown on /health.https://mainnet.base.org
BOPSTER_CHAIN_IDNo8453 (Base) or 84532 (Base Sepolia).8453
BOPSTER_SITE_URLNoWhere market links point.https://bopster.fun
BOPSTER_MCP_SECRETNoOnly for the official server. Sent as X-Bopster-Mcp-Secret to BOPSTER_API_URL and nowhere else.
BOPSTER_DRAFT_SECRETNoSigns market drafts between steps 2 and 3. Set it (32+ bytes) so drafts survive a restart.
BOPSTER_FACTORY_ADDRESSNoBopsterFactory. The get_fees, quote_, prepare_, sync_ and register_ tools need it.
BOPSTER_HTTP_TIMEOUT_MSNoTimeout for backend requests.10000
BOPSTER_REALITY_ARBITRATORNoArbitrator for new questions. Empty turns market creation off. Mainnet: 0xcB4B48d2A7a44247A00048963F169d2b4Ab045a6.
BOPSTER_REALITY_TIMEOUT_SECONDSNoAnswer window for new questions (12 h, as on the site).43200
BOPSTER_REALITY_ANSWER_REWARD_WEINoBounty sent with new questions.0

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_marketsA

Search and list prediction markets on Bopster (a non-custodial prediction market on Base). Supports filtering by status, category and text, plus sorting and pagination. Returns each market with YES/NO pools, total volume and end/resolve times, and a pagination block (page, size, total, pages). Amounts are USDC (6 decimals); *_formatted and *_iso fields are added for readability.

get_marketA

Fetch the full detail of a single Bopster prediction market by its on-chain address: question, category, source, YES/NO pools, market phase, oracle state and (optionally) a given wallet’s positions. Amounts are USDC base units (6 decimals); times are unix seconds (UTC).

get_leaderboardA

Return a ranked leaderboard of Bopster participants (top market creators, predictors, i.e. position takers, or oracle answerers) over a given time period, with pagination.

get_portfolioA

Fetch the Bopster portfolio of a wallet you control: its open positions across markets, claimable rewards and refunds. Amounts are USDC base units (6 decimals). The backend shows a portfolio only to its own wallet, so this needs a login: call get_login_message for the wallet, sign the message with personal_sign, then pass wallet, nonce and signature here. Each signature works once. The session can't move funds and isn't kept.

get_user_profileB

Fetch a public Bopster user profile plus aggregate activity (as creator, predictor and oracle participant). Accepts either a wallet address or an alias.

get_creator_profileA

Fetch a public creator profile on Bopster: alias, avatar, verified badge and creator stats. Accepts either a wallet address or an alias.

get_feesA

Return the Bopster market fee split (protocol, creator and resolver) as read live from the BopsterFactory contract on Base. Percentages are of the total market pool. No fees are charged when a market refunds (no positions, or nobody on the winning side).

ping_healthA

Verify that the Bopster read API is reachable and responding. Useful before running other tools.

quote_positionA

Estimate what a YES or NO position of a given size would pay on a Bopster market if its side wins, read from the market contract on Base. Read-only: builds no transaction. Payouts are parimutuel, so the estimate moves with every later position.

prepare_positionA

Build the unsigned transactions to take a YES or NO position on a Bopster market on Base: an exact-amount token approval, then the position. Checks the market is open, is a real Bopster market and that the wallet holds enough. Non-custodial: this server never holds keys or sends anything; the agent's wallet signs and sends the transactions in order.

prepare_claimA

Work out what a wallet can take out of a Bopster market on Base and build the unsigned transactions to do it, in order: settling the market first when it's ready but nobody has (finalize, or the emergency refund path), then claim() or claimRefund(). Says why when there's nothing to claim. Non-custodial: this server never holds keys or sends anything.

prepare_finalizeA

Check whether a Bopster market on Base can be settled now and build the unsigned transaction(s) to do it. Anyone can settle a market once its Reality.eth answer is final; the sender earns the resolver reward when the market has winners. Also covers the emergency refund path for markets whose answer never became final. Non-custodial: this server never holds keys or sends anything.

sync_marketA

Ask the Bopster backend to re-read a market from the chain after a transaction confirms, so the site and the other tools show it right away instead of after the next indexer pass. Changes nothing on-chain and moves no funds; the chain stays the source of truth either way.

get_login_messageA

Step 1 of creating a Bopster market, and what get_portfolio needs. Returns a one-time message for the wallet to sign with personal_sign (EIP-191). The signature opens a short session with the Bopster backend, used only for the one request that needs it: pinning a new market's metadata to IPFS, or reading this wallet's own portfolio. It can't move funds or sign transactions. Each client gets 3 a minute: ask for one only when you're about to sign it.

prepare_market_questionA

Step 2 of creating a Bopster market. The question is built from one of the five Bopster templates (price threshold, event outcome, before a date, price change, compare assets), worded exactly as bopster.fun words it; free-text questions are not accepted. Checks the market against every rule the site, the backend and the factory enforce, pins its metadata to IPFS, and returns the unsigned Reality.eth askQuestion transaction. Non-custodial: nothing is signed or sent here.

prepare_market_launchA

Step 3 of creating a Bopster market. Only launches drafts prepare_market_question built: pass its next.arguments unchanged, plus the question tx hash. Reads the confirmed askQuestion transaction, checks it is exactly the drafted question (same text, asker, arbitrator, answer window and opening time), and returns the unsigned createMarket transaction. Non-custodial: nothing is signed or sent here.

register_marketA

Step 4 of creating a Bopster market. Reads the confirmed createMarket transaction, returns the new market and its link, and tells the Bopster backend so it shows up on the site right away. The backend re-reads the market from the chain itself, and its indexer would find it anyway; this only saves the wait.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 17 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but a few boundaries require reading descriptions: get_user_profile vs get_creator_profile overlap as public profile lookups, and prepare_claim vs prepare_finalize both touch settlement. sync_market and register_market also overlap in refreshing backend state, though the step-wise creation tools are otherwise well separated.

Naming Consistency5/5

All tool names use snake_case with a consistent verb_noun pattern, such as get_market, list_markets, prepare_position, and prepare_market_launch. Prefixes like get_, prepare_, and list_ are applied predictably across the set.

Tool Count4/5

Seventeen tools is slightly above the ideal compact range, but each maps to a distinct part of the prediction-market lifecycle or a distinct read operation. There is little obvious redundancy, though the surface is heavier than a minimal server would need.

Completeness4/5

The set covers discovery, market detail, quoting, position preparation, claim/finalize flows, the multi-step market creation pipeline, profiles, leaderboard, portfolio, fees, and health checks. Minor gaps remain around generic transaction-status inspection and possible market edge-case operations, but core workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues