groundhog.markets
groundhog.markets: free weather forecasts in one call, plus Kalshi and Polymarket market rules.
使うべきか
品質と安全性
検出事項(1)
- LOWfetch 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"weather": {
"url": "https://groundhog.markets/mcp"
}
}
}リモートエンドポイント
https://groundhog.markets/mcpstreamable-httpできること
ツール一覧
ツール(8)
🟢forecast(place, date, days, size, format, ...)
Daily high/low for any place from every free forecast: median, spread, rain, current obs and active alerts, with credits and the page URL. line ≈321 tok, week ≈566, table ≈1,567, series ≈1,564. Keep the credits and link the page when you repeat numbers. size=runs: one place, each source's newest runs by day with run_utc and fetched_at; NBM adds XND, P12, Q12. variable=rain: members' share of 0.01 in or more and heavier (n = model families), NBM calibrated, amounts by source, so far today, month to date; rain line ≈647 tok, table ≈1,955.
入力スキーマ
{
"type": "object",
"properties": {
"place": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 10
}
],
"description": "Slug, name, 'City, ST', 'City, Country', ICAO or 'lat,lon'. An array (up to 10) for line/week."
},
"date": {
"type": "string",
"description": "today | tomorrow | +N (0-7) | YYYY-MM-DD, each place's local date. Default: today before 15:00 local, else tomorrow."
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"description": "week/table days (default 7)"
},
"size": {
"type": "string",
"enum": [
"line",
"week",
"table",
"series",
"runs"
],
"description": "default line; runs = each source's newest runs by day (trading fields)"
},
"format": {
"type": "string",
"enum": [
"md",
"tsv",
"json"
],
"description": "line md, others tsv"
},
"units": {
"type": "string",
"enum": [
"F",
"C"
],
"description": "default F in the US, else C; rain in inches with F, mm with C"
},
"hours": {
"type": "integer",
"minimum": 24,
"maximum": 168,
"description": "series hours (72)"
},
"step": {
"type": "integer",
"enum": [
1,
3,
6
],
"description": "series step hours (temp 3, rain 6)"
},
"include_6h": {
"type": "boolean",
"description": "temp only: also count 6-hourly (~) days"
},
"all": {
"type": "boolean",
"description": "table: also twin and stale rows"
},
"credits": {
"type": "string",
"enum": [
"compact",
"full",
"short"
]
},
"runs": {
"type": "integer",
"minimum": 1,
"maximum": 4,
"description": "size=runs: newest runs per source (1)"
},
"variable": {
"type": "string",
"enum": [
"temp",
"rain"
],
"description": "temp (default) or rain"
},
"win": {
"type": "string",
"enum": [
"lst",
"cal"
],
"description": "rain: lst = the climate day at a daily-rain settle station, cal = calendar day"
},
"stn": {
"type": "string",
"description": "rain: a settle station of the place, e.g. KORD"
}
},
"required": [
"place"
],
"additionalProperties": false
}🟢places(q, limit)
Find a place slug by name, City, ST, airport code or lat,lon; says full blend or grid only.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"q"
],
"additionalProperties": false
}🟢sources
Open sources groundhog uses: licence, latest run, age, status.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢markets(place, family, date, size, format, ...)
Weather markets in a place (Kalshi, Polymarket high/low/rain): settlement station and rule, the number so far under that rule, our value and the official result once settled, forecast daily max/min at the station. No prices. Needs place or family. line ≈526 tok, table ≈1,757; every city ≈36,291. With neither: the list of market cities.
入力スキーマ
{
"type": "object",
"properties": {
"place": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 10
}
],
"description": "Slug, name, 'City, ST' or ICAO; an array for up to 10 places"
},
"family": {
"type": "string",
"enum": [
"high",
"low",
"rain",
"all"
],
"description": "high | low | rain | all (default all); alone: every market city"
},
"date": {
"type": "string",
"description": "today | tomorrow | yesterday | YYYY-MM-DD, each place's local date (default today)"
},
"size": {
"type": "string",
"enum": [
"line",
"table"
],
"description": "line (default with place) | table (default without)"
},
"format": {
"type": "string",
"enum": [
"md",
"tsv",
"json"
],
"description": "line md, table tsv"
},
"credits": {
"type": "string",
"enum": [
"compact",
"full",
"short"
]
}
},
"additionalProperties": false
}🟢receipts(days, venue, family, format)
How often our settle value matched the venue's result, with every miss. No prices.
入力スキーマ
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"description": "last N days (30)"
},
"venue": {
"type": "string",
"enum": [
"kalshi",
"polymarket"
]
},
"family": {
"type": "string",
"enum": [
"high",
"low",
"rain",
"all"
]
},
"format": {
"type": "string",
"enum": [
"md",
"tsv",
"json"
],
"description": "default tsv"
}
},
"additionalProperties": false
}🟢search(query)
Search places by name, City, ST, airport code or lat,lon. Returns {results: [{id, title, url, text}]}; pass an id to fetch.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢fetch(id)
The 7-day forecast of a place id from search: {id, title, text, url, metadata}. Keep the credits and link the url when you repeat numbers.
入力スキーマ
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢history(kind, place, stn, from, to, ...)
As-issued history for backtests (no look-ahead): kind=daily (every source's daily hi/lo/rain per run at a place), nbm (NBM text columns: TXN, XND, P12, Q12; view=day = the books' day view) or obs (settlement truth: CLI, routine-METAR max/min). from/to (<= 366 days, 1 unit per 31 days); run=ISO | lead=N (+cycle=H: the run issued N days before) | asof=ISO (what was known then). Rows carry fetched_at and origin (bf:* = backfilled). TSV by default.
入力スキーマ
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"daily",
"nbm",
"obs"
],
"description": "daily (default) | nbm | obs"
},
"place": {
"type": "string",
"description": "slug, name or ICAO (kind=daily; nbm/obs: its station)"
},
"stn": {
"type": "string",
"description": "ICAO (kind=nbm, obs)"
},
"from": {
"type": "string",
"description": "first target date YYYY-MM-DD"
},
"to": {
"type": "string",
"description": "last target date (default from)"
},
"source": {
"type": "string",
"description": "kind=daily: source ids, comma list (e.g. nbm,gfs,ifs)"
},
"prod": {
"type": "string",
"enum": [
"nbe",
"nbs"
],
"description": "kind=nbm: nbe (default) | nbs"
},
"els": {
"type": "string",
"description": "kind=nbm: elements, comma list (TXN,XND,P12,Q12,TMP)"
},
"view": {
"type": "string",
"enum": [
"raw",
"day"
],
"description": "kind=nbm: raw (default) | day"
},
"product": {
"type": "string",
"enum": [
"CLI",
"METAR_R",
"ASOS"
],
"description": "kind=obs"
},
"run": {
"type": "string",
"description": "one run, YYYY-MM-DDTHH:MMZ"
},
"lead": {
"type": "integer",
"minimum": 0,
"maximum": 15,
"description": "the run issued N UTC days before each date"
},
"cycle": {
"type": "integer",
"minimum": 0,
"maximum": 23,
"description": "with lead: only runs at H UTC"
},
"asof": {
"type": "string",
"description": "newest run fetched by this UTC time (no look-ahead)"
},
"format": {
"type": "string",
"enum": [
"tsv",
"json"
],
"description": "tsv (default) | json"
}
},
"required": [
"from"
],
"additionalProperties": false
}コミュニティ
エビデンス