{"serverId":"mcp-registry/ink.foresea/forecasting","tools":[{"name":"foresea_analyze_market","fixed":{"name":"foresea_analyze_market","description":"Call this when the user mentions a specific prediction market by URL, slug,\n        or ticker — or asks whether a particular market is over/underpriced. Good\n        triggers: \"Is this Polymarket fair?\", \"What's the edge on kalshi:XXXXX?\",\n        \"Should I buy/sell this market?\", user pastes a Polymarket or Kalshi URL.\n        Fetches the live price, gathers evidence, forecasts, computes model-vs-market\n        edge, and returns a recommendation. Use foresea_forecast instead when there is\n     ","inputSchema":{"type":"object","title":"foresea_analyze_marketArguments","properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug","default":null},"skills":{"anyOf":[{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},{"type":"null"}],"title":"Skills","default":null},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker","default":null},"variant":{"type":"string","title":"Variant","default":"variant0_neutral_baseline"},"platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform","default":null},"question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question","default":null},"market_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Market Id","default":null},"tool_loop":{"type":"boolean","title":"Tool Loop","default":false},"builtin_skills":{"type":"boolean","title":"Builtin Skills","default":false},"evidence_top_k":{"type":"integer","title":"Evidence Top K","default":5},"max_tool_steps":{"type":"integer","title":"Max Tool Steps","default":5},"ground_in_record":{"type":"boolean","title":"Ground In Record","default":false},"market_probability":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Market Probability","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":505,"tokensAfter":505},{"name":"foresea_cancel_order","fixed":{"name":"foresea_cancel_order","description":"Cancel an active open order on Kalshi or Polymarket using its venue order ID.","inputSchema":{"type":"object","title":"foresea_cancel_orderArguments","required":["order_id"],"properties":{"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker","default":null},"order_id":{"type":"string","title":"Order Id"},"platform":{"type":"string","title":"Platform","default":"kalshi"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"foresea_check_run","fixed":{"name":"foresea_check_run","description":"Call this after foresea_analyze_market timed out or errored with a\n        message naming a client_run_key -- the research it started may still be\n        running server-side. Returns {\"status\": \"running\", ...} if it's not done\n        yet (call again in a bit), or the full report once it is. Do not call\n        this speculatively; only use the client_run_key a prior\n        foresea_analyze_market call actually gave you.\n        Example: client_run_key=\"a1b2c3...\" → {status:\"running\", id:\"agent_","inputSchema":{"type":"object","title":"foresea_check_runArguments","required":["client_run_key"],"properties":{"client_run_key":{"type":"string","title":"Client Run Key"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":204,"tokensAfter":204},{"name":"foresea_exchange_status","fixed":{"name":"foresea_exchange_status","description":"Call this to check Kalshi exchange operational status (trading active flag)\n        and operational hours/schedule.","inputSchema":{"type":"object","title":"foresea_exchange_statusArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"foresea_orderbook","fixed":{"name":"foresea_orderbook","description":"Call this to fetch the live bids and asks orderbook depth for a Kalshi market\n        ticker (e.g. 'KXFED-25JUN-H') or Polymarket YES-token ID.","inputSchema":{"type":"object","title":"foresea_orderbookArguments","required":["ticker_or_token"],"properties":{"platform":{"type":"string","title":"Platform","default":""},"ticker_or_token":{"type":"string","title":"Ticker Or Token"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"foresea_place_order","fixed":{"name":"foresea_place_order","description":"Submit a guarded real order to Kalshi or Polymarket. Live execution requires\n        confirmation='PLACE REAL ORDER' and execute=True, and is protected by server\n        notional ceilings and exchange guardrails.","inputSchema":{"type":"object","title":"foresea_place_orderArguments","required":["platform","action","outcome","price","quantity","confirmation"],"properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug","default":null},"price":{"type":"number","title":"Price"},"action":{"type":"string","title":"Action"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker","default":null},"execute":{"type":"boolean","title":"Execute","default":true},"outcome":{"type":"string","title":"Outcome"},"platform":{"type":"string","title":"Platform"},"quantity":{"type":"number","title":"Quantity"},"token_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Id","default":null},"post_only":{"type":"boolean","title":"Post Only","default":false},"order_type":{"type":"string","title":"Order Type","default":"limit"},"confirmation":{"type":"string","title":"Confirmation"},"time_in_force":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time In Force","default":null},"client_order_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Order Id","default":null}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":382,"tokensAfter":382},{"name":"foresea_preview_order","fixed":{"name":"foresea_preview_order","description":"Validate, normalize, and simulate guardrail checks for a real Kalshi or\n        Polymarket order without submitting it to the exchange.","inputSchema":{"type":"object","title":"foresea_preview_orderArguments","required":["platform","action","outcome","price","quantity"],"properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug","default":null},"price":{"type":"number","title":"Price"},"action":{"type":"string","title":"Action"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker","default":null},"outcome":{"type":"string","title":"Outcome"},"platform":{"type":"string","title":"Platform"},"quantity":{"type":"number","title":"Quantity"},"token_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Id","default":null},"post_only":{"type":"boolean","title":"Post Only","default":false},"order_type":{"type":"string","title":"Order Type","default":"limit"},"time_in_force":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time In Force","default":null}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":295,"tokensAfter":295},{"name":"foresea_trade_account_status","fixed":{"name":"foresea_trade_account_status","description":"Check real prediction-market trading readiness, max order notional limits,\n        and venue configuration statuses for Kalshi and Polymarket.","inputSchema":{"type":"object","title":"foresea_trade_account_statusArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82}],"toolsChanged":8,"tokensSaved":0,"todo":[{"tool":"foresea_analyze_market","params":["slug","skills","ticker","variant","platform","question","market_id","tool_loop","builtin_skills","evidence_top_k","max_tool_steps","ground_in_record","market_probability"]},{"tool":"foresea_batch_forecast","params":["items","variant","questions","evidence_top_k","attach_evidence","concurrency_limit"]},{"tool":"foresea_batch_quotes","params":["refs"]},{"tool":"foresea_cancel_order","params":["ticker","order_id","platform"]},{"tool":"foresea_check_run","params":["client_run_key"]},{"tool":"foresea_crypto_edge","params":["limit","min_edge"]},{"tool":"foresea_debate_market","params":["platform","question","market_probability","resolution_criteria"]},{"tool":"foresea_edge_board","params":["limit","cursor","fields","min_edge"]},{"tool":"foresea_feed_latest","params":["limit","min_edge"]},{"tool":"foresea_forecast","params":["options","variant","question","categories","market_url","description","question_type","evidence_top_k","market_outcome","attach_evidence","market_platform","market_probability","resolution_criteria"]},{"tool":"foresea_live_data","params":["data_type","event_ticker","milestone_id"]},{"tool":"foresea_market_leaderboard","params":["limit"]},{"tool":"foresea_optimize_portfolio","params":["min_edge","bankroll_usd","kelly_fraction"]},{"tool":"foresea_orderbook","params":["platform","ticker_or_token"]},{"tool":"foresea_place_order","params":["slug","price","action","ticker","execute","outcome","platform","quantity","token_id","post_only","order_type","confirmation","time_in_force","client_order_id"]},{"tool":"foresea_polymarket_meta","params":["target","market_id"]},{"tool":"foresea_preview_order","params":["slug","price","action","ticker","outcome","platform","quantity","token_id","post_only","order_type","time_in_force"]},{"tool":"foresea_price_history","params":["series_ticker","ticker_or_market"]},{"tool":"foresea_recent_trades","params":["limit","platform","ticker_or_token"]},{"tool":"foresea_scan_markets","params":["limit","query","min_edge","platform","evidence_top_k"]},{"tool":"foresea_track_record","params":["fields"]},{"tool":"foresea_venue_data","params":["body","platform","operation","parameters"]},{"tool":"foresea_weather_forecast","params":["target_date","station_or_query"]},{"tool":"foresea_weather_radar","params":["target_date"]},{"tool":"foresea_webhook_subscribe","params":["url","events","min_edge"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}