Simplefunctions is an MCP server with 108 tools an agent can call, among them add_position, augment_tree, batch_markets. It answers at https://simplefunctions.dev/api/mcp/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 24 October 2026, succeeded.
Calibrated world model for AI agents. 40 tools: world state, markets, trading. Kalshi + Polymarket.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
add_position | Record a new position in a thesis for tracking. Use after an intent fills or a manual trade. Inputs: thesisId, apiKey, venue, externalMarketId, marketTitle, direction |
augment_tree | Advanced: Merge suggested causal tree nodes from evaluations into the tree (append-only). Inputs: thesisId, apiKey, dryRun |
batch_markets | Fetch many markets at once by ticker list. Cheaper than calling get_market_detail in a loop. Inputs: tickers, depth |
browse_public_skills | Browse public skills from the community. Free-tier and rate-limited. Filter by category, search, or sort by popularity. Inputs: category, q, sort |
cancel_intent | Cancel an active intent. Stops trigger evaluation and prevents execution. Inputs: apiKey, intentId |
close_position | Delete a position record from a thesis. Inputs: thesisId, positionId, apiKey |
configure_heartbeat | 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 budge Inputs: thesisId, apiKey, newsIntervalMin, xIntervalMin, evalModelTier, monthlyBudgetUsd |
create_intent | 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. Inputs: apiKey, action, venue, marketId, marketTitle, direction |
create_skill | Create a custom agent skill — a reusable prompt/workflow that can be triggered via slash command. Inputs: apiKey, name, trigger, description, prompt, category |
create_strategy | 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. Inputs: thesisId, apiKey, marketId, market, direction, horizon |
create_thesis | 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 Inputs: apiKey, thesis, sync |
enrich_content | 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. Inputs: content, topics, model, includeIndex |
explore_public | Browse public theses from other users. Free-tier and rate-limited. Pass a slug to get details, or omit to list all. Inputs: slug |
explore_theses | Browse public theses (alias of explore_public). Pass slug to get one, omit to list. Inputs: slug |
fork_skill | Fork a public skill into your collection. No slug needed — just the skill ID. Inputs: apiKey, skillId |
fork_thesis | 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 p Inputs: apiKey, idOrSlug, newRawThesis, newTitle, reason, inheritEdgeMarketIds |
get_agent_guide | Runtime playbook for agents: step-by-step workflows for query / monitor / integrate intents. Use when an agent is lost or needs onboarding. Inputs: intent, q |
get_answer | Pre-computed answer card for a probability question (the same data that powers /answer/{slug}). Returns probability, confidence, and citations. Inputs: slug |
get_balance | Advanced: Kalshi account balance and portfolio value. Inputs: apiKey |
get_briefing | Topic-scoped briefing: short narrative + relevant markets + prior moves + key dates. Reusable as a callable /briefing card. Inputs: topic, window |
get_calendar | Upcoming dated events that drive prediction markets: FOMC, CPI release, election dates, sports finals. Returns date, topic, and linked tickers. Inputs: days, category |
get_calibration | SimpleFunctions calibration: Brier scores, hit rates by edge bucket, category breakdown, drift alerts. Measured against resolved/settled markets. Inputs: category, period |
get_changes | Market change events since a timestamp: new contracts, price moves, removed contracts. Used by the live feed and agent context refreshers. Inputs: since, q, type |
get_changes_delta | Per-thesis change delta since a timestamp — what evolved on this thesis (signals consumed, edges updated, confidence moves). Inputs: thesisId, apiKey, since |
get_congress_member | Get a single Congress member by bioguide ID. Inputs: id |
get_contagion | 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. Inputs: topic, window |
get_context | 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 Inputs: thesisId, apiKey |
get_economic_anchors | Macro/economic anchors from FRED: latest values, percentile vs history, crosswalk to relevant prediction markets. For grounding macro theses. Inputs: category, series |
get_edges | 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. Inputs: apiKey, limit, minEdge, venue |
get_evaluation_history | Confidence trajectory over time — daily aggregated evaluations for a thesis. Use to analyze trends, detect convergence/divergence. Inputs: thesisId, apiKey |
get_feed | Cross-thesis evaluation feed: every evaluation across all your theses, ordered descending. Powers `sf feed` CLI. Inputs: apiKey, hours, limit |
get_fills | Advanced: Recent trade fills on Kalshi. Inputs: apiKey, ticker |
get_forecast | Advanced: P50/P75/P90 percentile distribution for a Kalshi event — shows how market consensus shifted over time. Inputs: eventTicker, days, apiKey |
get_glossary_term | Get a single glossary term with full definition and links. Inputs: slug |
get_heartbeat_config | Get heartbeat config + monthly cost summary for a thesis (alias of get_heartbeat_status). Inputs: thesisId, apiKey |
get_heartbeat_status | Get heartbeat config + this month's cost summary for a thesis. See news/X scan intervals, model tier, budget usage. Inputs: thesisId, apiKey |
get_highlights | Editorial highlights for the day: top movers, divergences, fresh contagion, freshly-resolved markets. Curated summary view. |
get_index_history | Historical SimpleFunctions Index snapshots. Pre-computed every 15 minutes, stored since v2 launch (2026-04-09). For charting trends. Inputs: days |
get_legislation | Get bill detail with prediction-market cross-reference (alias of legislation). Inputs: billId |
get_market_detail | 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. Inputs: ticker, depth |
get_market_diff, get_market_history, get_market_index, get_market_microstructure_history, get_markets, get_milestones, get_newmarkets, get_opinion, get_orders, get_positions, get_public_skill, get_regime_scan, get_schedule, get_settlements, get_skills, get_technical, get_thesis_context, get_trade_ideas, get_world_delta, get_world_state, get_yield_curve, get_yield_curves, inject_signal, inspect_ticker, legislation, list_congress_members, list_forum_channels, list_glossary, list_intents, list_legislation, list_opinions, list_skills, list_strategies, list_technicals, list_theses, monitor_the_situation, portfolio_activity_list, portfolio_attribution_daily, portfolio_attribution_grouped, portfolio_fills_list, portfolio_ledger_list, portfolio_positions_list, portfolio_risk_get, post_to_forum, publish_skill, query, query_databento, query_econ, query_gov, read_forum, run_skill, scan_markets, screen_by_tickers, screen_markets, search_x, site_search, stt, subscribe_forum, trigger_evaluation, tts, update_nodes, update_position, update_strategy, update_thesis, what_if, x_account, x_news, x_volume
Every block below points at https://simplefunctions.dev/api/mcp/mcp. Pick your client and copy.
claude mcp add --transport http simplefunctions https://simplefunctions.dev/api/mcp/mcp
{
"mcpServers": {
"simplefunctions": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://simplefunctions.dev/api/mcp/mcp"]
}
}
}{
"mcpServers": {
"simplefunctions": {
"url": "https://simplefunctions.dev/api/mcp/mcp"
}
}
}{
"servers": {
"simplefunctions": {
"type": "http",
"url": "https://simplefunctions.dev/api/mcp/mcp"
}
}
}{
"context_servers": {
"simplefunctions": {
"url": "https://simplefunctions.dev/api/mcp/mcp"
}
}
}{
"mcpServers": {
"simplefunctions": {
"serverUrl": "https://simplefunctions.dev/api/mcp/mcp"
}
}
}{
"mcpServers": {
"simplefunctions": {
"url": "https://simplefunctions.dev/api/mcp/mcp"
}
}
}name: Simplefunctions
version: 0.0.1
schema: v1
mcpServers:
- name: Simplefunctions
type: streamable-http
url: https://simplefunctions.dev/api/mcp/mcp{
"mcpServers": {
"simplefunctions": {
"httpUrl": "https://simplefunctions.dev/api/mcp/mcp"
}
}
}{
"mcpServers": {
"simplefunctions": {
"type": "http",
"url": "https://simplefunctions.dev/api/mcp/mcp"
}
}
}{
"mcpServers": {
"simplefunctions": {
"url": "https://simplefunctions.dev/api/mcp/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fsimplefunctions.dev%2Fapi%2Fmcp%2Fmcp&type=streamable_http&id=simplefunctions&name=Simplefunctions
It answered our last check on 24 October 2026 in 344 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
108, as returned by the server's own tools/list on 21 September 2026: add_position, augment_tree, batch_markets, browse_public_skills, cancel_intent, close_position, configure_heartbeat, create_intent, and 100 more.
It answered our last check on 24 October 2026 in 344 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://simplefunctions.dev/api/mcp/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.spfunctions. Endpoint host: simplefunctions.dev. ARD identifier: urn:air:io.github.spfunctions:mcp:simplefunctions.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.