Ship code against the Massive API faster, with fewer hallucinations. This plugin loads Massive's SDK conventions, endpoint catalog, and common failure modes into every Claude Code session, plus five slash commands for the workflows you run most often.
Two problems Claude runs into when you're coding against a real financial data API.
Slow. Every session starts with you explaining that Bitcoin is X:BTCUSD, that list_aggs auto-paginates, that get_rsi returns a single object not an iterator, that crypto endpoints use a different prefix from forex. Minutes burned before any code lands.
Wrong. Claude is confident. It will write list_rsi(...) when the method is get_rsi, pass tickerAnyOf as an array in JS when the SDK wants a comma-separated string, or reach for bar.Open in Go when the actual field is bar.O. You end up debugging hallucinations instead of business logic.
This plugin fixes both. CLAUDE.md teaches the model the right patterns so correct code comes out the first try; the skills wrap the workflows you run most; the MCP server gives Claude a way to inspect real data when you need to validate a response shape or debug a 401.
Loaded every session. Covers:
- Ticker prefixes across six asset classes (equities, options, crypto, forex, indices, futures)
- SDK method name maps for Python, JavaScript, Go, and Kotlin (same operations, different names in each)
- Pagination behavior:
list_*auto-paginates,get_*returns single objects,limitis page size not total results - Plan tier gates, so Claude doesn't recommend quotes on Basic or Greeks without Options Starter
- Common 401 / 429 / empty-result debugging patterns
- Rate-limit retry helpers, including the non-obvious detail that the Python SDK's
BadResponsebody matches on text ("maximum requests","rate limit") instead of HTTP status
| Command | What it does |
|---|---|
/massive:scaffold my-app rest python |
New project with dependencies, .env, and working boilerplate. Python, JS/TS, Go, or Kotlin. Checks plan tier before scaffolding WebSocket or Streamlit projects that need Starter. |
/massive:discover "options Greeks for SPY" |
Finds the right endpoint and shows SDK usage in your language. |
/massive:debug |
Diagnoses API errors, empty results, and SDK quirks across all four languages. Covers the Python BadResponse rate-limit pattern, Go nil-pointer guards, JS object-param shape, Kotlin JitPack deps. |
/massive:options "iron condor" SPY python |
Builds a runnable options strategy as a project. Screens the chain, calculates max profit / max loss / breakeven, ranks by risk-reward. Expiration dates are derived from today, not hardcoded. |
/massive:dashboard my-dash multi-asset |
Modular Streamlit dashboard with a cached data layer and Plotly charts. Four focus areas: multi-asset, options, crypto, macro. |
The Massive MCP server is a separate install (see Getting started, steps 2-3). Once registered with claude mcp add, Claude gets three tools:
search_endpoints(query): find endpoints by natural-language description.call_api(endpoint, params, store_as): call a REST endpoint and optionally save the response as a DataFrame.query_data(sql): run SQL against stored DataFrames, with built-in financial functions (Black-Scholes, Sharpe, returns, SMA, EMA).
Reach for these when you need to see what an endpoint actually returns before writing code against it, or when something in your code isn't returning what you expected. REST endpoints are polled. Real-time streaming lives on the WebSocket feeds, not in these tools.
Skip the MCP install if you only want knowledge + skills. The plugin still works; you just won't get live-data lookups from inside a session.
- Claude Code CLI. Check with
claude --version. - uv, to install the Massive MCP server (only needed for live-API features). Check with
uv --version. Install withcurl -LsSf https://astral.sh/uv/install.sh | sh(macOS or Linux),powershell -c "irm https://astral.sh/uv/install.ps1 | iex"(Windows), orpip install uv(any platform). - A Massive API key from massive.com/dashboard. The free Basic tier is enough to start (end-of-day data, 5 calls/min).
For scaffolding in languages other than Python, you'll also need Node.js 16+, Go 1.21+, or JDK 21+ with Gradle, depending on the language you pick. The plugin itself doesn't require these; they only matter when /massive:scaffold creates a project in that language and you want to run it.
The Massive MCP server lets Claude inspect real API responses, fetch live data for debugging, and explore endpoints before writing code. Install it once as a shared uv tool on your PATH:
uv tool install "mcp_massive @ git+https://github.com/massive-com/mcp_massive"mcp_massive is now shared across Claude Code and any other MCP-aware tool (Codex, for example). Upgrade later with uv tool upgrade mcp-massive. For alternate install paths and advanced options, see the mcp_massive repo.
Skip if you don't need live-API features. The plugin's knowledge and skills still work without it.
claude mcp add massive --scope user \
--env MASSIVE_API_KEY=your_key -- \
mcp_massiveThis writes the server entry into ~/.claude.json so every Claude Code session uses it. Rotate the key later with claude mcp remove massive followed by the same add command with the new key. Skip if you skipped step 2.
claude plugin marketplace add massive-com/claude-code-plugin
claude plugin install massive@massive-claude-code-pluginKnowledge loads in every Claude Code session on this machine. No per-project setup, no key prompt (the key lives with the MCP server you set up in step 3, not the plugin).
Open Claude Code in any directory and check:
- Run
/reload-plugins. Expect1 plugins · 5 skills · 0 errors. - Run
/mcp. Expectmassivelisted as connected (if you did steps 2-3). - Ask:
Call the Massive API for AAPL's last trade.Should return a live price when the MCP server is registered, or a note that live data isn't available when it isn't.
The first time Claude calls a Massive MCP tool (search_endpoints, call_api, or query_data), Claude Code will show a one-time approval prompt. Approve it and subsequent calls in the same project are automatic.
If anything fails, jump to Troubleshooting.
Point Claude at a directory (new or existing) and scaffold your first project:
/massive:scaffold earnings-tracker rest python
That creates a working Python project. Then:
cd earnings-tracker
cp .env.example .env # add your Massive API key
uv sync
uv run python main.py # prints real AAPL daily barsFrom there, ask natural questions and Claude will reach for the right skill or MCP tool as needed:
You: Show me AAPL's last 30 days and calculate the Sharpe ratio.
Claude: [uses call_api via MCP, stores the result, runs sharpe_ratio, prints a number]
You: Now build the same thing in Node.js.
Claude: /massive:scaffold earnings-tracker-js rest javascript
[scaffolds a JS project with getStocksAggregates() and the right object-params syntax]
Common follow-on moves: /massive:discover "options Greeks for SPY" to find an endpoint, /massive:debug when something errors, /massive:options "iron condor" SPY python or /massive:dashboard my-dash multi-asset to scaffold more specialized projects.
If you're working on this plugin itself, or want to try it before installing from the marketplace:
claude --plugin-dir .Run /reload-plugins after changes. Expect 1 plugins · 5 skills · 0 errors.
The plugin no longer bundles an MCP config, so there's nothing tricky here. If you've registered the Massive MCP server at user scope (Getting started steps 2-3), it's available in this local-dev session too. Otherwise, you're running skills + knowledge only.
Run /mcp in Claude Code. If massive isn't there:
mcp_massivebinary missing: runuv tool install "mcp_massive @ git+https://github.com/massive-com/mcp_massive". Check withwhich mcp_massive(macOS/Linux) or(Get-Command mcp_massive).Source(Windows PowerShell).uvmissing: install it first (curl -LsSf https://astral.sh/uv/install.sh | shon macOS/Linux,powershell -c "irm https://astral.sh/uv/install.ps1 | iex"on Windows, orpip install uvanywhere).mcp_massiveneeds Python 3.12+;uv tool installfetches it automatically on first use.- Server not registered: run
claude mcp add massive --scope user --env MASSIVE_API_KEY=your_key -- mcp_massive. Restart Claude Code. - Still not visible: run
claude --debugand look formcp_massivein the log.claude mcp listshould show✓ Connected; if it shows an error, that's your clue. - Manual smoke test outside Claude Code: running
mcp_massivein a terminal should start a process that waits for stdin. Ctrl-C to stop. - Upgrade the server:
uv tool upgrade mcp-massive.
- Run
/reload-plugins; it reports errors inline. - Confirm
.claude-plugin/plugin.jsonand.claude-plugin/marketplace.jsonare valid JSON. - For local testing, confirm you're at the repo root when running
claude --plugin-dir ..
The key lives with the MCP server registration, not the plugin. Update it with:
claude mcp remove massive
claude mcp add massive --scope user --env MASSIVE_API_KEY=new_key -- mcp_massive- Stale key cached: restart Claude Code. The MCP subprocess re-reads config at session start.
- Key rotated or revoked: regenerate at massive.com/dashboard and re-register as above.
Basic plan caps at 5 calls per minute. /massive:debug has language-specific retry helpers. The Python one is non-obvious: BadResponse doesn't preserve the HTTP status code, so you match the body text ("maximum requests", "rate limit") instead. If retries aren't enough, cache reference data for 24 hours, batch via the universal snapshot endpoint instead of per-ticker calls, or move to Starter ($29 to $49/mo).
Pricing is per asset class (stocks, options, indices, currencies, futures). Every asset class has a free Basic tier.
| Tier | Price | Data access | Key features |
|---|---|---|---|
| Basic | $0/mo | End-of-day, 2yr history | 5 calls/min, aggregates, reference, technical indicators |
| Starter | $29 to $49/mo | 15-min delayed, 2 to 5yr history | Unlimited calls, WebSockets, flat files, snapshots |
| Developer | $79/mo | 15-min delayed, 4 to 10yr history | Adds trade data |
| Advanced | $99 to $199/mo | Real-time, 5 to 20+yr history | Adds quotes, financials/ratios (stocks) |
| Business | $999 to $2,500/mo | Real-time, full history | Commercial use, no exchange fees, FMV |
| Enterprise | Custom | Everything | SLAs, dedicated support |
Individual tiers are for personal, non-commercial use. Building a product, redistributing data, or embedding this in a SaaS puts you in Business territory.
Add-ons are $99/mo each on individual tiers: Benzinga (news, ratings, earnings), ETF Global (constituents, flows), TMX (corporate events). Annual billing saves 20%. Full breakdown at massive.com/pricing.
All skills support Python, JavaScript/TypeScript, Go, and Kotlin.
| Language | Package | Min version | Repo |
|---|---|---|---|
| Python | massive on PyPI |
2.5.0 (Python 3.9+) | massive-com/client-python |
| JavaScript/TypeScript | @massive.com/client-js on npm |
10.6.0 (Node.js 16+) | massive-com/client-js |
| Go | github.com/massive-com/client-go/v3 |
3.2.0 (Go 1.21+) | massive-com/client-go |
| Kotlin/JVM | JitPack com.github.massive-com:client-jvm |
5.1.2 (JDK 21+, Android SDK 21+) | massive-com/client-jvm |
- massive-ai-rules has equivalent rule files for Cursor, GitHub Copilot, Windsurf, and Gemini CLI, plus setup guides for Perplexity Spaces and ChatGPT Projects.
- Codex users: massive-com/codex-plugin.
- REST API reference: full endpoint catalog, always current
- Docs index
- Python SDK
- Community examples and demos
- MCP server source
- Claude Code plugins docs
Facebook · X · LinkedIn · YouTube · Reddit · Instagram
MIT.
Educational material, not investment advice or a recommendation to buy or sell any security. Massive is a market data provider, not a broker-dealer, exchange, or investment adviser. Market data may originate from third-party exchanges and data providers, or may be derived or calculated by Massive; in either case, it is subject to the terms of your Massive subscription. The data and code samples are provided as-is, without warranty of accuracy, completeness, or timeliness. You're responsible for your use of the data and for compliance with all applicable laws and data licensing terms.
