tradefloor
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| describe_simulatorA | Describe what this simulator is, what its realism checks certify, what it cannot do, the caps on every tool and how long a run takes. It also lists every shipped preset with its measured record, says which one the certification covers, lists the shipped populations of background traders with what they were measured to do, and describes market sessions. Call it first, before any other tool. It takes no arguments, runs no market and returns the same text on every call. |
| check_envelopeA | Check whether a question falls inside the range the simulator's realism was measured for, BEFORE running it. Use it whenever a conclusion leans on a horizon longer than a year, on particular statistics, on a sector-concentrated roster, on the size of a scenario's effect or on a preset other than the default. Returns ok or a refusal that names the measurement behind it, and for a named preset that preset's measured record. Runs no market, so it answers at once. |
| validate_strategyA | Parse and fingerprint one strategy spec WITHOUT running it. Use it to iterate on a spec cheaply before evaluate_strategies or rank_strategies: a grammar error comes back naming the field that was wrong, and a valid spec comes back normalised with its fingerprint. A spec looks like {"signal": {"kind": "momentum", "lookback_days": 1.0}, "portfolio": {"top_k": 5, "gross": 1.0}}. Runs no market. |
| evaluate_strategiesA | Run strategies on one simulated market, beside the baseline agents on the same market, and score each one: return, P&L, the cost of its own trading in basis points, turnover and errors. Use it first, but it runs one seed, so use rank_strategies before believing an ordering. A strategy is data, for example {"signal": {"kind": "momentum", "lookback_days": 1.0}, "portfolio": {"top_k": 5, "gross": 1.0}}, and validate_strategy checks one without running it. days 1 to 60 here (a few seconds), up to 252 through start_job; roster 2 to 120 names. |
| rank_strategiesA | Score strategies across MANY seeds, beside the baseline agents, and rank them with a paired sign test on each pair. Use it after evaluate_strategies, because one seed's ordering is often luck. Costs about one evaluate_strategies call per seed: 2 to 12 seeds (default six), days 1 to 60 here, up to 252 through start_job. Returns each entrant's record across the seeds (median P&L, seeds ahead of buy-and-hold) and each pair's sign test. Takes |
| list_scenariosA | List the shipped stress scenarios, the scenario constructors and every intervention target, with what each target was measured to reach. Read it before build_scenario or run_stress_scenario: each shipped scenario's first_event_day sets the shortest useful run, and four targets have effects too small to see over a hundred days. Takes no arguments and runs no market. |
| build_scenarioA | Author a custom scenario and see what it resolves to before running it. Give a macro PATH as hold, ramp and step instructions in |
| run_stress_scenarioA | Run strategies through a macro stress scenario, always beside the same market unshocked, and compare each strategy across the two. |
| explain_price_moveA | Break one day's move for each name into the 12 factor contributions that sum to the day's change in the mispricing, the log gap between the model price and fair value. Use it to ask which factors moved prices; use explain to trace one name's move down to the random draws behind it. They are the simulator's own bookkeeping, and they are not the whole price move. On the default preset most of the day's news and noise moves fair value, |
| explainA | Trace one name's price move on one day down to the random draws that caused it, as a tree: the day's log move at the top, then each factor, then the draw addresses beneath them. Every node can be replayed, and every number is measured by running the day again. Use explain_price_move to see which factors moved prices across the roster; use this for one name when you need to know which draws moved those factors. |
| build_universeA | Build a roster of companies and preview it, either generated from a size and seed (optionally concentrated on chosen sectors) or from explicit instruments you supply. Use it when the default random roster will not do, for example to test one sector or your own companies. Returns a |
| start_jobA | Start a long run of evaluate_strategies, rank_strategies or run_stress_scenario in the background and get a job id back immediately. This is the ONLY way to run to the certified 252-day horizon; a direct call is capped at 60 days so it can answer inside a conversation. The arguments are checked before the job starts, and the response estimates its run time. At most 2 jobs run at once and the last 32 are kept, in this server's memory only. A |
| check_jobA | Check a background job started by start_job. Returns its status and, once it has finished, the full result in the same form the direct tool returns. Omit job_id to list every job this server still holds. Changes nothing, so it is safe to poll. |
| open_sessionA | Open a simulated market that this server keeps between calls, and get a session id back. Use a session when you want to decide each step yourself and see what happened before the next: send orders with session_step, read with session_state, try two actions from one state with session_fork, and go back with session_rewind. To score a strategy you can write as a spec, use evaluate_strategies or rank_strategies instead. |
| session_stepA | Advance an open session by a number of steps or days, optionally sending orders for one of its agents at the first step, and get back the fills, each agent's portfolio, the prices and what changed. This is the one session tool that trades. An order is a signed share count (positive buys), {"quantity": q, "limit_price": p} for a limit order, or "cancel"; a malformed order is refused before anything runs, and one the market refuses (the leverage cap, a book that cannot fill) is listed and the rest trade. At most 360 steps a call and 504 days a session; a step costs about a sixth of a day of evaluate_strategies for one entrant. Keeps a checkpoint at the step it ends on. Deterministic: the same calls from the same open give the same result. |
| session_stateA | Read an open session without changing it: the clock, every price, the published macro figures, today's news by name, each agent's portfolio and open orders, and the checkpoints session_rewind can return to. Name tickers to add each one's open, high, low, volume and best bid and ask. It shows what a trader could see and nothing of the simulator's own state. Omit session_id to list the open sessions. Runs no market. |
| session_forkA | Copy an open session, at its present state, into a new session with its own id, so you can try two different actions from the same market and compare them. The copy continues exactly as the original would: the same steps and orders give the same prices in both. The original is unchanged. Counts against the 8-session cap; runs no market. |
| session_rewindA | Put an open session back to a checkpoint it kept, by step, and drop every checkpoint after it. Checkpoints are kept at the open and at the end of every session_step call; session_state lists them, and a session keeps at most 64. To keep the later state as well, session_fork first. Returns the session as session_state does. Runs no market. |
| close_sessionA | Close an open session and free its memory, returning each agent's final portfolio and every order sent on the session's line, which is what re-runs it from open_session. The session and its checkpoints are gone afterwards. Runs no market. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Despite many 'run' tools, the boundaries are explicitly drawn: evaluate_strategies (one seed) vs rank_strategies (many seeds, sign test) vs run_stress_scenario (shocked vs unshocked) vs start_job (only way to 252 days). explain vs explain_price_move are contrasted (roster-wide factors vs one name's draws), and the session family (step/state/fork/rewind/close) each has a distinct verb of effect. An agent can reliably pick the right tool.
Mostly a clean snake_case verb_noun pattern (validate_strategy, evaluate_strategies, run_stress_scenario, build_universe, list_scenarios, check_job). The session tools use a noun_verb namespace (session_step, session_fork, session_rewind) while their brackets are verb_noun (open_session, close_session), and bare 'explain' breaks the pattern, but the deviations are minor and readable.
19 tools is slightly heavy but each earns its place: 6 cover a full interactive session lifecycle, 3 cover strategy scoring at different fidelities, plus jobs, scenario/universe authoring, explanation, and read-only orientation tools. Nothing looks redundant enough to drop, though the surface is dense.
Coverage is strong: cheap validation, single- and multi-seed evaluation, stressed runs, causal explanation, background jobs for long horizons, envelope/realism checks, and full session control with forking/rewinding. Only marginal gaps (e.g. no consolidated cross-preset comparison or result export beyond jobs/session_state), which agents can work around.