MCP Server
Query global markets intelligence across equities, commodities, indices, crypto, and AI through Nebula.
Quickstart
Connect any Streamable HTTP MCP client to:
https://nebula-api.hiddensystems.ai/mcp
Tools, descriptions, defaults, selector constraints, and schemas are generated from the public OpenAPI contract. Use list_assets to find any stock, commodity, index, or crypto asset, then pass its asset_id and asset_class to downstream tools.
Authentication
| Endpoint | https://nebula-api.hiddensystems.ai/mcp |
|---|
| Plugins | OAuth 2.1 authorization code with PKCE |
|---|
| Direct clients | X-API-Key: YOUR_API_KEY or an API key as Authorization: Bearer |
|---|
| Transport | Streamable HTTP |
|---|
OAuth clients discover authorization from the endpoint automatically. Calls use the connected Nebula account's plan, credits, and rate limits.
x402 Payments
You can also pay for eligible API reads with USDC on Base through the separate x402 HTTP API, without a Nebula account or API key. Your wallet authorizes each payment. MCP and CLI connections continue to use account authentication and credits; they do not automatically make wallet payments. See the x402 payment guide.
Connect Claude Code
claude mcp add nebula \
--transport http \
https://nebula-api.hiddensystems.ai/mcp
Open /mcp after adding the server and complete the Nebula sign-in flow.
Other MCP Clients
OAuth-capable clients can use the Streamable HTTP URL without a stored API key. Legacy clients can provide an API-key header.
URL: https://nebula-api.hiddensystems.ai/mcp
Optional legacy header: X-API-Key: YOUR_API_KEY
Endpoints Overview
Each MCP tool call uses the same operation-level pricing and shared account balance as the REST API, MCP, CLI, and Nebula Agent.
- Fixed-cost operations spend the listed number of credits per request.
- Parameters do not change an operation's cost, except where its row names a price for one: a mindshare or sentiment forecast re-run with refresh=true costs 10 credits instead of 5. Sentiment always costs 1 credit, with or without cluster filters.
- A row can also name a lower price for a lesser answer: a forecast the asset cannot have (not_forecastable) is free, up to 30 such answers per account an hour; past that the endpoint answers 429 until the hour clears. A request that ends in an error costs nothing.
- Agent requests use variable pricing based on token volume, model cost, and tool calls. The completed response reports the credits used.
- Every operation is available on every plan. Plans differ by history window (Free: 90 days; Pro: each endpoint's maximum, a year for most time series), rate limit (Free: 60 requests a minute; Pro: 300), and included monthly credits; buying credits extends usage but does not change history or rate limits.
Discovery
| Tool | Credits | Description |
screener |
2 |
Screener |
get_top_momentum |
2 |
Top momentum |
get_top_trending |
2 |
Top trending |
Lookup
| Tool | Credits | Description |
list_assets |
1 |
Text to asset ID |
search |
1 |
Search |
list_subjects |
1 |
Text to subject ID |
Social & Sentiment
| Tool | Credits | Description |
get_emotions |
1 |
Emotion distribution |
get_mindshare |
2 |
Mindshare |
get_related_subjects |
2 |
Related subjects |
get_sentiment |
1 |
Sentiment |
get_sentiment_timeframes |
1 |
Sentiment by timeframe |
get_social_momentum |
2 |
Social momentum |
Forecasts
| Tool | Credits | Description |
list_forecast_assets |
1 |
Forecastable assets |
get_mindshare_forecast |
5 (10 with refresh=true; free if not_forecastable, 30 an hour) |
Mindshare forecast |
get_sentiment_forecast |
5 (10 with refresh=true; free if not_forecastable, 30 an hour) |
Sentiment forecast |
Market Sentiment
| Tool | Credits | Description |
get_calls |
2 |
Long/short calls |
get_call_returns |
2 |
Calls outcome distribution |
get_conviction_index |
2 |
Conviction index |
get_fear_greed_index |
1 |
Fear and Greed index |
get_price_levels |
2 |
Socially mentioned price levels |
get_social_volume_index |
2 |
Social vs trading volume |
get_social_volume_profile |
2 |
Social volume profile |
Market Data
| Tool | Credits | Description |
get_price_history |
1 |
Price history |
Intelligence
| Tool | Credits | Description |
list_calendar_events |
5 |
Calendar events |
list_insights |
5 |
Intelligence |
get_insight_attention |
5 |
Insight attention |
Clusters
| Tool | Credits | Description |
list_clusters |
2 |
Author clusters |
compare_clusters |
2 |
Cluster comparison |
get_divisive_assets |
2 |
Divisive assets |
compare_hype_cycles |
2 |
Hype cycle arrivals |
compare_cluster_traits |
2 |
Cluster trait comparison |
get_cluster_hype_cycles |
2 |
Cluster hype cycles |
get_cluster_overlap |
2 |
Cluster overlap |
get_cluster_profile |
2 |
Cluster profile |
get_cluster_rotation |
2 |
Cluster rotation |
get_cluster_stances |
2 |
Cluster stances |
Account
| Tool | Credits | Description |
get_account |
0 |
Account |
Other
| Tool | Credits | Description |
list_prediction_markets |
1 |
Prediction markets |
get_prediction_history |
1 |
Prediction outcome history |
get_prediction_market |
1 |
Prediction market detail |
Troubleshooting
- 401: sign-in is missing or expired, or the API key is invalid or revoked.
- 402: the account's credits are used up for this cycle.
- 403: the request reaches past the plan's history window.
- 429: the key has reached its per-minute rate limit; wait for the Retry-After interval.
- 503: a dependency was briefly unavailable; retry the call.
- If tools do not appear, restart the client after saving its MCP configuration.