From 50f648b9558bb2ae66719a8a2b1264e8af349b6b Mon Sep 17 00:00:00 2001 From: Joe Dursun Date: Sat, 7 Feb 2026 07:48:34 -0500 Subject: [PATCH 1/2] Fix claude extension --- .gitignore | 3 + assets/icon-massive-darkmode.png | Bin 0 -> 6274 bytes assets/icon-massive-lightmode.png | Bin 0 -> 6274 bytes assets/massive-icon-logo.svg | 4 + manifest.json | 120 ++++++++++++++++++++++++++---- 5 files changed, 113 insertions(+), 14 deletions(-) create mode 100644 assets/icon-massive-darkmode.png create mode 100644 assets/icon-massive-lightmode.png create mode 100644 assets/massive-icon-logo.svg diff --git a/.gitignore b/.gitignore index 136023d..acc0f19 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,6 @@ Thumbs.db # Environment and secrets .env.local + +# MCPB build artifacts +*.mcpb diff --git a/assets/icon-massive-darkmode.png b/assets/icon-massive-darkmode.png new file mode 100644 index 0000000000000000000000000000000000000000..ed960fe27fb2978b7e69d9b7367d4d86e410063c GIT binary patch literal 6274 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 D;8rgC literal 0 HcmV?d00001 diff --git a/assets/icon-massive-lightmode.png b/assets/icon-massive-lightmode.png new file mode 100644 index 0000000000000000000000000000000000000000..ed960fe27fb2978b7e69d9b7367d4d86e410063c GIT binary patch literal 6274 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 D;8rgC literal 0 HcmV?d00001 diff --git a/assets/massive-icon-logo.svg b/assets/massive-icon-logo.svg new file mode 100644 index 0000000..be13cce --- /dev/null +++ b/assets/massive-icon-logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/manifest.json b/manifest.json index 02b68c6..fbfae49 100644 --- a/manifest.json +++ b/manifest.json @@ -1,39 +1,131 @@ { - "manifest_version": "0.2", + "manifest_version": "0.4", "name": "mcp_massive", - "version": "0.6.0", + "display_name": "Massive Market Data", + "version": "0.7.0", "description": "MCP server providing access to Massive.com financial market data API", "author": { - "name": "Massive.com", + "name": "Massive", "email": "support@massive.com", "url": "https://massive.com" }, + "repository": { + "type": "git", + "url": "https://github.com/massive-com/mcp_massive.git" + }, + "homepage": "https://massive.com", + "support": "https://github.com/massive-com/mcp_massive/issues", + "license": "MIT", "privacy_policies": [ "https://massive.com/legal/privacy" ], + "icon": "assets/icon-massive-lightmode.png", + "icons": [ + { + "src": "assets/icon-massive-lightmode.png", + "size": "512x512", + "theme": "light" + }, + { + "src": "assets/icon-massive-darkmode.png", + "size": "512x512", + "theme": "dark" + } + ], + "keywords": [ + "finance", + "market-data", + "stocks", + "forex", + "crypto", + "options", + "futures", + "trading", + "api" + ], "server": { - "type": "python", - "entry_point": "mcp_massive", + "type": "uv", + "entry_point": "entrypoint.py", "mcp_config": { - "command": "uvx", - "args": [ - "--from", - "git+https://github.com/massive-com/mcp_massive", - "mcp_massive" - ] + "command": "uv", + "args": ["run", "--directory", "${__dirname}", "mcp_massive"], + "env": { + "MASSIVE_API_KEY": "${user_config.MASSIVE_API_KEY}" + } } }, "user_config": { "MASSIVE_API_KEY": { "type": "string", + "title": "Massive API Key", "description": "Your Massive.com API key for accessing market data", "required": true, "sensitive": true } }, "compatibility": { - "python": ">=3.10" + "platforms": [ + "darwin", + "win32", + "linux" + ], + "runtimes": { + "python": ">=3.10" + } }, - "repository": "https://github.com/massive-com/mcp_massive", - "license": "MIT" + "tools": [ + { "name": "get_aggs", "description": "List aggregate bars for a ticker over a given date range in custom time window sizes" }, + { "name": "list_aggs", "description": "Iterate through aggregate bars for a ticker over a given date range" }, + { "name": "get_grouped_daily_aggs", "description": "Get grouped daily bars for entire market for a specific date" }, + { "name": "get_daily_open_close_agg", "description": "Get daily open, close, high, and low for a specific ticker and date" }, + { "name": "get_previous_close_agg", "description": "Get previous day's open, close, high, and low for a specific ticker" }, + { "name": "list_trades", "description": "Get trades for a ticker symbol" }, + { "name": "get_last_trade", "description": "Get the most recent trade for a ticker symbol" }, + { "name": "get_last_crypto_trade", "description": "Get the most recent trade for a crypto pair" }, + { "name": "list_quotes", "description": "Get quotes for a ticker symbol" }, + { "name": "get_last_quote", "description": "Get the most recent quote for a ticker symbol" }, + { "name": "get_last_forex_quote", "description": "Get the most recent forex quote" }, + { "name": "get_real_time_currency_conversion", "description": "Get real-time currency conversion" }, + { "name": "list_universal_snapshots", "description": "Get universal snapshots for multiple assets of a specific type" }, + { "name": "get_snapshot_all", "description": "Get a snapshot of all tickers in a market" }, + { "name": "get_snapshot_direction", "description": "Get gainers or losers for a market" }, + { "name": "get_snapshot_ticker", "description": "Get snapshot for a specific ticker" }, + { "name": "get_snapshot_option", "description": "Get snapshot for a specific option contract" }, + { "name": "get_snapshot_crypto_book", "description": "Get snapshot for a crypto ticker's order book" }, + { "name": "get_market_holidays", "description": "Get upcoming market holidays and their open/close times" }, + { "name": "get_market_status", "description": "Get current trading status of exchanges and financial markets" }, + { "name": "list_tickers", "description": "Query supported ticker symbols across stocks, indices, forex, and crypto" }, + { "name": "get_ticker_details", "description": "Get detailed information about a specific ticker" }, + { "name": "list_ticker_news", "description": "Get recent news articles for a stock ticker" }, + { "name": "get_ticker_types", "description": "List all ticker types supported by Massive.com" }, + { "name": "list_splits", "description": "Get historical stock splits" }, + { "name": "list_dividends", "description": "Get historical cash dividends" }, + { "name": "list_conditions", "description": "List conditions used by Massive.com" }, + { "name": "get_exchanges", "description": "List exchanges known by Massive.com" }, + { "name": "list_stock_financials", "description": "Get fundamental financial data for companies" }, + { "name": "list_ipos", "description": "Retrieve upcoming or historical IPOs" }, + { "name": "list_short_interest", "description": "Retrieve short interest data for stocks" }, + { "name": "list_short_volume", "description": "Retrieve short volume data for stocks" }, + { "name": "list_treasury_yields", "description": "Retrieve treasury yield data" }, + { "name": "list_inflation", "description": "Get inflation data from the Federal Reserve" }, + { "name": "list_benzinga_analyst_insights", "description": "List Benzinga analyst insights" }, + { "name": "list_benzinga_analysts", "description": "List Benzinga analysts" }, + { "name": "list_benzinga_consensus_ratings", "description": "List Benzinga consensus ratings for a ticker" }, + { "name": "list_benzinga_earnings", "description": "List Benzinga earnings" }, + { "name": "list_benzinga_firms", "description": "List Benzinga firms" }, + { "name": "list_benzinga_guidance", "description": "List Benzinga guidance" }, + { "name": "list_benzinga_news", "description": "Retrieve real-time structured news articles from Benzinga" }, + { "name": "list_benzinga_ratings", "description": "List Benzinga ratings" }, + { "name": "list_futures_aggregates", "description": "Get aggregates for a futures contract in a given time range" }, + { "name": "list_futures_contracts", "description": "Get a paginated list of futures contracts" }, + { "name": "get_futures_contract_details", "description": "Get details for a single futures contract at a specified point in time" }, + { "name": "list_futures_products", "description": "Get a list of futures products including combos" }, + { "name": "get_futures_product_details", "description": "Get details for a single futures product as it was at a specific day" }, + { "name": "list_futures_quotes", "description": "Get quotes for a futures contract in a given time range" }, + { "name": "list_futures_trades", "description": "Get trades for a futures contract in a given time range" }, + { "name": "list_futures_schedules", "description": "Get trading schedules for multiple futures products on a specific date" }, + { "name": "list_futures_schedules_by_product_code", "description": "Get schedule data for a single futures product across many trading dates" }, + { "name": "list_futures_market_statuses", "description": "Get market statuses for futures products" }, + { "name": "get_futures_snapshot", "description": "Get snapshots for futures contracts" } + ] } From c1114b9797e2e607f79223193df94a50b9ef7824 Mon Sep 17 00:00:00 2001 From: Joe Dursun Date: Sat, 7 Feb 2026 08:59:28 -0500 Subject: [PATCH 2/2] Update description --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index fbfae49..ff5d758 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "mcp_massive", "display_name": "Massive Market Data", "version": "0.7.0", - "description": "MCP server providing access to Massive.com financial market data API", + "description": "Stocks, options & indices market data via Massive.com financial data API. Access real-time and historical prices, quotes, trades, and aggregates for equities, options contracts, ETFs, FX, crypto, and more.", "author": { "name": "Massive", "email": "support@massive.com",