Skip to main content
Glama
Massive.com MCP Server

Massive.com MCP Server

IMPORTANT

:test_tube: This project is experimental and could be subject to breaking changes.

Massive.com MCP Server

GitHub release

A Model Context Protocol (MCP) server that provides access to Massive.com financial market data API through an LLM-friendly interface.

Overview

This server exposes all Massive.com API endpoints as MCP tools, providing access to comprehensive financial market data including:

  • Stock, options, forex, and crypto aggregates and bars

  • Real-time and historical trades and quotes

  • Market snapshots

  • Ticker details and reference data

  • Dividends and splits data

  • Financial fundamentals

  • Market status and holidays

Related MCP server: twelvedata

Installation

Prerequisites

  • Python 3.10+

  • A Massive.com API key Button

  • Astral UV

    • For existing installs, check that you have a version that supports the uvx command.

Claude Code

First, install Claude Code

npm install -g @anthropic-ai/claude-code

Use the following command to add the Massive MCP server to your local environment. This assumes uvx is in your $PATH; if not, then you need to provide the full path to uvx.

# Claude CLI
claude mcp add massive -e MASSIVE_API_KEY=your_api_key_here -- uvx --from git+https://github.com/massive-com/mcp_massive@v0.6.0 mcp_massive

This command will install the MCP server in your current project. If you want to install it globally, you can run the command with -s <scope> flag. See claude mcp add --help for more options.

To start Claude Code, run claude in your terminal.

  • If this is your first time using, follow the setup prompts to authenticate

You can also run claude mcp add-from-claude-desktop if the MCP server is installed already for Claude Desktop.

Claude Desktop

  1. Follow the Claude Desktop MCP installation instructions to complete the initial installation and find your configuration file.

  2. Use the following example as reference to add Massive's MCP server. Make sure you complete the various fields.

    1. Path find your path to uvx, run which uvx in your terminal.

    2. Replace <your_api_key_here> with your actual Massive.com API key.

    3. Replace <your_home_directory> with your home directory path, e.g., /home/username (Mac/Linux) or C:\Users\username (Windows).

{
    "mcpServers": {
        "massive": {
            "command": "<path_to_your_uvx_install>/uvx",
            "args": [
                "--from",
                "git+https://github.com/massive-com/mcp_massive@v0.6.0",
                "mcp_massive"
            ],
            "env": {
                "MASSIVE_API_KEY": "<your_api_key_here>",
                "HOME": "<your_home_directory>"
            }
        }
    }
}

Transport Configuration

By default, STDIO transport is used.

To configure SSE or Streamable HTTP, set the MCP_TRANSPORT environment variable.

Example:

MCP_TRANSPORT=streamable-http \
MASSIVE_API_KEY=<your_api_key_here> \
uv run entrypoint.py

Usage Examples

Once integrated, you can prompt Claude to access Massive.com data:

Get the latest price for AAPL stock
Show me yesterday's trading volume for MSFT
What were the biggest stock market gainers today?
Get me the latest crypto market data for BTC-USD

Available Tools

This MCP server implements all Massive.com API endpoints as tools, including:

  • get_aggs - Stock aggregates (OHLC) data for a specific ticker

  • list_trades - Historical trade data

  • get_last_trade - Latest trade for a symbol

  • list_ticker_news - Recent news articles for tickers

  • get_snapshot_ticker - Current market snapshot for a ticker

  • get_market_status - Current market status and trading hours

  • list_stock_financials - Fundamental financial data

  • And many more...

Each tool follows the Massive.com SDK parameter structure while converting responses to standard JSON that LLMs can easily process.

Development

Running Locally

Check to ensure you have the Prerequisites installed.

# Sync dependencies
uv sync

# Run the server
MASSIVE_API_KEY=your_api_key_here uv run mcp_massive

  "mcpServers": {
    "massive": {
      "command": "/your/path/.cargo/bin/uv",
      "args": [
        "run",
        "--with",
        "/your/path/mcp_massive",
        "mcp_massive"
      ],
      "env": {
        "MASSIVE_API_KEY": "your_api_key_here",
        "HOME": "/Users/danny"
      }
    }
  }

Debugging

For debugging and testing, we recommend using the MCP Inspector:

npx @modelcontextprotocol/inspector uv --directory /path/to/mcp_massive run mcp_massive

This will launch a browser interface where you can interact with your MCP server directly and see input/output for each tool.

Code Linting

This project uses just for common development tasks. To lint your code before submitting a PR:

just lint

This will run ruff format and ruff check --fix to automatically format your code and fix linting issues.

Privacy Policy

This MCP server interacts with Massive.com's API to fetch market data. All data requests are subject to Massive.com's privacy policy and terms of service.

  • Massive.com Privacy Policy: https://massive.com/legal/privacy

  • Data Handling: This server does not store or cache any user data. All requests are proxied directly to Massive.com's API.

  • API Key: Your Massive.com API key is used only for authenticating requests to their API.

Contributing

If you found a bug or have an idea for a new feature, please first discuss it with us by submitting a new issue. We will respond to issues within at most 3 weeks. We're also open to volunteers if you want to submit a PR for any open issues but please discuss it with us beforehand. PRs that aren't linked to an existing issue or discussed with us ahead of time will generally be declined.

Available Tools

53 tools
get_aggsB
Read-only

List aggregate bars for a ticker over a given date range in custom time window sizes.

Inputs: ticker (required), multiplier (required), timespan (required), from_ (required), +5 more. Returns: result

get_daily_open_close_aggB
Read-only

Get daily open, close, high, and low for a specific ticker and date.

Inputs: ticker (required), date (required), adjusted, params. Returns: result

get_exchangesB
Read-only

List exchanges known by Massive.com.

Inputs: asset_class, locale, params. Returns: result

get_futures_contract_detailsB
Read-only

Get details for a single futures contract at a specified point in time.

Inputs: ticker (required), as_of, params. Returns: result

get_futures_product_detailsB
Read-only

Get details for a single futures product as it was at a specific day.

Inputs: product_code (required), type, as_of, params. Returns: result

get_futures_snapshotC
Read-only

Get snapshots for futures contracts.

Inputs: ticker, ticker_any_of, ticker_gt, ticker_gte, +11 more. Returns: result

get_grouped_daily_aggsC
Read-only

Get grouped daily bars for entire market for a specific date.

Inputs: date (required), adjusted, include_otc, locale, +2 more. Returns: result

get_last_crypto_tradeB
Read-only

Get the most recent trade for a crypto pair.

Inputs: from_ (required), to (required), params. Returns: result

get_last_forex_quoteC
Read-only

Get the most recent forex quote.

Inputs: from_ (required), to (required), params. Returns: result

get_last_quoteB
Read-only

Get the most recent quote for a ticker symbol.

Inputs: ticker (required), params. Returns: result

get_last_tradeB
Read-only

Get the most recent trade for a ticker symbol.

Inputs: ticker (required). Returns: result

get_market_holidaysB
Read-only

Get upcoming market holidays and their open/close times.

Inputs: params. Returns: result

get_market_statusB
Read-only

Get current trading status of exchanges and financial markets.

Inputs: params. Returns: result

get_previous_close_aggB
Read-only

Get previous day's open, close, high, and low for a specific ticker.

Inputs: ticker (required), adjusted, params. Returns: result

get_real_time_currency_conversionC
Read-only

Get real-time currency conversion.

Inputs: from_ (required), to (required), amount, precision, +1 more. Returns: result

get_snapshot_allC
Read-only

Get a snapshot of all tickers in a market.

Inputs: market_type (required), tickers, include_otc, params. Returns: result

get_snapshot_crypto_bookB
Read-only

Get snapshot for a crypto ticker's order book.

Inputs: ticker (required), params. Returns: result

get_snapshot_directionC
Read-only

Get gainers or losers for a market.

Inputs: market_type (required), direction (required), include_otc, params. Returns: result

get_snapshot_optionC
Read-only

Get snapshot for a specific option contract.

Inputs: underlying_asset (required), option_contract (required), params. Returns: result

get_snapshot_tickerC
Read-only

Get snapshot for a specific ticker.

Inputs: market_type (required), ticker (required), params. Returns: result

get_ticker_detailsC
Read-only

Get detailed information about a specific ticker.

Inputs: ticker (required), date, params. Returns: result

get_ticker_typesC
Read-only

List all ticker types supported by Massive.com.

Inputs: asset_class, locale, params. Returns: result

list_aggsC
Read-only

Iterate through aggregate bars for a ticker over a given date range.

Inputs: ticker (required), multiplier (required), timespan (required), from_ (required), +5 more. Returns: result

list_benzinga_analyst_insightsC
Read-only

List Benzinga analyst insights.

Inputs: date, date_any_of, date_gt, date_gte, +41 more. Returns: result

list_benzinga_analystsC
Read-only

List Benzinga analysts.

Inputs: benzinga_id, benzinga_id_any_of, benzinga_id_gt, benzinga_id_gte, +23 more. Returns: result

list_benzinga_consensus_ratingsB
Read-only

List Benzinga consensus ratings for a ticker.

Inputs: ticker (required), date, date_gt, date_gte, +4 more. Returns: result

list_benzinga_earningsD
Read-only

List Benzinga earnings.

Inputs: date, date_any_of, date_gt, date_gte, +53 more. Returns: result

list_benzinga_firmsC
Read-only

List Benzinga firms.

Inputs: benzinga_id, benzinga_id_any_of, benzinga_id_gt, benzinga_id_gte, +5 more. Returns: result

list_benzinga_guidanceC
Read-only

List Benzinga guidance.

Inputs: date, date_any_of, date_gt, date_gte, +41 more. Returns: result

list_benzinga_newsA
Read-only

Retrieve real-time structured, timestamped news articles from Benzinga v2 API, including headlines, full-text content, tickers, categories, and more. Each article entry contains metadata such as author, publication time, and topic channels, as well as optional elements like teaser summaries, article body text, and images. Articles can be filtered by ticker and time, and are returned in a consistent format for easy parsing and integration. This endpoint is ideal for building alerting systems, autonomous risk analysis, and sentiment-driven trading strategies.

Args: published: The timestamp (formatted as an ISO 8601 timestamp) when the news article was originally published. Value must be an integer timestamp in seconds or formatted 'yyyy-mm-dd'. channels: Filter for arrays that contain the value (e.g., 'News', 'Price Target'). tags: Filter for arrays that contain the value. author: The name of the journalist or entity that authored the news article. stocks: Filter for arrays that contain the value. tickers: Filter for arrays that contain the value. limit: Limit the maximum number of results returned. Defaults to 100 if not specified. The maximum allowed limit is 50000. sort: A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'published' if not specified. The sort order defaults to 'desc' if not specified.

Inputs: published, channels, tags, author, +4 more. Returns: result

list_benzinga_ratingsD
Read-only

List Benzinga ratings.

Inputs: date, date_any_of, date_gt, date_gte, +53 more. Returns: result

list_conditionsC
Read-only

List conditions used by Massive.com.

Inputs: asset_class, data_type, id, sip, +1 more. Returns: result

list_dividendsB
Read-only

Get historical cash dividends.

Inputs: ticker, ex_dividend_date, frequency, dividend_type, +2 more. Returns: result

list_futures_aggregatesB
Read-only

Get aggregates for a futures contract in a given time range.

Inputs: ticker (required), resolution (required), window_start, window_start_lt, +6 more. Returns: result

list_futures_contractsB
Read-only

Get a paginated list of futures contracts.

Inputs: product_code, first_trade_date, last_trade_date, as_of, +5 more. Returns: result

list_futures_market_statusesC
Read-only

Get market statuses for futures products.

Inputs: product_code_any_of, product_code, limit, sort, +1 more. Returns: result

list_futures_productsC
Read-only

Get a list of futures products (including combos).

Inputs: name, name_search, as_of, trading_venue, +8 more. Returns: result

list_futures_quotesB
Read-only

Get quotes for a futures contract in a given time range.

Inputs: ticker (required), timestamp, timestamp_lt, timestamp_lte, +10 more. Returns: result

list_futures_schedulesB
Read-only

Get trading schedules for multiple futures products on a specific date.

Inputs: session_end_date, trading_venue, limit, sort, +1 more. Returns: result

list_futures_schedules_by_product_codeB
Read-only

Get schedule data for a single futures product across many trading dates.

Inputs: product_code (required), session_end_date, session_end_date_lt, session_end_date_lte, +5 more. Returns: result

list_futures_tradesC
Read-only

Get trades for a futures contract in a given time range.

Inputs: ticker (required), timestamp, timestamp_lt, timestamp_lte, +10 more. Returns: result

list_inflationC
Read-only

Get inflation data from the Federal Reserve.

Inputs: date, date_any_of, date_gt, date_gte, +5 more. Returns: result

list_iposC
Read-only

Retrieve upcoming or historical IPOs.

Inputs: ticker, listing_date, listing_date_lt, listing_date_lte, +7 more. Returns: result

list_quotesB
Read-only

Get quotes for a ticker symbol.

Inputs: ticker (required), timestamp, timestamp_lt, timestamp_lte, +6 more. Returns: result

list_short_interestB
Read-only

Retrieve short interest data for stocks.

Inputs: ticker, settlement_date, settlement_date_lt, settlement_date_lte, +6 more. Returns: result

list_short_volumeC
Read-only

Retrieve short volume data for stocks.

Inputs: ticker, date, date_lt, date_lte, +6 more. Returns: result

list_splitsB
Read-only

Get historical stock splits.

Inputs: ticker, execution_date, reverse_split, limit, +1 more. Returns: result

list_stock_financialsC
Read-only

Get fundamental financial data for companies.

Inputs: ticker, cik, company_name, company_name_search, +17 more. Returns: result

list_ticker_newsB
Read-only

Get recent news articles for a stock ticker.

Inputs: ticker, published_utc, limit, sort, +2 more. Returns: result

list_tickersB
Read-only

Query supported ticker symbols across stocks, indices, forex, and crypto.

Inputs: ticker, type, market, exchange, +9 more. Returns: result

list_tradesC
Read-only

Get trades for a ticker symbol.

Inputs: ticker (required), timestamp, timestamp_lt, timestamp_lte, +6 more. Returns: result

list_treasury_yieldsC
Read-only

Retrieve treasury yield data.

Inputs: date, date_any_of, date_lt, date_lte, +6 more. Returns: result

list_universal_snapshotsC
Read-only

Get universal snapshots for multiple assets of a specific type.

Inputs: type (required), ticker_any_of, order, limit, +2 more. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.8/5.0

    Scored across 53 tools

    Disambiguation3/5

    The tools cover distinct financial data domains (e.g., aggregates, quotes, news, futures), but there is significant overlap in functionality. For example, 'get_aggs' and 'list_aggs' both handle aggregate bars, and multiple 'get_snapshot_*' tools target similar snapshot data for different asset types, which could cause confusion in tool selection.

    Naming Consistency4/5

    Most tools follow a consistent 'verb_noun' pattern (e.g., 'get_aggs', 'list_tickers'), with verbs like 'get' and 'list' used appropriately for retrieval. However, there are minor deviations, such as 'get_real_time_currency_conversion' using a longer name and some tools like 'list_benzinga_analyst_insights' having compound nouns, but overall the naming is predictable and readable.

    Tool Count2/5

    With 53 tools, the count is excessive for a single server, indicating poor scoping. This many tools can overwhelm agents and lead to inefficiency, as many functions could be consolidated or better organized (e.g., grouping similar snapshot or Benzinga tools). A more focused set would improve usability.

    Completeness5/5

    The tool set provides comprehensive coverage for financial data retrieval, including aggregates, quotes, trades, news, futures, and market statuses. It supports CRUD-like operations for data access across multiple asset classes (stocks, crypto, forex, futures) and includes auxiliary data like holidays and inflation, leaving no obvious gaps for the domain.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Provides AI agents with real-time financial market intelligence including stock quotes, crypto data, technical analysis, and portfolio insights. Enables natural language queries for current prices, technical indicators, asset comparisons, and portfolio analysis.
      17
      9
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables access to real-time and historical market data including stocks, ETFs, forex, and cryptocurrencies, with support for time series, quotes, dividends, splits, and earnings.
      325 npm
      MIT
    • A
      license
      C
      quality
      C
      maintenance
      Enables AI agents and LLM apps to answer natural-language financial questions using live market data, including stocks, crypto, forex, futures, indices, ETFs, economic data, news, sentiment, SEC filings, earnings, financials, insider trading, ESG, credit ratings, and web traffic.
      132
      139 npm
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants to access and analyze financial data, stock information, company fundamentals, and market insights through 250+ tools spanning stocks, ETFs, crypto, forex, commodities, and economics. Supports dynamic, static, or full toolset loading over HTTP/SSE for Claude and other MCP clients.
      624 npm
      Apache 2.0