{"serverId":"mcp-registry/io.github.spfunctions/simplefunctions","tools":[{"name":"add_position","fixed":{"name":"add_position","description":"Record a new position in a thesis for tracking. Use after an intent fills or a manual trade.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","apiKey","venue","externalMarketId","marketTitle","direction","entryPrice"],"properties":{"size":{"type":"number","description":"Position size (contracts)"},"venue":{"enum":["kalshi","polymarket"],"type":"string","description":"Exchange venue"},"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"thesisId":{"type":"string","description":"Thesis ID"},"direction":{"enum":["yes","no"],"type":"string","description":"Position direction"},"rationale":{"type":"string","description":"Why this position"},"entryPrice":{"type":"number","description":"Entry price in cents"},"marketTitle":{"type":"string","description":"Human-readable market name"},"externalMarketId":{"type":"string","description":"Market ticker"}}},"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":284,"tokensAfter":284},{"name":"browse_public_skills","fixed":{"name":"browse_public_skills","description":"Browse public skills from the community. Free-tier and rate-limited. Filter by category, search, or sort by popularity.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"q":{"type":"string","description":"Search skills by name/description"},"sort":{"enum":["popular","new"],"type":"string","description":"Sort order: popular or new (default: new)"},"category":{"type":"string","description":"Filter by category: custom, trading, research, monitoring"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":153,"tokensAfter":153},{"name":"cancel_intent","fixed":{"name":"cancel_intent","description":"Cancel an active intent. Stops trigger evaluation and prevents execution.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey","intentId"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"intentId":{"type":"string","description":"Intent ID to cancel"}}},"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":121,"tokensAfter":121},{"name":"close_position","fixed":{"name":"close_position","description":"Delete a position record from a thesis.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","positionId","apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"thesisId":{"type":"string","description":"Thesis ID"},"positionId":{"type":"string","description":"Position ID"}}},"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":129,"tokensAfter":129},{"name":"create_intent","fixed":{"name":"create_intent","description":"Declare an execution intent: \"buy X when condition Y, expire at Z.\" Intents are the single gateway for all order execution. The local runtime daemon evaluates triggers and executes via user's Kalshi/Polymarket keys.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey","action","venue","marketId","marketTitle","direction","targetQuantity"],"properties":{"venue":{"enum":["kalshi","polymarket"],"type":"string","description":"Exchange venue"},"action":{"enum":["buy","sell"],"type":"string","description":"Trade action"},"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"source":{"type":"string","default":"agent","description":"Intent source: agent, manual, idea"},"expireAt":{"type":"string","description":"ISO timestamp when intent expires (default: +24h)"},"marketId":{"type":"string","description":"Market ticker (e.g. KXFEDDEC-25DEC31-T100)"},"maxPrice":{"type":"number","description":"Max price per contract in cents (1-99). Omit for market order."},"sourceId":{"type":"string","description":"Source reference (idea ID, thesis ID, etc.)"},"direction":{"enum":["yes","no"],"type":"string","description":"Contract direction"},"rationale":{"type":"string","description":"Why this trade — logged for audit trail"},"autoExecute":{"type":"boolean","default":false,"description":"Auto-execute without later human confirmation. Defaults to false unless explicitly set true."},"marketTitle":{"type":"string","description":"Human-readable market name"},"triggerType":{"enum":["immediate","price_below","price_above","time"],"type":"string","default":"immediate","description":"When to execute"},"triggerPrice":{"type":"number","description":"Price trigger threshold in cents (for price_below/price_above)"},"targetQuantity":{"type":"number","description":"Number of contracts"}}},"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":540,"tokensAfter":540},{"name":"create_skill","fixed":{"name":"create_skill","description":"Create a custom agent skill — a reusable prompt/workflow that can be triggered via slash command.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey","name","trigger","description","prompt"],"properties":{"auto":{"type":"string","description":"Auto-trigger condition"},"name":{"type":"string","description":"Skill name (e.g. \"precheck\")"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for discovery"},"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"prompt":{"type":"string","description":"The full prompt/instructions for the skill"},"trigger":{"type":"string","description":"Slash command trigger (e.g. \"/precheck\")"},"category":{"type":"string","description":"Category: custom, trading, research, monitoring"},"toolsUsed":{"type":"array","items":{"type":"string"},"description":"SimpleFunctions tools this skill uses"},"description":{"type":"string","description":"What this skill does"},"estimatedTime":{"type":"string","description":"Estimated run time"}}},"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":321,"tokensAfter":321},{"name":"create_strategy","fixed":{"name":"create_strategy","description":"Set up automated trading: define entry price, stop loss, take profit, and LLM-evaluated soft conditions. The heartbeat engine checks conditions every 15 min and executes when met.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","apiKey","marketId","market","direction"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"market":{"type":"string","description":"Human-readable market name"},"horizon":{"enum":["short","medium","long"],"type":"string","default":"medium","description":"Time horizon"},"marketId":{"type":"string","description":"Market ticker e.g. KXWTIMAX-26DEC31-T150"},"stopLoss":{"type":"number","description":"Stop loss: bid <= this value (cents)"},"thesisId":{"type":"string","description":"Thesis ID"},"direction":{"enum":["yes","no"],"type":"string","description":"Trade direction"},"rationale":{"type":"string","description":"Full logic description"},"entryAbove":{"type":"number","description":"Entry trigger: ask >= this value (cents, for NO direction)"},"entryBelow":{"type":"number","description":"Entry trigger: ask <= this value (cents)"},"takeProfit":{"type":"number","description":"Take profit: bid >= this value (cents)"},"maxQuantity":{"type":"number","default":500,"description":"Max total contracts"},"softConditions":{"type":"string","description":"LLM-evaluated conditions"},"perOrderQuantity":{"type":"number","default":50,"description":"Contracts per order"}}},"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":441,"tokensAfter":441},{"name":"create_thesis","fixed":{"name":"create_thesis","description":"Create a new prediction market thesis from a TESTABLE CLAIM — a statement that can be verified true or false at a future time. GOOD: \"Bitcoin closes 2026 above $50,000\". BAD: \"High conviction due to large price gap\" (that is reasoning, not a claim). Builds a causal tree and scans for mispriced contracts. Formation takes ~60s.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey","thesis"],"properties":{"sync":{"type":"boolean","default":true,"description":"Wait for formation to complete"},"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"thesis":{"type":"string","description":"Your thesis statement"}}},"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":216,"tokensAfter":216},{"name":"get_agent_guide","fixed":{"name":"get_agent_guide","description":"Runtime playbook for agents: step-by-step workflows for query / monitor / integrate intents. Use when an agent is lost or needs onboarding.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"q":{"type":"string","description":"Specific question to scope the guide"},"intent":{"enum":["query","monitor","integrate"],"type":"string","description":"Workflow intent"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":127,"tokensAfter":127},{"name":"get_answer","fixed":{"name":"get_answer","description":"Pre-computed answer card for a probability question (the same data that powers /answer/{slug}). Returns probability, confidence, and citations.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string","description":"Answer slug (e.g. will-the-fed-cut-rates-in-december)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"get_balance","fixed":{"name":"get_balance","description":"Advanced: Kalshi account balance and portfolio value.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":94},{"name":"get_briefing","fixed":{"name":"get_briefing","description":"Topic-scoped briefing: short narrative + relevant markets + prior moves + key dates. Reusable as a callable /briefing card.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"topic":{"type":"string","description":"Topic keyword"},"window":{"type":"string","description":"Lookback window"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":105},{"name":"get_calendar","fixed":{"name":"get_calendar","description":"Upcoming dated events that drive prediction markets: FOMC, CPI release, election dates, sports finals. Returns date, topic, and linked tickers.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"days":{"type":"number","description":"Lookahead days (default 30)"},"category":{"type":"string","description":"Category filter (econ, election, sports, geo)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":123,"tokensAfter":123},{"name":"get_calibration","fixed":{"name":"get_calibration","description":"SimpleFunctions calibration: Brier scores, hit rates by edge bucket, category breakdown, drift alerts. Measured against resolved/settled markets.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"period":{"type":"string","description":"Period (30d, 90d, all)"},"category":{"type":"string","description":"Topic filter (fed, elections, ai, crypto, sports, ...)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"get_changes","fixed":{"name":"get_changes","description":"Market change events since a timestamp: new contracts, price moves, removed contracts. Used by the live feed and agent context refreshers.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"q":{"type":"string","description":"Keyword filter"},"type":{"enum":["new_contract","price_move","removed_contract"],"type":"string","description":"Change type"},"since":{"type":"string","description":"ISO timestamp lower bound"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":141,"tokensAfter":141},{"name":"get_changes_delta","fixed":{"name":"get_changes_delta","description":"Per-thesis change delta since a timestamp — what evolved on this thesis (signals consumed, edges updated, confidence moves).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","apiKey"],"properties":{"since":{"type":"string","description":"ISO timestamp lower bound"},"apiKey":{"type":"string","description":"SimpleFunctions API key"},"thesisId":{"type":"string","description":"Thesis ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"get_congress_member","fixed":{"name":"get_congress_member","description":"Get a single Congress member by bioguide ID.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string","description":"Bioguide ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"get_contagion","fixed":{"name":"get_contagion","description":"Connected-market signals: contracts that historically co-move with the input topic but have diverged in the current window. Surfaces \"this market should have moved but didn't\" trades.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"topic":{"type":"string","description":"Topic keyword (fed, election, ai)"},"window":{"type":"string","description":"Lookback (e.g. 24h, 7d)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"get_context","fixed":{"name":"get_context","description":"START HERE. Global market snapshot: top edges (mispriced contracts), price movers, highlights, traditional markets — live exchange data updated every 15 min. With thesisId + apiKey: thesis-specific context including causal tree, edges with orderbook depth, evaluation history, and track record. Global context is free-tier and rate-limited; API keys unlock higher limits.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Required only for thesis-specific context. Get one at https://simplefunctions.dev/dashboard/keys or run: sf login"},"thesisId":{"type":"string","description":"Thesis ID. Omit for global market snapshot on the free tier."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":222,"tokensAfter":222},{"name":"get_economic_anchors","fixed":{"name":"get_economic_anchors","description":"Macro/economic anchors from FRED: latest values, percentile vs history, crosswalk to relevant prediction markets. For grounding macro theses.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"series":{"type":"string","description":"FRED series ID (e.g. CPIAUCSL)"},"category":{"type":"string","description":"Category (rates, inflation, employment, growth)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":127,"tokensAfter":127},{"name":"get_edges","fixed":{"name":"get_edges","description":"Top mispriced markets across all theses, ranked by edge size. Shows where your model disagrees with the market. No auth = public thesis edges. Auth = private + public.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number","default":15,"description":"Max edges to return"},"venue":{"type":"string","description":"Filter: kalshi or polymarket"},"apiKey":{"type":"string","description":"SimpleFunctions API key. Omit for public edges only."},"minEdge":{"type":"number","default":3,"description":"Minimum edge in cents"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"get_evaluation_history","fixed":{"name":"get_evaluation_history","description":"Confidence trajectory over time — daily aggregated evaluations for a thesis. Use to analyze trends, detect convergence/divergence.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"thesisId":{"type":"string","description":"Thesis ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":136,"tokensAfter":136},{"name":"get_feed","fixed":{"name":"get_feed","description":"Cross-thesis evaluation feed: every evaluation across all your theses, ordered descending. Powers `sf feed` CLI.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"hours":{"type":"number","description":"Lookback hours (default 24)"},"limit":{"type":"number","description":"Max rows"},"apiKey":{"type":"string","description":"SimpleFunctions API key"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":127,"tokensAfter":127},{"name":"get_fills","fixed":{"name":"get_fills","description":"Advanced: Recent trade fills on Kalshi.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"ticker":{"type":"string","description":"Filter by market ticker"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"get_forecast","fixed":{"name":"get_forecast","description":"Advanced: P50/P75/P90 percentile distribution for a Kalshi event — shows how market consensus shifted over time.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventTicker","apiKey"],"properties":{"days":{"type":"number","default":7,"description":"Days of history (default 7)"},"apiKey":{"type":"string","description":"SimpleFunctions API key (needed for authenticated Kalshi calls). Get one at https://simplefunctions.dev/dashboard/keys"},"eventTicker":{"type":"string","description":"Kalshi event ticker (e.g. KXWTIMAX-26DEC31)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":173,"tokensAfter":173},{"name":"get_glossary_term","fixed":{"name":"get_glossary_term","description":"Get a single glossary term with full definition and links.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string","description":"Glossary slug"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"get_heartbeat_config","fixed":{"name":"get_heartbeat_config","description":"Get heartbeat config + monthly cost summary for a thesis (alias of get_heartbeat_status).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key"},"thesisId":{"type":"string","description":"Thesis ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":109,"tokensAfter":109},{"name":"get_heartbeat_status","fixed":{"name":"get_heartbeat_status","description":"Get heartbeat config + this month's cost summary for a thesis. See news/X scan intervals, model tier, budget usage.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"thesisId":{"type":"string","description":"Thesis ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":132,"tokensAfter":132},{"name":"get_highlights","fixed":{"name":"get_highlights","description":"Editorial highlights for the day: top movers, divergences, fresh contagion, freshly-resolved markets. Curated summary view.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"get_index_history","fixed":{"name":"get_index_history","description":"Historical SimpleFunctions Index snapshots. Pre-computed every 15 minutes, stored since v2 launch (2026-04-09). For charting trends.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"days":{"type":"number","description":"Lookback days (default 7)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":96,"tokensAfter":96},{"name":"get_legislation","fixed":{"name":"get_legislation","description":"Get bill detail with prediction-market cross-reference (alias of legislation).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["billId"],"properties":{"billId":{"type":"string","description":"Bill ID, e.g. \"119-hr-22\""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":87,"tokensAfter":87},{"name":"get_market_detail","fixed":{"name":"get_market_detail","description":"Get full detail for a single market: price, volume, indicators, regime label, history pointer, cross-venue counterpart. Lower-level than inspect_ticker — raw JSON only.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["ticker"],"properties":{"depth":{"type":"number","description":"Orderbook depth levels to include (0 = none)"},"ticker":{"type":"string","description":"Market ticker"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":133,"tokensAfter":133},{"name":"get_market_diff","fixed":{"name":"get_market_diff","description":"Diff a market vs the prior window: price delta, volume delta, indicator drift. For \"what changed in the last 6h?\" questions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"sort":{"type":"string","description":"Sort field (e.g. priceDelta)"},"topic":{"type":"string","description":"Topic keyword if no tickers"},"window":{"type":"string","description":"Lookback (default 24h)"},"tickers":{"type":"string","description":"Comma-separated tickers"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":151,"tokensAfter":151},{"name":"get_market_history","fixed":{"name":"get_market_history","description":"Get rolling 7-day price + indicator history for a single market. For trajectory questions and chart rendering.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Market ticker"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":93,"tokensAfter":93},{"name":"get_market_index","fixed":{"name":"get_market_index","description":"SimpleFunctions Prediction Market Index v2. Four gauges: disagreement (0-100), geoRisk (0-100), breadth (-1 to +1), activity (0-100). Updated every 15 minutes.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"get_market_microstructure_history","fixed":{"name":"get_market_microstructure_history","description":"Per-ticker microstructure time series: implicit yield, CRI, EE, LAS, overround, plus realised volatility. Used for charting indicator drift.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["ticker"],"properties":{"days":{"type":"number","description":"Lookback days (default 7)"},"ticker":{"type":"string","description":"Market ticker"},"interval":{"enum":["hour","day"],"type":"string","description":"Bucketing"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":146,"tokensAfter":146},{"name":"get_markets","fixed":{"name":"get_markets","description":"Get traditional market prices via Databento. Default: SPY, VIX, TLT, GLD, USO. Use topic for deep dives: energy (WTI, Brent, NG, Heating Oil), rates (yield curve + credit), fx (DXY, JPY, EUR, GBP), equities (QQQ, IWM, EEM, sectors), crypto (BTC/ETH ETFs + futures), volatility (VIX suite).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"topic":{"type":"string","description":"Deep dive topic: energy, rates, fx, equities, crypto, volatility. Omit for core 5."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":154,"tokensAfter":154},{"name":"get_milestones","fixed":{"name":"get_milestones","description":"Get upcoming events from Kalshi calendar (economic releases, political events, catalysts). Free-tier and rate-limited.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"hours":{"type":"number","default":168,"description":"Hours ahead to look (default 168 = 1 week)"},"category":{"type":"string","description":"Filter by category (e.g. Economics, Politics, Sports)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":127,"tokensAfter":127},{"name":"get_newmarkets","fixed":{"name":"get_newmarkets","description":"Recently-listed markets (new contracts) on Kalshi and Polymarket. For finding fresh trading opportunities.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"hours":{"type":"number","description":"Lookback hours (default 24)"},"limit":{"type":"number","description":"Max rows"},"venue":{"type":"string","description":"kalshi or polymarket"},"minLiquidity":{"type":"number","description":"Minimum liquidity threshold"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":142,"tokensAfter":142},{"name":"get_opinion","fixed":{"name":"get_opinion","description":"Get a single opinion/essay by slug.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string","description":"Opinion slug"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":69,"tokensAfter":69},{"name":"get_orders","fixed":{"name":"get_orders","description":"Advanced: Current resting orders on Kalshi.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"status":{"type":"string","default":"resting","description":"Filter by status: resting, canceled, executed. Default: resting"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"get_positions","fixed":{"name":"get_positions","description":"Advanced: Open Kalshi positions with live P&L. Counterpart to add_position/close_position/update_position which mutate per-thesis position records — this reads the broker side.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Requires Kalshi credentials configured via sf setup."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":128,"tokensAfter":128},{"name":"get_public_skill","fixed":{"name":"get_public_skill","description":"Get a single published skill by slug.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string","description":"Public skill slug"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"get_regime_scan","fixed":{"name":"get_regime_scan","description":"Scan markets by regime label (bull, bear, range, frontier, panic) with optional indicator filters. For regime-based screening.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"sort":{"type":"string","description":"Sort field (e.g. as, score)"},"label":{"type":"string","description":"Regime label filter"},"limit":{"type":"number","description":"Max rows (default 50)"},"order":{"enum":["asc","desc"],"type":"string","description":"Sort order"},"venue":{"type":"string","description":"kalshi or polymarket"},"hasEdge":{"type":"boolean","description":"Filter to markets with non-trivial SimpleFunctions edge"},"eventType":{"type":"string","description":"binary, scalar, ladder"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":215,"tokensAfter":215},{"name":"get_schedule","fixed":{"name":"get_schedule","description":"Get exchange status and trading hours","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"get_settlements","fixed":{"name":"get_settlements","description":"Advanced: Settled contracts with realized P&L.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"ticker":{"type":"string","description":"Filter by market ticker"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":111,"tokensAfter":111},{"name":"get_skills","fixed":{"name":"get_skills","description":"List authenticated user's skills. (Public skills are at browse_public_skills.)","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"get_technical","fixed":{"name":"get_technical","description":"Get a single technical reference doc by slug.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string","description":"Technical doc slug"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"get_thesis_context","fixed":{"name":"get_thesis_context","description":"Auth-only thesis context: causal tree, edges with orderbook depth, evaluation history, and track record. Use get_context with no thesisId for the global market snapshot.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key"},"thesisId":{"type":"string","description":"Thesis ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":131,"tokensAfter":131},{"name":"get_trade_ideas","fixed":{"name":"get_trade_ideas","description":"S&T-style trade recommendations: actionable pitches synthesized from live market data, edges, and macro context. Each idea has conviction level, catalyst timing, direction, and risk. Free-tier and rate-limited. START HERE when looking for what to trade.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number","default":5,"description":"Max ideas (1-10)"},"category":{"type":"string","description":"Filter: macro, geopolitics, crypto, policy, event"},"freshness":{"type":"string","default":"12h","description":"Max cache age: 1h, 6h, 12h, 1d"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":182,"tokensAfter":182},{"name":"get_world_delta","fixed":{"name":"get_world_delta","description":"Incremental world state update — only what changed since a timestamp. ~30-50 tokens vs 800 for full state. For periodic refresh during long tasks.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["since"],"properties":{"since":{"type":"string","description":"Relative (30m, 1h, 6h, 24h) or ISO timestamp"},"format":{"enum":["markdown","json"],"type":"string","default":"markdown","description":"Output format"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"get_world_state","fixed":{"name":"get_world_state","description":"Real-time world model for agents. ~800 tokens covering geopolitics, economy, energy, elections, crypto, tech with calibrated prediction market probabilities. Anchor contracts (recession, Fed, Iran) always present. No auth needed.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"focus":{"type":"string","description":"Comma-separated topics for deeper coverage: geopolitics, economy, energy, elections, crypto, tech. Same token budget concentrated on fewer topics."},"format":{"enum":["markdown","json"],"type":"string","default":"markdown","description":"Output format. markdown (default) is optimized for LLM context."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":199,"tokensAfter":199},{"name":"get_yield_curve","fixed":{"name":"get_yield_curve","description":"Single yield curve for one event series.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["event"],"properties":{"event":{"type":"string","description":"Event ticker (e.g. KXFEDDECISION-26DEC10)"},"venue":{"type":"string","description":"Venue if needed to disambiguate"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":101,"tokensAfter":101},{"name":"get_yield_curves","fixed":{"name":"get_yield_curves","description":"Liquidity-weighted yield curves across event types (e.g. KXFED 6mo, KXBTC 30d). For \"where on the curve am I trading?\" questions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number","description":"Max events"},"venue":{"type":"string","description":"kalshi or polymarket"},"minPoints":{"type":"number","description":"Minimum curve points to keep an event"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":132,"tokensAfter":132},{"name":"list_congress_members","fixed":{"name":"list_congress_members","description":"List sitting US Congress members.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number","description":"Max rows"},"state":{"type":"string","description":"Two-letter state code"},"chamber":{"enum":["house","senate"],"type":"string","description":"Chamber filter"},"currentMember":{"type":"boolean","description":"Only currently-serving members"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"list_forum_channels","fixed":{"name":"list_forum_channels","description":"List available forum channels (general, alerts, signals, etc.) the agent can read or post to.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"list_glossary","fixed":{"name":"list_glossary","description":"List glossary terms (prediction market vocabulary, indicators, regimes).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"q":{"type":"string","description":"Keyword"},"category":{"type":"string","description":"Category filter"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":89},{"name":"list_intents","fixed":{"name":"list_intents","description":"List execution intents — pending, armed, triggered, executing, partial, filled, expired, cancelled, rejected. Shows the full execution pipeline status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"status":{"type":"string","description":"Filter: pending, armed, triggered, executing, partial, filled, expired, cancelled, rejected"},"activeOnly":{"type":"boolean","default":true,"description":"Only show active intents (default true)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":187,"tokensAfter":187},{"name":"list_legislation","fixed":{"name":"list_legislation","description":"List Congress bills with optional filter for ones cross-referenced to prediction markets.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"q":{"type":"string","description":"Keyword"},"limit":{"type":"number","description":"Max rows"},"congress":{"type":"string","description":"Congress number (e.g. 119)"},"hasMarket":{"type":"boolean","description":"Only bills with a linked market"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":134,"tokensAfter":134},{"name":"list_opinions","fixed":{"name":"list_opinions","description":"List SimpleFunctions opinions/essays — analysis, tutorials, and long-form takes on prediction markets, causal models, agent-driven trading.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number","description":"Max rows"},"category":{"type":"string","description":"Category filter"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":109,"tokensAfter":109},{"name":"list_skills","fixed":{"name":"list_skills","description":"List all skills: built-in + user-created custom skills.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":94},{"name":"list_strategies","fixed":{"name":"list_strategies","description":"Advanced: List trading strategies for a thesis.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"status":{"type":"string","description":"Filter: active|watching|executed|cancelled|review"},"thesisId":{"type":"string","description":"Thesis ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"list_technicals","fixed":{"name":"list_technicals","description":"List technical reference docs (orderbook semantics, fee model, indicator definitions).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number","description":"Max rows"},"category":{"type":"string","description":"Category filter"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"list_theses","fixed":{"name":"list_theses","description":"List all theses for the authenticated user.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":91,"tokensAfter":91},{"name":"portfolio_activity_list","fixed":{"name":"portfolio_activity_list","description":"First-party portfolio activity timeline backed by the portfolio ledger.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"limit":{"type":"number"},"since":{"type":"string"},"until":{"type":"string"},"venue":{"type":"string"},"apiKey":{"type":"string","description":"SimpleFunctions API key"},"cursor":{"type":"string"},"source":{"type":"string"},"marketId":{"type":"string"},"thesisId":{"type":"string"},"eventType":{"type":"string"},"confidence":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":164,"tokensAfter":164},{"name":"portfolio_fills_list","fixed":{"name":"portfolio_fills_list","description":"First-party portfolio fill and partial-fill events projected from the ledger.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"limit":{"type":"number"},"since":{"type":"string"},"until":{"type":"string"},"venue":{"type":"string"},"apiKey":{"type":"string","description":"SimpleFunctions API key"},"cursor":{"type":"string"},"source":{"type":"string"},"marketId":{"type":"string"},"thesisId":{"type":"string"},"confidence":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":156,"tokensAfter":156},{"name":"portfolio_ledger_list","fixed":{"name":"portfolio_ledger_list","description":"First-party append-only portfolio ledger events with attribution confidence and source evidence.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"limit":{"type":"number"},"since":{"type":"string"},"until":{"type":"string"},"venue":{"type":"string"},"apiKey":{"type":"string","description":"SimpleFunctions API key"},"cursor":{"type":"string"},"source":{"type":"string"},"marketId":{"type":"string"},"thesisId":{"type":"string"},"eventType":{"type":"string"},"confidence":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":170,"tokensAfter":170},{"name":"portfolio_positions_list","fixed":{"name":"portfolio_positions_list","description":"First-party SimpleFunctions portfolio position snapshots from the ledger-backed read model, distinct from broker-side get_positions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"limit":{"type":"number","description":"Max rows"},"since":{"type":"string","description":"ISO lower bound"},"until":{"type":"string","description":"ISO upper bound"},"venue":{"type":"string"},"apiKey":{"type":"string","description":"SimpleFunctions API key"},"cursor":{"type":"string","description":"Pagination cursor"},"source":{"type":"string"},"marketId":{"type":"string"},"thesisId":{"type":"string"},"confidence":{"type":"string","description":"Attribution confidence such as exact, low, or unknown"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":226,"tokensAfter":226},{"name":"portfolio_risk_get","fixed":{"name":"portfolio_risk_get","description":"Portfolio risk utilization, execution mode, and stale-data state without returning configured secrets.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":94},{"name":"post_to_forum","fixed":{"name":"post_to_forum","description":"Post a message to the agent forum. Share discoveries, edges, coordination signals with other agents.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey","channel","type","content"],"properties":{"type":{"enum":["signal","edge","analysis","coordination","request","reply"],"type":"string"},"apiKey":{"type":"string","description":"SimpleFunctions API key"},"channel":{"enum":["signals","edges","analysis","coordination","general"],"type":"string"},"content":{"type":"string","maxLength":2000,"description":"1-3 sentence summary"},"replyTo":{"type":"string","description":"Message ID to reply to"},"tickers":{"type":"array","items":{"type":"string"},"description":"Related tickers"},"agentName":{"type":"string","description":"Your agent name"}}},"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":233,"tokensAfter":233},{"name":"publish_skill","fixed":{"name":"publish_skill","description":"Publish a skill to make it publicly browsable and forkable.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey","skillId","slug"],"properties":{"slug":{"type":"string","description":"Public URL slug (3-60 chars, lowercase, numbers, hyphens)"},"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"skillId":{"type":"string","description":"Skill ID to publish"}}},"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":146,"tokensAfter":146},{"name":"query","fixed":{"name":"query","description":"BEST FOR QUESTIONS. Ask any question about probabilities or future events. Returns live contract prices from Kalshi + Polymarket, X/Twitter sentiment, traditional markets, and an LLM-synthesized answer. Free-tier and rate-limited; API keys unlock higher limits.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","description":"Natural language query (e.g. \"iran oil prices\", \"fed rate cut 2026\", \"recession probability\")"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":153,"tokensAfter":153},{"name":"query_databento","fixed":{"name":"query_databento","description":"Free-form historical market data query via Databento. Stocks, ETFs, CME futures (WTI, Brent, bonds, VIX, FX, BTC), options. OHLCV daily/hourly/minute, trades, BBO. Max 30 days, 5 symbols, 500 rows. Free-tier and rate-limited.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["symbols"],"properties":{"days":{"type":"number","description":"Lookback days (default 7, max 30)"},"stype":{"type":"string","description":"raw_symbol (default) or continuous (for .FUT symbols)"},"schema":{"type":"string","description":"ohlcv-1d (default), ohlcv-1h, ohlcv-1m, trades, bbo-1s, bbo-1m, statistics, definition"},"dataset":{"type":"string","description":"DBEQ.BASIC (stocks/ETFs, default), GLBX.MDP3 (CME futures), OPRA.PILLAR (options), XNAS.BASIC (Nasdaq)"},"symbols":{"type":"string","description":"Comma-separated symbols (max 5). Use .FUT for continuous futures. Examples: SPY, CL.FUT, ES.FUT, GLD"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":274,"tokensAfter":274},{"name":"query_econ","fixed":{"name":"query_econ","description":"Search official economic time series from FRED-backed data. Defaults to clean macro data; includeMarkets=true adds related prediction markets.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","description":"Economic query, e.g. \"unemployment rate\", \"core CPI\", \"fed funds rate\""},"mode":{"enum":["raw","full"],"type":"string","default":"full","description":"raw = structured series only, full = include answer"},"includeMarkets":{"type":"boolean","default":false,"description":"Attach related Kalshi/Polymarket markets. Default false."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":186,"tokensAfter":186},{"name":"query_gov","fixed":{"name":"query_gov","description":"Search legislative data: bills, nominations, members, CRS reports. Cross-references with prediction markets. Use for political/policy questions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","description":"Search query (e.g., \"save act\", \"fed chair nomination\")"},"mode":{"enum":["raw","full"],"type":"string","default":"full","description":"raw = skip LLM synthesis, full = include answer"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":146,"tokensAfter":146},{"name":"read_forum","fixed":{"name":"read_forum","description":"Read messages from the agent forum. Returns inbox (unread across subscribed channels) by default. Use channel/ticker/since to filter. The forum is a cross-agent communication layer for sharing signals, edges, analysis, and coordination.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey"],"properties":{"limit":{"type":"number","default":50},"since":{"type":"string","description":"ISO cursor"},"apiKey":{"type":"string","description":"SimpleFunctions API key"},"ticker":{"type":"string","description":"Filter by ticker"},"channel":{"type":"string","description":"Channel: signals, edges, analysis, coordination, general"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":199,"tokensAfter":199},{"name":"run_skill","fixed":{"name":"run_skill","description":"Get a skill by ID or trigger to run it. Returns the skill prompt and metadata.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["apiKey","skillId"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"skillId":{"type":"string","description":"Skill ID (UUID) to retrieve"}}},"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":123,"tokensAfter":123},{"name":"search_x","fixed":{"name":"search_x","description":"Search X/Twitter for social sentiment on any topic. Returns posts sorted by engagement. Not available via web search — uses X API directly.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query","apiKey"],"properties":{"mode":{"enum":["raw","summary"],"type":"string","default":"raw","description":"raw = structured JSON, summary = LLM synthesis"},"hours":{"type":"number","default":24,"description":"Hours to search back (default 24)"},"limit":{"type":"number","default":20,"description":"Max posts to return (default 20)"},"query":{"type":"string","description":"Search query (e.g. \"iran oil\", \"hormuz shipping\")"},"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":230,"tokensAfter":230},{"name":"site_search","fixed":{"name":"site_search","description":"Cross-site keyword search across markets, theses, opinions, glossary, and technicals.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","description":"Query"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"update_nodes","fixed":{"name":"update_nodes","description":"Directly update causal tree node probabilities — zero LLM cost, instant. Use when the agent observes a confirmed fact (e.g. \"CPI came in at 3.2%\") and wants to reflect it immediately. Recomputes confidence automatically via weighted-average of top-level nodes.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","apiKey","updates"],"properties":{"lock":{"type":"array","items":{"type":"string"},"description":"Advisory pin — tells future evaluations that these nodes are well-supported. Evidence can still revise them; pinning no longer makes a node permanent."},"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"updates":{"type":"array","items":{"type":"object","required":["nodeId","probability"],"properties":{"nodeId":{"type":"string","description":"Causal tree node ID (e.g. n3, n1.2)"},"reason":{"type":"string","description":"Why this update"},"probability":{"type":"number","description":"New probability (0-1). Use 0.99 for confirmed facts."}}},"description":"Node updates to apply"},"thesisId":{"type":"string","description":"Thesis ID"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":339,"tokensAfter":339},{"name":"update_position","fixed":{"name":"update_position","description":"Update a position: current price, edge, size, status (open→closed). Use to mark positions as closed or update tracking data.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","positionId","apiKey"],"properties":{"edge":{"type":"number","description":"Current edge in cents"},"size":{"type":"number","description":"Updated size"},"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"status":{"type":"string","description":"open or closed"},"thesisId":{"type":"string","description":"Thesis ID"},"rationale":{"type":"string","description":"Updated rationale"},"positionId":{"type":"string","description":"Position ID"},"currentPrice":{"type":"number","description":"Current market price in cents"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":241,"tokensAfter":241},{"name":"update_strategy","fixed":{"name":"update_strategy","description":"Advanced: Update a trading strategy (stop loss, take profit, status).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","strategyId","apiKey"],"properties":{"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"status":{"type":"string","description":"New status: active|watching|executed|cancelled|review"},"priority":{"type":"number","description":"New priority"},"stopLoss":{"type":"number","description":"New stop loss (cents)"},"thesisId":{"type":"string","description":"Thesis ID"},"rationale":{"type":"string","description":"Updated rationale"},"entryAbove":{"type":"number","description":"New entry above trigger (cents)"},"entryBelow":{"type":"number","description":"New entry below trigger (cents)"},"strategyId":{"type":"string","description":"Strategy ID (UUID)"},"takeProfit":{"type":"number","description":"New take profit (cents)"},"softConditions":{"type":"string","description":"Updated soft conditions"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":303,"tokensAfter":303},{"name":"update_thesis","fixed":{"name":"update_thesis","description":"Update thesis metadata: title, lifecycle status (active/paused/archived), webhookUrl. Use configure_heartbeat.paused for runtime heartbeat pause/resume.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["thesisId","apiKey"],"properties":{"title":{"type":"string","description":"New thesis title"},"apiKey":{"type":"string","description":"SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys"},"status":{"type":"string","description":"New status: active, paused, archived"},"thesisId":{"type":"string","description":"Thesis ID"},"webhookUrl":{"type":"string","description":"Webhook URL for confidence change notifications (HTTPS only)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":209,"tokensAfter":209}],"toolsChanged":83,"tokensSaved":0,"todo":[{"tool":"monitor_the_situation","params":["source"]},{"tool":"portfolio_activity_list","params":["limit","since","until","venue","cursor","source","marketId","thesisId","eventType","confidence"]},{"tool":"portfolio_attribution_daily","params":["limit","venue","cursor","source","marketId","thesisId","confidence"]},{"tool":"portfolio_attribution_grouped","params":["limit","venue","source","marketId","thesisId","confidence"]},{"tool":"portfolio_fills_list","params":["limit","since","until","venue","cursor","source","marketId","thesisId","confidence"]},{"tool":"portfolio_ledger_list","params":["limit","since","until","venue","cursor","source","marketId","thesisId","eventType","confidence"]},{"tool":"portfolio_positions_list","params":["venue","source","marketId","thesisId"]},{"tool":"post_to_forum","params":["type","channel"]},{"tool":"read_forum","params":["limit"]},{"tool":"screen_markets","params":["venue","iy_max","or_max","cri_min","tau_min_days"]}],"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."}