{
  "name": "WeatherVibe",
  "version": 1,
  "format": "WeatherVibe documentation catalog (not a WebMCP standard)",
  "url": "https://weathervibe.app/",
  "documentation": "https://weathervibe.app/agents",
  "transport": "native browser WebMCP",
  "tools": [
    {
      "name": "weathervibe_get_status",
      "description": "Read selected location, freshness, loading/errors and display preferences. No location permission is requested.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_get_current_weather",
      "description": "Read current conditions; temperature may be observed while other fields come from the hourly forecast. Includes provenance and freshness.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_get_forecast",
      "description": "Read hourly (up to 12 hours) or daily NWS day/night forecast periods with original timestamps, units and precipitation probabilities.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "hourly",
              "daily"
            ]
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 14
          }
        },
        "required": [
          "kind"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_get_alerts",
      "description": "Read NWS alert features, including severity, instructions and expiry. An unavailable feed must not be interpreted as no alerts.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_get_environment",
      "description": "Read loaded UV, pressure, pollen, AQI and aurora inputs. Null means pending or disabled; available:false means unavailable. Optional air and aurora feeds require their cards enabled.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_get_lifestyle",
      "description": "Read enabled, accessible lifestyle card results calculated by the same functions as the UI, including confidence and science references. These are general guidance, not medical advice.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "card": {
            "type": "string",
            "enum": [
              "frizz",
              "run",
              "skin",
              "migraine",
              "aches",
              "sky",
              "sunscreen",
              "pollen",
              "air",
              "aurora",
              "moon",
              "meteor",
              "eclipse",
              "yard",
              "firepit",
              "carwash",
              "hydration",
              "weekout",
              "weekin",
              "mosquito",
              "tick",
              "sideline"
            ]
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_get_astronomy",
      "description": "Read enabled, accessible astronomy cards: computed sun/moon times, lunar phase, meteor shower and eclipse information and nearest dark-sky site. Times are ISO timestamps; missing events are null. Catalog coverage is finite.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_get_wardrobe",
      "description": "Read day-aware clothing advice, feels-like temperature in Fahrenheit, layers and rain guidance for the displayed weather.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_get_sources",
      "description": "Read the card catalog and methodology, evidence levels and source links; no live weather is fetched.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_search_locations",
      "description": "Find US locations by city, place or ZIP code using OpenStreetMap Nominatim. Returns candidates without changing the app. Choose coordinates and call set_location separately.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_set_location",
      "description": "Change the displayed weather to explicit coordinates, save this location and stop automatic location tracking. NWS coverage only. Wait for completion before reading data.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          }
        },
        "required": [
          "latitude",
          "longitude"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_refresh_weather",
      "description": "Refresh weather and enabled environmental feeds for the selected location. Rate limited to one weather change per 10 seconds; provider caches still apply.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_configure",
      "description": "Change persistent card visibility or radar basemap, or the session alert display. Core cards cannot be hidden and premium access is never changed.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "card": {
            "type": "string",
            "enum": [
              "frizz",
              "run",
              "migraine",
              "sky",
              "pollen",
              "air",
              "aurora",
              "moon",
              "meteor",
              "eclipse",
              "yard",
              "firepit",
              "carwash",
              "hydration",
              "weekout",
              "weekin",
              "mosquito",
              "tick",
              "sideline"
            ]
          },
          "enabled": {
            "type": "boolean"
          },
          "baseMap": {
            "type": "string",
            "enum": [
              "light",
              "dark",
              "terrain"
            ]
          },
          "alerts": {
            "type": "boolean"
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "untrustedContentHint": true
      }
    },
    {
      "name": "weathervibe_show_panel",
      "description": "Open radar, settings, alert details or the main weather view in the shared UI.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "panel": {
            "type": "string",
            "enum": [
              "radar",
              "settings",
              "alerts",
              "weather"
            ]
          }
        },
        "required": [
          "panel"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "untrustedContentHint": true
      }
    }
  ]
}
