Foresea Forecasting
Forecast future events and scan prediction-market edges.
Should I use this
Quality & Safety
Findings (2)
- HIGH
- INFOin foresea_analyze_market
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"forecasting": {
"url": "https://foresea.ink/mcp/"
}
}
}Remote endpoints
https://foresea.ink/mcp/streamable-httpWhat it can do
Tool inventory
Tools (21)
π’foresea_forecast(question, description, resolution_criteria, question_type, options, ...)
Call this whenever the user asks about probability, likelihood, or whether something will happen. Good triggers: "Will X happen?", "What are the chances of Y?", "How likely is Z?", "What's the probability thatβ¦", "Do you think X willβ¦", "Should I bet onβ¦". Returns a calibrated YES/NO probability (or numeric/date range) with written rationale and supporting news evidence. If you also have a market price (market_probability) or URL (market_url), pass it to get the model-vs-market edge β how mispriced the market is. Example: question="Will the Fed cut rates by March 2026?", market_probability=0.4 β {predicted_answer:"No", confidence:0.62, rationale, evidence_sources, market_analysis:{model_probability:0.54, edge:+0.14, stance:"model_above_market"}} Handles: binary YES/NO, multiple-choice, numeric ranges, and date questions.
Input Schema
{
"type": "object",
"properties": {
"question": {
"title": "Question",
"type": "string"
},
"description": {
"default": "",
"title": "Description",
"type": "string"
},
"resolution_criteria": {
"default": "",
"title": "Resolution Criteria",
"type": "string"
},
"question_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Question Type"
},
"options": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Options"
},
"categories": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Categories"
},
"variant": {
"default": "variant0_neutral_baseline",
"title": "Variant",
"type": "string"
},
"attach_evidence": {
"default": true,
"title": "Attach Evidence",
"type": "boolean"
},
"evidence_top_k": {
"default": 5,
"title": "Evidence Top K",
"type": "integer"
},
"market_platform": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Market Platform"
},
"market_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Market Url"
},
"market_outcome": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Market Outcome"
},
"market_probability": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Market Probability"
}
},
"required": [
"question"
],
"title": "foresea_forecastArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_forecastOutput"
}π’foresea_analyze_market(question, platform, slug, market_id, ticker, ...)
Call this when the user mentions a specific prediction market by URL, slug, or ticker β or asks whether a particular market is over/underpriced. Good triggers: "Is this Polymarket fair?", "What's the edge on kalshi:XXXXX?", "Should I buy/sell this market?", user pastes a Polymarket or Kalshi URL. Fetches the live price, gathers evidence, forecasts, computes model-vs-market edge, and returns a recommendation. Use foresea_forecast instead when there is no specific live market β just a general probability question. Example: platform="polymarket", slug="fed-rate-cut-march-2026" β {model_probability, market_probability, edge, stance, recommendation, thesis}.
Input Schema
{
"type": "object",
"properties": {
"question": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Question"
},
"platform": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Platform"
},
"slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Slug"
},
"market_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Market Id"
},
"ticker": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Ticker"
},
"market_probability": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Market Probability"
},
"variant": {
"default": "variant0_neutral_baseline",
"title": "Variant",
"type": "string"
},
"evidence_top_k": {
"default": 5,
"title": "Evidence Top K",
"type": "integer"
},
"skills": {
"anyOf": [
{
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Skills"
},
"builtin_skills": {
"default": false,
"title": "Builtin Skills",
"type": "boolean"
},
"ground_in_record": {
"default": false,
"title": "Ground In Record",
"type": "boolean"
},
"tool_loop": {
"default": false,
"title": "Tool Loop",
"type": "boolean"
},
"max_tool_steps": {
"default": 5,
"title": "Max Tool Steps",
"type": "integer"
}
},
"title": "foresea_analyze_marketArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_analyze_marketOutput"
}π’foresea_scan_markets(platform, limit, min_edge, evidence_top_k, query)
Call this when the user wants to find mispriced or interesting markets, not evaluate a specific one. Good triggers: "What should I bet on?", "Find me trading opportunities", "Which markets are mispriced right now?", "What's Foresea's best edge today?", "Scan Polymarket for opportunities". Returns markets ranked by model-vs-market disagreement, each with model probability, market price, and edge. For a specific market, use foresea_analyze_market instead. Example: platform="kalshi", min_edge=0.1 β [{question, market_probability, model_probability, edge, market_url}].
Input Schema
{
"type": "object",
"properties": {
"platform": {
"default": "polymarket",
"title": "Platform",
"type": "string"
},
"limit": {
"default": 4,
"title": "Limit",
"type": "integer"
},
"min_edge": {
"default": 0.1,
"title": "Min Edge",
"type": "number"
},
"evidence_top_k": {
"default": 3,
"title": "Evidence Top K",
"type": "integer"
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Query"
}
},
"title": "foresea_scan_marketsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_scan_marketsOutput"
}π’foresea_batch_quotes(refs)
Call this when the user wants current price/volume for several markets at once -- a watchlist, a portfolio, "check on these 5 markets" -- instead of calling foresea_analyze_market once per market. Each ref is "platform:ident", e.g. "kalshi:KXFED-25JUN-H" or "polymarket:some-market-slug". Every quote carries fetched_at and age_seconds so you can judge freshness yourself -- both venues rate-limit hard, so don't assume a quote is live without checking age_seconds. One bad ref returns an error on that entry only; the rest of the batch still succeeds. Up to 50 refs per call. Example: refs=["kalshi:KXFED-25JUN-H", "polymarket:fed-cut-2026"] β {quotes: [{platform, ident, probability, volume, fetched_at, age_seconds, error}], count, truncated}.
Input Schema
{
"type": "object",
"properties": {
"refs": {
"items": {
"type": "string"
},
"title": "Refs",
"type": "array"
}
},
"required": [
"refs"
],
"title": "foresea_batch_quotesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_batch_quotesOutput"
}π’foresea_check_run(client_run_key)
Call this after foresea_analyze_market timed out or errored with a message naming a client_run_key -- the research it started may still be running server-side. Returns {"status": "running", ...} if it's not done yet (call again in a bit), or the full report once it is. Do not call this speculatively; only use the client_run_key a prior foresea_analyze_market call actually gave you. Example: client_run_key="a1b2c3..." β {status:"running", id:"agent_run_..."} or the full report once complete.
Input Schema
{
"type": "object",
"properties": {
"client_run_key": {
"title": "Client Run Key",
"type": "string"
}
},
"required": [
"client_run_key"
],
"title": "foresea_check_runArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_check_runOutput"
}βͺforesea_track_record
Call this when the user asks how reliable or accurate Foresea is, or wants to know whether to trust a forecast. Good triggers: "How good is Foresea?", "What's the track record?", "Has it been right before?", "Is it calibrated?", "What's the Brier score?". Returns accuracy, Brier score, calibration (ECE), and skill-vs-market broken down by time horizon.
Input Schema
{
"type": "object",
"properties": {},
"title": "foresea_track_recordArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_track_recordOutput"
}βͺforesea_edge_board
Call this when the user wants the current top trading opportunities with explicit trade directions and historical backing. Good triggers: "What are the best bets right now?", "Show me the edge board", "Which model is winning the paper-trading competition?", "What's the strongest edge today?", "Are these edges statistically significant?". Returns open markets ranked by model-vs-market disagreement, each with Buy YES/NO direction, implied odds, whether the edge is historically significant, and a multi-model comparison.
Input Schema
{
"type": "object",
"properties": {},
"title": "foresea_edge_boardArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_edge_boardOutput"
}π‘foresea_venue_data(platform, operation, parameters, body)
Read public historical markets/candles/trades, batch books/midpoints/spreads, fees, holders, open interest, event volume, milestones and weather. Omit operation to discover operation names and schemas. No account or write access.
Input Schema
{
"type": "object",
"properties": {
"platform": {
"default": "",
"title": "Platform",
"type": "string"
},
"operation": {
"default": "",
"title": "Operation",
"type": "string"
},
"parameters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Parameters"
},
"body": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Body"
}
},
"title": "foresea_venue_dataArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_venue_dataOutput"
}π’foresea_exchange_status
Call this to check Kalshi exchange operational status (trading active flag) and operational hours/schedule.
Input Schema
{
"type": "object",
"properties": {},
"title": "foresea_exchange_statusArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_exchange_statusOutput"
}π’foresea_orderbook(ticker_or_token, platform)
Call this to fetch the live bids and asks orderbook depth for a Kalshi market ticker (e.g. 'KXFED-25JUN-H') or Polymarket YES-token ID.
Input Schema
{
"type": "object",
"properties": {
"ticker_or_token": {
"title": "Ticker Or Token",
"type": "string"
},
"platform": {
"default": "",
"title": "Platform",
"type": "string"
}
},
"required": [
"ticker_or_token"
],
"title": "foresea_orderbookArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_orderbookOutput"
}βͺforesea_market_tags
Call this to sample Polymarket's category vocabulary. Each entry is a label and the slug that identifies it. This is one page of at most 100 tags, not the full taxonomy: Polymarket has tens of thousands, and the endpoint returns a fixed slice that is ordered neither alphabetically nor by market activity. So absence here does not mean a tag is unused, presence does not mean it is active, and some entries are one-off or misspelled. Treat it as a vocabulary sample, not a classification the markets are organised by.
Input Schema
{
"type": "object",
"properties": {},
"title": "foresea_market_tagsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "foresea_market_tagsOutput"
}π’foresea_price_history(ticker_or_market, series_ticker)
Call this to retrieve historical price series or OHLC candlesticks for a market (e.g. Kalshi ticker or Polymarket token/slug).
Input Schema
{
"type": "object",
"properties": {
"ticker_or_market": {
"title": "Ticker Or Market",
"type": "string"
},
"series_ticker": {
"default": "",
"title": "Series Ticker",
"type": "string"
}
},
"required": [
"ticker_or_market"
],
"title": "foresea_price_historyArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "foresea_price_historyOutput"
}π’foresea_live_data(event_ticker, data_type, milestone_id)
Call this to fetch real-time sports game statistics, play-by-play data, and live event feeds from Kalshi. Provide event_ticker for event charts, or milestone_id with data_type="game_stats" for play-by-play.
Input Schema
{
"type": "object",
"properties": {
"event_ticker": {
"default": "",
"title": "Event Ticker",
"type": "string"
},
"data_type": {
"default": "",
"title": "Data Type",
"type": "string"
},
"milestone_id": {
"default": "",
"title": "Milestone Id",
"type": "string"
}
},
"title": "foresea_live_dataArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_live_dataOutput"
}π’foresea_polymarket_meta(target, market_id)
Call this to fetch Polymarket metadata: event series listings, community discussion comments for a market, or sports league metadata (target: 'series', 'comments', 'sports', 'teams'). 'series' lists the series and how many events each holds, not the events themselves -- fetch a series by slug for those. 'sports' lists every league with the ids that link it to other tools, not league artwork or homepages. 'comments' gives the comment, its author address and its reaction count, not the commenters' profiles or individual reactions.
Input Schema
{
"type": "object",
"properties": {
"target": {
"default": "series",
"title": "Target",
"type": "string"
},
"market_id": {
"default": "",
"title": "Market Id",
"type": "string"
}
},
"title": "foresea_polymarket_metaArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "foresea_polymarket_metaOutput"
}π’foresea_recent_trades(platform, ticker_or_token, limit)
Call this to fetch recent public executed trades / trade tape (prices, sizes, timestamps) on Kalshi or Polymarket.
Input Schema
{
"type": "object",
"properties": {
"platform": {
"default": "kalshi",
"title": "Platform",
"type": "string"
},
"ticker_or_token": {
"default": "",
"title": "Ticker Or Token",
"type": "string"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"title": "foresea_recent_tradesArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "foresea_recent_tradesOutput"
}π’foresea_market_leaderboard(limit)
Call this to fetch the top profitable prediction market trader leaderboard and rankings from Polymarket.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"title": "foresea_market_leaderboardArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "foresea_market_leaderboardOutput"
}βͺforesea_debate_market(question, platform, market_probability, resolution_criteria)
Conduct an adversarial multi-agent debate (Bull vs. Bear vs. Chief Risk Judge) to cross-examine evidence and isolate blind spots on a forecasting question.
Input Schema
{
"type": "object",
"properties": {
"question": {
"title": "Question",
"type": "string"
},
"platform": {
"default": "Market",
"title": "Platform",
"type": "string"
},
"market_probability": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Market Probability"
},
"resolution_criteria": {
"default": "",
"title": "Resolution Criteria",
"type": "string"
}
},
"required": [
"question"
],
"title": "foresea_debate_marketArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_debate_marketOutput"
}π’foresea_optimize_portfolio(bankroll_usd, kelly_fraction, min_edge)
Calculate optimal mathematical Fractional Kelly capital allocations and position sizes across live Grade A/B prediction market opportunities.
Input Schema
{
"type": "object",
"properties": {
"bankroll_usd": {
"default": 1000,
"title": "Bankroll Usd",
"type": "number"
},
"kelly_fraction": {
"default": 0.25,
"title": "Kelly Fraction",
"type": "number"
},
"min_edge": {
"default": 0.05,
"title": "Min Edge",
"type": "number"
}
},
"title": "foresea_optimize_portfolioArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_optimize_portfolioOutput"
}π’foresea_feed_latest(limit, min_edge)
Fetch the real-time unified Foresea Alpha & Agent Feed, combining live prediction market edge signals, autonomous agent trades & theses, and leaderboard standings.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
},
"min_edge": {
"default": 0.05,
"title": "Min Edge",
"type": "number"
}
},
"title": "foresea_feed_latestArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_feed_latestOutput"
}βͺforesea_weather_radar(target_date)
Scan live temperature and weather prediction markets (Kalshi KXHIGHNY, KXHIGHCHI, KXHIGHMIA, KXHIGHAUS, KXHIGHDEN, KXHIGHPHIL, etc.) against neural weather models (Google DeepMind WeatherNext 3 / MetNet) and high-resolution multi-model ensembles, calibrated with station microclimate bias profiles. Returns ranked mispricings, strike bracket probabilities, and model-vs-market edge.
Input Schema
{
"type": "object",
"properties": {
"target_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Target Date"
}
},
"title": "foresea_weather_radarArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_weather_radarOutput"
}π’foresea_weather_forecast(station_or_query, target_date)
Retrieve neural model weather forecasts (Google Maps Weather API / WeatherNext 3 / MetNet, ECMWF, GFS, GraphCast) with empirical station bias correction (e.g. KNYC Central Park, KMDW Chicago Midway, KDEN Denver) and strike bracket probability calculations for weather prediction markets.
Input Schema
{
"type": "object",
"properties": {
"station_or_query": {
"title": "Station Or Query",
"type": "string"
},
"target_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Target Date"
}
},
"required": [
"station_or_query"
],
"title": "foresea_weather_forecastArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "foresea_weather_forecastOutput"
}Community
Evidence