groundhog.markets

groundhog.markets: free weather forecasts in one call, plus Kalshi and Polymarket market rules.

我该使用它吗

质量与安全性

A
描述质量
98%
模式完整度
79%
命名质量
85%
投毒风险
100%
权限匹配度
90%
协议合规性
100%

发现(1)

  • LOWTool 'fetch' suggests web access but openWorldHint=false在 fetch 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,059token 数(工具定义)
~1.7 KB典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.61%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `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
}

社区

评价此服务器

证据

最近观测

已验证未记录版本8 个工具