Fan Token Intel
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Fan-token intelligence for Chiliz Chain: prices, whale flows, match event impact. 22 read tools.
| Author | io.github.BrunoPessoa22 |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 164 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Fan Token Intel": {
"url": "https://mcp-production-f681.up.railway.app/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (25)
tokenintel_discoverDiscover available tools on the Fan Token Intel MCP server. Returns tool names and one-line descriptions, organized by category. Call with no arguments for all categories, or specify a category to filter. Categories: market_data, signals, sports, social, defi, agent, portfolio, volume, chain_info. Tip: connect with ?modules=market_data,signals to load only specific categories.
Parameters:
category— string — Filter to a specific category (optional). Omit for all.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_describeGet the full input schema for a specific tool. Returns the JSON Schema (parameters, types, required fields, descriptions) needed to call the tool via tokenintel_invoke. Use tokenintel_discover first to find tool names.
Parameters:
tool_name(required) — string — The tool name to describe (e.g. 'tokenintel_whale_flows').
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_invokeInvoke any tool on the Fan Token Intel MCP server by name. Pass the tool_name and its arguments. The result is identical to calling the tool directly. Auth and rate limits apply as normal. Use tokenintel_describe to get the required arguments first.
Parameters:
tool_name(required) — string — The tool to invoke (e.g. 'tokenintel_whale_flows').arguments— object — Arguments to pass to the tool (matches the tool's inputSchema).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_registerGet a free Fan Token Intel API key, self-serve — no human in the loop. Provide a name, an email, and terms_accepted=true; the key (ti_live_...) comes back in the response along with your tier and rate limits. Free-tier keys unlock the whole read-only data layer, event-impact tools included (60 req/min). Pass the key as 'Authorization: Bearer ti_live_xxx' (HTTP) or the TOKENINTEL_API_KEY env var (stdio). Rate-limited to one registration per 10 minutes per caller.
Parameters:
name(required) — string — Agent display name (3-100 chars)email(required) — string — Contact email. The key may require clicking the emailed verification link before authenticated calls succeed.terms_accepted(required) — boolean — Must be true to accept the Terms of Use and Privacy Policy (https://fantokenintel.com/legal).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_briefingAll-in-one ECOSYSTEM briefing: market regime, active signals, anomalies, health matrix, sports calendar, and whale activity in one response. Use instead of calling 6+ tools sequentially. USE THIS for a market-wide overview. USE tokenintel_token_context for a SINGLE-TOKEN deep dive (price, signals, health, whale flow, sports catalyst, news — all for one symbol). Returns data, not recommendations -- interpret results yourself.
Parameters:
focus— string — Optional token symbol to focus on (e.g., 'BAR'). Omit for full ecosystem view.timeframe— string — Briefing depth: 'morning' (24h window, default) or 'weekly' (7-day trends).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_health_matrixGet health grades (A-F) for all tracked fan tokens. Each token is scored across trading volume, order-book liquidity, spread, holder distribution and price stability -- 5-pillar weighted: volume(25%) + liquidity(25%) + spread(20%) + holders(15%) + price_stability(15%). The grade is the token's percentile standing WITHIN the fan-token universe (A=top 10%, B=next 20%, C=middle 40%, D=next 20%, F=bottom 10%); health_score stays the absolute 0-100 pillar score. A pillar whose collector delivered no data is excluded and the remaining weights are renormalized (see missing_pillars), never scored as 0. Use this to quickly filter which tokens deserve attention relative to their peers. Detailed mode (default) includes the per-pillar sub-scores; pass response_format='concise' to get just symbol/grade/score/change (~70% smaller) when you don't need team/league/volume/age detail.
Parameters:
response_format— string — 'detailed' (default) = all fields + legend; 'concise' = symbol/grade/score/change_24h only.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_market_regimeGet current market conditions — BTC trend, CHZ momentum, fear/greed index, and the platform's market regime classification. Useful for filtering or adjusting signal confidence based on macro conditions.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_macro_contextGet current crypto macro context: BTC dominance, CHZ price, funding rates, fear & greed index, and risk environment assessment.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_token_contextSINGLE-TOKEN deep dive: realtime price, CEX whale flow, on-chain Chiliz Chain (FanX) liquidity with slippage at 1%/5% of reserves, and upcoming matches for one symbol. The default tool to call before evaluating a trading decision on a specific token. USE THIS when you have a target token in mind. USE tokenintel_briefing when you want the market-wide overview instead.
Parameters:
token(required) — string — Token symbol (e.g., ASR, BAR, CHZ)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_realtime_pricesGet the freshest available prices with staleness metadata. Returns price_age_seconds so agents know exactly how stale each price is. Lightweight and fast -- call this before any trade decision to get current prices. Supports multiple tokens in a single call.
Parameters:
tokens(required) — string — Comma-separated token symbols (e.g., 'BAR,PSG,JUV')
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_price_candlesHistorical OHLCV price candles for any fan token. Intervals: 1h, 4h, 1d. Up to 180 days lookback. Returns open, high, low, close, volume for each period. Use for backtesting, charting, trend analysis, or building your own signals.
Parameters:
token(required) — string — Token symbol (e.g., 'BAR', 'PSG', 'CHZ').days— integer — Lookback in days (max 180). Default: 30.limit— integer — Max candles to return (max 500). Default: 200.interval— string — Candle interval. Default: 4h.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_whale_flowsGet real-time whale distribution data for a fan token. Shows the ratio of whale sells to total whale activity on CEX exchanges. sell_ratio = whale sell volume / total whale volume; the payload labels >0.65 'distribution' and <0.35 'accumulation' (descriptive labels, not a signal). Data aggregated from CEX exchanges in real-time. USE THIS for aggregate buy/sell pressure on CEX. USE tokenintel_whale_trades for individual trade rows. USE tokenintel_dex_whales for on-chain (Chiliz Chain) swap whales.
Parameters:
token(required) — string — Token symbol (e.g., ASR, BAR, CHZ, CITY, ATM, ACM, JUV, PSG)exchange— string — Filter by specific exchange (optional). Options: binance, okx, htx, kucoin, bybit, gate, mexc, mercadobitcoin, upbit, coinbasemin_trade_usd— number — Minimum trade size in USD (default: 1000). The source table ingests fan-token trades from $10 up, most of it retail-sized; pass 0 to include every trade.timeframe_hours— integer — Lookback window in hours (default: 4)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_social_sentimentSocial sentiment for a fan token. The only live social source is the LunarCrush aggregated feed, and on the current plan it provides galaxy_score and alt_rank ONLY — sentiment and social_volume come back null (see lunarcrush.fields_unavailable); they are unavailable, not zero. Native X/Twitter ingestion was retired 2026-03-01 and native Reddit/YouTube ingestion has never run in production, so those blocks read 0 — data_sources labels each pipeline (active / no_recent_data / inactive_since_<date> / never_active). overall_sentiment is computed only from sources that actually reported activity and is null when none did. Descriptive community-mood data, not a recommendation.
Parameters:
token(required) — string — Token symbol (e.g., ASR, BAR, PSG). Required.hours— integer — Lookback window in hours (default: 24, max: 168)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_capital_rotationCross-token capital flow analysis. Shows which fan tokens are gaining vs losing volume relative to their recent average. Detects rotation: when whales exit one token, where does the capital go?
Parameters:
hours— integer — Compare last N hours vs prior period. Default: 24.limit— integer — Rows returned: the strongest movers by |relative_change_pct| (inflows and outflows both kept). Default 20; counts always cover the whole universe.min_volume_usd— number — Hide dust: tokens whose current AND prior rolling-24h volume are both below this. Default $1,000; pass 0 for everything.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_match_impact_historyHistorical match price impact data for a fan token. Returns price snapshots at -24h, kickoff, fulltime, +1h, +24h with returns for each match. Filter by result (win/loss/draw), competition, venue. WINDOWS: return_total_pct is measured price_24h_before -> price_24h_after (it includes the pregame move, so it can differ in sign from a kickoff-anchored return); return_ko_to_24h_pct is kickoff -> +24h. See the 'semantics' block in the response. Use for backtesting sports-driven strategies.
Parameters:
token(required) — string — Token symbol (e.g., 'BAR').days— integer — Lookback in days (max 365). Default: 90.limit— integer — Max matches (max 200). Default: 100.result— string — Filter by match result. Default: all.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_match_correlationHistorical match-to-price correlation. Ask 'what happens to BAR after Champions League wins?' and get backtested data with price impact percentages. Returns individual match records with price at kickoff, fulltime, +1h, +24h and aggregate stats (avg impact, win rate, best/worst).
Parameters:
token(required) — string — Token symbol (e.g., BAR, PSG, JUV)limit— integer — Number of matches to return (default 20, max 100)venue_filter— string — Filter by home/awayresult_filter— string — Filter by match resultcompetition_filter— string — Filter by competition type
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_goal_direction_asymmetryTHE event-impact moat: how a fan token reacts when its team SCORES vs CONCEDES a goal, market-adjusted vs CHZ at +15/+30/+60m. The blended 'all goals' number hides the real signal — scoring is ~priced-in, conceding moves price. Returns the scored-vs-conceded decomposition with sample sizes and directional hit rates. Only computable here (needs the token<->team map). Descriptive history, not advice.
Parameters:
minute_bucket— string — Optional: restrict to goals in this match-minute bucket.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_event_reaction_profileEvent-conditioned, market-adjusted (vs CHZ) token reaction profiles for football events — by event_type x event_side(for/against) x minute x scoreline_state x importance. Returns mean/median abnormal return, match-clustered t-stat, bootstrap 95% CI, hit rate, decay/persistence, n_events, n_matches, FDR. Omit a dimension to pool. Every cell carries its sample size — descriptive history, not advice.
Parameters:
clean_only— boolean — Only non-overlapping events (conservative). Default true.event_side— string — 'for' = token's team scored / opponent sent off; 'against' = conceded / own red card.event_type— string — Event type.importance— string — Match importance bucket (e.g. high/medium/low).horizon_min— integer — Reaction horizon. Default 30.minute_bucket— stringscoreline_state— string — Token team's state BEFORE the event.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_late_game_redcard_profileRed-card reaction profile (market-adjusted vs CHZ). Rare and high-impact: returns abnormal return at +15/+30/+60m with honest wide confidence intervals and sample size; flags cells with n<15. Descriptive history, not advice.
Parameters:
event_side— string — 'against' = token team's player sent off; 'for' = opponent sent off.minute_bucket— string — Optional match-minute bucket (e.g. '76-90' for late reds).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_match_event_replayEvent-by-event reaction tape for a single match: each goal/red card with its minute, running score, scoreline state, and the market-adjusted token reaction at +15/+30/+60m (plus pre-event drift). The non-reconstructable moat artifact. match_id selects that fixture; token (+ optional date) resolves ONE fixture (the date-selected or most recent) and returns its tape, match metadata, and an other_matches index. Events are never merged across fixtures.
Parameters:
date— string — Optional YYYY-MM-DD; with token, selects that day's fixture instead of the most recent.token— string — Token symbol — resolves its most recent (or date-selected) measured fixture.match_id— string — The matches.match_id (e.g. 'apifb_1391197').
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_match_oddsPrediction-market odds curve for a single match from the in-play odds tape (odds_ticks): per-market (home/draw/away) implied-probability series with source labels (polymarket = CLOB midpoint, apifootball = de-vigged bookmaker odds), pre-match vs in-play segmentation against kickoff, and open/close/min/max summary stats per market. Settlement wind-down artifacts (ticks after a market first prints prob >= 0.99, or after full-time +15min) are excluded by default and counted via excluded_settlement_ticks. Curves are downsampled to <=300 points per market (labeled). match_id selects a fixture directly; token (+ optional date) resolves the most recent covered fixture. Use tokenintel_odds_coverage to discover which matches have odds data.
Parameters:
date— string — Optional YYYY-MM-DD; with token, selects that day's fixture instead of the most recent.token— string — Fan token symbol — resolves its most recent (or date-selected) fixture with odds coverage.match_id— string — The matches/odds_ticks match_id (e.g. 'apifb_1591866'). Covers fixtures with no fan token too.include_settlement_ticks— boolean — Include post-settlement wind-down ticks in the curves (default false).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_odds_coverageDiscover which matches have prediction-market odds coverage in the in-play odds tape (odds_ticks): per-match tick counts by source (polymarket = CLOB midpoint, apifootball = de-vigged bookmaker odds), in-play tick counts vs kickoff, capture span, live dataset totals (computed from the table, never hardcoded), and upcoming fixtures already mapped for capture. In-play odds are unbackfillable — a match that passed uncaptured stays uncovered. Use tokenintel_match_odds to fetch a covered match's probability curves.
Parameters:
token— string — Filter to one fan token's fixtures (e.g. PSG). Fixtures with no fan token are excluded when set.days_back— integer — Only matches with kickoff within the last N days (1-365). Default: all captured history.days_ahead— integer — Include upcoming mapped fixtures kicking off within N days (0-90, default 7). 0 disables the upcoming section.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_governance_validatorsList active validators on Chiliz Chain governance. Shows validator addresses and total CHZ delegated to each. Use this to find the best validator before staking.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_dex_depthGet DEX depth and slippage curves for fan token pools on Chiliz Chain. Computes constant-product (x*y=k) price impact at trade sizes [1%, 5%, 10%, 25%] of pool reserves. Useful for agents evaluating execution costs before trading. Data from latest on-chain liquidity snapshots.
Parameters:
token— string — Token symbol (optional). If omitted, returns all CHZ pairs sorted by TVL.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tokenintel_dex_liquidityGet on-chain DEX liquidity data for fan tokens on Chiliz Chain. Returns pool TVL, depth, token reserves, and estimated slippage. Critical for agents that want to understand execution costs before trading on-chain.
Parameters:
limit— integer — Max pools when no token is given (sorted by TVL). Default 25; pools_total reports the full count.token— string — Token symbol (optional). If omitted, returns all pools sorted by TVL.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.