addrbookFor publishers
← The evidence ledger

Evidence row 291327

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint e11c75b7-735e-4033-b3d1-7e8888c6859a
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
b7ac3a9734f4f411d3dfb1f2cb8f240b054df33035a6d53bf4189837be36e2dd
Leaf
0x9aa038229cb9aac8f90c41f89c88a08ef91ffb4dc3121b4556d27eed0cb1e592

What was observed

{
  "count": 108,
  "tools": [
    {
      "description": "Record a new position in a thesis for tracking. Use after an intent fills or a manual trade.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "direction": {
            "description": "Position direction",
            "enum": [
              "yes",
              "no"
            ],
            "type": "string"
          },
          "entryPrice": {
            "description": "Entry price in cents",
            "type": "number"
          },
          "externalMarketId": {
            "description": "Market ticker",
            "type": "string"
          },
          "marketTitle": {
            "description": "Human-readable market name",
            "type": "string"
          },
          "rationale": {
            "description": "Why this position",
            "type": "string"
          },
          "size": {
            "description": "Position size (contracts)",
            "type": "number"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          },
          "venue": {
            "description": "Exchange venue",
            "enum": [
              "kalshi",
              "polymarket"
            ],
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey",
          "venue",
          "externalMarketId",
          "marketTitle",
          "direction",
          "entryPrice"
        ],
        "type": "object"
      },
      "name": "add_position"
    },
    {
      "description": "Advanced: Merge suggested causal tree nodes from evaluations into the tree (append-only).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "dryRun": {
            "description": "Preview without applying (default: false)",
            "type": "boolean"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "augment_tree"
    },
    {
      "description": "Fetch many markets at once by ticker list. Cheaper than calling get_market_detail in a loop.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "depth": {
            "description": "Orderbook depth levels (0 = none)",
            "type": "number"
          },
          "tickers": {
            "description": "Comma-separated tickers",
            "type": "string"
          }
        },
        "required": [
          "tickers"
        ],
        "type": "object"
      },
      "name": "batch_markets"
    },
    {
      "description": "Browse public skills from the community. Free-tier and rate-limited. Filter by category, search, or sort by popularity.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Filter by category: custom, trading, research, monitoring",
            "type": "string"
          },
          "q": {
            "description": "Search skills by name/description",
            "type": "string"
          },
          "sort": {
            "description": "Sort order: popular or new (default: new)",
            "enum": [
              "popular",
              "new"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "browse_public_skills"
    },
    {
      "description": "Cancel an active intent. Stops trigger evaluation and prevents execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "intentId": {
            "description": "Intent ID to cancel",
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "intentId"
        ],
        "type": "object"
      },
      "name": "cancel_intent"
    },
    {
      "description": "Delete a position record from a thesis.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "positionId": {
            "description": "Position ID",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "positionId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "close_position"
    },
    {
      "description": "Configure the 24/7 heartbeat engine: news scan interval, X scan interval, LLM model tier, monthly budget, runtime pause/resume, and closed-loop intent creation. Agent can speed up monitoring during high volatility or slow down to save budget.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "closedLoopEntry": {
            "description": "Enable/disable closed-loop entry intent creation",
            "type": "boolean"
          },
          "closedLoopExit": {
            "description": "Enable/disable closed-loop exit intent creation",
            "type": "boolean"
          },
          "evalModelTier": {
            "description": "LLM model for evaluations",
            "enum": [
              "cheap",
              "base",
              "medium",
              "heavy"
            ],
            "type": "string"
          },
          "monthlyBudgetUsd": {
            "description": "Monthly budget cap in USD (0 = unlimited)",
            "type": "number"
          },
          "newsIntervalMin": {
            "description": "News scan interval in minutes (15-1440, default 240)",
            "type": "number"
          },
          "paused": {
            "description": "Pause/resume heartbeat",
            "type": "boolean"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          },
          "xIntervalMin": {
            "description": "X/social scan interval in minutes (60-1440, default 240)",
            "type": "number"
          }
        },
        "required": [
          "thesisId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "configure_heartbeat"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "action": {
            "description": "Trade action",
            "enum": [
              "buy",
              "sell"
            ],
            "type": "string"
          },
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "autoExecute": {
            "default": false,
            "description": "Auto-execute without later human confirmation. Defaults to false unless explicitly set true.",
            "type": "boolean"
          },
          "direction": {
            "description": "Contract direction",
            "enum": [
              "yes",
              "no"
            ],
            "type": "string"
          },
          "expireAt": {
            "description": "ISO timestamp when intent expires (default: +24h)",
            "type": "string"
          },
          "marketId": {
            "description": "Market ticker (e.g. KXFEDDEC-25DEC31-T100)",
            "type": "string"
          },
          "marketTitle": {
            "description": "Human-readable market name",
            "type": "string"
          },
          "maxPrice": {
            "description": "Max price per contract in cents (1-99). Omit for market order.",
            "type": "number"
          },
          "rationale": {
            "description": "Why this trade — logged for audit trail",
            "type": "string"
          },
          "source": {
            "default": "agent",
            "description": "Intent source: agent, manual, idea",
            "type": "string"
          },
          "sourceId": {
            "description": "Source reference (idea ID, thesis ID, etc.)",
            "type": "string"
          },
          "targetQuantity": {
            "description": "Number of contracts",
            "type": "number"
          },
          "triggerPrice": {
            "description": "Price trigger threshold in cents (for price_below/price_above)",
            "type": "number"
          },
          "triggerType": {
            "default": "immediate",
            "description": "When to execute",
            "enum": [
              "immediate",
              "price_below",
              "price_above",
              "time"
            ],
            "type": "string"
          },
          "venue": {
            "description": "Exchange venue",
            "enum": [
              "kalshi",
              "polymarket"
            ],
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "action",
          "venue",
          "marketId",
          "marketTitle",
          "direction",
          "targetQuantity"
        ],
        "type": "object"
      },
      "name": "create_intent"
    },
    {
      "description": "Create a custom agent skill — a reusable prompt/workflow that can be triggered via slash command.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "auto": {
            "description": "Auto-trigger condition",
            "type": "string"
          },
          "category": {
            "description": "Category: custom, trading, research, monitoring",
            "type": "string"
          },
          "description": {
            "description": "What this skill does",
            "type": "string"
          },
          "estimatedTime": {
            "description": "Estimated run time",
            "type": "string"
          },
          "name": {
            "description": "Skill name (e.g. \"precheck\")",
            "type": "string"
          },
          "prompt": {
            "description": "The full prompt/instructions for the skill",
            "type": "string"
          },
          "tags": {
            "description": "Tags for discovery",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "toolsUsed": {
            "description": "SimpleFunctions tools this skill uses",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "trigger": {
            "description": "Slash command trigger (e.g. \"/precheck\")",
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "name",
          "trigger",
          "description",
          "prompt"
        ],
        "type": "object"
      },
      "name": "create_skill"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "direction": {
            "description": "Trade direction",
            "enum": [
              "yes",
              "no"
            ],
            "type": "string"
          },
          "entryAbove": {
            "description": "Entry trigger: ask >= this value (cents, for NO direction)",
            "type": "number"
          },
          "entryBelow": {
            "description": "Entry trigger: ask <= this value (cents)",
            "type": "number"
          },
          "horizon": {
            "default": "medium",
            "description": "Time horizon",
            "enum": [
              "short",
              "medium",
              "long"
            ],
            "type": "string"
          },
          "market": {
            "description": "Human-readable market name",
            "type": "string"
          },
          "marketId": {
            "description": "Market ticker e.g. KXWTIMAX-26DEC31-T150",
            "type": "string"
          },
          "maxQuantity": {
            "default": 500,
            "description": "Max total contracts",
            "type": "number"
          },
          "perOrderQuantity": {
            "default": 50,
            "description": "Contracts per order",
            "type": "number"
          },
          "rationale": {
            "description": "Full logic description",
            "type": "string"
          },
          "softConditions": {
            "description": "LLM-evaluated conditions",
            "type": "string"
          },
          "stopLoss": {
            "description": "Stop loss: bid <= this value (cents)",
            "type": "number"
          },
          "takeProfit": {
            "description": "Take profit: bid >= this value (cents)",
            "type": "number"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey",
          "marketId",
          "market",
          "direction"
        ],
        "type": "object"
      },
      "name": "create_strategy"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "sync": {
            "default": true,
            "description": "Wait for formation to complete",
            "type": "boolean"
          },
          "thesis": {
            "description": "Your thesis statement",
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "thesis"
        ],
        "type": "object"
      },
      "name": "create_thesis"
    },
    {
      "description": "Cross-reference any text with thousands of prediction market contracts. Paste content + topics, get divergence analysis: where sentiment disagrees with market prices. No auth, no Firecrawl needed. Demo/trial entry point.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "content": {
            "description": "Text content to cross-reference (up to 50K chars)",
            "type": "string"
          },
          "includeIndex": {
            "description": "Include SimpleFunctions Index",
            "type": "boolean"
          },
          "model": {
            "description": "LLM model for digest generation. Default: google/gemini-2.5-flash",
            "type": "string"
          },
          "topics": {
            "description": "Topics to search in prediction markets, e.g. [\"iran\", \"oil\"]",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "content",
          "topics"
        ],
        "type": "object"
      },
      "name": "enrich_content"
    },
    {
      "description": "Browse public theses from other users. Free-tier and rate-limited. Pass a slug to get details, or omit to list all.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "Specific thesis slug, or empty to list all",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "explore_public"
    },
    {
      "description": "Browse public theses (alias of explore_public). Pass slug to get one, omit to list.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "Thesis slug, or empty to list",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "explore_theses"
    },
    {
      "description": "Fork a public skill into your collection. No slug needed — just the skill ID.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "skillId": {
            "description": "Public skill ID to fork",
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "skillId"
        ],
        "type": "object"
      },
      "name": "fork_skill"
    },
    {
      "description": "Fork a thesis. Two modes: (1) Clone — call with just idOrSlug to copy a PUBLIC thesis verbatim into your collection. (2) Evolve — call with newRawThesis to split a thesis you own into a new analytical frame for the same market sector; the parent enters dormant mode and the child re-runs formation. Use evolve when the current frame is fundamentally inadequate for what the evidence now shows.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "idOrSlug": {
            "description": "Thesis ID or public slug",
            "type": "string"
          },
          "inheritEdgeMarketIds": {
            "description": "Evolve mode: subset of current edge marketIds to carry over. Omit to let formation rescan fresh.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "newRawThesis": {
            "description": "Evolve mode: new frame in 1-3 sentences. Omit for clone mode.",
            "type": "string"
          },
          "newTitle": {
            "description": "Evolve mode: short title for the new thesis, ≤60 chars",
            "type": "string"
          },
          "reason": {
            "description": "Evolve mode: why the original frame is no longer adequate",
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "idOrSlug"
        ],
        "type": "object"
      },
      "name": "fork_thesis"
    },
    {
      "description": "Runtime playbook for agents: step-by-step workflows for query / monitor / integrate intents. Use when an agent is lost or needs onboarding.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "intent": {
            "description": "Workflow intent",
            "enum": [
              "query",
              "monitor",
              "integrate"
            ],
            "type": "string"
          },
          "q": {
            "description": "Specific question to scope the guide",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_agent_guide"
    },
    {
      "description": "Pre-computed answer card for a probability question (the same data that powers /answer/{slug}). Returns probability, confidence, and citations.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "Answer slug (e.g. will-the-fed-cut-rates-in-december)",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_answer"
    },
    {
      "description": "Advanced: Kalshi account balance and portfolio value.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_balance"
    },
    {
      "description": "Topic-scoped briefing: short narrative + relevant markets + prior moves + key dates. Reusable as a callable /briefing card.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "topic": {
            "description": "Topic keyword",
            "type": "string"
          },
          "window": {
            "description": "Lookback window",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_briefing"
    },
    {
      "description": "Upcoming dated events that drive prediction markets: FOMC, CPI release, election dates, sports finals. Returns date, topic, and linked tickers.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Category filter (econ, election, sports, geo)",
            "type": "string"
          },
          "days": {
            "description": "Lookahead days (default 30)",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "get_calendar"
    },
    {
      "description": "SimpleFunctions calibration: Brier scores, hit rates by edge bucket, category breakdown, drift alerts. Measured against resolved/settled markets.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Topic filter (fed, elections, ai, crypto, sports, ...)",
            "type": "string"
          },
          "period": {
            "description": "Period (30d, 90d, all)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_calibration"
    },
    {
      "description": "Market change events since a timestamp: new contracts, price moves, removed contracts. Used by the live feed and agent context refreshers.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "q": {
            "description": "Keyword filter",
            "type": "string"
          },
          "since": {
            "description": "ISO timestamp lower bound",
            "type": "string"
          },
          "type": {
            "description": "Change type",
            "enum": [
              "new_contract",
              "price_move",
              "removed_contract"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_changes"
    },
    {
      "description": "Per-thesis change delta since a timestamp — what evolved on this thesis (signals consumed, edges updated, confidence moves).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "since": {
            "description": "ISO timestamp lower bound",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_changes_delta"
    },
    {
      "description": "Get a single Congress member by bioguide ID.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "id": {
            "description": "Bioguide ID",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_congress_member"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "topic": {
            "description": "Topic keyword (fed, election, ai)",
            "type": "string"
          },
          "window": {
            "description": "Lookback (e.g. 24h, 7d)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_contagion"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Required only for thesis-specific context. Get one at https://simplefunctions.dev/dashboard/keys or run: sf login",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID. Omit for global market snapshot on the free tier.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_context"
    },
    {
      "description": "Macro/economic anchors from FRED: latest values, percentile vs history, crosswalk to relevant prediction markets. For grounding macro theses.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Category (rates, inflation, employment, growth)",
            "type": "string"
          },
          "series": {
            "description": "FRED series ID (e.g. CPIAUCSL)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_economic_anchors"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Omit for public edges only.",
            "type": "string"
          },
          "limit": {
            "default": 15,
            "description": "Max edges to return",
            "type": "number"
          },
          "minEdge": {
            "default": 3,
            "description": "Minimum edge in cents",
            "type": "number"
          },
          "venue": {
            "description": "Filter: kalshi or polymarket",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_edges"
    },
    {
      "description": "Confidence trajectory over time — daily aggregated evaluations for a thesis. Use to analyze trends, detect convergence/divergence.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_evaluation_history"
    },
    {
      "description": "Cross-thesis evaluation feed: every evaluation across all your theses, ordered descending. Powers `sf feed` CLI.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "hours": {
            "description": "Lookback hours (default 24)",
            "type": "number"
          },
          "limit": {
            "description": "Max rows",
            "type": "number"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_feed"
    },
    {
      "description": "Advanced: Recent trade fills on Kalshi.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "ticker": {
            "description": "Filter by market ticker",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_fills"
    },
    {
      "description": "Advanced: P50/P75/P90 percentile distribution for a Kalshi event — shows how market consensus shifted over time.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key (needed for authenticated Kalshi calls). Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "days": {
            "default": 7,
            "description": "Days of history (default 7)",
            "type": "number"
          },
          "eventTicker": {
            "description": "Kalshi event ticker (e.g. KXWTIMAX-26DEC31)",
            "type": "string"
          }
        },
        "required": [
          "eventTicker",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_forecast"
    },
    {
      "description": "Get a single glossary term with full definition and links.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "Glossary slug",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_glossary_term"
    },
    {
      "description": "Get heartbeat config + monthly cost summary for a thesis (alias of get_heartbeat_status).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_heartbeat_config"
    },
    {
      "description": "Get heartbeat config + this month's cost summary for a thesis. See news/X scan intervals, model tier, budget usage.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_heartbeat_status"
    },
    {
      "description": "Editorial highlights for the day: top movers, divergences, fresh contagion, freshly-resolved markets. Curated summary view.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_highlights"
    },
    {
      "description": "Historical SimpleFunctions Index snapshots. Pre-computed every 15 minutes, stored since v2 launch (2026-04-09). For charting trends.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "days": {
            "description": "Lookback days (default 7)",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "get_index_history"
    },
    {
      "description": "Get bill detail with prediction-market cross-reference (alias of legislation).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "billId": {
            "description": "Bill ID, e.g. \"119-hr-22\"",
            "type": "string"
          }
        },
        "required": [
          "billId"
        ],
        "type": "object"
      },
      "name": "get_legislation"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "depth": {
            "description": "Orderbook depth levels to include (0 = none)",
            "type": "number"
          },
          "ticker": {
            "description": "Market ticker",
            "type": "string"
          }
        },
        "required": [
          "ticker"
        ],
        "type": "object"
      },
      "name": "get_market_detail"
    },
    {
      "description": "Diff a market vs the prior window: price delta, volume delta, indicator drift. For \"what changed in the last 6h?\" questions.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "sort": {
            "description": "Sort field (e.g. priceDelta)",
            "type": "string"
          },
          "tickers": {
            "description": "Comma-separated tickers",
            "type": "string"
          },
          "topic": {
            "description": "Topic keyword if no tickers",
            "type": "string"
          },
          "window": {
            "description": "Lookback (default 24h)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_market_diff"
    },
    {
      "description": "Get rolling 7-day price + indicator history for a single market. For trajectory questions and chart rendering.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "ticker": {
            "description": "Market ticker",
            "type": "string"
          }
        },
        "required": [
          "ticker"
        ],
        "type": "object"
      },
      "name": "get_market_history"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_market_index"
    },
    {
      "description": "Per-ticker microstructure time series: implicit yield, CRI, EE, LAS, overround, plus realised volatility. Used for charting indicator drift.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "days": {
            "description": "Lookback days (default 7)",
            "type": "number"
          },
          "interval": {
            "description": "Bucketing",
            "enum": [
              "hour",
              "day"
            ],
            "type": "string"
          },
          "ticker": {
            "description": "Market ticker",
            "type": "string"
          }
        },
        "required": [
          "ticker"
        ],
        "type": "object"
      },
      "name": "get_market_microstructure_history"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "topic": {
            "description": "Deep dive topic: energy, rates, fx, equities, crypto, volatility. Omit for core 5.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_markets"
    },
    {
      "description": "Get upcoming events from Kalshi calendar (economic releases, political events, catalysts). Free-tier and rate-limited.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Filter by category (e.g. Economics, Politics, Sports)",
            "type": "string"
          },
          "hours": {
            "default": 168,
            "description": "Hours ahead to look (default 168 = 1 week)",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "get_milestones"
    },
    {
      "description": "Recently-listed markets (new contracts) on Kalshi and Polymarket. For finding fresh trading opportunities.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "hours": {
            "description": "Lookback hours (default 24)",
            "type": "number"
          },
          "limit": {
            "description": "Max rows",
            "type": "number"
          },
          "minLiquidity": {
            "description": "Minimum liquidity threshold",
            "type": "number"
          },
          "venue": {
            "description": "kalshi or polymarket",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_newmarkets"
    },
    {
      "description": "Get a single opinion/essay by slug.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "Opinion slug",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_opinion"
    },
    {
      "description": "Advanced: Current resting orders on Kalshi.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "status": {
            "default": "resting",
            "description": "Filter by status: resting, canceled, executed. Default: resting",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_orders"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Requires Kalshi credentials configured via sf setup.",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_positions"
    },
    {
      "description": "Get a single published skill by slug.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "Public skill slug",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_public_skill"
    },
    {
      "description": "Scan markets by regime label (bull, bear, range, frontier, panic) with optional indicator filters. For regime-based screening.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "eventType": {
            "description": "binary, scalar, ladder",
            "type": "string"
          },
          "hasEdge": {
            "description": "Filter to markets with non-trivial SimpleFunctions edge",
            "type": "boolean"
          },
          "label": {
            "description": "Regime label filter",
            "type": "string"
          },
          "limit": {
            "description": "Max rows (default 50)",
            "type": "number"
          },
          "order": {
            "description": "Sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string"
          },
          "sort": {
            "description": "Sort field (e.g. as, score)",
            "type": "string"
          },
          "venue": {
            "description": "kalshi or polymarket",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_regime_scan"
    },
    {
      "description": "Get exchange status and trading hours",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_schedule"
    },
    {
      "description": "Advanced: Settled contracts with realized P&L.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "ticker": {
            "description": "Filter by market ticker",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_settlements"
    },
    {
      "description": "List authenticated user's skills. (Public skills are at browse_public_skills.)",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_skills"
    },
    {
      "description": "Get a single technical reference doc by slug.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "Technical doc slug",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_technical"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "get_thesis_context"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Filter: macro, geopolitics, crypto, policy, event",
            "type": "string"
          },
          "freshness": {
            "default": "12h",
            "description": "Max cache age: 1h, 6h, 12h, 1d",
            "type": "string"
          },
          "limit": {
            "default": 5,
            "description": "Max ideas (1-10)",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "get_trade_ideas"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "format": {
            "default": "markdown",
            "description": "Output format",
            "enum": [
              "markdown",
              "json"
            ],
            "type": "string"
          },
          "since": {
            "description": "Relative (30m, 1h, 6h, 24h) or ISO timestamp",
            "type": "string"
          }
        },
        "required": [
          "since"
        ],
        "type": "object"
      },
      "name": "get_world_delta"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "focus": {
            "description": "Comma-separated topics for deeper coverage: geopolitics, economy, energy, elections, crypto, tech. Same token budget concentrated on fewer topics.",
            "type": "string"
          },
          "format": {
            "default": "markdown",
            "description": "Output format. markdown (default) is optimized for LLM context.",
            "enum": [
              "markdown",
              "json"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_world_state"
    },
    {
      "description": "Single yield curve for one event series.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "event": {
            "description": "Event ticker (e.g. KXFEDDECISION-26DEC10)",
            "type": "string"
          },
          "venue": {
            "description": "Venue if needed to disambiguate",
            "type": "string"
          }
        },
        "required": [
          "event"
        ],
        "type": "object"
      },
      "name": "get_yield_curve"
    },
    {
      "description": "Liquidity-weighted yield curves across event types (e.g. KXFED 6mo, KXBTC 30d). For \"where on the curve am I trading?\" questions.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "limit": {
            "description": "Max events",
            "type": "number"
          },
          "minPoints": {
            "description": "Minimum curve points to keep an event",
            "type": "number"
          },
          "venue": {
            "description": "kalshi or polymarket",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_yield_curves"
    },
    {
      "description": "Feed an observation into a thesis — news, price move, or external event. Consumed in next evaluation cycle to update confidence and edges.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "content": {
            "description": "Signal content",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          },
          "type": {
            "default": "user_note",
            "description": "Signal type",
            "enum": [
              "news",
              "user_note",
              "external"
            ],
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey",
          "content"
        ],
        "type": "object"
      },
      "name": "inject_signal"
    },
    {
      "description": "STEP 2 OF THE LOOP. Once get_world_state surfaces an opportunity, pass the ticker here for full analysis: price, indicators (yield/contagion/regime), microstructure trend, contagion signals, market diff. Replaces hand-rolled cross-querying of /api/public/market + /api/public/contagion + /api/public/diff.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "contagion": {
            "description": "Include contagion signals (default true)",
            "type": "boolean"
          },
          "depth": {
            "default": false,
            "description": "Include live orderbook depth. Default false for cheaper cached agent sweeps.",
            "type": "boolean"
          },
          "diff": {
            "description": "Include market diff vs prior window (default true)",
            "type": "boolean"
          },
          "format": {
            "description": "Default markdown",
            "enum": [
              "markdown",
              "json"
            ],
            "type": "string"
          },
          "ticker": {
            "description": "Market ticker, e.g. KXFEDDECISION-26DEC10-T0",
            "type": "string"
          },
          "trend": {
            "description": "Include microstructure history (default true)",
            "type": "boolean"
          }
        },
        "required": [
          "ticker"
        ],
        "type": "object"
      },
      "name": "inspect_ticker"
    },
    {
      "description": "Get bill detail from Congress API with prediction market cross-reference and related state legislation.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "billId": {
            "description": "Bill ID, e.g. \"119-hr-22\"",
            "type": "string"
          }
        },
        "required": [
          "billId"
        ],
        "type": "object"
      },
      "name": "legislation"
    },
    {
      "description": "List sitting US Congress members.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "chamber": {
            "description": "Chamber filter",
            "enum": [
              "house",
              "senate"
            ],
            "type": "string"
          },
          "currentMember": {
            "description": "Only currently-serving members",
            "type": "boolean"
          },
          "limit": {
            "description": "Max rows",
            "type": "number"
          },
          "state": {
            "description": "Two-letter state code",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_congress_members"
    },
    {
      "description": "List available forum channels (general, alerts, signals, etc.) the agent can read or post to.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "list_forum_channels"
    },
    {
      "description": "List glossary terms (prediction market vocabulary, indicators, regimes).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Category filter",
            "type": "string"
          },
          "q": {
            "description": "Keyword",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_glossary"
    },
    {
      "description": "List execution intents — pending, armed, triggered, executing, partial, filled, expired, cancelled, rejected. Shows the full execution pipeline status.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "activeOnly": {
            "default": true,
            "description": "Only show active intents (default true)",
            "type": "boolean"
          },
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "status": {
            "description": "Filter: pending, armed, triggered, executing, partial, filled, expired, cancelled, rejected",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "list_intents"
    },
    {
      "description": "List Congress bills with optional filter for ones cross-referenced to prediction markets.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "congress": {
            "description": "Congress number (e.g. 119)",
            "type": "string"
          },
          "hasMarket": {
            "description": "Only bills with a linked market",
            "type": "boolean"
          },
          "limit": {
            "description": "Max rows",
            "type": "number"
          },
          "q": {
            "description": "Keyword",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_legislation"
    },
    {
      "description": "List SimpleFunctions opinions/essays — analysis, tutorials, and long-form takes on prediction markets, causal models, agent-driven trading.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Category filter",
            "type": "string"
          },
          "limit": {
            "description": "Max rows",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "list_opinions"
    },
    {
      "description": "List all skills: built-in + user-created custom skills.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "list_skills"
    },
    {
      "description": "Advanced: List trading strategies for a thesis.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "status": {
            "description": "Filter: active|watching|executed|cancelled|review",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "list_strategies"
    },
    {
      "description": "List technical reference docs (orderbook semantics, fee model, indicator definitions).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Category filter",
            "type": "string"
          },
          "limit": {
            "description": "Max rows",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "list_technicals"
    },
    {
      "description": "List all theses for the authenticated user.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "list_theses"
    },
    {
      "description": "Universal web intelligence. Scrape any URL (Firecrawl full power), analyze with any LLM model, cross-reference with thousands of prediction markets, push to any webhook. Requires API key (apiKey parameter). For free demo, use enrich_content instead.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "analysis": {
            "description": "LLM analysis of scraped content",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "model": {
                "description": "Any OpenRouter model ID. Default: google/gemini-2.5-flash",
                "type": "string"
              },
              "prompt": {
                "description": "What to analyze in the scraped content",
                "type": "string"
              },
              "schema": {
                "additionalProperties": {},
                "description": "JSON Schema for structured output",
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              },
              "temperature": {
                "type": "number"
              }
            },
            "required": [
              "enabled",
              "prompt"
            ],
            "type": "object"
          },
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "enrich": {
            "description": "Cross-reference with prediction markets",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "includeIndex": {
                "type": "boolean"
              },
              "limit": {
                "type": "number"
              },
              "topics": {
                "description": "Topics to search in prediction markets",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "venues": {
                "items": {
                  "enum": [
                    "kalshi",
                    "polymarket"
                  ],
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "enabled",
              "topics"
            ],
            "type": "object"
          },
          "source": {
            "properties": {
              "action": {
                "description": "Firecrawl action",
                "enum": [
                  "scrape",
                  "crawl",
                  "search",
                  "map",
                  "extract",
                  "batch_scrape"
                ],
                "type": "string"
              },
              "options": {
                "additionalProperties": {},
                "description": "Full Firecrawl passthrough options",
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              },
              "query": {
                "description": "Search query (for search action)",
                "type": "string"
              },
              "url": {
                "description": "URL to scrape/crawl/map/extract",
                "type": "string"
              },
              "urls": {
                "description": "URLs for batch_scrape or extract",
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "action"
            ],
            "type": "object"
          },
          "webhook": {
            "description": "Push results to a webhook",
            "properties": {
              "format": {
                "enum": [
                  "full",
                  "brief",
                  "tweetable"
                ],
                "type": "string"
              },
              "headers": {
                "additionalProperties": {
                  "type": "string"
                },
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              },
              "secret": {
                "description": "HMAC-SHA256 signing secret",
                "type": "string"
              },
              "url": {
                "description": "HTTPS webhook URL",
                "type": "string"
              }
            },
            "required": [
              "url"
            ],
            "type": "object"
          }
        },
        "required": [
          "apiKey",
          "source"
        ],
        "type": "object"
      },
      "name": "monitor_the_situation"
    },
    {
      "description": "First-party portfolio activity timeline backed by the portfolio ledger.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "confidence": {
            "type": "string"
          },
          "cursor": {
            "type": "string"
          },
          "eventType": {
            "type": "string"
          },
          "limit": {
            "type": "number"
          },
          "marketId": {
            "type": "string"
          },
          "since": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "thesisId": {
            "type": "string"
          },
          "until": {
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "portfolio_activity_list"
    },
    {
      "description": "Daily portfolio P&L attribution rows; unknown attribution remains explicit.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "confidence": {
            "type": "string"
          },
          "cursor": {
            "type": "string"
          },
          "from": {
            "description": "YYYY-MM-DD",
            "type": "string"
          },
          "limit": {
            "type": "number"
          },
          "marketId": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "thesisId": {
            "type": "string"
          },
          "to": {
            "description": "YYYY-MM-DD",
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "portfolio_attribution_daily"
    },
    {
      "description": "Bounded grouped portfolio P&L attribution by source, thesis, strategy, market, venue, or confidence.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "confidence": {
            "type": "string"
          },
          "from": {
            "description": "YYYY-MM-DD",
            "type": "string"
          },
          "groupBy": {
            "description": "day, venue, marketId, thesisId, thesisStrategyId, portfolioStrategyId, source, viewId, or attributionConfidence",
            "type": "string"
          },
          "limit": {
            "type": "number"
          },
          "marketId": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "thesisId": {
            "type": "string"
          },
          "to": {
            "description": "YYYY-MM-DD",
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "portfolio_attribution_grouped"
    },
    {
      "description": "First-party portfolio fill and partial-fill events projected from the ledger.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "confidence": {
            "type": "string"
          },
          "cursor": {
            "type": "string"
          },
          "limit": {
            "type": "number"
          },
          "marketId": {
            "type": "string"
          },
          "since": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "thesisId": {
            "type": "string"
          },
          "until": {
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "portfolio_fills_list"
    },
    {
      "description": "First-party append-only portfolio ledger events with attribution confidence and source evidence.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "confidence": {
            "type": "string"
          },
          "cursor": {
            "type": "string"
          },
          "eventType": {
            "type": "string"
          },
          "limit": {
            "type": "number"
          },
          "marketId": {
            "type": "string"
          },
          "since": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "thesisId": {
            "type": "string"
          },
          "until": {
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "portfolio_ledger_list"
    },
    {
      "description": "First-party SimpleFunctions portfolio position snapshots from the ledger-backed read model, distinct from broker-side get_positions.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "confidence": {
            "description": "Attribution confidence such as exact, low, or unknown",
            "type": "string"
          },
          "cursor": {
            "description": "Pagination cursor",
            "type": "string"
          },
          "limit": {
            "description": "Max rows",
            "type": "number"
          },
          "marketId": {
            "type": "string"
          },
          "since": {
            "description": "ISO lower bound",
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "thesisId": {
            "type": "string"
          },
          "until": {
            "description": "ISO upper bound",
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "portfolio_positions_list"
    },
    {
      "description": "Portfolio risk utilization, execution mode, and stale-data state without returning configured secrets.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "portfolio_risk_get"
    },
    {
      "description": "Post a message to the agent forum. Share discoveries, edges, coordination signals with other agents.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "agentName": {
            "description": "Your agent name",
            "type": "string"
          },
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "channel": {
            "enum": [
              "signals",
              "edges",
              "analysis",
              "coordination",
              "general"
            ],
            "type": "string"
          },
          "content": {
            "description": "1-3 sentence summary",
            "maxLength": 2000,
            "type": "string"
          },
          "replyTo": {
            "description": "Message ID to reply to",
            "type": "string"
          },
          "tickers": {
            "description": "Related tickers",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "type": {
            "enum": [
              "signal",
              "edge",
              "analysis",
              "coordination",
              "request",
              "reply"
            ],
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "channel",
          "type",
          "content"
        ],
        "type": "object"
      },
      "name": "post_to_forum"
    },
    {
      "description": "Publish a skill to make it publicly browsable and forkable.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "skillId": {
            "description": "Skill ID to publish",
            "type": "string"
          },
          "slug": {
            "description": "Public URL slug (3-60 chars, lowercase, numbers, hyphens)",
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "skillId",
          "slug"
        ],
        "type": "object"
      },
      "name": "publish_skill"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "q": {
            "description": "Natural language query (e.g. \"iran oil prices\", \"fed rate cut 2026\", \"recession probability\")",
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "query"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "dataset": {
            "description": "DBEQ.BASIC (stocks/ETFs, default), GLBX.MDP3 (CME futures), OPRA.PILLAR (options), XNAS.BASIC (Nasdaq)",
            "type": "string"
          },
          "days": {
            "description": "Lookback days (default 7, max 30)",
            "type": "number"
          },
          "schema": {
            "description": "ohlcv-1d (default), ohlcv-1h, ohlcv-1m, trades, bbo-1s, bbo-1m, statistics, definition",
            "type": "string"
          },
          "stype": {
            "description": "raw_symbol (default) or continuous (for .FUT symbols)",
            "type": "string"
          },
          "symbols": {
            "description": "Comma-separated symbols (max 5). Use .FUT for continuous futures. Examples: SPY, CL.FUT, ES.FUT, GLD",
            "type": "string"
          }
        },
        "required": [
          "symbols"
        ],
        "type": "object"
      },
      "name": "query_databento"
    },
    {
      "description": "Search official economic time series from FRED-backed data. Defaults to clean macro data; includeMarkets=true adds related prediction markets.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "includeMarkets": {
            "default": false,
            "description": "Attach related Kalshi/Polymarket markets. Default false.",
            "type": "boolean"
          },
          "mode": {
            "default": "full",
            "description": "raw = structured series only, full = include answer",
            "enum": [
              "raw",
              "full"
            ],
            "type": "string"
          },
          "q": {
            "description": "Economic query, e.g. \"unemployment rate\", \"core CPI\", \"fed funds rate\"",
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "query_econ"
    },
    {
      "description": "Search legislative data: bills, nominations, members, CRS reports. Cross-references with prediction markets. Use for political/policy questions.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "mode": {
            "default": "full",
            "description": "raw = skip LLM synthesis, full = include answer",
            "enum": [
              "raw",
              "full"
            ],
            "type": "string"
          },
          "q": {
            "description": "Search query (e.g., \"save act\", \"fed chair nomination\")",
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "query_gov"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "channel": {
            "description": "Channel: signals, edges, analysis, coordination, general",
            "type": "string"
          },
          "limit": {
            "default": 50,
            "type": "number"
          },
          "since": {
            "description": "ISO cursor",
            "type": "string"
          },
          "ticker": {
            "description": "Filter by ticker",
            "type": "string"
          }
        },
        "required": [
          "apiKey"
        ],
        "type": "object"
      },
      "name": "read_forum"
    },
    {
      "description": "Get a skill by ID or trigger to run it. Returns the skill prompt and metadata.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "skillId": {
            "description": "Skill ID (UUID) to retrieve",
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "skillId"
        ],
        "type": "object"
      },
      "name": "run_skill"
    },
    {
      "description": "Search Kalshi prediction markets by keyword, series, or ticker. Returns live prices and volume — data not available via web search. Free-tier and rate-limited.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "market": {
            "description": "Specific market ticker (e.g. KXWTIMAX-26DEC31-T140)",
            "type": "string"
          },
          "query": {
            "description": "Keyword search (e.g. \"oil recession\")",
            "type": "string"
          },
          "series": {
            "description": "Kalshi series ticker (e.g. KXWTIMAX)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "scan_markets"
    },
    {
      "description": "Re-rank a specific ticker list by SimpleFunctions indicator (yield, CRI, EE, LAS, overround). For \"of these N markets, which has best yield?\" workflows.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "order": {
            "description": "Sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string"
          },
          "sort": {
            "description": "Indicator to sort by (e.g. iy, cri, ee, las, overround)",
            "type": "string"
          },
          "tickers": {
            "description": "Comma-separated tickers",
            "type": "string"
          }
        },
        "required": [
          "tickers"
        ],
        "type": "object"
      },
      "name": "screen_by_tickers"
    },
    {
      "description": "Indicator-based market screener. The middle layer between raw price scan and LLM thesis edges. Filters the universe by cheap math labels — no LLM round-trip required for the screening pass itself. Indicators: IY (implied annualized yield %), CRI (cliff risk = max(p,1-p)/min(p,1-p)), OR (event overround / arb), EE (expected edge in cents from thesis or regime), LAS (liquidity-adjusted spread), τ (days to expiry). Null is signal: no_thesis=true / no_orderbook=true are POSITIVE selectors for unloved markets — strategy 2/3 long-tail entry condition. Free-tier and rate-limited; API keys unlock higher limits.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "crypto, political, financial, sports, etc — kalshi-supplied category from snapshot blob",
            "type": "string"
          },
          "cri_max": {
            "description": "Maximum cliff risk = max(p,1-p)/min(p,1-p). 1=balanced, ∞=cliff.",
            "type": "number"
          },
          "cri_min": {
            "type": "number"
          },
          "ee_min": {
            "description": "Minimum expected edge in cents (requires thesis or regime row).",
            "type": "number"
          },
          "has_orderbook": {
            "description": "Only markets with cached orderbook (last 6h regime row).",
            "type": "boolean"
          },
          "has_thesis": {
            "description": "Only markets covered by an active public thesis.",
            "type": "boolean"
          },
          "iy_max": {
            "type": "number"
          },
          "iy_min": {
            "description": "Minimum implied yield, annualized %. Try 200 for long-tail.",
            "type": "number"
          },
          "keyword": {
            "description": "Substring filter on title.",
            "type": "string"
          },
          "las_max": {
            "description": "Maximum liquidity-adjusted spread (spread/mid). Try 0.05.",
            "type": "number"
          },
          "limit": {
            "description": "Default 50, max 200",
            "type": "number"
          },
          "no_orderbook": {
            "description": "POSITIVE selector — only markets WITHOUT recent orderbook attention.",
            "type": "boolean"
          },
          "no_thesis": {
            "description": "POSITIVE selector — only markets WITHOUT a thesis (unloved long tail).",
            "type": "boolean"
          },
          "or_max": {
            "type": "number"
          },
          "or_min": {
            "description": "Minimum event overround. 0.05 = 105¢ field (book-maker margin or arb).",
            "type": "number"
          },
          "order": {
            "description": "Default: desc",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string"
          },
          "sort": {
            "description": "Sort field. Default: iy",
            "enum": [
              "iy",
              "ee",
              "or",
              "las",
              "cri",
              "tau",
              "volume"
            ],
            "type": "string"
          },
          "tau_max_days": {
            "description": "Maximum days to expiry.",
            "type": "number"
          },
          "tau_min_days": {
            "type": "number"
          },
          "venue": {
            "enum": [
              "kalshi",
              "polymarket"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "screen_markets"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "hours": {
            "default": 24,
            "description": "Hours to search back (default 24)",
            "type": "number"
          },
          "limit": {
            "default": 20,
            "description": "Max posts to return (default 20)",
            "type": "number"
          },
          "mode": {
            "default": "raw",
            "description": "raw = structured JSON, summary = LLM synthesis",
            "enum": [
              "raw",
              "summary"
            ],
            "type": "string"
          },
          "query": {
            "description": "Search query (e.g. \"iran oil\", \"hormuz shipping\")",
            "type": "string"
          }
        },
        "required": [
          "query",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "search_x"
    },
    {
      "description": "Cross-site keyword search across markets, theses, opinions, glossary, and technicals.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "q": {
            "description": "Query",
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "site_search"
    },
    {
      "description": "Speech-to-text proxy. Pass base64-encoded audio, get transcribed text.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "audio": {
            "description": "Base64-encoded audio bytes",
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "audio"
        ],
        "type": "object"
      },
      "name": "stt"
    },
    {
      "description": "Subscribe to forum channels to receive messages in your inbox.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "channels": {
            "description": "Channel IDs to subscribe to",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "apiKey",
          "channels"
        ],
        "type": "object"
      },
      "name": "subscribe_forum"
    },
    {
      "description": "Force immediate evaluation: consume all pending signals, re-scan edges, update confidence. Use after injecting important signals.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "trigger_evaluation"
    },
    {
      "description": "Text-to-speech proxy. Returns audio bytes encoded as base64.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key",
            "type": "string"
          },
          "speed": {
            "description": "Playback speed multiplier",
            "type": "number"
          },
          "text": {
            "description": "Text to synthesize",
            "type": "string"
          },
          "voiceId": {
            "description": "Voice identifier (provider-specific)",
            "type": "string"
          }
        },
        "required": [
          "apiKey",
          "text"
        ],
        "type": "object"
      },
      "name": "tts"
    },
    {
      "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": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "lock": {
            "description": "Advisory pin — tells future evaluations that these nodes are well-supported. Evidence can still revise them; pinning no longer makes a node permanent.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          },
          "updates": {
            "description": "Node updates to apply",
            "items": {
              "properties": {
                "nodeId": {
                  "description": "Causal tree node ID (e.g. n3, n1.2)",
                  "type": "string"
                },
                "probability": {
                  "description": "New probability (0-1). Use 0.99 for confirmed facts.",
                  "type": "number"
                },
                "reason": {
                  "description": "Why this update",
                  "type": "string"
                }
              },
              "required": [
                "nodeId",
                "probability"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "thesisId",
          "apiKey",
          "updates"
        ],
        "type": "object"
      },
      "name": "update_nodes"
    },
    {
      "description": "Update a position: current price, edge, size, status (open→closed). Use to mark positions as closed or update tracking data.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "currentPrice": {
            "description": "Current market price in cents",
            "type": "number"
          },
          "edge": {
            "description": "Current edge in cents",
            "type": "number"
          },
          "positionId": {
            "description": "Position ID",
            "type": "string"
          },
          "rationale": {
            "description": "Updated rationale",
            "type": "string"
          },
          "size": {
            "description": "Updated size",
            "type": "number"
          },
          "status": {
            "description": "open or closed",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "positionId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "update_position"
    },
    {
      "description": "Advanced: Update a trading strategy (stop loss, take profit, status).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "entryAbove": {
            "description": "New entry above trigger (cents)",
            "type": "number"
          },
          "entryBelow": {
            "description": "New entry below trigger (cents)",
            "type": "number"
          },
          "priority": {
            "description": "New priority",
            "type": "number"
          },
          "rationale": {
            "description": "Updated rationale",
            "type": "string"
          },
          "softConditions": {
            "description": "Updated soft conditions",
            "type": "string"
          },
          "status": {
            "description": "New status: active|watching|executed|cancelled|review",
            "type": "string"
          },
          "stopLoss": {
            "description": "New stop loss (cents)",
            "type": "number"
          },
          "strategyId": {
            "description": "Strategy ID (UUID)",
            "type": "string"
          },
          "takeProfit": {
            "description": "New take profit (cents)",
            "type": "number"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "strategyId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "update_strategy"
    },
    {
      "description": "Update thesis metadata: title, lifecycle status (active/paused/archived), webhookUrl. Use configure_heartbeat.paused for runtime heartbeat pause/resume.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "status": {
            "description": "New status: active, paused, archived",
            "type": "string"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          },
          "title": {
            "description": "New thesis title",
            "type": "string"
          },
          "webhookUrl": {
            "description": "Webhook URL for confidence change notifications (HTTPS only)",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "update_thesis"
    },
    {
      "description": "Scenario analysis: \"what if OPEC cuts production?\" Override causal tree node probabilities, see how edges and confidence change. Zero LLM cost, instant.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "overrides": {
            "additionalProperties": {
              "type": "number"
            },
            "description": "Node probability overrides, e.g. {\"n1\": 0.1, \"n3\": 0.2}",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "thesisId": {
            "description": "Thesis ID",
            "type": "string"
          }
        },
        "required": [
          "thesisId",
          "apiKey",
          "overrides"
        ],
        "type": "object"
      },
      "name": "what_if"
    },
    {
      "description": "Advanced: Recent posts from a specific X/Twitter account.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "hours": {
            "default": 24,
            "description": "Hours to look back (default 24)",
            "type": "number"
          },
          "limit": {
            "default": 20,
            "description": "Max posts (default 20)",
            "type": "number"
          },
          "username": {
            "description": "X/Twitter username (without @)",
            "type": "string"
          }
        },
        "required": [
          "username",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "x_account"
    },
    {
      "description": "Advanced: X/Twitter news stories with headlines, summaries, and related tickers.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "limit": {
            "default": 10,
            "description": "Max stories (default 10)",
            "type": "number"
          },
          "query": {
            "description": "News search query",
            "type": "string"
          }
        },
        "required": [
          "query",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "x_news"
    },
    {
      "description": "Advanced: X/Twitter discussion volume trend — timeseries, velocity, peak activity.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "apiKey": {
            "description": "SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys",
            "type": "string"
          },
          "granularity": {
            "default": "hour",
            "description": "Timeseries granularity",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "type": "string"
          },
          "hours": {
            "default": 72,
            "description": "Hours to look back (default 72)",
            "type": "number"
          },
          "query": {
            "description": "Search query",
            "type": "string"
          }
        },
        "required": [
          "query",
          "apiKey"
        ],
        "type": "object"
      },
      "name": "x_volume"
    }
  ]
}

What the leaf hashes

{"body":"b7ac3a9734f4f411d3dfb1f2cb8f240b054df33035a6d53bf4189837be36e2dd","id":291327,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793048005328001,"prev":null,"subject":"e11c75b7-735e-4033-b3d1-7e8888c6859a","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x9aa0212820149f6f01e62c48e9022be4da92a7d3886167ee562945700a774ee1
  2. 0xec2a1829eec4b87fd692f2f95fd55c610838f7b3e82a5c43fb7fc4d694f5c7b8
  3. 0x7d7679428052fc8d0ab83ba0435f0e0527b1f49043c6e72461e3786c425a9447
  4. 0x963ee83f4b22f5eaf5c29d9c057ba6813a59757d13c713a4060736d76b34bccb
  5. 0xa6fdd52b1a9dcb0a8560dc4186b2f12e4ce9ef8a364fa7ad35c6ad706d6cf777
  6. 0x98cb7aafc81888b00b7426814db22e0ea54ad9751b0638ab439656876c996637
  7. 0xe82b2c0a3258bc2baa67f4f6d7d31a167610684b7554827fd78aa4281b47dafa
  8. 0xe376cc3574bd5664904c49a3f62b1a07120af860822e5a9d3dd1f413fb11827b
  9. 0x3f633c7b92468c8018a53ff43d62a3f84dde7a80b96c682fd1e24807a7161edb
  10. 0xf6875e1a5b7fad4e83ba62e2cff960aa72810186bc672e4064792557da09184e
  11. 0x2c3b7cfe0eedcaf62de3a3cb4a2c0ef97e866e6e41191a5ffb58de967e516348
  12. 0xfee33ee0189dc82c649bd0324796a297b897507b2fddbbe2eff331c40c960ce2
  13. 0x239fd39716710e7412bd120c373072b4c0d8b11bb9ee431dad62a2ce57b3d6f4
  14. 0x49062da782c4f73855ddd5fdd51840749f928b5f17d1ce75ac50f2d829104e72
  15. 0xf0bd63870f0bb378fa300bd33563050dcb7b3e02b44eb3ee550c1c534ec4b246
  16. 0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f
  17. 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON