Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
XAI_API_KEYNoAPI key for the xai provider.
GROQ_API_KEYNoAPI key for the groq provider (free tier); the provider named by `tra init my-desk --profile autonomous --agent groq`.
GEMINI_API_KEYNoAPI key for the google provider.
GOOGLE_API_KEYNoAlternative API key for the google provider.
OPENAI_API_KEYNoAPI key for the openai provider.
9ROUTER_API_KEYNoAPI key for the 9router provider, a local router.
MISTRAL_API_KEYNoAPI key for the mistral provider.
DEEPSEEK_API_KEYNoAPI key for the deepseek provider.
ANTHROPIC_API_KEYNoAPI key for the anthropic provider.
DASHSCOPE_API_KEYNoAPI key for the qwen provider.
OPENROUTER_API_KEYNoAPI key for the openrouter provider.

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
check_cost_floorA

Check whether a claimed edge can pay for trading it, before any data is touched.

Reads the fee channels declared in envelope.toml, takes the cheapest round trip (on `venue`
when given, else across every channel) and compares the claimed magnitude with it. Use it
first: an idea whose edge is below the round trip stops here, and no backtest can rescue it.
Read-only. Returns `outcome` ("cleared" or "stop"), the channel used, its round trip and the
margin (magnitude minus round trip) in bps as decimal strings, and the measured round trip
when the channel records one.
observe_eventsA

Layer 1: count whether the event declared in observation.toml recurs in a dataset.

Marks every occurrence of the declared event in a Parquet trade dataset, measures the
response over the declared horizon and counts it per subperiod, so an event that happened in
one week only is seen as such. Use it after `check_cost_floor` and before writing a
pre-registration. Read-only. Returns the declaration and the report: events found, their
spread across subperiods and whether the declared recurrence holds.
check_registrationA

Read a sealed pre-registration: its hypothesis, universe, power and kill criteria.

Use it before `validate_trades`, to see what a validation will be judged against, or to
confirm that a registration has not been edited since it was sealed: the seal is recomputed
from the file. Read-only. Returns the name, the seal, the horizon, the instruments, the sample
the power analysis requires, each kill criterion (metric, comparison, threshold, verdict) and
the registration it amends, if any. A file that does not parse is refused with the reason.
audit_datasetA

Audit a raw trade archive before anything is tested on it.

Normalises the file through a venue plugin (`venue`) or a column map (`mapping_path`), exactly
one of the two, and checks it: rows that do not become trades, gaps longer than
`max_gap_minutes`, price and size scales that change inside the file, and days that carry most
of the rows. Use it on any new dataset; `observe_events` and a backtest assume a file that
passed. Read-only. Returns `passed`, accepted and rejected row counts, the first and last
timestamps, and each finding with its severity ("fail" or "warn").
validate_tradesA

Layer 5: judge a set of closed trades against the registration sealed before them.

Rejects trades outside the registered universe or era, subtracts `cost_bps` from every trade,
then runs the eight requirements of layer 5, among them a block bootstrap interval, a
permutation test against a null (`null_mode` "sign" or "cross_sectional") and the power
achieved against the power required, and applies the registration's kill criteria.
Deterministic for a given `seed`. Use it once per registration; running it again with other
settings is the forking the seal exists to prevent. Read-only: the verdict is returned, never
written to the ledger.
show_ledgerA

List the kill ledger: every verdict that stands, and the count per verdict.

The ledger is the research memory: what was falsified, closed, not proven or validated, on
which axis, and at which fee it would reverse. A retracted row is left out. Use it for the
whole picture; `search_ledger` finds the rows about one idea. Read-only.
show_ladderA

Show the promotion ladder: the tier a strategy is on and how it got there.

Tiers run research, paper, shadow, canary, production; canary and production send real
orders. Use it before acting on a run, to know what the strategy is allowed to do. Read-only:
promotion is never available through this surface. Returns the tier and every promotion and
demotion with its reason.
read_run_reportA

Read one run's report: what a replay, shadow or canary run did, and how it ended.

Returns run.json as written (label, instrument, strategy, prints, bars, intents, refusals,
fills, net bps, what stopped it) and the count of closed round trips in its trades.jsonl. Use
`list_runs` to find the run directory first. Read-only.
search_ledgerA

Search the kill ledger for verdicts that mention the words in query.

Matches the subject, note, evidence and axis of every row that stands, and ranks rows by how
many words they contain. Ask here before proposing an idea: if it already died, the row says
of what and at which fee it would reverse. Read-only. Returns the query, the number of rows
matched and up to `limit` of them, best first.
list_runsA

List past runs under a directory, newest first, with the summary of each.

Finds every run.json below `runs_dir` and returns its directory, label, instrument, strategy,
round trips, net bps, what stopped it and when it finished; at most 50, with the total.
Filter by `instrument` to compare runs on one market. Use `read_run_report` for one run in full.
Read-only.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 10 tools

Disambiguation5/5

Every tool targets a distinct artifact or pipeline stage: run listings vs. a single run report, full ledger vs. ledger search, ladder, cost floor, event observation, registration reading, dataset audit, and trade validation. Overlap-prone pairs like list_runs/read_run_report and show_ledger/search_ledger are explicitly distinguished in the descriptions (list vs. detail, full picture vs. one idea). No two tools could plausibly be mistaken for each other.

Naming Consistency5/5

All ten tools follow a strict verb_noun snake_case convention (list_runs, show_ledger, read_run_report, search_ledger, check_cost_floor, observe_events, audit_dataset, validate_trades). Verbs are chosen sensibly and no convention mixing or vague naming appears.

Tool Count5/5

Ten tools is well within the healthy range and each maps to a concrete research step or view. Nothing feels redundant or padded, and no obvious operation is missing from the count alone.

Completeness4/5

The read-only research lifecycle is well covered end to end: audit dataset, check cost floor, observe events, read registration, validate trades, plus run/ledger/ladder views. Gaps exist only on the write side (sealing registrations, promoting tiers, writing verdicts), which the descriptions state is intentionally out of scope for this surface.

Maintenance

ActivityActive
ResponsivenessUnresponsive