Skip to content

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.

Tools: 0 delete, 0 irreversible, 1 write, 14 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/mcp
claude mcp add --transport http market-data https://mkts.io/api/mcp

Run 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.

.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.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for io.mkts/market-data
[![anlyon.dev](https://anlyon.dev/badge/io.mkts/market-data.svg)](https://anlyon.dev/servers/io.mkts/market-data)

Source: MCP Registry. Synced Oct 31, 2026, 01:18 UTC.