Market Intelligence API (core)

Compact 18-tool x402 market data server: token safety, Fed odds, DeFi yields, swap quotes, decisions

Should I use this

Quality & Safety

A
Description quality
99%
Schema completeness
92%
Naming quality
50%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (18)

  • LOWTool 'market.opportunities' doesn't follow camelCase/snake_casein market.opportunities
  • LOWTool 'decision.sample' doesn't follow camelCase/snake_casein decision.sample
  • LOWTool 'feedback.send' doesn't follow camelCase/snake_casein feedback.send
  • LOWTool 'decision.lite' doesn't follow camelCase/snake_casein decision.lite
  • LOWTool 'market.snapshot' doesn't follow camelCase/snake_casein market.snapshot
  • LOWTool 'decision.pre_trade' doesn't follow camelCase/snake_casein decision.pre_trade
  • LOWTool 'token.risk' doesn't follow camelCase/snake_casein token.risk
  • LOWTool 'token.verdict' doesn't follow camelCase/snake_casein token.verdict
  • LOWTool 'token.new_launches' doesn't follow camelCase/snake_casein token.new_launches
  • LOWTool 'token.swap_quote' doesn't follow camelCase/snake_casein token.swap_quote

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,030Tokens (tool definitions)
~1.3 KBTypical response size
Significant attention impact (3.15% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "market-intelligence-core": {
      "url": "https://api.marketintelligenceapi.com/mcp/core"
    }
  }
}

Remote endpoints

https://api.marketintelligenceapi.com/mcp/corestreamable-http

What it can do

Tool inventory

Tools (18)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢market.opportunities(minVolumeUsd, objective, minVolumeMultiple, minBuyPressure, assetClass, ...)

Goal-driven scan: name an objective and constraints, get ranked symbols with supporting and conflicting evidence grouped by independent source (spot DEX flow, perp positioning, smart-money wallets), typed risk factors, data quality, the live 1h hit rate of the signal and the next calls to make. Use instead of chaining screeners. Objectives: unusual_buying, unusual_selling, breakout, breakdown, crowded_positioning, smart_money_accumulation, smart_money_distribution.

Input Schema

{
  "type": "object",
  "properties": {
    "minVolumeUsd": {
      "default": 0,
      "description": "USD traded in the window",
      "type": "number"
    },
    "objective": {
      "description": "What to look for",
      "type": "string",
      "enum": [
        "unusual_buying",
        "unusual_selling",
        "breakout",
        "breakdown",
        "crowded_positioning",
        "smart_money_accumulation",
        "smart_money_distribution"
      ]
    },
    "minVolumeMultiple": {
      "default": 1.5,
      "description": "Volume vs the symbol's own baseline",
      "type": "number"
    },
    "minBuyPressure": {
      "minimum": 50,
      "default": 60,
      "type": "number",
      "description": "Pressure on the objective's side (buy for buying, sell for selling)",
      "maximum": 100
    },
    "assetClass": {
      "type": "string",
      "enum": [
        "crypto",
        "us_equity",
        "perp_only"
      ],
      "description": "Restrict to crypto, us_equity or perp_only symbols"
    },
    "include": {
      "description": "Blocks to return; default all",
      "items": {
        "type": "string",
        "enum": [
          "metrics",
          "evidence",
          "risk_factors",
          "data_quality",
          "track_record",
          "market_context"
        ]
      },
      "type": "array"
    },
    "maxResults": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of ranked symbols (default 10)"
    },
    "window": {
      "default": "5m",
      "type": "string",
      "enum": [
        "1m",
        "5m",
        "15m"
      ],
      "description": "Aggregation window of the live trade buckets: 1m, 5m (default) or 15m"
    },
    "minIndependentSources": {
      "minimum": 1,
      "default": 1,
      "type": "integer",
      "description": "Distinct sources confirming the direction",
      "maximum": 3
    },
    "universe": {
      "description": "Symbols to scan (max 100); omit for all covered symbols",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "minConfidence": {
      "type": "number",
      "default": 50,
      "maximum": 100,
      "minimum": 0,
      "description": "Minimum signal confidence, 0-100"
    }
  },
  "required": [
    "objective"
  ]
}
🟢decision.sample(symbol)

FREE sample of the premium decision: the latest hourly decision (action, direction, conviction, pillar scores) of every symbol with live on-chain trading (e.g. ETHUSD, BTCUSD, NVDA, TSLA, SPY, AAPL), delayed at least an hour, with what the price did 1h/4h/24h later. Judge the decisions before buying a live one.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "type": "string",
      "description": "Optional; omit for all ten symbols"
    }
  }
}
🟢feedback.send(rating, route, message, missing)

FREE: tell the operator what was missing or wrong (a route or tool you expected, a symbol without data, a confusing parameter). Read by a human; it decides the next routes.

Input Schema

{
  "type": "object",
  "properties": {
    "rating": {
      "maximum": 5,
      "minimum": 1,
      "type": "integer",
      "description": "Optional 1-5 rating of the route or tool"
    },
    "route": {
      "type": "string",
      "description": "Route or tool it is about (optional)"
    },
    "message": {
      "type": "string",
      "description": "Anything else, up to 1000 characters"
    },
    "missing": {
      "type": "string",
      "description": "What you needed and did not find"
    }
  }
}
🟢decision.lite(symbol, side)

Cheap live decision ($0.05): action (STRONG_BUY..STRONG_SELL), direction, conviction, a GO/WAIT answer for a side, the stance of each pillar and the measured hit rate. Same engine as get_decision on the full server /mcp ($1), without the trade plan, execution check, evidence and risks. Use as the default decision; decision.pre_trade answers only go/no-go timing for a side, decision.sample is free but an hour old.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "type": "string",
      "description": "Crypto pair (ETHUSD), US ticker (NVDA) or ISIN"
    },
    "side": {
      "description": "Optional: answers GO / GO_SMALL / WAIT / NO_GO for this side",
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ]
    }
  },
  "required": [
    "symbol"
  ]
}
🟢market.snapshot(window, symbol)

Cheapest call ($0.001): headline numbers of one symbol right now: price, change, buy pressure, signal, event, confidence and trade count.

Input Schema

{
  "type": "object",
  "properties": {
    "window": {
      "default": "5m",
      "type": "string",
      "enum": [
        "1m",
        "5m",
        "15m"
      ],
      "description": "Aggregation window of the live trade buckets: 1m, 5m (default) or 15m"
    },
    "symbol": {
      "type": "string",
      "description": "e.g. ETHUSD, BTCUSD, NVDA, TSLA"
    }
  },
  "required": [
    "symbol"
  ]
}
🟢decision.pre_trade(symbol, side, window)

Right before a trade: 'I want to buy (or sell) SYMBOL - is now a good moment?'. Returns a verdict (FAVORABLE, CAUTION, UNFAVORABLE), a score and the checks behind it: order flow, momentum, volatility, adverse events, market regime and news/filings of the last 24h. Use when you already know the symbol and side and only need go/no-go timing; for an action with conviction use decision.lite.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "type": "string",
      "description": "e.g. ETHUSD, BTCUSD, NVDA, TSLA"
    },
    "side": {
      "default": "buy",
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ],
      "description": "The side you intend to trade: buy or sell"
    },
    "window": {
      "default": "5m",
      "type": "string",
      "enum": [
        "1m",
        "5m",
        "15m"
      ],
      "description": "Aggregation window of the live trade buckets: 1m, 5m (default) or 15m"
    }
  },
  "required": [
    "symbol"
  ]
}
🟢token.risk(chain, address)

Due diligence before buying any token (Base by default; also ethereum, arbitrum, optimism, polygon, solana). EVM: simulated sell and buy (honeypot check), owner and upgradeable proxy, mint, blacklist, pause and fee functions, liquidity, LP burn, observed buy tax, last-hour flow. Solana mints: mint and freeze authority, Token-2022 transfer fee, permanent delegate, transfer hook, pause and top-wallet concentration. Verdict LOW_RISK, CAUTION or HIGH_RISK. Use before buying a token; for the price you would get on chain use token.swap_quote.

Input Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "default": "base",
      "type": "string",
      "enum": [
        "base",
        "ethereum",
        "arbitrum",
        "optimism",
        "polygon",
        "solana"
      ],
      "description": "Chain of the token or pool: base (default), ethereum, arbitrum, optimism or polygon (solana where listed). Not the payment network"
    },
    "address": {
      "type": "string",
      "description": "0x-prefixed ERC-20 contract, or a base58 Solana mint"
    }
  },
  "required": [
    "address"
  ]
}
🟢token.verdict(chain, address)

Use when the user asks "is this token safe?", "is it a rug or a honeypot?", "check this CA" or "can I sell it?". Send a token contract address (Base by default; also ethereum, arbitrum, optimism, polygon, or a Solana mint), get a short verdict: LOW_RISK, CAUTION or HIGH_RISK, a 0-100 safety score, one plain-language sentence, whether a simulated sale succeeds (honeypot check), observed buy tax, liquidity, who controls the contract, the top three risks, a oneLiner to quote and a share card. Cheaper and shorter than token.risk. Use for a quick safe-to-buy answer; for every check behind it use token.risk.

Input Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "default": "base",
      "type": "string",
      "enum": [
        "base",
        "ethereum",
        "arbitrum",
        "optimism",
        "polygon",
        "solana"
      ],
      "description": "Chain of the token or pool: base (default), ethereum, arbitrum, optimism or polygon (solana where listed). Not the payment network"
    },
    "address": {
      "type": "string",
      "description": "0x-prefixed ERC-20 contract, or a base58 Solana mint"
    }
  },
  "required": [
    "address"
  ]
}
🟢token.new_launches(verdict, chain, limit, minutes, minLiquidityUsd, ...)

Tokens launched in the last hour on Base or Ethereum, already risk-checked: every new Uniswap v2/v3/v4 or Aerodrome pool against ETH, WETH or USDC with liquidity, sell simulation, v4 hook powers, first trades and a verdict (LOW_RISK, CAUTION, HIGH_RISK).

Input Schema

{
  "type": "object",
  "properties": {
    "verdict": {
      "type": "string",
      "enum": [
        "LOW_RISK",
        "CAUTION",
        "HIGH_RISK"
      ],
      "description": "Keep only tokens with this risk verdict: LOW_RISK, CAUTION or HIGH_RISK"
    },
    "chain": {
      "default": "base",
      "type": "string",
      "enum": [
        "base",
        "ethereum"
      ],
      "description": "Chain of the token or pool: base (default), ethereum, arbitrum, optimism or polygon (solana where listed). Not the payment network"
    },
    "limit": {
      "type": "integer",
      "default": 30,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of results"
    },
    "minutes": {
      "type": "integer",
      "default": 60,
      "maximum": 1440,
      "minimum": 5,
      "description": "Look-back for new pools in minutes (default 60)"
    },
    "minLiquidityUsd": {
      "type": "number",
      "default": 1000,
      "description": "Minimum pool liquidity in USD"
    },
    "includeEstablished": {
      "default": false,
      "description": "Also list new pools of tokens that already existed a day earlier (new markets, not launches)",
      "type": "boolean"
    }
  }
}
🟢token.swap_quote(slippageBps, buy, chain, amount, sell)

Right before an on-chain swap ($0.005): how much you get now on the best route (Uniswap v2/v3/v4, Aerodrome, direct or through WETH) on Base, Ethereum, Arbitrum, Optimism or Polygon, with price impact, minimum received at your slippage and alternatives. Simulated, nothing executed.

Input Schema

{
  "type": "object",
  "properties": {
    "slippageBps": {
      "type": "integer",
      "default": 50,
      "maximum": 5000,
      "minimum": 1,
      "description": "Slippage tolerance for the minimum received, in basis points"
    },
    "buy": {
      "type": "string",
      "description": "ETH, WETH, USDC or a 0x token address"
    },
    "chain": {
      "default": "base",
      "type": "string",
      "enum": [
        "base",
        "ethereum",
        "arbitrum",
        "optimism",
        "polygon"
      ],
      "description": "Chain of the token or pool: base (default), ethereum, arbitrum, optimism or polygon (solana where listed). Not the payment network"
    },
    "amount": {
      "type": "string",
      "description": "Sell amount in whole units, e.g. 1000"
    },
    "sell": {
      "type": "string",
      "description": "ETH, WETH, USDC or a 0x token address"
    }
  },
  "required": [
    "sell",
    "buy",
    "amount"
  ]
}
🟢macro.calendar(region, importance, days)

Next market-moving events ($0.005) in UTC with importance, from official calendars: US CPI, jobs report, PCE, GDP, PPI, JOLTS (BLS, BEA), FOMC and ECB rate decisions. Check before opening a position.

Input Schema

{
  "type": "object",
  "properties": {
    "region": {
      "default": "all",
      "type": "string",
      "enum": [
        "all",
        "us",
        "eu"
      ],
      "description": "Region: all, us or eu"
    },
    "importance": {
      "default": "medium",
      "type": "string",
      "enum": [
        "high",
        "medium",
        "low"
      ],
      "description": "Minimum importance of the events to include"
    },
    "days": {
      "type": "integer",
      "default": 14,
      "maximum": 90,
      "minimum": 1,
      "description": "Number of days to cover (look-back; days ahead for calendars)"
    }
  }
}
🟢defi.yields(chain, asset, limit, protocol, minTvlUsd)

DeFi lending yields ($0.002): supply and borrow APY, utilization and USD size of every Aave v3 (Ethereum, Base, Arbitrum, Optimism, Polygon), Spark and Compound v3 market, read on chain every 10 minutes, highest supply APY first, with the best USDC, USDT, WETH, WBTC and DAI rate. Base yield only (no reward tokens).

Input Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "type": "string",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon"
      ],
      "description": "Chain of the token or pool: base (default), ethereum, arbitrum, optimism or polygon (solana where listed). Not the payment network"
    },
    "asset": {
      "type": "string",
      "description": "Token symbol (USDC, WETH, ...) or stablecoins for every stablecoin; omit for all"
    },
    "limit": {
      "type": "integer",
      "default": 25,
      "maximum": 200,
      "minimum": 1,
      "description": "Maximum number of results"
    },
    "protocol": {
      "type": "string",
      "enum": [
        "aave_v3",
        "spark",
        "compound_v3"
      ]
    },
    "minTvlUsd": {
      "default": 1000000,
      "description": "Leave out markets with less supplied",
      "type": "number"
    }
  }
}
🟢markets.prediction(limit, category, q)

Prediction markets live from Hyperliquid HIP-4 ($0.005): every open market as a plain question with each option's probability, 24h change in points and 24h USDC volume, most traded first: crypto and stock price targets, Fed and central-bank rate decisions, IPOs (Anthropic, OpenAI), sports and awards. Filter by category or text.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 25,
      "maximum": 200,
      "minimum": 1,
      "description": "Maximum number of results"
    },
    "category": {
      "type": "string",
      "enum": [
        "crypto",
        "stocks",
        "macro",
        "ipo",
        "sports",
        "awards",
        "other"
      ],
      "description": "News category; omit for all"
    },
    "q": {
      "type": "string",
      "description": "Text to find in the question or options, e.g. BTC, FOMC, Anthropic"
    }
  }
}
🟢macro.fed_odds

Fed rate decision odds ($0.005): probability of a cut, no change or a hike at the next FOMC and other central-bank decisions, from Hyperliquid prediction markets, with 24h change, volume and the decision date.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢stocks.fundamentals(symbols)

Fundamentals of up to 10 US-listed companies in one call ($0.03): per ticker revenue, earnings, margins, growth, balance sheet and a fundamental signal from SEC filings.

Input Schema

{
  "type": "object",
  "properties": {
    "symbols": {
      "maxItems": 10,
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "type": "array",
      "description": "US tickers, e.g. [\"AAPL\", \"MSFT\"]"
    }
  },
  "required": [
    "symbols"
  ]
}
🟢market.explain_move(symbol)

Why is a symbol moving? ($0.02) The 15-minute move and its likely drivers from every source (on-chain flow, unusual activity, smart money, perp crowding, 48h news, SEC filings, insiders) with direction and weight, plus a one-sentence summary. Crypto, tokenized stocks and US stocks.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "type": "string",
      "description": "e.g. ETHUSD, NVDA, TSLA"
    }
  },
  "required": [
    "symbol"
  ]
}
🟢market.summary(window)

Get market-wide breadth, buying pressure, momentum, unusual activity and data freshness. Use for breadth, regime and the top movers in one call; for a goal-driven scan use market.opportunities.

Input Schema

{
  "type": "object",
  "properties": {
    "window": {
      "default": "5m",
      "type": "string",
      "enum": [
        "1m",
        "5m",
        "15m"
      ],
      "description": "Aggregation window of the live trade buckets: 1m, 5m (default) or 15m"
    }
  }
}
🟢news.symbol(symbol, limit)

News for one symbol ($0.003): headlines and SEC filing events tagged with the ticker (e.g. NVDA, ETHUSD), newest first, with publisher attribution, sentiment and an event type and materiality where classified.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "type": "string",
      "description": "Ticker or crypto pair, e.g. NVDA, TSLA, ETHUSD"
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of results"
    }
  },
  "required": [
    "symbol"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded15 tools