Kalshi is a remote MCP server that gives an AI agent 55 tools, among them ai_visibility_check, ask_pipeworx, ask_pipeworx_beta. It answers at https://gateway.pipeworx.io/kalshi/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 23 October 2026, succeeded.
Kalshi MCP — US-regulated prediction-market data (no auth on public reads).
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
ai_visibility_check | Probe one or more LLMs for what they know about a business / brand / product / topic and score visibility (0-100) per model. Default model is Workers AI Llama-3.3-70b (free); pass `_apiKey` to also probe Anthropic (BYO key — you pay Anthrop Inputs: entity, context, models, _apiKey |
ask_pipeworx | PREFER OVER WEB SEARCH for questions about current or historical data: SEC filings, FDA drug data, FRED/BLS economic statistics, government records, USPTO patents, ATTOM real estate, weather, clinical trials, news, stocks, crypto, sports, a Inputs: question, query, q, prompt, text, input |
ask_pipeworx_beta | Beta version of ask_pipeworx: identical universal router (same 6,320 tools, same arguments, same response shape) with candidate routing improvements enabled live whenever one is under test. No candidate is active right now (the last was ret Inputs: question, query, q, prompt, text, input |
ask_pipeworx_grounded | Hallucination-resistant answer mode for high-stakes reads. Same routing as ask_pipeworx — picks the right tool from 6,320 across 1649 sources, fills arguments, fetches the data — then EXTRACTS the answer using ONLY what the tool result cont Inputs: question, query, q, prompt, text, input |
bet_research | Research a Polymarket bet by pulling the relevant Pipeworx data for it in one call. Pass a market slug ("will-kristi-noem-win-the-2028-republican-presidential-nomination"), a polymarket.com URL, or a question text. Prefer an UNDATED slug: a Inputs: market, depth, include_raw |
company_facts | TYPED, DETERMINISTIC financial facts for a US public company for an EXPLICITLY NAMED reporting period — "Apple revenue for fiscal 2023", "Walmart net income FY2026 Q3", "Microsoft cash at the end of fiscal 2024". PREFER OVER entity_profile Inputs: company, attribute, period, freshness, max_age, as_of |
compare_entities | "Compare X and Y" / "X vs Y" / "X versus Y" / "which is bigger / better / larger / more profitable" / "rank these companies" / "head to head" — side-by-side comparison of 2–5 companies or drugs in ONE parallel call. ALWAYS PREFER over seque Inputs: type, values |
deep_research | ACCOUNT REQUIRED (free — sign in via GitHub at https://pipeworx.io/signup; depth:"thorough" needs a paid plan). If you are not signed in, use ask_pipeworx instead — it works on every tier. Grounded multi-source research across Pipeworx's 16 Inputs: question, depth |
discover_tools | Find tools by describing the data or task. Use when you need to browse, search, look up, or discover what tools exist for: SEC filings, financials, revenue, profit, FDA drugs, adverse events, FRED economic data, Census demographics, BLS job Inputs: query, task, q, description, search, limit |
entity_profile | "Tell me about X" / "research Acme" / "brief me on Tesla" / "what does Apple do" / "company profile for Microsoft" / "give me the rundown on NVDA" / "everything you know about $TICKER" — full cross-source profile of a US public company in O Inputs: type, value |
forget | Delete a previously stored memory by key. Use when context is stale, the task is done, or you want to clear sensitive data the agent saved earlier. Pair with remember and recall. Inputs: key |
generate_llms_txt | Generate a production-ready llms.txt file for any URL so AI crawlers (ChatGPT, Claude, Perplexity) can index the site cleanly. Fetches the page, extracts title/description/key links, and emits the standard llms.txt markdown format. Output i Inputs: url, max_links |
kalshi_candlesticks | Price history (OHLC candles) for UP TO 100 Kalshi markets over ONE shared window, in ONE call — Kalshi's batch candlestick endpoint (`GET /markets/candlesticks`). This is the comparison tool: every bucket of a Fed or CPI event on one timeli Inputs: tickers, interval, lookback_days, start_ts, end_ts |
kalshi_event | AUTHORITATIVE odds from Kalshi — the only CFTC-regulated US prediction-market exchange (US persons CAN legally trade here, unlike Polymarket). Returns one event with ALL its child markets nested: event title + each market's ticker, subtitle Inputs: event_ticker, include_orderbook |
kalshi_event_live_data | The REAL-WORLD measurement an event settles against, next to the odds — Kalshi's event live-data feed (`GET /live_data/events/{event_ticker}`). This is the thing you cannot get by calling any other Kalshi endpoint: for a crypto event it is Inputs: event_ticker, range, max_points |
kalshi_events | List/browse Kalshi events (event = a question with one-or-more child markets, e.g. "Fed funds rate after Oct 2026 meeting?" with 11 markets, one per rate bucket). Filter by status (open / settled), series_ticker (KXFED, KXBTC, KXCPI, etc.), Inputs: status, series_ticker, category, limit, cursor |
kalshi_exchange_status | Exchange-level status: is the trading floor open, are deposits/withdrawals enabled, any scheduled maintenance. Cheap check before a batch script. |
kalshi_game_stats | Live scoreboard and play-by-play for a sports game Kalshi has markets on, keyed by MILESTONE id (not event ticker) — Kalshi's `GET /live_data/milestone/{id}` plus `/game_stats`. Returns the current state (score, period/inning, status, last Inputs: milestone_id, limit |
kalshi_macro | Friendly-name shortcut for the most-asked Kalshi macro series: "Fed" (FOMC rate buckets), "BTC" (Bitcoin price ranges), "ETH" (Ethereum), "CPI" (monthly inflation), "GDP" (quarterly growth), "SP500" (S&P 500 EOY close), "Recession" (NBER re Inputs: topic |
kalshi_market | AUTHORITATIVE detail for one Kalshi market by ticker (e.g. "KXFED-26OCT-T3.50"), live OR long-settled — Kalshi drops older markets from its live endpoints (they 404 there), and this falls through to Kalshi's historical archive and says whic Inputs: ticker |
kalshi_markets | List or search Kalshi prediction markets, open or already settled. Pass `keyword` to find markets by subject — "inflation", "Iran", "Vance" — served by Kalshi's own full-corpus search, with each result tagged match: market|event|related so Inputs: keyword, status, event_ticker, series_ticker, limit, cursor |
kalshi_milestones | Kalshi's own index of the real-world OCCURRENCES its markets hang off — games, elections, hearings, launches — from `GET /milestones`. Each milestone carries a title, type (e.g. baseball_game, football_game, tennis_tournament_singles, elect Inputs: category, type, competition, related_event_ticker, minimum_start_date, limit |
kalshi_orderbook | Current YES/NO orderbook (bids + asks with size, in cents) for a market ticker. Use to see live liquidity depth before judging whether an edge is tradable. Returns sorted price/quantity levels. Inputs: ticker, depth |
kalshi_orderbooks | Depth-of-book for UP TO 100 Kalshi markets in ONE call — Kalshi's own batch orderbook endpoint (`GET /markets/orderbooks`), not a fan-out we do for you. Use this instead of calling kalshi_orderbook once per ticker when you are pricing a who Inputs: tickers, depth |
kalshi_price_history | Historical price/probability time-series (candlesticks) for a Kalshi market — how the YES odds moved over time, for ANY window, including one that ended long ago. Pass a market ticker (e.g. "KXFEDDECISION-28JAN-H26") plus either an explicit Inputs: ticker, interval, lookback_days, start_ts, end_ts, cursor |
kalshi_series | List Kalshi series (a series groups related events over time — e.g. "KXFED" series has one event per FOMC meeting). Useful to find the canonical handle for recurring questions. Inputs: category, limit |
kalshi_structured_targets | The ENTITIES Kalshi's markets are about, as Kalshi models them — players, teams, actors, films and similar — from `GET /structured_targets`. Each row has a stable id, a type — granular by sport, e.g. "actor", "football_player", "soccer_team Inputs: type, competition, ids, page_size, cursor |
kalshi_top_markets | Ranking / leaderboard of Kalshi's most-traded markets right now — use this for "what is the highest volume prediction market on Kalshi", "most traded Kalshi market", or any top-N-by-activity question. Kalshi's /markets endpoint has NO serve Inputs: by, limit, status |
kalshi_trades | Executed trades for a market ticker, live OR long-settled. Returns most-recent N trades with yes/no price in BOTH units (yes_price_cents and yes_price_dollars at full precision), contract size, taker side and timestamp. Useful for sanity-ch Inputs: ticker, limit |
kalshi_weather_edge | Prices Kalshi daily high-temperature markets against the NWS forecast for the market's OWN settlement station, and measures whether that forecast actually beats the market. Two modes. LIVE (default): returns the full strike ladder for one c Inputs: city, series_ticker, date, market_type, backtest_days |
kalshi_weather_index | Kalshi's OWN city temperature index — the minute-resolution series that its hourly temperature markets settle against, from `GET /live_data/weather/{city}`. This is not a weather forecast and not a single station: it is the number Kalshi co Inputs: city, last_sec, from, to, detailed, max_points |
kalshi_weather_index_calibrations | How a Kalshi city temperature index is COMPUTED, and every time that changed — `GET /live_data/weather/{city}/calibrations`. Returns the launch configuration plus each weekly offset calibration and methodology update in ascending effective Inputs: city |
list_subscriptions | List the caller's active subscriptions. Returns id, type, params, created_at, last_fired_at, fire_count for each. Use this to review what you're monitoring before adding more or to find an id to cancel. Inputs: include_inactive |
pipeworx_feedback | Tell the Pipeworx team something is broken, missing, or needs to exist. Use when a tool returns wrong/stale data (bug), when a tool you wish existed isn't in the catalog (feature/data_gap), or when something worked surprisingly well (praise Inputs: type, message, context, claim_token |
pipeworx_trending | What other AI agents are calling on Pipeworx right now. Returns the top tools, top packs, and total call volume over a recent window (24h, 7d, or 30d). Useful for: (1) discovering what data sources are hot for current events, (2) confirming Inputs: window |
polymarket_arbitrage | Find arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks. Call with NO args for a `trending_scan` of the top ~200 markets by weekly volume; pass `event` for the strongest per-event partition_check, or `t Inputs: event, topic |
polymarket_edge_tracker | Edge persistence and decay telemetry built from daily polymarket_edges snapshots. Answers "how long has this edge existed and is it shrinking?" — a fresh wide edge and a 3-week-old wide edge are different trades (the latter is wide for a re Inputs: days, window |
polymarket_edges | Scan top Polymarket markets and return opportunities where Pipeworx data disagrees with market price. Built for "what should I bet on today" — agents discover opportunities without paging hundreds of markets. FIVE MODEL FAMILIES grouped int Inputs: window, limit, min_edge_pp, slippage_pp, category_filter, min_kelly |
polymarket_fill_risk | Realizable-vs-theoretical edge check against live CLOB order-book depth. REQUIRES one of `market` (single-market mode) or `event` (basket/partition mode). SINGLE-MARKET: pass a market slug/URL + side (buy_yes|sell_yes|buy_no|sell_no, defaul Inputs: market, event, side, size_usd |
polymarket_kalshi_spread | Cross-venue spread between Kalshi and Polymarket for the same resolving question. The two venues sometimes price the same outcome 2-25pp apart because their participant pools differ — when the bet shapes are equivalent that delta is a real Inputs: topic, kalshi_event_ticker, polymarket_event_slug |
recall, recent_alerts, recent_changes, release_calendar_markets, remember, resolution_audit, resolution_diff, resolve_entity, scan_competitor_ai_presence, scan_dependency, search_within, subscribe, suggest_questions, unsubscribe, validate_claim
Every block below points at https://gateway.pipeworx.io/kalshi/mcp. Pick your client and copy.
claude mcp add --transport http kalshi https://gateway.pipeworx.io/kalshi/mcp
{
"mcpServers": {
"kalshi": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://gateway.pipeworx.io/kalshi/mcp"]
}
}
}{
"mcpServers": {
"kalshi": {
"url": "https://gateway.pipeworx.io/kalshi/mcp"
}
}
}{
"servers": {
"kalshi": {
"type": "http",
"url": "https://gateway.pipeworx.io/kalshi/mcp"
}
}
}{
"context_servers": {
"kalshi": {
"url": "https://gateway.pipeworx.io/kalshi/mcp"
}
}
}{
"mcpServers": {
"kalshi": {
"serverUrl": "https://gateway.pipeworx.io/kalshi/mcp"
}
}
}{
"mcpServers": {
"kalshi": {
"url": "https://gateway.pipeworx.io/kalshi/mcp"
}
}
}name: Kalshi
version: 0.0.1
schema: v1
mcpServers:
- name: Kalshi
type: streamable-http
url: https://gateway.pipeworx.io/kalshi/mcp{
"mcpServers": {
"kalshi": {
"httpUrl": "https://gateway.pipeworx.io/kalshi/mcp"
}
}
}{
"mcpServers": {
"kalshi": {
"type": "http",
"url": "https://gateway.pipeworx.io/kalshi/mcp"
}
}
}{
"mcpServers": {
"kalshi": {
"url": "https://gateway.pipeworx.io/kalshi/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fgateway.pipeworx.io%2Fkalshi%2Fmcp&type=streamable_http&id=kalshi&name=Kalshi
It answered our last check on 23 October 2026 in 251 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
55, as returned by the server's own tools/list on 18 September 2026: ai_visibility_check, ask_pipeworx, ask_pipeworx_beta, ask_pipeworx_grounded, bet_research, company_facts, compare_entities, deep_research, and 47 more.
It answered our last check on 23 October 2026 in 251 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://gateway.pipeworx.io/kalshi/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.pipeworx-io. Endpoint host: gateway.pipeworx.io. ARD identifier: urn:air:io.github.pipeworx-io:mcp:kalshi.
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.