Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

mkts Market Data

REMOTE · MKTS.IO

Stocks, ETFs, crypto, commodities, forex: quotes, fundamentals, SEC filings, point-in-time history.

Available components

75 Trust /100

Last scanned (8 hours ago)

Scores higher than 64% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security80
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation. See how to fix → View diagnostics → Partial
  • HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
  • The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
  • DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2378 tokens (~158/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
  • Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
What we tested

Checks we ran (13)

  • TLS certificate
  • Authorization
  • HTTPS
  • HSTS header
  • DNSSEC
  • Transport
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this hosted endpoint (2)

  • Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
  • Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Nov 26 +2
    • Tool “get_asset_profile” rewrote its description, which is the text the model reads security
    • Tool “get_filings” rewrote its description, which is the text the model reads security
    • Tool “get_fundamentals” rewrote its description, which is the text the model reads security
    • Tool “screen_assets” rewrote its description, which is the text the model reads security
    • Schema quality: pass → fail ▼ functional
    • Tool coverage: 43% → 100% ▲ functional
    • Stability: unverified → 0.03 ▲ functional
    • Schema quality: good → excellent functional
    • “screen_assets” reworded the description of “maxChange” cosmetic
    • “get_asset_intraday” reworded the description of “interval” cosmetic
    • “get_asset_intraday” reworded the description of “symbol” cosmetic
    • “get_asset_profile” reworded the description of “symbol” cosmetic
    • “get_asset_quote” reworded the description of “type” cosmetic
    • “get_filings” reworded the description of “limit” cosmetic
    • “get_filings” reworded the description of “symbol” cosmetic
    • “get_filings” reworded the description of “type” cosmetic
    • “get_fundamentals” reworded the description of “module” cosmetic
    • “get_fundamentals” reworded the description of “period” cosmetic
    • “get_fundamentals” reworded the description of “symbol” cosmetic
    • “get_news” reworded the description of “category” cosmetic
    • “get_news” reworded the description of “limit” cosmetic
    • “get_news” reworded the description of “symbol” cosmetic
    • “get_price_history” reworded the description of “range” cosmetic
    • “get_price_history” reworded the description of “symbol” cosmetic
    • “screen_assets” reworded the description of “direction” cosmetic
    • “screen_assets” reworded the description of “limit” cosmetic
    • “screen_assets” reworded the description of “maxPrice” cosmetic
    • “screen_assets” reworded the description of “minChange” cosmetic
    • “screen_assets” reworded the description of “minMarketCap” cosmetic
    • “screen_assets” reworded the description of “minPrice” cosmetic
    • “screen_assets” reworded the description of “minVolume” cosmetic
    • “screen_assets” reworded the description of “sector” cosmetic
    • “screen_assets” reworded the description of “sort” cosmetic
    • “screen_assets” reworded the description of “type” cosmetic
  • 31 Oct 26 71

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://mkts.io/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.mkts.io CN=Amazon RSA 2048 M04,O=Amazon,C=US 5 Dec 2025 3 Jan 2027 RSA 2048 SHA256-RSA b7cf981ab13c7b76422271d1c82b2dc
SANs: *.mkts.io, mkts.io
CN=Amazon RSA 2048 M04,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 773124f2a952e3ed18a58bdb85d1bc0ce5f27
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mkts.io. — Not signed

Zone DS Keys Algorithms Outcome
. Trust anchor 20326, 38696 8, 8 Verified
io. DS published 38690 8 Verified
mkts.io. No DS Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
content-security-policy default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://s3.tradingview.com https://cdn.tradingview.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' https://assets.coingecko.com https://coin-images.coingecko.com https://img.logo.dev https://www.cryptocompare.com https://www.google-analytics.com https://*.google-analytics.com https://www.googletagmanager.com data: blob:; font-src 'self' https://fonts.gstatic.com data:; connect-src 'self' https://api.perplexity.ai https://pro-api.coingecko.com https://*.tradingview.com wss://*.tradingview.com https://www.google-analytics.com https://*.google-analytics.com https://*.analytics.google.com https://www.googletagmanager.com https://finnhub.io; frame-src 'self' https://s.tradingview.com https://*.tradingview.com https://www.tradingview-widget.com https://js.stripe.com; frame-ancestors 'self'; form-action 'self'; base-uri 'self'; object-src 'none'
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mkts.io/api/mcp Verified 200
http (plaintext) http://mkts.io/api/mcp HTTPS enforced 301 https://mkts.io/api/mcp
MCP tools · 15 exposed · ~2,344 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
compare_assets ~60

Compare 2 to 10 market symbols using the same normalized mkts snapshot. Returns requested and resolved symbols plus normalized asset records with provenance metadata.

NameTypeReqDescription
symbolsarrayyesTicker symbols such as AAPL, MSFT, BTC, or EUR/USD.

No output schema declared.

No examples provided.

get_archive_series ~180

Get what mkts recorded for up to 100 symbols on every day in a date range, from the immutable point-in-time archive. This is the shape a portfolio backtest actually needs — N symbols by M days in one call, where get_asset_series would take one call per holding and get_assets_as_of one per day. Each row carries observedAt and isRevision, so a later restatement stays visible rather than replacing the original. Days the market was shut are absent, not zero-filled. Limits: 366 days, and symbols multiplied by days must not exceed 10000.

NameTypeReqDescription
fromstringyesFirst date, YYYY-MM-DD.
symbolsarrayyesSymbols to fetch, e.g. ["AAPL","MSFT","BTC"].
tostring–Last date, YYYY-MM-DD. Defaults to today.

No output schema declared.

No examples provided.

get_asset_intraday ~258

Get every price observation mkts made of one symbol inside a time window, rather than just the daily close. Use for intraday movement, timing questions, or checking what a price was doing during a session; use get_asset_series instead for daily closes over months. Cadence is not uniform across the archive — roughly 15 minutes since March 2026 and much sparser before — so the response reports observedIntervalMinutes for the window you asked for, and you should read it before treating the data as fixed bars. interval buckets the result, keeping the last observation in each bucket. Maximum window 92 days; intraday reaches back further on paid tiers.

NameTypeReqDescription
fromstring–ISO 8601 timestamp or YYYY-MM-DD. Defaults to 24 hours before "to".
intervalstring–Bucket size; each bucket keeps its last observation. raw returns every observation without bucketing.
symbolstringyesTicker, e.g. BTC, AAPL, EUR/USD.
tostring–ISO 8601 timestamp or YYYY-MM-DD. Defaults to now.
typestring–Only needed when a ticker is shared across asset types. Omit to get the larger by market cap.

No output schema declared.

No examples provided.

get_asset_profile ~211

Look up one asset by symbol and return what it is and where it stands: name, asset type, price, 24h percent change, market cap, 24h volume, sector for stocks and ETFs, supply figures for crypto, and when it was last observed. Served from the mkts snapshot, which refreshes about every 15 minutes, so it is fast and the default for "what is X" or "how is X doing". Use get_asset_quote instead when the user needs the latest print or intraday detail such as day high and low or pre- and post-market prices; use get_assets_bulk for several symbols at once.

NameTypeReqDescription
symbolstringyesTicker as commonly written: AAPL, BTC, SPY, GC=F for gold futures, EUR/USD for forex, HL-HYPE-PERP for a Hyperliquid perpetual.
typestring–Only needed when a ticker is shared across asset types. Omit to get the larger by market cap.

No output schema declared.

No examples provided.

get_asset_quote ~105

Get a current quote for a stock, ETF, cryptocurrency, commodity, or forex pair. Returns price fields, market state when available, an observation timestamp, and upstream source.

NameTypeReqDescription
symbolstringyesTicker, coin ID, or forex pair.
typestring–auto picks the asset the symbol most commonly means (the larger by market cap when a ticker is shared, e.g. META the stock over MetaDAO); set a type to pick the other.

No output schema declared.

No examples provided.

get_asset_series ~207

Get what mkts recorded for one symbol on every day in a date range, from the immutable point-in-time archive. Use this for backtesting rather than calling get_assets_as_of once per day — a 90-day study is one call here and 90 there. Distinct from get_price_history, which fetches OHLCV live from upstream providers: this returns what was observed at the time, with observedAt and isRevision per row, so a later restatement is visible instead of silently replacing the original. Days the market was shut are absent rather than zero-filled. Maximum range 366 days.

NameTypeReqDescription
fromstringyesFirst date in the range, YYYY-MM-DD.
symbolstringyesTicker or mkts symbol.
tostring–Last date in the range, YYYY-MM-DD. Defaults to today.
typestring–Only needed when a ticker is shared across asset types. Omit to get the larger by market cap.

No output schema declared.

No examples provided.

get_assets_as_of ~164

Get what mkts recorded about one or more symbols on a specific past date, from the immutable point-in-time archive. Pass a single symbol or up to 100. Use for backtesting, reconstructing a past decision, or checking whether a figure was later revised — not for current prices, which get_assets_bulk serves. Revisions recorded after the requested date are excluded, so results never leak hindsight into a historical decision. Check isExactDate on each result: false means the market was closed and the most recent earlier observation was returned instead.

NameTypeReqDescription
datestringyesThe date to look up, YYYY-MM-DD.
symbolsarrayyesOne or more symbols, e.g. ["AAPL"] or ["AAPL","MSFT","BTC"].

No output schema declared.

No examples provided.

get_assets_bulk ~99

Get current data for an explicit list of up to 100 symbols in a single call. Use this instead of calling get_asset_quote repeatedly — a watchlist fetched one symbol at a time exhausts the rate limit for no benefit. Returns the resolved assets plus unresolvedSymbols naming anything not tracked, so a short list is never silently short.

NameTypeReqDescription
symbolsarrayyesTicker symbols, e.g. ["AAPL","BTC","EUR/USD"].

No output schema declared.

No examples provided.

get_filings ~240

List recent SEC filings for a US-listed company or fund, newest first, from SEC EDGAR. Each filing has its date, form type, a plain-language title (for 8-Ks, the events reported), the period it covers, and links to the EDGAR index page and the main document. Use to find the latest 10-K, 10-Q or 8-K, or to see what a company has filed recently. Insider-ownership forms (3, 4, 5, 144) are not included. A fund trust files for all its funds together; sharedFiler in the result marks this, and some filings may concern sibling funds.

NameTypeReqDescription
limitinteger–Maximum filings to return, newest first.
symbolstringyesUS ticker of a stock or ETF, e.g. NVDA, BRK-B, SPY.
typestring–Only filings of this exact SEC form type, e.g. 10-K (annual report), 10-Q (quarterly report), 8-K (current report), DEF 14A (proxy statement). Omit for all types.

No output schema declared.

No examples provided.

get_fundamentals ~161

Get annual or quarterly financial-statement time series for a stock: income statement, balance sheet and cash flow, built from the company's own SEC filings (source "sec-edgar"), or from the equities provider for funds and companies EDGAR does not cover. Values are in the reporting currency the response names, which is not always USD. Modules can return all statements or a smaller financials, balance-sheet, or cash-flow payload.

NameTypeReqDescription
modulestring–financials is the income statement (revenue, margins, EPS); choose one module for a smaller response, or all for every statement.
periodstring–Fiscal years or fiscal quarters.
symbolstringyesUS stock or ETF ticker, e.g. MSFT.

No output schema declared.

No examples provided.

get_macro_snapshot ~40

Get the current mkts macro dashboard, including major equity proxies, crypto, commodities, the US dollar, volatility, and the US 10-year yield.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_market_snapshot ~31

Get the current global cryptocurrency market totals, volume, dominance, active asset counts, and the underlying snapshot timestamp.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_news ~94

Get recent market news from the configured source feeds. Filter by an asset symbol or by markets, crypto, commodities, or forex category. Returns source and publication links.

NameTypeReqDescription
categorystring–Only feeds covering this market. Omit for all.
limitinteger–Maximum headlines to return, newest first.
symbolstring–Only headlines mentioning this asset, matched on its ticker and name. Overrides category.

No output schema declared.

No examples provided.

get_price_history ~85

Get bounded daily price history for a symbol. Stocks and ETFs include OHLCV when available; cryptocurrency history may contain close and volume only.

NameTypeReqDescription
rangestring–How far back from today: one, three or six months, year to date, or one year.
symbolstringyesTicker, e.g. AAPL, BTC, GC=F.

No output schema declared.

No examples provided.

screen_assets ~409

Find assets matching price, daily-move, volume, market-cap, asset-type and sector filters, sorted as requested. Use for questions like "biggest movers today", "tech stocks over $1T" or "cheapest crypto by price"; all filters are optional and combine with AND. Covers the whole mkts universe (stocks, ETFs, crypto, commodities, forex) from the snapshot, which refreshes about every 15 minutes. Returns at most 25 assets. For valuation or profitability filters such as P/E or margins, this tool does not apply; fetch fundamentals for specific symbols with get_fundamentals.

NameTypeReqDescription
directionstring–desc for largest first, asc for smallest first.
limitinteger–Maximum assets to return.
maxChangenumber–Maximum 24h change in percent; -5 finds assets down 5% or more.
maxPricenumber–Maximum price in USD (forex: the quoted rate).
minChangenumber–Minimum 24h change in percent; 5 means +5%, -3 means -3%.
minMarketCapnumber–Minimum market cap in USD; 1000000000000 is $1T. Any value above 0 excludes assets with no market cap, such as forex and many ETFs.
minPricenumber–Minimum price in USD (forex: the quoted rate).
minVolumenumber–Minimum 24h volume as reported: shares for stocks and ETFs, USD for crypto.
sectorstring–Stocks and ETFs only; exact name, case-insensitive: Technology, Healthcare, Financial Services, Consumer Cyclical, Consumer Defensive, Communication Services, Industrials, Energy, Basic Materials, Re…
sortstring–Field to rank by. Use change24h with direction desc for top gainers, asc for top losers.
typestring–Only this asset class.

No output schema declared.

No examples provided.

Install

How do I install the mkts Market Data MCP server?

mkts Market Data is a hosted endpoint at https://mkts.io/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mkts.io

# add to Claude Code
claude mcp add --transport http io-mkts-market-data 'https://mkts.io/api/mcp'
Common questions

What is the mkts Market Data MCP server?

mkts Market Data is an MCP server listed in the public MCP registry as io.mkts/market-data. Stocks, ETFs, crypto, commodities, forex: quotes, fundamentals, SEC filings, point-in-time history. This page covers its hosted endpoint (https://mkts.io/api/mcp).

Is the mkts Market Data MCP server safe to use?

mkts Market Data scores 75 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the mkts Market Data MCP server expose?

mkts Market Data exposes 15 tools: compare_assets, get_archive_series, get_asset_intraday, get_asset_profile, get_asset_quote, and 10 more. Their descriptions and schemas cost roughly 2,344 tokens of context every time the server is loaded.

Does the mkts Market Data MCP server require authentication?

No. We connected to mkts Market Data without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the mkts Market Data MCP server still maintained?

mkts Market Data is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What did VerifyMCP test on the mkts Market Data MCP server?

VerifyMCP ran 13 checks on mkts Market Data, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.