Strasmore market data
Server Details
US stocks and options data via SQL: bars, ticks, greeks, fundamentals, filings. No key.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: listing tables, describing schemas, running queries, and explaining access plans. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern: describe_table, get_plans, list_tables, run_sql. The singular/plural nouns match the expected operation, and the style is uniform.
Four tools is a tight, well-scoped set for a SQL-based market data server: discovery, schema inspection, query execution, and plan/pricing access. Each tool earns its place.
The tool set covers the full workflow from listing available tables and understanding schemas to running read-only SQL queries, plus plan details. No obvious gaps exist for read-only market data access.
Available Tools
4 toolsdescribe_tableDescribe a tableARead-onlyIdempotentInspect
Columns of one table with their ClickHouse types, plus notes on columns whose meaning is not obvious from the name and known data caveats. Call before writing SQL against a table.
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | Table name, e.g. stocks_daily_aggs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds value beyond that by disclosing what the tool returns: column types, notes on non-obvious columns, and known data caveats. With no output schema present, this behavioral detail is meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence states the core purpose and output contents, and the second sentence provides usage timing. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with rich annotations, the description covers what the tool returns, why it exists, and when to call it. The sibling tools are clearly different in purpose, and nothing essential is missing for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter description already gives the table name plus an example. The tool description does not add further parameter semantics, but it does not need to; the baseline of 3 applies because the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb–resource pair: it returns the columns of one table with their ClickHouse types, plus notes and data caveats. It also distinguishes itself from siblings by scoping to a single table, unlike list_tables which presumably enumerates tables, and unlike run_sql which executes queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives explicit guidance: 'Call before writing SQL against a table.' This tells the agent when to use the tool. It does not explicitly name alternatives or exclusions, so it falls just short of a top score, but the timing rule is concrete and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_plansPlans and limitsARead-onlyIdempotentInspect
What this no-key access includes, what a free account and each paid plan add (history depth, datasets, row limits, price), and the link to start each one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, safe behavior. The description adds content-level detail about what is covered (no-key access, free/paid plans, links), but does not describe behavior such as return format or pagination, which the annotations do not need to cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that packs the key information without padding. The phrasing is slightly awkward due to the parenthetical list, but every element adds value and the most important context (what is included) comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description does enough by enumerating the returned content categories. It could be more explicit about the output shape, but for an informational, zero-argument tool this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters and schema coverage is 100%, so the schema carries no burden. The description appropriately focuses on output content rather than parameters, matching the baseline for a zero-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as access levels and plans, listing concrete details: history depth, datasets, row limits, price, and signup links. It clearly differs from siblings like list_tables and run_sql, though it uses 'What...' rather than an explicit verb like 'returns' or 'lists'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The content strongly implies this is the tool to use when the agent needs plan, pricing, or access-limit information. However, it does not explicitly state when to choose this over alternatives or mention any conditions, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesList tablesARead-onlyIdempotentInspect
List every table in the Strasmore US market-data warehouse (equities, options, corporate actions, fundamentals, SEC filings, news, macro) with a one-line description, the column its history window filters on, and whether this no-key access can read it. Call this first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond annotations: it lists every table across multiple domains, includes a one-line description, and explicitly notes whether no-key access can read each table. It doesn't mention pagination or response size, but for a zero-parameter listing tool this is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the core action and scope, then lists the output fields and the 'call this first' instruction. Every clause earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool with no output schema, the description is nearly complete: it names the warehouse, the domains, the output fields, and the access caveat. The only missing context is the response format (e.g., whether results are paginated or returned as a single list), but the 'call this first' instruction and the sibling set make the tool's role clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter semantics to clarify. The description compensates by explaining what the tool returns and the scope of the listing. A baseline of 4 is appropriate for a no-parameter tool whose description adds meaningful context about the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('every table in the Strasmore US market-data warehouse'), enumerates the domains covered, and specifies the exact output fields (one-line description, history-window column, no-key read access). This clearly distinguishes it from siblings like describe_table and run_sql.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this first,' which is strong usage guidance for an agent exploring the warehouse. It also implicitly distinguishes this from describe_table (which presumably details a single table) and run_sql (which queries data), and the no-key access mention tells the agent when this tool is relevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_sqlRun SQLARead-onlyIdempotentInspect
Run one read-only ClickHouse SELECT against the global_markets database and get the rows back. No key needed. Limits on this access: 500 rows and 20 seconds per query, history from 2025-01-01, and some tick-level tables excluded — each result states which limit, if any, it ran into. Connected with an API key, it runs at that key's plan instead. Docs: https://ai.strasmore.com/llms.txt (tables and limits), https://api.strasmore.com/docs (API reference).
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | A single SELECT statement. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false), the description discloses concrete behavioral constraints: 500-row and 20-second limits, history only from 2025-01-01, excluded tick-level tables, and that results report which limit was hit. It also explains the no-key vs. API-key difference and links to authoritative docs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long but front-loads the core action and resource, then efficiently bundles limits, key behavior, and documentation links. Each sentence contributes useful information; the two URLs are warranted because they provide the full table/limit and API references.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only query tool with rich annotations and no output schema, the description is complete: it explains what returns ('rows back'), applicable limits, auth behavior, and where to find deeper reference material. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, sql, and the schema already describes it as 'A single SELECT statement' with 100% coverage. The description adds the ClickHouse dialect and read-only restriction, but does not need to elaborate further since the schema and description together fully specify the parameter's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Run'), a precise resource ('one read-only ClickHouse SELECT against the global_markets database'), and the immediate outcome ('get the rows back'). This clearly distinguishes run_sql from its metadata-oriented siblings like list_tables and describe_table.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear access context: no key is needed for default limits, and connecting with an API key switches to that key's plan. It does not explicitly name sibling tools as alternatives or state when not to use run_sql, but the read-only SELECT scope and provided docs make intended usage clear.
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.
4 tool updates
- First observed
describe_table - First observed
get_plans - First observed
list_tables - First observed
run_sql
Related MCP Connectors
The stock market, in SQL — scan, replay, or subscribe across ~12k US tickers and top 100 cryptos.
Live US options chains with Greeks and IV, a screener, SQL, and FMP fundamentals.
Point-in-time US equity & options data: vol premium, earnings moves, dilution, FDA events, splits
SEC dilution data, live market data, and news for U.S. equities, with point-in-time as-of queries
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides US stock market data for AI agents, including intraday and daily bars, SEC fundamentals, filings, and insider data, with pay-per-query via USDC on Base.1MIT

akyla-mcpofficial
AlicenseAqualityDmaintenanceProvides as-reported US equity fundamentals, live quotes, financial statements, valuation comps, and a screener from SEC filings, with per-cell filing provenance for citations.7MIT- AlicenseNot gradedqualityBmaintenanceProvides free SEC filing fundamentals for US public companies, including financial statements, 10-K/10-Q summaries, and 8-K event histories. No API key or signup required.MIT
- -licenseNot gradedqualityNot gradedmaintenanceReal-time financial market data MCP server. Stocks, crypto, technicals, sentiment, FDA calendar. No API keys required.-
Glama MCP Gateway
Add one secure layer between your agents and this server.