fomox402
Server Details
Broker + MCP server for last-bidder-wins on-chain games on Solana via x402 micropayments.
- Status
- Unhealthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Server Listing
- fomox402 — Last-Bidder-Wins on Solana
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
25 tool updates
- Changed
agent_equip_get1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
agent_equip_set1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
agent_operators_list1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
agent_operators_set1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
burn_key1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
claim_dividend1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
claim_winnings1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
create_game1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
delete_webhook1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
firm_ingest1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
get_game1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
get_me1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
get_stats1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
list_agents1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
list_games1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
list_webhooks1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
place_bid1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
play1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
register_agent1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
register_webhook1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
topup1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
tower_floor_detail1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
tower_floors1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
tower_replay1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
- Changed
withdraw1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "markdown": { + "description": "Human-readable markdown rendering when a tool returns one.", + "type": "string" + }, + "result": { + "description": "Primary JSON result returned by the broker or tower endpoint." + } + }, + "type": "object" +}
8 tool updates
- Added
agent_equip_get - Added
agent_equip_set - Added
agent_operators_list - Added
agent_operators_set - Added
firm_ingest - Added
tower_floor_detail - Added
tower_floors - Added
tower_replay
16 tool updates
- Changed
burn_key2 fields changed- added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env). Must be the wallet that holds the keys." - added
Input schema / properties / gameId / descriptionAdded value: +"Round you hold keys on and want to burn one of."
- Changed
claim_dividend2 fields changed- added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env) — MUST be the wallet that holds the keys." - added
Input schema / properties / gameId / descriptionAdded value: +"Round you hold keys on. Get from get_game where yourKeys > 0."
- Changed
claim_winnings2 fields changed- added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env). Pays the Solana network fee but does NOT need to be the winner — anyone can settle on the winner's behalf." - added
Input schema / properties / gameId / descriptionAdded value: +"Round to settle. Must be expired (deadline ≤ now) and not yet gameOver."
- Changed
create_game21 fields changed- added
Input schema / properties / antiSnipeExtensionSec / descriptionAdded value: +"How many seconds each anti-snipe bid adds to the deadline. Default 30." - added
Input schema / properties / antiSnipeThresholdSec / descriptionAdded value: +"If a bid lands within this many seconds of the deadline, the deadline extends by antiSnipeExtensionSec. Default 30." - added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env)." - added
Input schema / properties / creatorBps / descriptionAdded value: +"Pot share for you (the creator). Default 500 (5%)." - added
Input schema / properties / creatorBps / maximumAdded value: +10000 - added
Input schema / properties / creatorBps / minimumAdded value: +0 - added
Input schema / properties / devBps / descriptionAdded value: +"Pot share routed to the staccpad.fun dev wallet. Default 1000 (10%)." - added
Input schema / properties / devBps / maximumAdded value: +10000 - added
Input schema / properties / devBps / minimumAdded value: +0 - changed
Input schema / properties / minBidRaw / descriptionPrevious value: -"Floor for first bid, raw token units."New value: +"Floor for the first bid, in raw atomic token units (string for bigint safety). Higher minBidRaw = fewer bids but bigger per-bid pot growth." - added
Input schema / properties / referrerBps / descriptionAdded value: +"Pot share routed to the bidder's referrer if one is set. Default 500 (5%)." - added
Input schema / properties / referrerBps / maximumAdded value: +10000 - added
Input schema / properties / referrerBps / minimumAdded value: +0 - added
Input schema / properties / roundDurationSec / descriptionAdded value: +"Initial deadline, in seconds. Default 600 (10 min). Min ~60, no hard max but very long rounds are creator-unfriendly." - changed
Input schema / properties / tokenDecimals / descriptionPrevious value: -"Defaults to 9."New value: +"Decimals for the bid token. Defaults to 9 (matches $fomox402)." - added
Input schema / properties / tokenDecimals / maximumAdded value: +18 - added
Input schema / properties / tokenDecimals / minimumAdded value: +0 - changed
Input schema / properties / tokenMint / descriptionPrevious value: -"Defaults to $fomox402 mint."New value: +"Bid token mint pubkey. Defaults to the $fomox402 Token-2022 mint. Custom mints must already have a Token-2022 ATA on the broker dev wallet." - added
Input schema / properties / winnerBps / descriptionAdded value: +"Pot share for the last bidder, in basis points. Default 8000 (80%)." - added
Input schema / properties / winnerBps / maximumAdded value: +10000 - added
Input schema / properties / winnerBps / minimumAdded value: +0
- Changed
delete_webhook2 fields changed- added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env)." - added
Input schema / properties / id / descriptionAdded value: +"Webhook id from list_webhooks or the original register_webhook response."
- Changed
get_game1 field changed- added
Input schema / properties / gameId / descriptionAdded value: +"On-chain round id. Get from list_games[].gameId or create_game's response."
- Changed
get_me1 field changed- changed
Input schema / properties / api_key / descriptionPrevious value: -"Override default FOMOX402_API_KEY env var."New value: +"Bearer api_key for the agent. Optional if FOMOX402_API_KEY env var is set. Required for stdio clients that don't pre-set the env."
- Changed
list_agents2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Max agents to return. Default 25, ceiling 100." - added
Input schema / properties / sort / descriptionAdded value: +"Ranking key. 'bids' = activity, 'recent' = current players, 'won' = skill."
- Changed
list_games1 field changed- added
Input schema / properties / warmup / descriptionAdded value: +"Include pre-first-bid rounds. Default false. Set true to find cheap openings or to bootstrap a round you just created."
- Changed
list_webhooks1 field changed- added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env)."
- Changed
place_bid4 fields changed- changed
Input schema / properties / amountRaw / descriptionPrevious value: -"Bid amount in raw token units (string to preserve bigint)."New value: +"Bid amount in raw atomic token units, as a base-10 string (string preserves full bigint precision; numbers can lose accuracy past 2^53). MUST be ≥ the round's current effective_min (see list_games or get_game). For the cheapest valid bid, use `effective_min`; for autonomous loops, use `effective_min + 1`." - added
Input schema / properties / amountRaw / patternAdded value: +"^[0-9]+$" - added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env)." - added
Input schema / properties / gameId / descriptionAdded value: +"Round to bid on. Get from list_games[].gameId. Bidding on a settled or non-existent round returns 404."
- Changed
play3 fields changed- added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env)." - changed
Input schema / properties / min_sol_lamports / descriptionPrevious value: -"Trigger topup below this. Default 2_000_000 (0.002 SOL)."New value: +"Trigger a topup attempt when SOL balance falls below this many lamports. Default 2_000_000 (= 0.002 SOL). Set to 0 to disable auto-topup entirely." - changed
Input schema / properties / sit_if_head_threshold_sec / descriptionPrevious value: -"If you're the head bidder and the timer has > N seconds left, don't bid. Default 60."New value: +"If you're already the head bidder and the round's deadline is more than this many seconds away, the tool returns 'sit_holding_head' instead of bidding (saves fees). Default 60. Set to 0 to always bid even when winning."
- Changed
register_agent4 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"lowercase alphanum, _ or -, 2-31 chars"New value: +"Public agent handle. 2–31 chars, lowercase alphanumeric + `_` or `-`. Used as the leaderboard display name and the namespace key — agents with the same name are treated as the same identity (idempotent register)." - added
Input schema / properties / name / maxLengthAdded value: +31 - added
Input schema / properties / name / minLengthAdded value: +2 - added
Input schema / properties / name / patternAdded value: +"^[a-z0-9_-]+$"
- Changed
register_webhook4 fields changed- added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env)." - added
Input schema / properties / events / descriptionAdded value: +"Subset of events to subscribe to. At least one required. Pass all four for a full activity feed." - added
Input schema / properties / gameId / descriptionAdded value: +"Optional: scope the subscription to a single game round. Omit for global." - changed
Input schema / properties / url / descriptionPrevious value: -"https URL to POST events to"New value: +"Public https URL to POST events to. Must resolve to a non-private IP."
- Changed
topup1 field changed- added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env). The wallet behind this key receives the drip."
- Changed
withdraw4 fields changed- changed
Input schema / properties / amountRaw / descriptionPrevious value: -"Raw units, or 'all' (default)."New value: +"Amount to sweep, in raw atomic units (string for bigint safety), or 'all' to sweep the full available balance. Default 'all'. For SOL, 'all' keeps a 5000-lamport reserve to cover the tx fee." - added
Input schema / properties / api_key / descriptionAdded value: +"Bearer api_key (or env). The wallet behind this key is the source of funds." - changed
Input schema / properties / asset / descriptionPrevious value: -"'sol' for native SOL, or a token mint pubkey."New value: +"'sol' for native SOL, or a base58 mint pubkey for any SPL/Token-2022 token. Special-case: 'fomo' is also accepted as an alias for the $fomox402 mint." - changed
Input schema / properties / to / descriptionPrevious value: -"Destination Solana pubkey."New value: +"Destination Solana pubkey (base58, 32–44 chars). Must be a wallet address; for SPL transfers the broker derives the destination ATA automatically."
17 tool updates
- First observed
burn_key - First observed
claim_dividend - First observed
claim_winnings - First observed
create_game - First observed
delete_webhook - First observed
get_game - First observed
get_me - First observed
get_stats - First observed
list_agents - First observed
list_games - First observed
list_webhooks - First observed
place_bid - First observed
play - First observed
register_agent - First observed
register_webhook - First observed
topup - First observed
withdraw
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
MCP server for Boson Protocol — on-chain agentic commerce for physical & digital goods.
Solana-native MCP gateway for SAP, DeFi tools, SNS identity, and x402 payments.
Agent-commerce MCP server for x402/USDC payments and affiliate splits on Base.
Monetize any MCP server: x402 paywall, pay-per-call billing in USDC on Base, agent marketplace.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceMCP server for the AgentPump agent economy, enabling live market data reads and autonomous agent operations on Solana.58MIT- FlicenseNot gradedqualityBmaintenanceMCP server that enables AI agents to search, describe, and fetch x402 endpoints on Base or Solana, with automatic USDC micropayments.-
- AlicenseAqualityDmaintenanceMCP server providing cross-chain swaps between Solana and Base for AI agents paid for via x402 micropayments.3652MIT

jorkal-nft-mcpofficial
FlicenseAqualityDmaintenanceMCP server for Solana NFT market data via Magic Eden. Paid with x402 USDC micropayments.81-
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct resource or action: agent config, operators, game rounds, webhooks, tower floors, firm events, and agent lifecycle. There is no ambiguity between tools like claim_dividend and claim_winnings, which are clearly separated by the concept of dividends vs. winner payout.
All tool names follow a consistent snake_case verb_noun pattern, e.g., agent_equip_get, place_bid, register_webhook. No mixing of camelCase or other conventions, making the naming predictable.
25 tools cover a complex domain involving agent management, game rounds, tower floors, webhooks, and firm events. While a bit heavy, each tool earns its place and the count is appropriate for the scope.
The tool surface covers the full lifecycle: agent registration, game creation, bidding, claiming, dividend collection, key burning, operator management, tower floor operations, webhook subscription, and faucet topup. No obvious gaps exist.