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