KaiCast Ocean Conditions
Ocean conditions by location: water visibility, swell, wind, tide, plus dive and snorkel spot picks.
我该使用它吗
质量与安全性
发现(1)
- LOW在 get_conditions 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"ocean-conditions": {
"url": "https://kaicast.com/mcp?ref=mcp-registry"
}
}
}远程端点
https://kaicast.com/mcp?ref=mcp-registrystreamable-http它能做什么
工具清单
工具(4)
🟢get_conditions(spot, lat, lon, from, to)
Facts for ONE covered spot over up to 7 days: 3-hour forecast periods with condition score (0-100) and rating, water visibility (ft), swell height/period/direction, wind, tide state and height, water temperature, plus tide events and data quality. Pass a spot id, or lat+lon to use the nearest covered spot within 30 km. Free.
输入模式
{
"type": "object",
"properties": {
"spot": {
"description": "Spot id, e.g. \"electric-beach\". Pass this OR lat+lon.",
"type": "string",
"minLength": 1,
"maxLength": 64
},
"lat": {
"description": "Latitude; snaps to the nearest covered spot within 30 km.",
"type": "number",
"minimum": -90,
"maximum": 90
},
"lon": {
"description": "Longitude; use with lat.",
"type": "number",
"minimum": -180,
"maximum": 180
},
"from": {
"description": "First day, spot-local YYYY-MM-DD. Default: today.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"to": {
"description": "Last day, inclusive. At most 7 days after from. Default: from + 6.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"schema": {
"type": "string"
},
"spot": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": {}
},
"periods": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"start",
"score"
],
"additionalProperties": {}
}
},
"source": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"docs": {
"type": "string"
}
},
"required": [
"name",
"url",
"docs"
],
"additionalProperties": {}
}
},
"required": [
"schema",
"spot",
"periods",
"source"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢list_coverage(region)
Which regions and spots KaiCast covers, and whether each region supports ranked decisions (spot picks and best-day answers) or facts only. Also lists supported activities and how directly each is modeled. Anywhere not listed is not covered. Free.
输入模式
{
"type": "object",
"properties": {
"region": {
"description": "Limit to one region id.",
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"schema": {
"type": "string"
},
"regions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"decision_support": {
"type": "string"
},
"spot_count": {
"type": "number"
}
},
"required": [
"id",
"name",
"decision_support",
"spot_count"
],
"additionalProperties": {}
}
},
"source": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"docs": {
"type": "string"
}
},
"required": [
"name",
"url",
"docs"
],
"additionalProperties": {}
}
},
"required": [
"schema",
"regions",
"source"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢recommend_spot(region, spot, lat, lon, radius_km, ...)
Ranked top picks (max 5) for an activity in one area on one day — by region id, or lat+lon with a radius. Each pick has the best daylight window, why (from the published conditions), a confidence score with its factors, caveats, and a KaiCast spot card. Returns status "not_covered" / "conditions_only" / "activity_not_modeled" honestly instead of guessing. Activities: snorkel (native model), dive, freedive, spearfish (proxy model; spots in water closed to spearfishing are excluded), surf (not modeled). Free during early access.
输入模式
{
"type": "object",
"properties": {
"region": {
"description": "Region id, e.g. \"us-hi-oahu\".",
"type": "string",
"minLength": 1,
"maxLength": 64
},
"spot": {
"description": "Spot id, e.g. \"hanauma-bay\".",
"type": "string",
"minLength": 1,
"maxLength": 64
},
"lat": {
"description": "Latitude, decimal degrees. Use with lon.",
"type": "number",
"minimum": -90,
"maximum": 90
},
"lon": {
"description": "Longitude, decimal degrees. Use with lat.",
"type": "number",
"minimum": -180,
"maximum": 180
},
"radius_km": {
"description": "Search radius around lat/lon in km (default 40, max 100).",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100
},
"activity": {
"type": "string",
"enum": [
"snorkel",
"dive",
"freedive",
"spearfish",
"surf"
],
"description": "What the user wants to do."
},
"date": {
"description": "Spot-local day to plan for. Default: today, or tomorrow once today's daylight has passed. Up to 6 days ahead.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"limit": {
"description": "How many picks (default 3, max 5).",
"type": "integer",
"minimum": 1,
"maximum": 5
}
},
"required": [
"activity"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"schema": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"ok",
"no_data",
"not_covered",
"conditions_only",
"activity_not_modeled"
]
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"coverage": {
"type": "object",
"properties": {
"status": {
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": {}
},
"disclaimer": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"docs": {
"type": "string"
}
},
"required": [
"name",
"url",
"docs"
],
"additionalProperties": {}
},
"picks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rank": {
"type": "number"
},
"spot": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": {}
},
"date": {
"type": "string"
},
"score": {
"type": "number"
},
"rating": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"why": {
"type": "object",
"properties": {
"summary": {
"type": "string"
}
},
"required": [
"summary"
],
"additionalProperties": {}
},
"confidence": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"label": {
"type": "string"
}
},
"required": [
"value",
"label"
],
"additionalProperties": {}
},
"caveats": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"card": {
"type": "object",
"properties": {
"spot_id": {
"type": "string"
},
"spot_name": {
"type": "string"
},
"tier": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"tier_label": {
"type": "string"
},
"score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"date": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"share": {
"type": "string"
},
"app": {
"type": "string"
},
"forecast": {
"type": "string"
}
},
"required": [
"share",
"app",
"forecast"
],
"additionalProperties": {}
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"additionalProperties": {}
}
},
"required": [
"spot_id",
"spot_name",
"tier",
"tier_label",
"score",
"date",
"links",
"cta"
],
"additionalProperties": {}
}
},
"required": [
"rank",
"spot",
"date",
"score",
"rating",
"why",
"confidence",
"caveats",
"card"
],
"additionalProperties": {}
}
}
},
"required": [
"schema",
"status",
"coverage",
"disclaimer",
"source",
"picks"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢best_day(region, spot, lat, lon, radius_km, ...)
Which day in a window (max 7 days) is best for an activity at a destination — a spot, a region, or lat+lon with a radius — and why, versus the runner-up. Returns every day's best score, confidence, caveats and a KaiCast spot card for the winner. Free during early access.
输入模式
{
"type": "object",
"properties": {
"region": {
"description": "Region id, e.g. \"us-hi-oahu\".",
"type": "string",
"minLength": 1,
"maxLength": 64
},
"spot": {
"description": "Spot id, e.g. \"hanauma-bay\".",
"type": "string",
"minLength": 1,
"maxLength": 64
},
"lat": {
"description": "Latitude, decimal degrees. Use with lon.",
"type": "number",
"minimum": -90,
"maximum": 90
},
"lon": {
"description": "Longitude, decimal degrees. Use with lat.",
"type": "number",
"minimum": -180,
"maximum": 180
},
"radius_km": {
"description": "Search radius around lat/lon in km (default 40, max 100).",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100
},
"activity": {
"type": "string",
"enum": [
"snorkel",
"dive",
"freedive",
"spearfish",
"surf"
],
"description": "What the user wants to do."
},
"from": {
"description": "Window start, spot-local. Default: today.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"to": {
"description": "Window end, inclusive, at most 7 days. Default: from + 6.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"activity"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"schema": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"ok",
"no_data",
"not_covered",
"conditions_only",
"activity_not_modeled"
]
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"coverage": {
"type": "object",
"properties": {
"status": {
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": {}
},
"disclaimer": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"docs": {
"type": "string"
}
},
"required": [
"name",
"url",
"docs"
],
"additionalProperties": {}
},
"best": {
"anyOf": [
{
"type": "object",
"properties": {
"rank": {
"type": "number"
},
"spot": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": {}
},
"date": {
"type": "string"
},
"score": {
"type": "number"
},
"rating": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"why": {
"type": "object",
"properties": {
"summary": {
"type": "string"
}
},
"required": [
"summary"
],
"additionalProperties": {}
},
"confidence": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"label": {
"type": "string"
}
},
"required": [
"value",
"label"
],
"additionalProperties": {}
},
"caveats": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"card": {
"type": "object",
"properties": {
"spot_id": {
"type": "string"
},
"spot_name": {
"type": "string"
},
"tier": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"tier_label": {
"type": "string"
},
"score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"date": {
"type": "string"
},
"links": {
"type": "object",
"properties": {
"share": {
"type": "string"
},
"app": {
"type": "string"
},
"forecast": {
"type": "string"
}
},
"required": [
"share",
"app",
"forecast"
],
"additionalProperties": {}
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"additionalProperties": {}
}
},
"required": [
"spot_id",
"spot_name",
"tier",
"tier_label",
"score",
"date",
"links",
"cta"
],
"additionalProperties": {}
},
"date_label": {
"type": "string"
}
},
"required": [
"rank",
"spot",
"date",
"score",
"rating",
"why",
"confidence",
"caveats",
"card",
"date_label"
],
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"days": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"date",
"score"
],
"additionalProperties": {}
}
}
},
"required": [
"schema",
"status",
"coverage",
"disclaimer",
"source"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}社区
证据