Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CANLI_KEYNoA key already issued from POST /api/v1/keys. When set, get_key sends no request; every other tool sends it as Authorization: Bearer <key>.
CANLI_LOCALNoSet to 1 to run the five validators on this machine; nothing about the submitted series is sent.
CANLI_API_BASENoWhere the API lives. Point it at a preview deployment for testing.https://canlicapital.com

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
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_keyA

Issue a free canlicapital.com validation key (POST /api/v1/keys) and hold it in memory for this session. Only needed before a validation when neither CANLI_KEY nor local mode is set; the read tools (get_receipt, service_status, company_financial_history) never need a key. Quotas: 1000 validations per key per UTC day, 5 keys per client per UTC day, 1048576 bytes per validation request, 1024 bytes per key revocation request, 20000 observations per series, 200 variants per matrix.

validate_deflated_sharpeB

Whether a Sharpe survives the number of variants tried: probabilistic and deflated Sharpe (0 to 1) and the Sharpe luck alone would reach. Send the seven statistics or a return series, not both. A deflated Sharpe or overfitting probability above or below any threshold is not admission to anything and is not a forecast.

validate_overfittingA

Probability (0 to 1) that picking the best of several backtested variants was overfitting, by CSCV over every variant's returns. A deflated Sharpe or overfitting probability above or below any threshold is not admission to anything and is not a forecast.

validate_paper_evidenceA

Whether a paper or simulated performance record meets canli.paper-evidence.v0, with each failure's JSON pointer. This verdict is about the series exactly as submitted. The service never saw the data source, its costs, survivorship, or any lookahead in how the series was built.

validate_breadthA

Highest book Sharpe reachable by adding sleeves of this quality and correlation, the Sharpe at a sleeve count, and the sleeves a target needs. This verdict is about the series exactly as submitted. The service never saw the data source, its costs, survivorship, or any lookahead in how the series was built.

validate_track_recordA

Minimum track record length, in observations and years, for an observed Sharpe to beat a benchmark at a confidence level, and with observations, the record's probabilistic Sharpe so far. A deflated Sharpe or overfitting probability above or below any threshold is not admission to anything and is not a forecast.

validate_backtest_lengthA

Minimum backtest length, in years, before the best of N independent trials is not expected to reach a target Sharpe by luck, and with backtest_years, the most independent trials those years allow. Send effective_independent_trials, backtest_years, or both. A deflated Sharpe or overfitting probability above or below any threshold is not admission to anything and is not a forecast.

validate_haircut_sharpeA

Haircut Sharpe ratio for multiple testing (Harvey and Liu, 2015): the Sharpe a single test would have needed once the number of tests is counted, by Bonferroni and for independent tests, and with the other tests' Sharpe ratios by Holm and BHY. A deflated Sharpe or overfitting probability above or below any threshold is not admission to anything and is not a forecast.

validate_luck_trialsA

How many skill-less strategies a search would have had to try for its best to reach this Sharpe by luck, and, with a trial count, the chance that it did. Calibrated by Monte Carlo. A deflated Sharpe or overfitting probability above or below any threshold is not admission to anything and is not a forecast.

audit_backtestA

Audit one strategy's return series in one call: deflated Sharpe, the minimum track record length for its Sharpe to beat the benchmark, and, with every variant's returns, the probability of backtest overfitting. Point returns_file at the backtest's CSV or JSON rather than copying long series into the call. Each check is the matching validate_ tool's result with its own receipt, side by side; the audit does not grade the strategy. Uses one validation per check. A deflated Sharpe or overfitting probability above or below any threshold is not admission to anything and is not a forecast.

get_receiptA

Fetch a stored verdict by receipt id (GET /api/v1/receipts/{id}) to re-check an earlier result. No key. The receipt is content-hashed, reproducible from the open-source core it names, and signed with Ed25519 by a key published at https://canlicapital.com/.well-known/canli-receipt-keys.json.

verify_receiptA

Check a validation receipt's Ed25519 signature offline against the canlicapital.com public key bundled in this package, that its output hashes to its output_sha256, and that its content hashes to its id. Send an id to fetch the receipt first, or a receipt already fetched. The receipt is content-hashed, reproducible from the open-source core it names, and signed with Ed25519 by a key published at https://canlicapital.com/.well-known/canli-receipt-keys.json.

service_statusA

Whether the validation API is up, with quota constants (GET /api/v1/validate/status); check after a timeout before resubmitting. No key. This verdict is about the series exactly as submitted. The service never saw the data source, its costs, survivorship, or any lookahead in how the series was built.

company_financial_historyA

SEC-reported financial history for one company from the canlicapital.com company reference (GET /company-data/{cik}.json), by cik or by ticker (resolved through GET /api/v1/company-tickers.json, companies in the release only). Without a concept it lists the available histories; with one it returns observations, newest first, each with its filing accession, form, filed date and unit, plus the SHA-256 of the original SEC response. No key required. Public company accounting reference, not market prices, returns, an investment recommendation, or ALPHAC performance. Validate a separately constructed return series with the validation API; accounting values are not returns.

Prompts

Interactive templates invoked by user choice

NameDescription
validate_backtestWalk through the deflated Sharpe, overfitting and track-record checks for one strategy, and report what the numbers do not establish.
track_record_neededThe minimum track record length for a Sharpe to clear a benchmark, with the record's own probabilistic Sharpe if its length is known.

Resources

Contextual data attached and managed by the client

NameDescription
limitsThe boundary sentences every validation result carries.
sourcesThe papers behind each validator and how each is checked against them.

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation3/5

The eight validate_* tools all live in the same statistical-validation space, and several pairs (deflated vs. haircut Sharpe, overfitting vs. luck trials, track record vs. backtest length) address closely related multiple-testing and luck questions. The descriptions are detailed enough to separate them, but an agent could easily pick the wrong validator without careful reading.

Naming Consistency4/5

The validate_<thing> prefix is used consistently for the core validators, and get_receipt, verify_receipt, get_key, and audit_backtest follow a clear verb_noun style. service_status and company_financial_history are noun-phrase outliers, so the pattern is not perfectly uniform.

Tool Count4/5

At 14 tools, the set is reasonably scoped for a validation API with distinct statistical checks plus support operations. It is not bloated, though company_financial_history feels tangential to the validation mission, making the count slightly broader than necessary.

Completeness5/5

The surface covers the main validation lifecycle: multiple-testing corrections, track record, backtest length, paper evidence, breadth, combined audit, receipts, status, and key issuance. There are no obvious dead ends for the stated purpose, and the receipt/key/status tools close the operational loop.

Maintenance

ActivityMaintained
ResponsivenessNo issues