PredMCP
REMOTE · PREDMCP.COM · SCANNED SEP 20
Polymarket + Hyperliquid + macro for AI agents. 38 tools, signal backtest, SSE streaming. Free tier.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security91
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability77
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 6037 tokens (~116/item across 52 items; 52 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 52 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 52 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the PredMCP MCP server?
PredMCP is a hosted endpoint at https://predmcp.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · predmcp.com
claude mcp add --transport http raviolelabs-predmcp 'https://predmcp.com/mcp'
{
"mcpServers": {
"raviolelabs-predmcp": {
"url": "https://predmcp.com/mcp"
}
}
} {
"servers": {
"raviolelabs-predmcp": {
"type": "http",
"url": "https://predmcp.com/mcp"
}
}
} [mcp_servers.raviolelabs-predmcp] url = "https://predmcp.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"raviolelabs-predmcp": {
"type": "remote",
"url": "https://predmcp.com/mcp",
"enabled": true
}
}
} openclaw mcp add raviolelabs-predmcp --url 'https://predmcp.com/mcp' --transport streamable-http
mcp_servers:
raviolelabs-predmcp:
url: "https://predmcp.com/mcp" {
"McpServers": {
"raviolelabs-predmcp": {
"Transport": "http",
"Url": "https://predmcp.com/mcp"
}
}
} assistant mcp add raviolelabs-predmcp -t streamable-http -u 'https://predmcp.com/mcp'
{
"mcpServers": {
"raviolelabs-predmcp": {
"type": "http",
"url": "https://predmcp.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 0
- Stability: fail → pass ▲ security
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 94 to 98.
- 24 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 91 to 94.
- 21 Aug 26 0
- Stability: 0.83 → fail ▼ security
- A breaking change shipped without a version bump: still 0.7.0 ▼ security
- Tool “get_signals” was removed ▼ security
- Schema quality: pass → fail ▼ functional
- New tool “get_market_edge” functional
- New tool “get_market_edges” functional
- New tool “get_news_feed” functional
- New tool “get_news_signals” functional
- New tool “get_outcome_edges” functional
- New tool “get_outcome_fair_value” functional
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Probed https://predmcp.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=predmcp.com | CN=YE1,O=Let's Encrypt,C=US | 5 Sept 2026 | 4 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 6e5482e618a35236ca60870936cae9a6f2f |
| SANs: predmcp.com, www.predmcp.com | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of predmcp.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| predmcp.com. | present | 54719 | 8 | Verified |
| predmcp.com. | Verified address RRset verified with the apex keys |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer realm="predmcp", error="invalid_token", resource_metadata="https://predmcp.com/.well-known/oauth-protected-resource"
Bearer realm="predmcp", error="invalid_token", resource_metadata="https://predmcp.com/.well-known/oauth-protected-resource" Protected resource metadata
| Document | https://predmcp.com/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://predmcp.com/mcp |
| Authorisation server | https://predmcp.com |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://predmcp.com/mcp | Verified | 200 | |
| http (plaintext) | http://predmcp.com/mcp | HTTPS enforced | 301 | https://predmcp.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
create_api_key Create API Key ~65
Generate a free PredMCP API key. Requires an email. Returns the key and ready-to-use MCP config. Free tier: 100 calls/day, one key per IP.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Your email address — used to identify your key and for account recovery |
No output schema declared.
No examples provided.
get_basic_macro Get Basic Macro ~65
DXY, US10Y yield, S&P 500, gold, VIX — direct from free Yahoo Finance. Raw values + 1d change. Pro adds BTC dominance, ETH/BTC, total crypto mcap, and a RISK_ON/OFF regime classifier.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_carry_scanner Get Carry Scanner ~111
Funding carry NET of costs: annualized funding minus (spread + 2x slippage at your size), with break-even holding period and a 7d funding-stability score from our snapshots. get_top_funding_rates shows gross — nobody trades gross.
| Name | Type | Req | Description |
|---|---|---|---|
| size_usdc | number | – | Intended position size in USDC — costs are computed at this size |
| top_n | integer | – | How many candidates to fully cost out (default 8 — each costs an orderbook call) |
No output schema declared.
No examples provided.
get_cex_outflows Get CEX Outflows ~107
Net ETH outflows across known CEX hot wallets (Binance, Coinbase, OKX, Kraken, Bitfinex) over a window. Outflow = bullish (BTC moving to cold storage). Inflow = distribution pressure. Etherscan free tier.
| Name | Type | Req | Description |
|---|---|---|---|
| exchange | string | – | Filter to a single exchange or aggregate all (default: all) |
| window_hours | number | – | Lookback window in hours (default: 24h, max: 7d) |
No output schema declared.
No examples provided.
get_conviction_score Get Conviction Score ~139
Aggregates funding outlier, whale imbalance, OI/volume ratio, and momentum into a single directional score (-100 short ↔ +100 long) plus a 0-100 strength score. One call replaces 6+ lookups, returns a clean number for LLM decisions.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Asset ticker to analyze, e.g. "BTC", "ETH", "HYPE" |
| min_whale_notional_usdc | number | – | Whale trade threshold in USDC (default: 25,000) |
| whale_window_minutes | integer | – | Lookback window for whale trades (default: 60min) |
No output schema declared.
No examples provided.
get_cross_venue_funding Get Cross-Venue Funding ~102
Predicted funding spreads between Hyperliquid, Binance, and Bybit per asset (from HL's predictedFundings feed). Surfaces delta-neutral carry: long the venue with lowest funding, short the highest, collect the spread. Sorted by annualized spread.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max rows (default 15) |
| min_spread_annual_pct | number | – | Minimum annualized funding spread between venues to report (default 5%) |
No output schema declared.
No examples provided.
get_funding_curve_anomaly Get Funding Curve Anomaly ~77
Term-structure analysis of Hyperliquid funding for an asset: current vs 8h avg vs 24h avg vs 7d baseline. Flags spikes, regime shifts, sign contradictions. More nuanced than raw funding rate.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Asset ticker, e.g. "BTC", "HYPE" |
No output schema declared.
No examples provided.
get_funding_outliers Get Funding Outliers ~96
Hyperliquid perps whose current funding rate deviates significantly from their 7-day average. A spike vs baseline is a stronger signal than raw rate.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Historical window in days to compute the baseline average (default: 7) |
| min_deviation_factor | number | – | Minimum ratio of |current_rate| / |avg_rate| to qualify as outlier (default: 2x) |
No output schema declared.
No examples provided.
get_funding_rates Get Funding Rates ~72
Current funding rates for Hyperliquid perpetuals. Positive rate = longs pay shorts (bearish bias); negative = shorts pay longs (bullish bias).
| Name | Type | Req | Description |
|---|---|---|---|
| coins | array | – | List of asset tickers to fetch, e.g. ["BTC", "ETH"]. Omit to fetch all available assets. |
No output schema declared.
No examples provided.
get_hip4_vs_pm_arb Get HIP-4 vs PM Arb ~88
Finds the same underlying market priced on both HIP-4 (on-chain Hyperliquid) and Polymarket, flagging spreads above threshold. A spread means one venue is mispriced relative to the other.
| Name | Type | Req | Description |
|---|---|---|---|
| min_spread_pct | number | – | Minimum spread between HIP-4 and Polymarket YES prices to flag (percentage points, default: 3) |
No output schema declared.
No examples provided.
get_late_game_sports Get Late Game Sports ~90
Sports prediction markets on Polymarket closing within a few hours with a high-certainty leading outcome. Targets near-certain resolution for late-game positioning.
| Name | Type | Req | Description |
|---|---|---|---|
| certainty_pct | number | – | Minimum leading outcome probability as percentage, e.g. 85 = 85% (default: 85) |
| hours_max | number | – | Maximum hours until market closes (default: 6h) |
No output schema declared.
No examples provided.
get_liquidation_clusters Get Liquidation Clusters ~70
Estimated price levels where mass liquidations concentrate for a given Hyperliquid perp, computed from mark price and standard leverage multiples. Higher nearby orderbook liquidity = stronger support/resistance.
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | yes | Asset ticker to analyze, e.g. "BTC", "ETH", "SOL" |
No output schema declared.
No examples provided.
get_macro_context Get Macro Context ~68
Live macro snapshot: DXY, US10Y yield, S&P 500, gold, VIX (Yahoo Finance free) + BTC dominance, ETH/BTC, total crypto market cap (CoinGecko free). Plus a coarse RISK_ON / RISK_OFF / MIXED regime.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_macro_liquidity Get Macro Liquidity ~54
Fiat-to-crypto liquidity gauge: BTC + ETH spot ETF flows (Farside) plus on-chain USDT + USDC mint/burn (Etherscan). Net inflow = bullish for risk assets.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_market_context Get Market Context ~91
Unified intelligence snapshot for any topic, asset, or keyword: all matching Polymarket and HIP-4 prediction markets combined with live Hyperliquid perp data (price, funding, OI). One call replaces 3+ separate lookups.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Topic, asset, or keyword to look up — e.g. "BTC", "Iran", "Fed rate cut", "Trump" |
No output schema declared.
No examples provided.
get_market_edge Get Market Edge ~356
Universal fair-value anchor for ONE market of ANY category. Pass the question (+ optional strike/comparator/expiry/underlying for price markets, + yes_price). Dispatches to the best anchor: options/vol fair value (crypto price), a confident Polymarket twin (events/politics/sports), or a soft news lean. Returns { method, confidence, anchor_prob, hip4_yes, edge_pt, verdict, source_ref, note }. edge_pt = (anchor_prob - hip4_yes)*100; positive = YES cheap; null for untraded/synthetic prices.
| Name | Type | Req | Description |
|---|---|---|---|
| comparator | string | – | Price-market shape. |
| expiry_iso | string | – | Resolution time (ISO 8601) for price markets. |
| is_traded | boolean | – | Explicit attestation that the YES price comes from a real traded book. Alternative to vol_24h. |
| question | string | yes | The market question, e.g. "BTC above $70,000 at Aug 21 06:00 UTC?" or "Will Fed cut rates in September?" |
| strike | number | – | Strike/threshold for price markets. |
| strike_high | number | – | Upper bound for range price markets. |
| underlying | string | – | Underlying ticker for price markets, e.g. "BTC". |
| vol_24h | number | – | 24h traded volume of the market. REQUIRED for an edge/verdict: absent (or 0) the YES price is treated as untraded and only the anchor is returned. |
| yes_price | number | – | Current on-chain YES price (0..1). Edge is only computed for a real traded price (0.5 exactly is treated as synthetic/untraded). |
No output schema declared.
No examples provided.
get_market_edges Get Market Edges ~166
One-call universal mispricing scanner across ALL HIP-4 market types (crypto price, sports, politics, macro, events). Resolves every market to its best anchor (options / Polymarket twin / news lean / none) and ranks by |edge|. Filter with method / min_edge_pt / limit. Returns by_method counts + ranked markets. Superset of get_outcome_edges.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max markets to return (default 30, max 100). |
| method | string | – | Filter to markets resolved via one anchor method. Passing "news" also enables the (slower) news lean. |
| min_edge_pt | number | – | Only return markets whose |edge| in probability points is at least this (default 0 = whole board). |
No output schema declared.
No examples provided.
get_market_regime Get Market Regime ~84
One-call market regime classifier: RISK_ON_TRENDING / RISK_OFF / SQUEEZE_RISK / CHOP_LOW_VOL / MIXED. Combines BTC trend + realized vol, Deribit IV premium, funding breadth, and OI-weighted crowding across the top 50 perps. Call this FIRST each session to condition strategy choice.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_markets Get Markets ~105
Live prediction markets from Polymarket and/or HIP-4, sorted by volume. Returns title, YES/NO prices, 24h volume, and expiry.
| Name | Type | Req | Description |
|---|---|---|---|
| active | boolean | – | Filter to active/open markets only (default: true) |
| limit | integer | – | Number of markets to return (1–100, default: 20) |
| platform | string | – | Data source: "polymarket", "hip4", or "all" (default) |
No output schema declared.
No examples provided.
get_markets_near_resolution Get Markets Near Resolution ~90
Polymarket markets resolving within the next N hours with a leading probability above threshold. Useful for resolution arbitrage and last-minute positioning.
| Name | Type | Req | Description |
|---|---|---|---|
| hours | number | – | Maximum hours until resolution (default: 24h, max: 168h = 7 days) |
| min_prob | number | – | Minimum leading outcome probability to include (default: 0.7 = 70%) |
No output schema declared.
No examples provided.
get_movers Get Movers ~66
Top prediction markets ranked by 24h volume spike or biggest YES/NO price swing. Surfaces breaking news bets and momentum plays across Polymarket and HIP-4.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of top movers to return (1–20, default: 10) |
No output schema declared.
No examples provided.
get_news_correlation Get News Correlation ~96
Recent crypto news headlines mentioning an asset (CoinDesk, The Block, Decrypt, Cointelegraph) paired with the 1h price move that followed each. Lets agents filter news bias.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Asset ticker, e.g. "BTC", "ETH", "HYPE" |
| hours_back | integer | – | Lookback window for headlines (default: 24h, max: 7d) |
No output schema declared.
No examples provided.
get_news_feed Get News Feed ~125
Recent headlines across crypto, finance and sports RSS feeds, unfiltered and unclassified. Unlike get_recent_news it does not filter by asset ticker, so it also covers the sports, macro and event markets that make up most of a HIP-4 board. Match the headlines against your own market list.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Restrict to one feed category (default: all). |
| hours_back | integer | – | Lookback window in hours (default 24, max 168). |
| limit | integer | – | Max headlines returned (default 40, max 100). |
No output schema declared.
No examples provided.
get_news_signals Get News Signals ~194
News → markets recommender: pulls recent crypto headlines, classifies each event type (depeg/hack_exploit/listing/delisting/unlock/regulatory/partnership/outage/hype/fud/macro), extracts the assets, maps to affected HIP-4 markets, and assigns a directional lean (YES up / YES down). Heuristic, low/medium confidence, NOT financial advice; war/hard-politics excluded. Powers a live "event → affected markets → lean" feed. Filter with hours / event_type / min_confidence / limit.
| Name | Type | Req | Description |
|---|---|---|---|
| event_type | string | – | Filter to one event type. |
| hours | integer | – | Lookback window for headlines (default 24h, max 72h). |
| limit | integer | – | Max signals to return (default 20, max 50). |
| min_confidence | string | – | Minimum confidence to include (default: low). |
No output schema declared.
No examples provided.
get_odds Get Odds ~88
Current YES/NO prices and implied probability for any Polymarket or HIP-4 market token.
| Name | Type | Req | Description |
|---|---|---|---|
| identifier | string | yes | For Polymarket: the token_id of the YES or NO outcome. For HIP-4: the base asset ticker (e.g. "BTC") |
| platform | string | yes | Platform the market is on: "polymarket" or "hip4" |
No output schema declared.
No examples provided.
get_oi_divergence Get OI Divergence ~116
Price-vs-OI regime per coin from our continuous snapshots: NEW_LONGS / SHORT_SQUEEZE / NEW_SHORTS / LONG_LIQUIDATION. Scan all tracked coins or analyze one. Impossible without OI history, which no public API provides — only predmcp records it.
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | – | One coin (e.g. "BTC") — omit to scan all tracked coins |
| hours | integer | – | Lookback window in hours (default 24, max 90d) |
No output schema declared.
No examples provided.
get_oi_history Get OI History ~131
Open-interest time series for a coin over the last 24h, from our continuous 5-min collector. Hyperliquid has NO OI-history endpoint — this data exists only on predmcp. Includes price + funding at each point. Pro tool get_oi_divergence classifies price-vs-OI regimes (squeeze/liquidation/new positioning) across all coins.
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | yes | Coin, e.g. "BTC" (top ~30 by OI are tracked) |
| hours | integer | – | Lookback window in hours (free tier max: 24) |
No output schema declared.
No examples provided.
get_oi_near_cap Get OI Near Cap ~45
Lists Hyperliquid perps that are currently at the open interest cap — new long positions cannot be opened. Use as a blacklist to avoid getting rejected on entry.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_options_iv Get Options IV ~83
BTC or ETH options snapshot via free Deribit feed: ATM implied volatility, put-call skew, term structure, total OI and 24h volume. Useful as a sentiment gauge — IV high = market expects big moves; skew indicates direction of hedging.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Underlying — Deribit only supports BTC and ETH for the free public feed. |
No output schema declared.
No examples provided.
get_orderbook Get Orderbook ~56
Full orderbook depth (bids + asks) for any Polymarket market token. Shows liquidity at each price level.
| Name | Type | Req | Description |
|---|---|---|---|
| token_id | string | yes | Polymarket token ID for the YES or NO side of a market |
No output schema declared.
No examples provided.
get_orderbook_depth Get Orderbook Depth ~173
Full orderbook depth + slippage estimate for any Hyperliquid perp or HIP-4 market. Returns top of book, spread, cumulative depth at $100/$500/$1k/$5k tiers, and estimated slippage for a given order size. Critical for HIP-4 farming and low-liquidity assets where market orders get destroyed by slippage.
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | yes | Asset ticker (BTC, ETH, SOL) or HIP-4 contract name (e.g. "BTC>81041@20260512-0600") |
| side | string | – | Order side: "buy" (taker into asks) or "sell" (taker into bids) |
| size_usdc | number | – | Order size in USDC to estimate slippage for (default: 200) |
No output schema declared.
No examples provided.
get_outcome_edges Get Outcome Edges ~195
One-call mispricing scanner for autonomous agents: every live HIP-4 PRICE market, each priced against its options/vol-implied fair value and ranked by |edge|. BTC/ETH use the Deribit IV smile; other assets use Hyperliquid realized vol (iv_source labels which). edge_pt = (implied_prob - yes_price)*100, computed only where a real traded YES price exists (synthetic/untraded 0.5 placeholders return edge_pt:null so no fake edge is surfaced). Filter with min_edge_pt / underlying. The whole board without looping.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max markets to return (default 30, max 100). |
| min_edge_pt | number | – | Only return markets whose |edge| in probability points is at least this (default 0 = the whole board). |
| underlying | string | – | Filter to one underlying ticker, e.g. "BTC". |
No output schema declared.
No examples provided.
get_outcome_fair_value Get Outcome Fair Value ~338
Options/vol-implied fair value for a HIP-4 binary/range/touch PRICE market ("<asset> above $X at time T?"). Returns the risk-neutral probability the market resolves YES, and — if you pass market_yes_price — the signed edge in probability points and a YES cheap/rich/fair verdict. BTC/ETH price off the live Deribit IV smile (interpolated to strike + DTE); ANY other asset falls back to Hyperliquid 30d realized vol. iv_source labels which was used (smile/term_interp/skew_adj/atm/realized_vol). The touch case uses the correct drifted first-passage formula. Approximations are listed in caveats.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Underlying ticker, e.g. "BTC", "ETH", "SOL", "HYPE". BTC/ETH use the Deribit IV smile; others use Hyperliquid realized vol. |
| comparator | string | yes | Market shape: above/below a strike, inside a range [strike, strike_high], or touches the strike before expiry. |
| expiry_iso | string | yes | Market resolution time as an ISO 8601 string, e.g. "2026-08-21T06:00:00Z". |
| market_yes_price | number | – | Current on-chain YES price (0..1) to compute the edge against fair value. |
| strike | number | yes | The market's strike / threshold price, e.g. 70000. |
| strike_high | number | – | Upper bound for range markets (must be > strike). Ignored otherwise. |
No output schema declared.
No examples provided.
get_pm_hl_divergences Get PM/HL Divergences ~98
Markets where Polymarket implied probability diverges from Hyperliquid perpetual funding direction — e.g. PM prices bullish outcome but HL funding shows crowded longs (bearish pressure). The hardest signal to compute manually.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of divergences to return (default: 15) |
| min_pct | number | – | Minimum divergence percentage between PM implied probability and HL pricing to flag (default: 10%) |
No output schema declared.
No examples provided.
get_portfolio_risk Get Portfolio Risk ~88
Risk analytics for a list of positions: per-position beta to BTC and ETH, sector concentration, pairwise correlation matrix, portfolio annualized volatility, 1-day 95% parametric VaR. Uses 14d of 1h Hyperliquid candles.
| Name | Type | Req | Description |
|---|---|---|---|
| positions | array | yes | Array of positions: { asset, side, notional_usd }. Max 20. |
No output schema declared.
No examples provided.
get_position_size Get Position Size ~219
Turn a signal + bankroll into a concrete position: fractional-Kelly size capped by orderbook liquidity, ATR-based stop, liquidation price at chosen leverage, funding carry cost, and % bankroll at risk. Warns when liquidation sits inside the stop. Ground win_rate_pct with get_signal_performance or get_signal_backtest first.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Asset, e.g. "BTC" |
| bankroll_usdc | number | yes | Total capital available in USDC |
| direction | string | yes | Trade direction |
| kelly_fraction | number | – | Fraction of full Kelly to use (default 0.25 — quarter Kelly) |
| leverage | number | – | Intended leverage (default 3x) |
| max_slippage_pct | number | – | Max acceptable slippage % — caps size by orderbook depth |
| payoff_ratio | number | – | Avg win / avg loss ratio (default 1.5) |
| win_rate_pct | number | – | Estimated win probability % (use get_signal_performance or get_signal_backtest to ground this) |
No output schema declared.
No examples provided.
get_price_summary Get Price Summary ~79
One-call snapshot for an asset: mark price, 24h and 7d returns, 30d high/low, drawdown from high, rally from low, annualized realised volatility. Computed from 30d of HL hourly candles.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Asset ticker, e.g. "BTC", "HYPE" |
No output schema declared.
No examples provided.
get_recent_news Get Recent News ~114
Recent crypto news headlines matching an asset ticker, from CoinDesk + The Block + Decrypt + Cointelegraph RSS feeds. Pro adds the 1h price move that followed each headline.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Asset ticker to filter on, e.g. "BTC", "ETH", "HYPE" |
| hours_back | integer | – | Lookback window in hours (default: 24, max: 168 = 7 days) |
| limit | integer | – | Max headlines returned (default: 10) |
No output schema declared.
No examples provided.
get_recent_signals Get Recent Signals ~147
Server-detected events from the last hour: funding outliers (≥3x 7d baseline), whale trades (≥$100k), OI caps reached. Cursor-based — pass next_cursor back as since_id to receive only new events. The polling equivalent of the /sse/signals stream. Pro tool get_signal_history covers 7 days with forward-return outcomes.
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | – | Filter to one coin, e.g. "BTC" |
| limit | integer | – | Max events (free tier cap: 20) |
| since_id | integer | – | Cursor from a previous call — returns only events with id > since_id. Omit on first call. |
No output schema declared.
No examples provided.
get_setup_quality Get Setup Quality ~118
Execution-quality score (0-100, A-F grade) for entering a position right now: spread, slippage at desired size, orderbook depth, volatility regime, trend alignment, support/resistance proximity. Different from conviction (direction) — this scores ENTRY conditions.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Asset ticker, e.g. "BTC", "HYPE" |
| direction | string | yes | Trade direction you are considering |
| size_usdc | number | – | Order size in USDC to evaluate slippage for (default: 200) |
No output schema declared.
No examples provided.
get_signal_backtest Get Signal Backtest ~232
Find historical instances of a signal type on an asset over the last N days and compute forward returns (1h/4h/24h), win rate, and Sharpe. Lets an agent reason about EV before trading. Killer feature: turns predmcp from data API into edge-proven intelligence.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Asset ticker, e.g. "BTC", "HYPE" |
| lookback_days | integer | – | How many days of history to scan (default: 90, max: 180) |
| min_abs_rate | number | – | For funding_extreme: minimum absolute funding rate (default: 0.0005 = 0.05%) |
| min_separation_hours | integer | – | Cluster consecutive triggers — at least N hours apart (default: 8h) |
| signal_type | string | yes | Which signal to backtest. funding_outlier = funding >= z×baseline; funding_extreme = abs(funding) >= threshold. |
| z_score | number | – | For funding_outlier: minimum deviation factor vs the rolling mean (default: 3×) |
No output schema declared.
No examples provided.
get_signal_history Get Signal History ~166
Server-detected signal events over up to 7 days (funding outliers, whale trades ≥$100k, OI caps), each joined with its measured forward returns (1h/4h/24h) once mature. Cursor-based. "What happened last time funding spiked on HYPE — and did it matter?" in one call.
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | – | Filter to one coin, e.g. "BTC" |
| hours_back | integer | – | Lookback window in hours (default 24, max 168 = 7d) |
| limit | integer | – | Max events (default 50) |
| signal_types | array | – | Filter to specific signal types |
| since_id | integer | – | Cursor — only events with id > since_id |
No output schema declared.
No examples provided.
get_signal_performance Get Signal Performance ~112
Hit rates and average forward returns per signal type, measured on OUR actually-emitted production signals (not a backtest reconstruction). Use this to ground win_rate inputs for get_position_size. Sample sizes included — treat n < 10 as anecdotal.
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | – | Filter to one coin, e.g. "BTC" |
| days | integer | – | Lookback window (default 30, max 90) |
| signal_type | string | – | Filter to one signal type (default: all) |
No output schema declared.
No examples provided.
get_simple_iv Get Simple IV ~63
BTC or ETH options snapshot via free Deribit public feed: ATM implied volatility, total OI, 24h volume. Pro adds put-call skew + full term structure parsing.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Underlying — Deribit free feed supports BTC and ETH. |
No output schema declared.
No examples provided.
get_top_funding_rates Get Top Funding Rates ~94
Top Hyperliquid perps ranked by absolute funding rate, with OI and annualized yield. Useful for finding the most overcrowded longs/shorts and carry opportunities.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of top results to return (default: 10) |
| min_abs_rate | number | – | Minimum absolute funding rate to include, e.g. 0.0001. Omit to include all. |
No output schema declared.
No examples provided.
get_upcoming_catalysts Get Upcoming Catalysts ~112
Lists upcoming market catalysts for an asset within a horizon: token unlocks, governance votes (Tally), ETF/SEC deadlines, FOMC dates. Helps agents avoid blind trades into known events. Free data sources (Tally + curated DB).
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Asset ticker, e.g. "ARB", "SOL", "BTC" |
| horizon_hours | integer | – | Horizon in hours (default: 168 = 7 days, max: 720 = 30 days) |
No output schema declared.
No examples provided.
get_volume_spikes Get Volume Spikes ~88
Polymarket markets with abnormal 24h volume vs their 7-day daily average. Volume spikes typically precede news events or informed positioning.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of results to return (default: 15) |
| min_ratio | number | – | Minimum ratio of 24h volume vs 7-day daily average to qualify as a spike (default: 3x) |
No output schema declared.
No examples provided.
get_whale_flow Get Whale Flow ~139
Cumulative whale buy/sell imbalance over hours-to-days from the durable trade tape (≥$25k trades persisted continuously, restart-proof). Returns imbalance ratio (-1..+1), BUY/SELL_DOMINANT verdict, and the largest recent prints. Longer horizons than get_whale_trades (1h buffer).
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | yes | Coin, e.g. "BTC" (top ~10 by OI are taped) |
| hours | integer | – | Lookback window in hours (default 24) |
| min_notional_usdc | number | – | Threshold for the sample trades list (tape floor: $25k) |
No output schema declared.
No examples provided.
get_whale_label Get Whale Label ~67
Look up an Ethereum address against our curated label DB (CEX hot wallets, known market makers, suspected funds). Lets agents distinguish mechanical MM flow from alpha-generating activity.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Ethereum address to look up (0x-prefixed, 40 hex chars). |
No output schema declared.
No examples provided.
get_whale_positions Get Whale Positions ~123
Positions of a specific Polymarket wallet, optionally filtered to one market. The /positions API requires a user (no public "all holders by market" endpoint), so pass the wallet address of the trader you want to inspect.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | – | Optional — filter results to a specific market by condition_id. |
| min_size_usdc | number | – | Minimum position size in USDC to include in results (default: 1,000). |
| user | string | yes | Polygon wallet address (0x…) of the user whose positions you want. |
No output schema declared.
No examples provided.
What is the PredMCP MCP server?
PredMCP is an MCP server listed in the public MCP registry as io.github.RavioleLabs/predmcp. Polymarket + Hyperliquid + macro for AI agents. 38 tools, signal backtest, SSE streaming. Free tier. This page covers its hosted endpoint (https://predmcp.com/mcp).
Is the PredMCP MCP server safe to use?
PredMCP scores 92 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the PredMCP MCP server expose?
PredMCP exposes 52 tools: create_api_key, get_markets, get_odds, get_orderbook, search_markets, and 47 more. Their descriptions and schemas cost roughly 6,037 tokens of context every time the server is loaded.
Does the PredMCP MCP server require authentication?
Yes. PredMCP asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the PredMCP MCP server still maintained?
PredMCP is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.