Skip to main content
Glama

Get Confirmation Source Signals

get_confirmation_source_signals
Read-onlyIdempotent

Fetches a completed confirmation source's raw signal timeline, paginated — the actual data a backtest's confirmationSources requirement is checked against. Can easily run into the thousands for a frequent condition over a long range (every candle-condition match is a row, not just closed trades), which is why this is paginated from the start. Debugging/inspection only — you do NOT need this tool to make confirmationSources work, and should not fetch these rows to reconstruct the gating yourself. To actually gate a backtest by this source, pass its id directly as sourceId in submit_backtest's own confirmationSources array; the backend applies the backward-only state check against this exact timeline automatically, including the higher-timeframe-to-lower-timeframe alignment. Reimplementing that alignment by hand from this raw data is unnecessary and easy to get wrong (e.g. failing to correctly persist a higher-timeframe state across every lower-timeframe candle until the next higher-timeframe close). Use this tool only to sanity-check a source's signal density or diagnose an unexpectedly low ConfirmedSignalsCount after the fact.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoThe id returned by submit_confirmation_source.
pageNo1-based page number. Default 1.
pageSizeNoSignals per page, 1-100. Default 20.
backtestApiKeyNoYour EmidLabs backtest API key. Not needed if this connector was added with a static 'x-api-key' header.
backtestBaseUrlNoDefaults to the public production API.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo
itemsNoThe signals on this page, in candle order.
pageSizeNo
totalCountNoTotal signals across the whole confirmation source, not just this page — can easily be in the thousands for a frequent condition over a long range.
totalPagesNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool readOnly and idempotent, and the description adds substantial non-obvious behavior: every candle-condition match is a row rather than only closed trades, timelines can reach thousands of rows, pagination is mandatory from the start, and the backend automatically applies backward-only state checks and higher-timeframe alignment. This is far beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then provides highly relevant warnings. It is somewhat long and contains minor repetition around not reimplementing the alignment logic, but the details are valuable enough that the length is mostly justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the output schema presence, and the clear sibling context, this description is complete: it explains what the tool returns and why it is paginated, when to use it, when not to use it, and how to accomplish gating correctly instead. Nothing essential is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds context about pagination and data scale but does not add parameter-specific semantics beyond what the schema already documents for id, page, pageSize, backtestApiKey, and backtestBaseUrl.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource: 'Fetches a completed confirmation source's raw signal timeline, paginated.' It also clarifies the data's role ('the actual data a backtest's confirmationSources requirement is checked against'), which distinguishes it clearly from sibling tools like get_confirmation_source or submit_confirmation_source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage guidance is explicit: 'Debugging/inspection only,' 'you do NOT need this tool to make confirmationSources work,' and direct alternatives are provided ('pass its id directly as sourceId in submit_backtest's own confirmationSources array'). It even names the precise diagnostic cases: sanity-check signal density or diagnose low ConfirmedSignalsCount.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool targets a distinct resource/action: single backtests, batch backtests, trades, confirmation sources, signals, and asset discovery. The batch getter is explicitly differentiated from the single-result getter, and confirmation sources are clearly separated from tradable backtests.

Naming Consistency5/5

Tool names follow a clear verb_noun pattern: submit_backtest, submit_backtest_batch, get_backtest_result, get_backtest_trades, get_confirmation_source, list_available_assets. Modifiers like batch, trades, and signals are consistent and make each tool's role predictable.

Tool Count5/5

Nine tools is well-scoped for a backtesting server: three submission endpoints, four result-fetching endpoints, signal retrieval, and asset discovery. There is no apparent redundancy or tool bloat.

Completeness5/5

The surface covers the full backtest lifecycle: submitting single and batch backtests, retrieving aggregate results, drilling into trades, creating and reading confirmation sources, and discovering available assets. No critical operation appears missing for the stated domain.

Resources