Skip to main content
Glama

Golden and blue hour windows

plan_golden_hour
Read-onlyIdempotent

Compute geometric golden [-4,+6°] and blue [-6,-4°] windows for one UTC day, 1900–2100. Sunrise at -0.833° is a separate convention. No refraction, terrain or weather. Numerical tolerance is not astronomical accuracy; oracle validation covers reference dates only. Shared solar models are not independent corroboration.

Input Schema

NameRequiredDescriptionDefault
date_utcYesReal Gregorian UTC midnight, year 1900–2100. Rust also validates month/day and leap years. Other hours are rejected, never truncated; this is not a local civil day.
latitudeYesDegrees, North positive.
longitudeYesDegrees, East positive.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "bands": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "high_deg": {
      -            "type": "number"
      -          },
      -          "low_deg": {
      -            "type": "number"
      -          },
      -          "name": {
      -            "enum": [
      -              "golden",
      -              "blue"
      -            ],
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "name",
      -          "low_deg",
      -          "high_deg"
      -        ],
      -        "type": "object"
      -      },
      -      "maxItems": 2,
      -      "minItems": 2,
      -      "type": "array"
      -    },
      -    "contract_version": {
      -      "const": "0.1.0",
      -      "type": "string"
      -    },
      -    "crossings": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "direction": {
      -            "enum": [
      -              "rising",
      -              "setting"
      -            ],
      -            "type": "string"
      -          },
      -          "threshold_deg": {
      -            "anyOf": [
      -              {
      -                "const": 6,
      -                "type": "number"
      -              },
      -              {
      -                "const": -4,
      -                "type": "number"
      -              },
      -              {
      -                "const": -6,
      -                "type": "number"
      -              },
      -              {
      -                "const": -0.833,
      -                "type": "number"
      -              }
      -            ]
      -          },
      -          "time_utc": {
      -            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "threshold_deg",
      -          "direction",
      -          "time_utc"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "date_utc": {
      -      "description": "Real Gregorian UTC midnight, year 1900–2100. Rust also validates month/day and leap years. Other hours are rejected, never truncated; this is not a local civil day.",
      -      "maxLength": 20,
      -      "minLength": 20,
      -      "pattern": "^(?:19\\d{2}|20\\d{2}|2100)-\\d{2}-\\d{2}T00:00:00Z$",
      -      "type": "string"
      -    },
      -    "elapsed_ms": {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "elevation_convention": {
      -      "type": "string"
      -    },
      -    "latitude": {
      -      "maximum": 89,
      -      "minimum": -89,
      -      "type": "number"
      -    },
      -    "limitations": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "longitude": {
      -      "maximum": 180,
      -      "minimum": -180,
      -      "type": "number"
      -    },
      -    "notes": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "numerical": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "evaluations": {
      -          "maximum": 20000,
      -          "minimum": 1441,
      -          "type": "integer"
      -        },
      -        "extremum_refinements": {
      -          "maximum": 9007199254740991,
      -          "minimum": 0,
      -          "type": "integer"
      -        },
      -        "sampled_points": {
      -          "const": 1441,
      -          "type": "number"
      -        },
      -        "time_tolerance_s": {
      -          "const": 0.25,
      -          "type": "number"
      -        },
      -        "timestamp_resolution_s": {
      -          "const": 0.001,
      -          "type": "number"
      -        }
      -      },
      -      "required": [
      -        "time_tolerance_s",
      -        "timestamp_resolution_s",
      -        "sampled_points",
      -        "evaluations",
      -        "extremum_refinements"
      -      ],
      -      "type": "object"
      -    },
      -    "period_end_utc": {
      -      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
      -      "type": "string"
      -    },
      -    "period_start_utc": {
      -      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
      -      "type": "string"
      -    },
      -    "provenance": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "client": {
      -          "additionalProperties": {},
      -          "properties": {
      -            "name": {
      -              "type": "string"
      -            },
      -            "version": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "name",
      -            "version"
      -          ],
      -          "type": "object"
      -        },
      -        "identity_source": {
      -          "type": "string"
      -        },
      -        "model": {
      -          "type": "null"
      -        },
      -        "server": {
      -          "const": "scorecompute",
      -          "type": "string"
      -        },
      -        "tool": {
      -          "const": "plan_golden_hour",
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "tool",
      -        "server",
      -        "client",
      -        "identity_source",
      -        "model"
      -      ],
      -      "type": "object"
      -    },
      -    "status": {
      -      "const": "computed",
      -      "type": "string"
      -    },
      -    "sun_max_elevation_deg": {
      -      "maximum": 90,
      -      "minimum": -90,
      -      "type": "number"
      -    },
      -    "sun_min_elevation_deg": {
      -      "maximum": 90,
      -      "minimum": -90,
      -      "type": "number"
      -    },
      -    "sunrise_convention": {
      -      "type": "string"
      -    },
      -    "windows": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "azimuth_defined": {
      -            "type": "boolean"
      -          },
      -          "azimuth_mid_deg": {
      -            "anyOf": [
      -              {
      -                "maximum": 360,
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "band": {
      -            "enum": [
      -              "golden",
      -              "blue"
      -            ],
      -            "type": "string"
      -          },
      -          "duration_s": {
      -            "exclusiveMinimum": 0,
      -            "maximum": 86400,
      -            "type": "number"
      -          },
      -          "end_utc": {
      -            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
      -            "type": "string"
      -          },
      -          "ends_at_period_end": {
      -            "type": "boolean"
      -          },
      -          "start_utc": {
      -            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
      -            "type": "string"
      -          },
      -          "starts_at_period_start": {
      -            "type": "boolean"
      -          },
      -          "sun_motion_at_mid": {
      -            "enum": [
      -              "rising",
      -              "setting",
      -              "flat"
      -            ],
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "band",
      -          "start_utc",
      -          "end_utc",
      -          "duration_s",
      -          "starts_at_period_start",
      -          "ends_at_period_end",
      -          "azimuth_mid_deg",
      -          "azimuth_defined",
      -          "sun_motion_at_mid"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    }
      -  },
      -  "required": [
      -    "contract_version",
      -    "status",
      -    "date_utc",
      -    "period_start_utc",
      -    "period_end_utc",
      -    "latitude",
      -    "longitude",
      -    "elevation_convention",
      -    "sunrise_convention",
      -    "bands",
      -    "windows",
      -    "crossings",
      -    "sun_min_elevation_deg",
      -    "sun_max_elevation_deg",
      -    "numerical",
      -    "notes",
      -    "limitations",
      -    "elapsed_ms",
      -    "provenance"
      -  ],
      -  "type": "object"
      -}New value: +null
  2. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources