mkts Market Data
io.mkts/market-datamkts.iostreamable-httpv1.0.0Scanned
Stocks, ETFs, crypto, commodities, forex: quotes, fundamentals, SEC filings, point-in-time history.
15 tools: 1 change things and 14 only read.
- Reads private data · 0
- Reads text others write · 15
- Can send data out · 0
- No findings
Anlyon alternative
1 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
15 tools
Changes things 1Claude Code: ask
screen_assetsScreen the normalized mkts asset snapshot with bounded price, return, volume, market-cap, type, and sector filters.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Screen the normalized mkts asset snapshot with bounded price, return, volume, market-cap, type, and sector filters. Returns at most 25 records.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 14Show 14 read-only tools
compare_assetsCompare 2 to 10 market symbols using the same normalized mkts snapshot.Reads text others writeNo findings
Why it is in this group
- The name "compare_assets" says "compare": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_archive_seriesGet what mkts recorded for up to 100 symbols on every day in a date range, from the immutable point-in-time archive.Reads text others writeNo findings
Why it is in this group
- The name "get_archive_series" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_asset_intradayGet every price observation mkts made of one symbol inside a time window, rather than just the daily close.Reads text others writeNo findings
Why it is in this group
- The name "get_asset_intraday" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_asset_profileResolve a symbol from the mkts multi-asset snapshot.Reads text others writeNo findings
Why it is in this group
- The name "get_asset_profile" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Resolve a symbol from the mkts multi-asset snapshot. Returns identity, asset type, price, change, market cap, volume, and snapshot timestamp when available.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_asset_quoteGet a current quote for a stock, ETF, cryptocurrency, commodity, or forex pair.Reads text others writeNo findings
Why it is in this group
- The name "get_asset_quote" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_asset_seriesGet what mkts recorded for one symbol on every day in a date range, from the immutable point-in-time archive.Reads text others writeNo findings
Why it is in this group
- The name "get_asset_series" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_assets_as_ofGet what mkts recorded about one or more symbols on a specific past date, from the immutable point-in-time archive.Reads text others writeNo findings
Why it is in this group
- The name "get_assets_as_of" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_assets_bulkGet current data for an explicit list of up to 100 symbols in a single call.Reads text others writeNo findings
Why it is in this group
- The name "get_assets_bulk" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_filingsGet recent filing records for a US stock or ETF.Reads text others writeNo findings
Why it is in this group
- The name "get_filings" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get recent filing records for a US stock or ETF. Returns filing date, type, title, and EDGAR link; optionally filter by filing type.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_fundamentalsGet annual or quarterly financial-statement time series for a stock or ETF.Reads text others writeNo findings
Why it is in this group
- The name "get_fundamentals" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_macro_snapshotGet the current mkts macro dashboard, including major equity proxies, crypto, commodities, the US dollar, volatility, and the US 10-year yield.Reads text others writeNo findings
Why it is in this group
- The name "get_macro_snapshot" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get the current mkts macro dashboard, including major equity proxies, crypto, commodities, the US dollar, volatility, and the US 10-year yield.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_market_snapshotGet the current global cryptocurrency market totals, volume, dominance, active asset counts, and the underlying snapshot timestamp.Reads text others writeNo findings
Why it is in this group
- The name "get_market_snapshot" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get the current global cryptocurrency market totals, volume, dominance, active asset counts, and the underlying snapshot timestamp.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_newsGet recent market news from the configured source feeds.Reads text others writeNo findings
Why it is in this group
- The name "get_news" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_price_historyGet bounded daily price history for a symbol.Reads text others writeNo findings
Why it is in this group
- The name "get_price_history" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get bounded daily price history for a symbol. Stocks and ETFs include OHLCV when available; cryptocurrency history may contain close and volume only.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write15
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http market-data https://mkts.io/api/mcpclaude mcp add --transport http market-data https://mkts.io/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__market-data__compare_assets",
"mcp__market-data__get_archive_series",
"mcp__market-data__get_asset_intraday",
"mcp__market-data__get_asset_profile",
"mcp__market-data__get_asset_quote",
"mcp__market-data__get_asset_series",
"mcp__market-data__get_assets_as_of",
"mcp__market-data__get_assets_bulk",
"mcp__market-data__get_filings",
"mcp__market-data__get_fundamentals",
"mcp__market-data__get_macro_snapshot",
"mcp__market-data__get_market_snapshot",
"mcp__market-data__get_news",
"mcp__market-data__get_price_history"
],
"ask": [
"mcp__market-data__screen_assets"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as market-data. Review it before you use it.
Capability tags behind 15 rules
- mcp__market-data__compare_assets untrusted-input
- mcp__market-data__get_archive_series untrusted-input
- mcp__market-data__get_asset_intraday untrusted-input
- mcp__market-data__get_asset_profile untrusted-input
- mcp__market-data__get_asset_quote untrusted-input
- mcp__market-data__get_asset_series untrusted-input
- mcp__market-data__get_assets_as_of untrusted-input
- mcp__market-data__get_assets_bulk untrusted-input
- mcp__market-data__get_filings untrusted-input
- mcp__market-data__get_fundamentals untrusted-input
- mcp__market-data__get_macro_snapshot untrusted-input
- mcp__market-data__get_market_snapshot untrusted-input
- mcp__market-data__get_news untrusted-input
- mcp__market-data__get_price_history untrusted-input
- mcp__market-data__screen_assets untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.mkts/market-data/verify?hash=7309fb6138c67134c30d45234a26f5dea3d889187f3d71edcbb51ded21c99e16" | jq -e '.changed == false'Pinned hash 7309fb6138c6, from Oct 31, 2026, 01:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.mkts/market-data/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.mkts/market-data)Source: MCP Registry. Synced Oct 31, 2026, 01:18 UTC.