Skip to main content
Glama

BotSpot: AI Trading, Backtests and Bots

Query market research data

query_data
Read-onlyIdempotent

Query a registered research dataset by datasetId. Use for versioned symbol-membership universes, SEC company facts, SEC financial statements, SEC current filings, SEC full-text search, SEC filing exhibits, SEC insider transactions, SEC 13F holdings, Treasury FiscalData/yield curves, BLS series, BEA datasets, OFR funding data, and CFTC COT positioning. For person-named 13F research, resolve the legal filer from official filing/search evidence before querying holdings. A manager filing is delayed institutional disclosure, not a current personal portfolio. A symbol universe supplies membership only. Retrieve market observations through the user's exact saved broker connection. For bea_gdp_release_archive, filters.releaseYear and timezone-aware asOf select publisher-attested original annualized real-GDP growth estimates at the exact UTC release clock. Qualification covers that metric only, not current document bytes or complete history. Other historical sources must advertise their qualified capabilities; unavailable evidence fails visibly. For bls_cpi_release_archive and bls_employment_release_archive, calendar or timezone-aware asOf selects releases using their stated publication time. Original archive bytes are unverified: use available observations as an approximation and disclose that limitation. For botspot.news.public.v1, pass filters.query and optional UTC calendar timeRange bounds. This profile returns GDELT metadata only: headlines and links, not article bodies or verified ticker matches. Observation timestamps do not prove publication time or original historical availability. Full-text and historical asOf requests fail visibly. For botspot.news.alpaca.v1, optionally select an owned connection as filters.brokerCredentialId. Without an id the sole active owned Alpaca connection is reused; multiple connections return owned labels for selection. An individual Alpaca OAuth connection needs no separate news API key and may be used for research while trading through another broker. If none is available, offer the existing broker_connections connect flow; create a paper account only when requested, and never promise account creation grants a news entitlement. Pass filters.start/end as calendar dates or timezone-aware timestamps, or use calendar timeRange.startDate/endDate. Calendar dates mean UTC day boundaries. Optional filters.symbols (or entity/entities), includeContent, contentMaxChars and pageToken request one bounded page. Use contentRequirement full for complete provider bodies: mixed pages omit unavailable bodies and report them explicitly; a wholly unavailable page returns a visible error with its next cursor. Historical asOf excludes known future publication/update versions; coverage and original history remain unqualified. Legacy availabilityMode provider_versions remains accepted. Never substitute public discovery or another owner’s connection for article bodies. A complete provider body may itself be a source summary; it does not establish the full text of the linked publisher page. Preserve each article source. Do not use this for real-time prices, broker account data or options chains.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "datasetId": "<datasetId>"
    },
    "name": "query_data"
  }
}

Input Schema

NameRequiredDescriptionDefault
asOfNoHistorical availability ceiling, preferably a timezone-aware ISO timestamp. Calendar-period selection alone is not publication-time or original-vintage replay. Release archives and SEC documents support disclosed historical approximations; some current-only sources cannot return historical evidence.
limitNo
entityNoTicker, CIK, company/manager name, market name, or public series query depending on the dataset. For 13F holdings, use a verified legal filing manager name or CIK; resolve person names or fund nicknames from official filing evidence first.
filtersNoDataset-specific bounded filters, such as SEC forms, Treasury topic/apiPath, BLS seriesIds, BEA method/datasetName/parameters, OFR mnemonics, or CFTC reportType.
metricsNoMetric aliases or source-native series/concepts, such as revenue, CPI, unemployment, or BEA table metrics.
entitiesNo
datasetIdYesDataset id from search_data_catalog, for example sec.company_facts or bea.api_datasets.
timeRangeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / asOf / description
      Previous value: -"Historical availability ceiling, preferably a timezone-aware ISO timestamp. Calendar-period selection alone is not publication-time or original-vintage replay. Unqualified source history returns unsupported_capability."New value: +"Historical availability ceiling, preferably a timezone-aware ISO timestamp. Calendar-period selection alone is not publication-time or original-vintage replay. Release archives and SEC documents support disclosed historical approximations; some current-only sources cannot return historical evidence."
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/openWorld annotations, the description discloses failure modes ('Full-text and historical asOf requests fail visibly', 'a wholly unavailable page returns a visible error with its next cursor'), approximation limits for BLS archives, entitlement rules for Alpaca OAuth connections, and pagination/cursor behavior. None of this contradicts the annotations.

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

Conciseness2/5

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

Only the first sentence is front-loaded; the remainder is a ~400-word monolithic block of run-on prose with no headings or grouping by dataset, mixing GDELT metadata caveats, 13F filer resolution, and Alpaca connection selection together. The per-dataset contracts carry real information, but the lack of structure makes key routing easy to miss and forces the reader to parse everything to find anything.

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 an 8-parameter, open-world tool with no output schema, the description supplies dataset-specific return shape ('returns GDELT metadata only: headlines and links'), coverage qualifications, and failure semantics per profile. An agent has enough to call it correctly and to warn the user about approximations.

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 63%, and the description compensates well by naming filter keys that live only in the additionalProperties object (filters.releaseYear, filters.query, filters.brokerCredentialId, filters.symbols, includeContent, contentMaxChars, pageToken, contentRequirement, availabilityMode) and by explaining calendar-date boundary semantics for timeRange. It leaves 'limit' and the array 'entities' largely unexplained, so it stops short of full coverage.

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

Purpose4/5

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

The opening sentence gives a specific verb and resource ('Query a registered research dataset by datasetId') and the closing sentence excludes real-time prices, broker account data, and options chains, which separates it from broker_* siblings. However, the middle of the description is a catalogue of per-dataset quirks rather than a crisp statement of the single underlying operation, so the core purpose gets diluted by volume.

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 states when to use each dataset family (SEC filings, Treasury, BLS/BEA/OFR/CFTC, both news profiles), where datasetId comes from ('Dataset id from search_data_catalog'), and explicitly what not to use it for. It even routes to the alternative (broker_connections connect flow) when no Alpaca connection exists and forbids substituting public discovery for article bodies.

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.