ApexTick Market Data & Options MCP
Server Details
Institutional-grade market data MCP server providing consolidated global equities, ETFs, FX, and crypto quotes, valuation multiples, technical indicators (RSI14, MACD, SMA, ATR14), earnings surprise context, and options implied volatility screening.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
The tools mostly have distinct purposes: watchlist and market screen are clearly different, while get_quote, analyze_ticker, and explain_price_move form a graded depth sequence. There is still some overlap among the per-ticker tools, but the descriptions make the intended distinctions reasonably clear.
All tool names use consistent snake_case with a verb_noun structure, such as analyze_ticker, get_quote, get_watchlist_brief, and screen_market. The naming is predictable and easy to scan.
Five tools is well-scoped for a market data and options server, with each tool serving a clear role. The set is neither bloated nor too thin.
The surface covers quotes, ticker snapshots, price-move explanation, watchlists, and market screening, but the options side is notably underdeveloped despite being part of the server name. Missing operations such as option chain lookup, expiries, or Greeks create a notable gap for an options-capable server.
Available Tools
5 toolsanalyze_tickerARead-onlyIdempotentInspect
Concise snapshot of one ticker: current session change and range, a session-based stance, and valuation multiples (market cap, P/E, P/B, EPS, ROE, dividend yield). Returns compact JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Ticker in standard market notation, e.g. AAPL, BRK-B, BTC-USD, EURUSD=X |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds meaningful behavior beyond that by disclosing the returned content categories and the 'compact JSON' format, which an agent needs to know; only error behavior for invalid symbols is missing.
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?
One compact sentence with the resource and output content front-loaded, followed by the format note. No filler, no repetition of the title.
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 read-only single-symbol tool with no output schema, the description does the necessary work by naming the fields returned and the JSON format. The only soft spot is the undefined term 'session-based stance', which leaves the agent guessing how that dimension is expressed.
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 a single parameter and schema coverage is 100%, so the schema already fully documents symbol with examples (AAPL, BRK-B, BTC-USD, EURUSD=X). The description adds nothing about the parameter, so the baseline 3 applies.
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 resource (one ticker) and enumerates exactly what the snapshot contains — session change/range, stance, and named valuation multiples. This tells an agent what it produces, though it never explicitly contrasts itself with the sibling get_quote, which likely returns overlapping price data.
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?
There is no statement of when to prefer this over get_quote, explain_price_move, or screen_market, and no exclusions such as 'not for multi-ticker screening' (which screen_market covers). Usage is only inferable from the word 'one ticker'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_price_moveARead-onlyIdempotentInspect
Structured context for explaining why a ticker is up or down today: session move (gap, range, move vs ATR), technical position (RSI, moving averages, MACD, volatility) and recent/upcoming earnings, plus pre-computed signals. Returns compact JSON for the model to reason over.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Ticker in standard market notation, e.g. AAPL, BRK-B, BTC-USD, EURUSD=X |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint), so the description's added value is the disclosure of what is returned: session move metrics, technical indicators, earnings, and pre-computed signals, plus the note that it returns compact JSON for the model to reason over. It does not mention latency, rate limits, or data staleness, but the return-shape disclosure is a meaningful addition.
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, front-loaded with the core purpose and then the payload contents. Every clause carries information and nothing is repeated from the name or annotations.
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 output schema, the description usefully enumerates what the response contains and its format, which is exactly the burden it must carry. A single well-documented parameter means little else is needed; only explicit sibling differentiation 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?
Only one parameter, and the schema documents it at 100% coverage with concrete format examples (AAPL, BRK-B, BTC-USD, EURUSD=X). The description adds no further parameter guidance, which is acceptable given the schema does the work, so the baseline 3 applies.
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?
States a specific purpose: structured context explaining why a ticker is up or down today, and enumerates the contents (session move, technicals, earnings, pre-computed signals). It does not, however, differentiate itself from the sibling analyze_ticker, which an agent could reasonably confuse it with.
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?
Usage is implied by the phrase 'explaining why a ticker is up or down today', which suggests a post-move investigation scenario. There is no explicit when-to-use/when-not guidance and no reference to alternatives such as analyze_ticker or get_quote, so the agent must infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteARead-onlyIdempotentInspect
Current quote for one ticker: price, change, % change, volume and timestamp. Returns compact JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Ticker in standard market notation, e.g. AAPL, BRK-B, BTC-USD, EURUSD=X |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description usefully adds the return shape ('compact JSON' with price, change, % change, volume, timestamp), but says nothing about rate limits, data freshness/latency, or failure behavior for invalid symbols.
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 tight sentences with zero waste; the core purpose and the return format are both front-loaded.
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 simple single-symbol read, the description covers purpose, inputs (via schema), and return fields even though no output schema exists. Missing only latency/freshness and error semantics, which are minor for this tool class.
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 coverage is 100% and the symbol field already documents accepted notation with examples (AAPL, BRK-B, BTC-USD, EURUSD=X). The description adds no parameter-level detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Current quote for one ticker') and enumerates the returned fields, so the agent knows exactly what it gets. It does not differentiate itself from siblings like analyze_ticker or explain_price_move, which keeps it below a 5.
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 phrase 'for one ticker' implies the single-symbol use case, but there is no explicit when-to-use guidance and no mention of alternatives such as analyze_ticker for deeper analysis. Usage must be inferred from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_watchlist_briefARead-onlyIdempotentInspect
One-call brief for up to 20 tickers as a compact Markdown table (price, change, % change, day range, volume) with a breadth summary. Uses a single batched quote request.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | 1 to 20 tickers in standard market notation, e.g. ["AAPL","MSFT","BTC-USD"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so safety is covered; the description adds the batch-size ceiling, the single-request behavior, and the exact return shape (columns and breadth summary). It does not mention error behavior for invalid or delisted tickers, which 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?
Two sentences, zero filler, with the output value proposition front-loaded before the implementation note about batching.
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 output schema, the description correctly takes on the burden of describing the return format and does so concretely. What remains unsaid is failure handling and whether partial or missing tickers appear in the table.
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 coverage is 100% and the single parameter is fully documented with notation examples. The description's only added detail, the 20-ticker cap, duplicates what the schema already states, so baseline 3 applies.
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?
States a specific resource (up to 20 tickers) and precisely what is produced: a compact Markdown table with named columns plus a breadth summary. The batching emphasis implicitly separates it from single-quote siblings, though no sibling is named explicitly.
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 'up to 20 tickers' and 'single batched quote request' framing implies this is the multi-ticker path versus get_quote, but that is inference, not instruction. No exclusions, prerequisites, or explicit alternative tools are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_marketARead-onlyIdempotentInspect
Market screen returning top gainers, top losers, volume leaders (with sector and market cap for equities) and/or the highest implied-volatility option underlyings. Supports optional sector (e.g. Technology, Healthcare, Financial Services) and min_market_cap filters for equities. Returns compact JSON lists.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows per list, 1-20 (default 5) | |
| metric | No | Screen: all (default: gainers, volume leaders and high implied volatility), gainers, losers, volume or high_iv | |
| sector | No | Optional GICS sector filter for equities (e.g. Technology, Healthcare, Financial Services, Consumer Cyclical, Consumer Defensive, Industrials, Energy, Basic Materials, Communication Services, Utilities, Real Estate) | |
| asset_class | No | Instrument universe: eq (equities, default), etf or fx | |
| min_market_cap | No | Optional minimum market cap in USD for equities (e.g. 500000000000 or 500 for $500B; values under 1000000 are treated as billions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds little beyond noting it returns 'compact JSON lists' and that some filters are equity-only; it does not describe pagination, result ordering, or what happens when a screen returns empty.
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, front-loaded with the return content, and no wasted clauses. Slight redundancy with schema descriptions (sector examples, market cap) but overall tight.
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-required-parameter screening tool with no output schema, the description adequately conveys what lists come back and that output is compact JSON. It could say more about result structure or ordering, but nothing essential to invocation 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?
Schema coverage is 100%, so all five parameters are documented in the schema itself. The description restates the sector examples and equity-only scoping of min_market_cap but adds no syntax or semantics beyond that, so the baseline 3 applies.
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 names a specific verb+resource ('Market screen') and enumerates exactly what it returns: top gainers, losers, volume leaders, and high implied-volatility underlyings. It is clearly a market-wide screener rather than a single-ticker tool, so an agent can distinguish it from siblings like get_quote or analyze_ticker even though those are not named.
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?
It states the optional filters and notes that sector and min_market_cap apply to equities only, which hints at usage. However, it gives no explicit when-to-use guidance or comparison to the ticker-level siblings, leaving the agent to infer that this is for broad market scans.
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.
5 tool updates
- First observed
analyze_ticker - First observed
explain_price_move - First observed
get_quote - First observed
get_watchlist_brief - First observed
screen_market
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs113 npm55 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1618 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.