Skip to main content
Glama

Server Details

Past moments that look like now with what followed each, and every CPI and FOMC with its outcome.

Ownership verified
Status
Healthy
Uptime
0.6% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.5/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct role: raw bars, one-moment state, multi-asset comparison, path drawing, shape-based analog search, condition-based search, topic outcomes, and metadata listings. The descriptions explicitly route the agent between similar tools such as find_analogs, query_history, and get_topic_outcomes, so misselection is unlikely.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: compare_assets, find_analogs, get_bars, get_market_state, get_price_paths, get_topic_outcomes, list_coverage, list_events, list_topics, query_history. The verbs vary by action but the convention is uniform and predictable.

Tool Count5/5

Ten tools is well-scoped for a historical market-data query server. Each tool serves a distinct retrieval pattern and none feels redundant or excessive.

Completeness5/5

The surface covers asset/scale/condition discovery, raw bars, point-in-time state, multi-asset comparison, price paths, analog and condition searches, topics, events, and event outcomes. This is a complete read-only query lifecycle for the stated domain, with no obvious dead ends.

Available Tools

10 tools
compare_assetsRead every asset at a momentAInspect

Read what every asset was doing at the same moment, side by side: the close, the day and three-day returns, the shape of the move before it and the path after, for each one. Reach for it when the question is about the surroundings of a moment rather than the one asset — what the dollar, the yields and oil were doing while bitcoin did that. For one asset at one moment in more detail, use get_market_state. at takes up to 24 UTC ISO-8601 moments and every asset is read at each of them, so one call compares moments as well as assets. Everything reported was knowable at that moment. window_minutes is how far back each shape reaches and after_minutes how far past the moment it runs; left out, they take the same defaults the searches draw at.

NameRequiredDescriptionDefault
atYesUTC moments, ISO 8601, up to 24
after_minutesNoHow far past each moment to read
window_minutesNoHow far back each shape reaches

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does disclose two non-obvious behaviors: a hard cap of 24 moments per call, and that every asset is read at each moment, so the call is a cross-product rather than a per-asset lookup. The point-in-time guarantee ("Everything reported was knowable at that moment") is a meaningful disclosure about lookahead bias. It loses a point for deferring the default values of window_minutes and after_minutes to "the same defaults the searches draw at" instead of stating them.

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 purpose, the routing rule, and the parameter meaning each arrive in that order, so the definition is well front-loaded. However, the closing sentence about defaults is both vague and unactionable, and the descriptive flourish about dollar, yields and oil is longer than the routing point requires.

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

Completeness3/5

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

For a no-annotation tool with no output schema, the description does well to name the reported fields (close, returns, window shape, after path) since nothing else explains the return values. The remaining gaps are material though: the asset universe being compared is never defined, and the defaults for the two optional parameters are handed off to unnamed "searches" rather than stated, leaving an agent unable to predict what a call without window_minutes actually reads.

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 all three parameters are already documented in the input schema, which sets the baseline at 3. The description does add genuine semantics the schema cannot express — that each moment is applied to every asset, making ago comparisons across both dimensions — but it still leaves the actual default integers for window_minutes and after_minutes unspecified, which is the one thing an agent cannot derive from the schema.

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 opening clause names a specific verb and scope (read every asset at a single moment, side by side) and then enumerates what is returned: close, day and three-day returns, the pre-move shape and the post path. It explicitly separates itself from get_market_state, so an agent can route between them without opening either schema.

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 is stated positively ("when the question is about the surroundings of a moment rather than the one asset") with a concrete example, and negatively by naming the alternative and its condition ("For one asset at one moment in more detail, use get_market_state"). The exclusion is explicit rather than implied.

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

find_analogsFind analogous momentsAInspect

Find the past moments whose price shape most resembles a given one, each with the path that followed it. Reach for this when what you hold is a moment and what you want is other moments shaped like it. If what you hold is a condition you can state, use query_history; if it is a kind of recurring event, use get_topic_outcomes; if you already have the moments and only want their paths drawn together, use get_price_paths. Matching is done by a model of ours: it reads the shape of the move before a moment rather than its level, so a quiet stretch can match a violent one and two moments thousands of dollars apart can be alike. Matches come back one by one and are never averaged; the spread between them is the answer. Each is point-in-time — what it reports was knowable at that moment, and what came after is labelled as having followed. Read the quality field before reading anything into the set. asset takes a symbol from list_coverage. at is a UTC ISO-8601 moment inside that asset's range; omit it to search from now. k is how many moments come back, and a call costs one answer for every ten of them. scale only sets the window the paths are drawn at — it does not change which moments are found. An asset kept at one value a day — list_coverage's searched says which — is matched and drawn on that one value, so the path after a moment is a bar or two rather than a curve and quality.range_median_pct comes back near zero. Read it before making anything of such a set.

NameRequiredDescriptionDefault
kNoHow many past moments to return. One answer per ten.
atNoUTC moment to search from, ISO 8601. Omit for now.
assetNoAsset symbol, e.g. BTC. list_coverage lists them.BTC
scaleNoWindow the paths are drawn at. One of 5m, 15m, 30m, 1h, 2h, 4h, 1d15m

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: matching is model-based on shape not level, results are returned individually and never averaged, each is point-in-time with forward outcomes labelled, and each call costs one answer per ten k. It also discloses the degraded case for flat-per-day assets and warns to read `quality` before interpreting results.

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

Conciseness3/5

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

Front-loaded with purpose and routing, which is good, but the second sentence restates the first in looser language and the closing flat-asset paragraph runs long. Roughly a quarter of the text could be cut without losing routing or behavioral signal.

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

Completeness4/5

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

No output schema exists, so the description must describe returns, and it does: per-match paths, `quality`, `range_median_pct`, and the point-in-time framing. It stops short of saying what `quality` values mean or what happens when `at` falls outside the asset range, leaving a small interpretive gap.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description earns an extra point by clarifying that `scale` only sets the drawing window and does not change which moments are found, which the schema alone would not tell an agent. `at`, `k` and `asset` are consistent with the schema but add little beyond it.

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?

Names a specific verb and resource (find past moments whose price shape resembles a given one) and states the payload (the path that followed each). The shape-vs-condition framing makes it immediately distinguishable from query_history and get_topic_outcomes.

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?

Explicitly routes three sibling cases: a statable condition goes to query_history, a recurring event to get_topic_outcomes, already-held moments to get_price_paths. It also states the matching premise (you hold a moment, you want like-shaped moments), which is the condition that selects this tool.

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

get_barsGet the raw barsAInspect

Get the bars themselves — open, high, low, close and volume at a fixed step — for a stretch of time. Reach for it when the tools above do not shape the data the way you need it: your own measure, your own chart, a window none of them draw. For a moment read against its own history, use get_market_state; for the path around moments as percent from each, use get_price_paths, which is what the searches compare on. asset takes a symbol from list_coverage and step one of its scales — an asset kept at one value a day has only 1d. since and until are UTC ISO-8601 bounds; left out, the whole history at that step comes back, and a stretch too long to serve is refused in those words rather than truncated quietly, so narrow it or take a longer step. BTC at 1d is about five thousand bars and comes back whole; BTC at 1h needs a since. Nothing later than the end of the data is returned, so a window running into the present ends where the data does.

NameRequiredDescriptionDefault
stepNoBar size. One of 5m, 15m, 30m, 1h, 2h, 4h, 1d1d
assetNoAsset symbol, e.g. BTC. list_coverage lists them.BTC
sinceNoFrom this UTC moment, ISO 8601
untilNoTo this UTC moment, ISO 8601

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden well: it states the default behavior when bounds are omitted (whole history at that step), the failure mode for oversized windows (explicit refusal, never silent truncation), and the data-end clipping rule. It stops short of stating rate limits, response envelope, or whether values are adjusted, which keeps it off a 5.

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?

Dense and front-loaded, with the primary purpose in the first clause and the sibling routing immediately after. It loses a point for referencing "the tools above" and "none of them," positional phrasing that ages badly, and for a couple of illustrative size facts (five thousand bars) that sit close to the line of padding.

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

Completeness4/5

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

For a 4-parameter read tool with no output schema and no annotations, the description supplies the return shape (OHLCV), defaults, time-bound semantics, refusal behavior, and data-end clipping. Remaining gaps — auth expectations, maximum servable window in concrete terms, and response encoding — are modest but real.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3; the description earns above baseline by adding cross-parameter meaning the schema cannot express — `asset` must come from list_coverage and `step` must be one of that asset's scales, with the example that a daily asset only has `1d`. It also clarifies that omitted `since`/`until` means unbounded history rather than an error.

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 names a specific verb and resource ("Get the bars themselves — open, high, low, close and volume at a fixed step — for a stretch of time") and explicitly distinguishes itself from get_market_state (moment vs history) and get_price_paths (path as percent). The agent can identify the tool's role without opening the schema.

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?

"Reach for it when the tools above do not shape the data the way you need it" defines the escape-hatch use case, and the two named alternatives each get a selecting condition. It also gives practical gating rules: BTC at 1h needs a `since`, and an oversized window is refused rather than truncated.

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

get_market_stateRead the market at a momentAInspect

Read what the market was at one moment and what happened after it: returns over 1h, 24h, 7d and 30d, the day's high, low and volume, how volatile it was against its own month, and the drawdown from the week's high. Use this for one moment's numbers; for the price path around a moment, or around several at once, use get_price_paths. Everything under then was already knowable at that moment — nothing later leaks into it — and what followed is labelled as having followed. at is a UTC ISO-8601 moment inside the asset's range, which list_coverage gives. One call costs one answer.

NameRequiredDescriptionDefault
atYesUTC moment, ISO 8601
assetNoAsset symbol, e.g. BTC. list_coverage lists them.BTC

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the point-in-time guarantee (nothing under `then` leaks from later), labels which figures are forward-looking, and notes the cost ('one call costs one answer'). It does not describe error behavior for out-of-range `at` values or response structure beyond field names, leaving a modest gap for a read tool with zero annotation coverage.

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?

Front-loaded with the capability, then the sibling routing, then the point-in-time semantics, then the parameter constraint — a sensible order. The middle sentence stacks many clauses and is slightly dense, but no sentence is filler.

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?

There is no output schema, so the description enumerates the returned measures itself, and it covers timing semantics, sibling selection, and the constraint on `at`. For a two-parameter read tool, an agent has everything needed to call it correctly and interpret the result.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real meaning beyond the schema: `at` must be a UTC ISO-8601 moment inside the asset's range, and that range is discoverable via list_coverage. It also implicitly frames `asset` as selecting the market being read. The syntax itself (exact ISO format) is still only in the schema.

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?

States a concrete verb and resource ('Read what the market was at one moment') and immediately enumerates the measures returned: 1h/24h/7d/30d returns, day high/low/volume, volatility vs its own month, drawdown from week's high. It explicitly differentiates from the sibling get_price_paths, so an agent can pick between them without opening either schema.

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?

Gives an explicit selection rule: use this for one moment's numbers, use get_price_paths for the price path around a moment or several moments at once. It also routes the agent to list_coverage to discover the valid time range for an asset. Both when-to-use and the alternative are named.

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

get_price_pathsDraw the paths around momentsAInspect

Draw the price path around one or more moments, as percent from the close at each, so paths of different sizes can be laid over one another. Reach for it when you already hold the moments — from any of the searches — and want their paths side by side. For one moment's summary numbers, use get_market_state; to find the moments in the first place, use find_analogs, query_history or get_topic_outcomes. Offsets are minutes from that moment: negative before it, positive after. A moment still inside the present has no after. at takes up to 24 UTC ISO-8601 moments in one call. scale sets how far back each path reaches, after_minutes how far past each moment it reads. asset takes a symbol from list_coverage.

NameRequiredDescriptionDefault
atYesUTC moments, ISO 8601, up to 24
assetNoAsset symbol, e.g. BTC. list_coverage lists them.BTC
scaleNoHow far back each path reaches. One of 5m, 15m, 30m, 1h, 2h, 4h, 1d15m
after_minutesNoHow far past each moment to read, in minutes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden and does well: it explains normalization to percent-of-close, the sign convention for offsets, and the important edge case that a moment inside the present has no 'after' (a silent truncation the agent would otherwise misread). It does not state the read-only nature explicitly or describe the shape/resolution of returned paths, which keeps it from a 5.

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 core purpose and the primary alternative are front-loaded, and each subsequent sentence adds a distinct rule (offset signs, present-moment truncation, the 24-moment cap, parameter roles). Slightly dense and could trim a clause or two, but there is no filler.

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

Completeness4/5

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

For a 4-parameter, no-annotation, no-output-schema tool, the description covers purpose, routing, parameter meaning, limits, and a subtle truncation behavior. What remains unstated is what a returned path actually contains (point density, length, missing-data handling), which matters when paths are overlaid.

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

Parameters4/5

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

Schema coverage is 100%, so baseline would be 3, but the description adds real meaning the schema lacks: offsets are minutes relative to the moment with negative meaning before and positive after, `at` is capped at 24 UTC ISO-8601 moments, `scale` is the backward reach and `after_minutes` the forward reach, and `asset` must come from list_coverage. The only gap is no guidance on interaction between `scale` and `after_minutes` or default behavior.

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?

States a concrete verb and resource ('Draw the price path around one or more moments') plus the transform ('as percent from the close at each') and why it exists ('so paths of different sizes can be laid over one another'). It explicitly separates itself from get_market_state (single-moment summary), find_analogs, query_history, and get_topic_outcomes, so an agent can pick it without opening a schema.

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?

Gives an explicit trigger ('when you already hold the moments... and want their paths side by side') and names three alternatives with the condition that selects each. It effectively tells the agent both when to use this tool and when to use a sibling instead.

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

get_topic_outcomesRead what followed every event of a kindAInspect

List every past event of one kind — every CPI release, every FOMC statement — each with what was knowable at that moment and the path that followed it. This is the tool for 'what happened the last N times this happened'. Reach for it when what you hold is a kind of event rather than a moment or a condition. Take topic from list_topics; for one dated event on its own, use list_events. Newest first. Pass alike — a UTC ISO-8601 moment, or 'now' — to rank that same list by how much each one resembled that moment instead, so 'of every past FOMC, the ones that looked like now' is one call; each item then carries that number, measured by the same model find_analogs uses. Outcomes come back one by one and are never averaged, and every member of the kind stays in the list even when it cannot be ranked. asset takes a symbol from list_coverage.

NameRequiredDescriptionDefault
alikeNoRank by likeness to this UTC moment (ISO 8601, or 'now') instead of by date.
assetNoAsset symbol, e.g. BTC. list_coverage lists them.BTC
topicYesThe topic's slug, as list_topics gives it, e.g. cpi

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and discloses important traits: results are newest first, `alike` changes ranking to resemblance, outcomes are never averaged, and all members of the kind remain present even if unrankable. It does not explicitly state read-only safety or error behavior, but the listing semantics make the operation clear.

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 layers in routing, ordering, ranking, and output behavior without obvious filler. It is dense and slightly long, but most sentences carry specific operational value.

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

Completeness4/5

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

For a three-parameter historical-outcomes tool with no annotations and no output schema, the description covers purpose, when to use it, alternatives, ordering, ranking, and non-averaging behavior. It does not fully specify the exact return object fields, but it gives enough for correct invocation and interpretation.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents the three parameters. The description still adds meaningful semantics: `topic` is a kind slug from list_topics, `alike` ranks by resemblance to a UTC moment using the same model as find_analogs and adds a per-item number, and `asset` comes from list_coverage. This is genuine added meaning beyond the schema.

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 specific verb and resource: list every past event of one kind, with what was knowable then and the path that followed. It explicitly distinguishes this from list_events for a single dated event and from moment/condition-based tools. An agent can tell exactly what this tool returns without opening the schema.

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?

It says to reach for this tool when the input is a kind of event rather than a moment or a condition, and it names list_events for the single-event case. It also tells the caller to take `topic` from list_topics and `asset` from list_coverage, leaving little inference required.

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

list_coverageList what can be asked aboutAInspect

List what this server can answer about: every asset with the name and aliases it answers to, where its data comes from, the first moment held and how far each scale reaches; the scales themselves; and the condition phrasings query_history reads. Call this before guessing a symbol, a scale, a date range or a phrasing — the other tools refuse what falls outside it, and the aliases are how 'bitcoin' or 'xbt' becomes a symbol. For the kinds of recurring event the data is indexed by, use list_topics instead. Takes no arguments. One call costs one answer.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does substantially more than most: it states the tool takes no arguments, discloses that sibling tools reject out-of-coverage inputs, explains alias resolution ('bitcoin' or 'xbt' becomes a symbol), and flags cost ('One call costs one answer'). It does not describe response size, ordering, or whether results are cached, which for a coverage-dump tool would be useful.

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?

It is front-loaded with the payoff (what coverage you get) before the call-order rule and the sibling redirect, and there is no filler. Some phrasing is ornate rather than plain ('the first moment held and how far each scale reaches', 'one call costs one answer'), which costs a little immediate clarity on a first read.

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

Completeness4/5

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

With no annotations and no output schema, the description must explain what comes back, and it does so by enumerating the content categories and the alias-to-symbol mapping. What is missing is the shape of the response (flat list vs. sections) and its likely size, which matters for an unfiltered coverage dump.

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

Parameters4/5

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

The tool has zero parameters, so there is no parameter meaning to add; the description correctly confirms 'Takes no arguments,' which matches the empty schema. Baseline of 4 applies for a 0-param tool with no semantic gap.

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 uses a specific verb (list) and enumerates the exact resource contents: assets with names/aliases, data sources, earliest moment and scale reach, the scales themselves, and the condition phrasings query_history accepts. It is also explicitly distinguished from list_topics, so an agent can route between the two without opening a schema.

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?

It gives an explicit call-order instruction ('Call this before guessing a symbol, a scale, a date range or a phrasing') and the consequence of skipping it ('the other tools refuse what falls outside it'). It also names the alternative for a different need: 'For the kinds of recurring event the data is indexed by, use list_topics instead.'

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

list_eventsList dated eventsAInspect

List dated events the data is indexed by — CPI releases, FOMC statements, options expiries — each with the moment it became known, the source it is taken from and the topics it belongs to. Use this to find or date a single event; for every event of a kind together with what followed each, use get_topic_outcomes. By default it lists events already known, newest first. Set upcoming to list what is scheduled ahead instead, soonest first and counted from the end of the data: a calendar is public in advance but what a release will say is not, so an event still ahead carries only its kind — that an FOMC statement is due, not what it will decide. q matches words in the name or aliases, kind is one of fomc, cpi, crypto, macro or market, and since/until bound when an event became known. days applies only when upcoming is set. One call costs one answer.

NameRequiredDescriptionDefault
qNoWords the name or aliases must carry
daysNoHow far ahead to look, in days. Only with upcoming.
kindNofomc, cpi, crypto, macro or market
limitNoHow many events to return
sinceNoKnown at or after this UTC moment, ISO 8601
untilNoKnown at or before this UTC moment, ISO 8601
upcomingNoList what is scheduled ahead instead of what is known

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does most of it: it discloses default ordering (newest first), upcoming ordering (soonest first, counted from the end of the data), and a genuine data limitation — future events carry only their kind, not their content. It even flags cost ('one call costs one answer'). It stops short of stating pagination behavior beyond `limit` or any permission requirements.

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?

Front-loads what the tool returns, then the alternative, then mode behavior, then parameters — a sensible order with little waste. The opening clause is slightly run-on and the parameter recap in the final sentences borders on restating the schema.

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

Completeness4/5

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

No output schema and no annotations, seven parameters, yet the description covers result shape, ordering in both modes, the epistemic limit on upcoming events, and parameter routing. An agent could call this correctly from the description alone; only pagination and error behavior are left implicit.

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 coverage is 100%, so every parameter is already documented, and the description largely restates the same facts (q matches name/aliases, kind values, days only with upcoming). The one piece of added meaning is framing since/until as bounding when an event 'became known' rather than when it occurs, which clarifies a subtle knowledge-time distinction.

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?

States a specific verb and resource ('List dated events') and immediately grounds it with concrete examples (CPI releases, FOMC statements, options expiries) plus the three fields each record carries. It explicitly separates itself from get_topic_outcomes, so an agent can choose without opening either schema.

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?

Gives an explicit when-to-use ('find or date a single event') and a named alternative with its own condition ('for every event of a kind together with what followed each, use get_topic_outcomes'). It also routes between the two modes, default known-events versus `upcoming` scheduled events, with the ordering each uses.

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

list_topicsList the kinds of recurring eventAInspect

List the kinds of recurring event the data is indexed by — CPI releases, FOMC statements, rate cuts and holds, halvings, exchange failures — each with its slug and how many of them are held. Use this to find the slug for get_topic_outcomes; for a single dated event rather than a kind, use list_events, and for a moment that is not an event at all, use find_analogs or query_history. q narrows the list to labels carrying those words; omit it for all of them. One call costs one answer.

NameRequiredDescriptionDefault
qNoWords the label must carry. Omit for every topic.

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are supplied, so the description carries the burden: it discloses the return shape (slug plus how many of each kind are held) and an unusual cost signal ('One call costs one answer'), which tells the agent this call is metered. It stops short of stating read-only semantics or pagination/result-size behavior explicitly, leaving a small gap for an unannotated tool.

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?

Front-loaded with purpose in the first clause, then alternatives, then the parameter, with zero filler and no repetition. The inline topic examples and em-dash list add length, though they do aid recognition of what a 'kind' is.

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?

For a one-optional-parameter list tool with no output schema, the description supplies everything missing: what fields come back (slug, count), how filtering works, and which sibling to pick instead. Nothing an agent needs in order to call it correctly is absent.

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 coverage is 100% and the single `q` parameter is already documented as 'Words the label must carry. Omit for every topic.' The description restates this ('q narrows the list to labels carrying those words; omit it for all of them') without adding matching syntax or behavior beyond the schema, so baseline 3 applies.

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?

States a specific verb and resource ('List the kinds of recurring event the data is indexed by') and concretizes it with examples (CPI releases, FOMC statements, rate cuts, halvings). It also names what each item carries (slug and count), which makes the resource unmistakable against siblings.

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?

Explicitly routes the agent: use this to obtain the slug for get_topic_outcomes, use list_events for a single dated event, and use find_analogs or query_history for non-events. Both the when-to-use and the when-not-to-use cases are stated with named alternatives.

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

query_historyFind when a condition was trueAInspect

Find every past moment a condition was true, newest first, each with what was knowable then and the path that followed. Reach for this when the condition can be stated; to search by the shape of the move instead, use find_analogs. A condition is one fact the bars can answer, written in words: the price level ('under 100k', 'above 7,000'), a move over an hour, a day or three days ('fell 10% in a day', 'rose 5% in an hour'), how far below the 7-day high ('20% below its high'), or how loud the day was against its month ('this volatile', 'quiet'). 'crashed' and 'rallied' are read as a 10% day. The wording around those facts is free; the facts are not — anything else comes back refused with the list rather than guessed at, and list_coverage carries the same list. The response carries how the condition was understood, so the reading can be checked before the moments are trusted. A run of bars that all meet the condition counts once, at the first, and every value is measured on bars that had closed by that moment. asset takes a symbol from list_coverage. A call costs one answer for every ten moments.

NameRequiredDescriptionDefault
qYesThe condition, in words, e.g. 'fell 10% in a day'
assetNoAsset symbol, e.g. BTC. list_coverage lists them.BTC
limitNoHow many moments to return. One answer per ten.

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden, and it does disclose a lot: refusal-on-unparseable behavior, that the response echoes how the condition was interpreted, that a run of qualifying bars counts once at the first bar, that only closed bars are used, and the cost model ('one answer for every ten moments'). What it omits is the concrete shape of the returned moments — 'what was knowable then and the path that followed' is evocative but not specific about fields, and there is no output schema to fall back on.

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?

Purpose and the alternative are front-loaded, and the condition taxonomy earns its length because it defines the accepted grammar. Minor waste: the cost note appears both in the prose ('one answer for every ten moments') and again in the `limit` schema description, and the middle sentence is a dense run-on that takes effort to parse.

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

Completeness4/5

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

For a three-parameter tool with no annotations and no output schema, the description covers invocation, refusal semantics, interpretation echo, counting rules, and cost — enough to call it correctly. The remaining gap is the return payload: without an output schema, an agent still cannot predict the fields of each returned moment beyond 'knowable then' and 'path that followed'.

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

Parameters4/5

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

Schema coverage is 100%, so baseline would be 3, but the description adds real meaning: `q` is constrained to a closed set of expressible facts with worked examples and a stated refusal path, `asset` is tied to list_coverage as the source of valid symbols, and `limit` is framed in terms of cost ('one answer per ten'). That is meaningfully more than the schema's one-line examples.

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?

States a specific verb and resource ('Find every past moment a condition was true') and immediately qualifies the output ordering and payload ('newest first, each with what was knowable then and the path that followed'). It explicitly distinguishes itself from the sibling find_analogs, so an agent can route without opening either schema.

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?

Gives an explicit selection rule: use this when the condition can be stated, use find_analogs when searching by the shape of the move. It then defines what counts as a valid condition (price level, move over a window, distance from 7-day high, volatility vs. month) and states the negative case — anything else is refused rather than guessed.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updates
    • First observedcompare_assets
    • First observedfind_analogs
    • First observedget_bars
    • First observedget_market_state
    • First observedget_price_paths
    • First observedget_topic_outcomes
    • First observedlist_coverage
    • First observedlist_events
    • First observedlist_topics
    • First observedquery_history

Publisher details

Operator
Paletters · Publisher source
Operator website
https://priorcase.com
Vendor relationship
First-party
Trust center
Not applicable
Restrictions
An API key, free and self-serve at priorcase.com/account. The free plan allows 1,000 answers a month at 1 request a second (burst 10); paid plans lift both. No admin approval, no regional limit, no custom OAuth app. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Crypto, US stocks, FX, macro and Bitcoin ETF flows on one clock - live and historical market data and 293,743 indicators for any AI agent.
    14
    1
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    Historical stock pattern intelligence for AI agents. Search 24M pre-computed chart pattern embeddings across 15K stocks and 10 years. 19 tools: pattern similarity search, forward returns, regime analysis, anomaly detection, sector rotation, earnings reactions, correlation shifts, scenario analysis, and more. Returns what happened historically when charts looked like this — compliance-safe
    22
    98 PyPI
    22
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Macro economic intelligence MCP — 13 tools powered by 86 FRED series + ECB data covering Fed rates, inflation (CPI/PCE), yield curve, GDP, recession probability, and regime classification. Every response ES256K signed.
    1
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources