kalshi_weather_index
Pack: kalshi · Endpoint: https://gateway.pipeworx.io/kalshi/mcp
The multi-station city temperature index Kalshi settles temperature markets on, from Kalshi.
Tool description as the model sees it
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 computes from a weighted multi-station panel, in Fahrenheit to 0.01, which is the only series a temperature contract actually resolves on. Each point carries contributors (how many stations reported) and status; a minute where the quorum failed is reported rather than interpolated. CITY IS AN INDEX ID, NOT A PLACE NAME, and Kalshi supports exactly thirteen (verified live 2026-09-16 from Kalshi’s own rejection message): miami, dfw, houston, phl-delaware-valley, puget-sound, sf-bay, greater-boston, southeast-michigan, kansas-city, minneapolis-st-paul, nyc, chicago, la-coastal. An unknown city is a clean error listing those. The series is city-keyed and independent of any event, so it exists even when no market is open. For the station weights and offsets behind the number, and every recalibration, use kalshi_weather_index_calibrations.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
city | string | yes | Index city id — one of: miami, dfw, houston, phl-delaware-valley, puget-sound, sf-bay, greater-boston, southeast-michigan, kansas-city, minneapolis-st-paul, nyc, chicago, la-coastal. |
last_sec | number | no | Window length ending now, in seconds (default 3600). The series is per-minute, so a window under ~120s can legitimately return zero points — that is a real empty window, not a failure, and points says 0. |
from | number | no | Window start, unix MILLISECONDS (Kalshi’s unit here, not seconds). Overrides last_sec when given with to. |
to | number | no | Window end, unix MILLISECONDS, inclusive. Defaults to now. |
detailed | boolean | no | Include Kalshi’s per-station audit readings on every point (much larger response). |
max_points | number | no | Newest points to keep (default 500, max 5000). points_total reports the untrimmed count. |
Example call
Arguments
{
"city": "nyc",
"last_sec": 900,
"max_points": 5
}
curl
curl -X POST https://gateway.pipeworx.io/kalshi/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"kalshi_weather_index","arguments":{"city":"nyc","last_sec":900,"max_points":5}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('kalshi_weather_index', {
"city": "nyc",
"last_sec": 900,
"max_points": 5
});
Connect
Add this to your MCP client config, or use one-click install buttons:
{
"mcpServers": {
"kalshi": {
"url": "https://gateway.pipeworx.io/kalshi/mcp"
}
}
}
See Getting Started for client-specific install steps.