Stocks, ETFs, crypto, commodities, forex: quotes, fundamentals, SEC filings, point-in-time history.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional mkts API key for higher rate limits. Get one free at https://mkts.io/developers. Keyless calls work at a lower limit.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Compare 2 to 10 market symbols using the same normalized mkts snapshot. Returns requested and resolved symbols plus normalized asset records with provenance metadata.
Ticker symbols such as AAPL, MSFT, BTC, or EUR/USD.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http market-data https://mkts.io/api/mcp
Headers
X-API-Key (optional, not in the config above): Optional mkts API key for higher rate limits. Get one free at https://mkts.io/developers. Keyless calls work at a lower limit.Compare 2 to 10 market symbols using the same normalized mkts snapshot. Returns requested and resolved symbols plus normalized asset records with provenance metadata.
| Argument | Type | Description |
|---|---|---|
| symbols* | array | Ticker symbols such as AAPL, MSFT, BTC, or EUR/USD. |
{
"type": "object",
"required": [
"symbols"
],
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string",
"maxLength": 25
},
"maxItems": 10,
"minItems": 2,
"description": "Ticker symbols such as AAPL, MSFT, BTC, or EUR/USD."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| to | string | Last date, YYYY-MM-DD. Defaults to today. |
| from* | string | First date, YYYY-MM-DD. |
| symbols* | array | Symbols to fetch, e.g. ["AAPL","MSFT","BTC"]. |
{
"type": "object",
"required": [
"symbols",
"from"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last date, YYYY-MM-DD. Defaults to today."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First date, YYYY-MM-DD."
},
"symbols": {
"type": "array",
"items": {
"type": "string",
"maxLength": 25
},
"maxItems": 100,
"minItems": 1,
"description": "Symbols to fetch, e.g. [\"AAPL\",\"MSFT\",\"BTC\"]."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| to | string | ISO 8601 timestamp or YYYY-MM-DD. Defaults to now. |
| from | string | ISO 8601 timestamp or YYYY-MM-DD. Defaults to 24 hours before "to". |
| type | string | Only needed when a ticker is shared across asset types. Omit to get the larger by market cap. |
| symbol* | string | |
| interval | string |
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"to": {
"type": "string",
"description": "ISO 8601 timestamp or YYYY-MM-DD. Defaults to now."
},
"from": {
"type": "string",
"description": "ISO 8601 timestamp or YYYY-MM-DD. Defaults to 24 hours before \"to\"."
},
"type": {
"enum": [
"stock",
"etf",
"crypto",
"commodity",
"forex"
],
"type": "string",
"description": "Only needed when a ticker is shared across asset types. Omit to get the larger by market cap."
},
"symbol": {
"type": "string",
"maxLength": 25
},
"interval": {
"enum": [
"raw",
"15m",
"1h",
"4h",
"1d"
],
"type": "string",
"default": "1h"
}
},
"additionalProperties": false
}Resolve a symbol from the mkts multi-asset snapshot. Returns identity, asset type, price, change, market cap, volume, and snapshot timestamp when available.
| Argument | Type | Description |
|---|---|---|
| type | string | Only needed when a ticker is shared across asset types. Omit to get the larger by market cap. |
| symbol* | string | Ticker or mkts symbol. |
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"type": {
"enum": [
"stock",
"etf",
"crypto",
"commodity",
"forex"
],
"type": "string",
"description": "Only needed when a ticker is shared across asset types. Omit to get the larger by market cap."
},
"symbol": {
"type": "string",
"maxLength": 25,
"description": "Ticker or mkts symbol."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| type | string | |
| symbol* | string | Ticker, coin ID, or forex pair. |
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"type": {
"enum": [
"auto",
"stock",
"etf",
"crypto",
"commodity",
"forex"
],
"type": "string",
"default": "auto"
},
"symbol": {
"type": "string",
"maxLength": 25,
"description": "Ticker, coin ID, or forex pair."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| to | string | Last date in the range, YYYY-MM-DD. Defaults to today. |
| from* | string | First date in the range, YYYY-MM-DD. |
| type | string | Only needed when a ticker is shared across asset types. Omit to get the larger by market cap. |
| symbol* | string | Ticker or mkts symbol. |
{
"type": "object",
"required": [
"symbol",
"from"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last date in the range, YYYY-MM-DD. Defaults to today."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First date in the range, YYYY-MM-DD."
},
"type": {
"enum": [
"stock",
"etf",
"crypto",
"commodity",
"forex"
],
"type": "string",
"description": "Only needed when a ticker is shared across asset types. Omit to get the larger by market cap."
},
"symbol": {
"type": "string",
"maxLength": 25,
"description": "Ticker or mkts symbol."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| date* | string | The date to look up, YYYY-MM-DD. |
| symbols* | array | One or more symbols, e.g. ["AAPL"] or ["AAPL","MSFT","BTC"]. |
{
"type": "object",
"required": [
"symbols",
"date"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "The date to look up, YYYY-MM-DD."
},
"symbols": {
"type": "array",
"items": {
"type": "string",
"maxLength": 25
},
"maxItems": 100,
"minItems": 1,
"description": "One or more symbols, e.g. [\"AAPL\"] or [\"AAPL\",\"MSFT\",\"BTC\"]."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| symbols* | array | Ticker symbols, e.g. ["AAPL","BTC","EUR/USD"]. |
{
"type": "object",
"required": [
"symbols"
],
"properties": {
"symbols": {
"type": "array",
"items": {
"type": "string",
"maxLength": 25
},
"maxItems": 100,
"minItems": 1,
"description": "Ticker symbols, e.g. [\"AAPL\",\"BTC\",\"EUR/USD\"]."
}
},
"additionalProperties": false
}Get recent filing records for a US stock or ETF. Returns filing date, type, title, and EDGAR link; optionally filter by filing type.
| Argument | Type | Description |
|---|---|---|
| type | string | Optional filing type such as 10-K, 10-Q, or 8-K. |
| limit | integer | |
| symbol* | string |
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"type": {
"type": "string",
"maxLength": 12,
"minLength": 1,
"description": "Optional filing type such as 10-K, 10-Q, or 8-K."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"symbol": {
"type": "string",
"maxLength": 25
}
},
"additionalProperties": false
}Get annual or quarterly financial-statement time series for a stock or ETF. Modules can return all statements or a smaller financials, balance-sheet, or cash-flow payload.
| Argument | Type | Description |
|---|---|---|
| module | string | |
| period | string | |
| symbol* | string |
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"module": {
"enum": [
"all",
"financials",
"balance-sheet",
"cash-flow"
],
"type": "string",
"default": "all"
},
"period": {
"enum": [
"annual",
"quarterly"
],
"type": "string",
"default": "annual"
},
"symbol": {
"type": "string",
"maxLength": 25
}
},
"additionalProperties": false
}Get the current mkts macro dashboard, including major equity proxies, crypto, commodities, the US dollar, volatility, and the US 10-year yield.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Get the current global cryptocurrency market totals, volume, dominance, active asset counts, and the underlying snapshot timestamp.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| symbol | string | |
| category | string |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
},
"symbol": {
"type": "string",
"maxLength": 25
},
"category": {
"enum": [
"markets",
"crypto",
"commodities",
"forex"
],
"type": "string"
}
},
"additionalProperties": false
}Get bounded daily price history for a symbol. Stocks and ETFs include OHLCV when available; cryptocurrency history may contain close and volume only.
| Argument | Type | Description |
|---|---|---|
| range | string | |
| symbol* | string |
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"range": {
"enum": [
"1M",
"3M",
"6M",
"YTD",
"1Y"
],
"type": "string",
"default": "3M"
},
"symbol": {
"type": "string",
"maxLength": 25
}
},
"additionalProperties": false
}Screen the normalized mkts asset snapshot with bounded price, return, volume, market-cap, type, and sector filters. Returns at most 25 records.
| Argument | Type | Description |
|---|---|---|
| sort | string | |
| type | string | |
| limit | integer | |
| sector | string | |
| maxPrice | number | |
| minPrice | number | |
| direction | string | |
| maxChange | number | |
| minChange | number | |
| minVolume | number | |
| minMarketCap | number |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 31, 2026.
{
"type": "object",
"properties": {
"sort": {
"enum": [
"price",
"change24h",
"volume24h",
"marketCap"
],
"type": "string",
"default": "marketCap"
},
"type": {
"enum": [
"stock",
"etf",
"crypto",
"commodity",
"forex"
],
"type": "string"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1
},
"sector": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxPrice": {
"type": "number"
},
"minPrice": {
"type": "number"
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "desc"
},
"maxChange": {
"type": "number"
},
"minChange": {
"type": "number"
},
"minVolume": {
"type": "number",
"minimum": 0
},
"minMarketCap": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}