Sunvane Golden Hour

Sun times & shoot planning

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
100%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'plan_golden_hour_shoot' description lacks action verbin plan_golden_hour_shoot

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,107Tokens (tool definitions)
~6.8 KBTypical response size
Moderate attention impact (1.65% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "golden-hour": {
      "url": "https://golden-hour.zovo.one/mcp"
    }
  }
}

Remote endpoints

https://golden-hour.zovo.one/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢find_sun_times(city, country, state, date)

Use this when the user asks for a golden hour calculator, golden hour time, sunrise sunset times, sunset time today, what time is golden hour, blue hour, sunrise time, or twilight times for a city and local date. Returns local sunrise, sunset, solar noon, day length, twilight, light windows and sun azimuth. Limits: cities with population 50,000+ (plus Tromso), dates 1900–2100, flat sea-level horizon; Does not model weather or terrain.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "maxLength": 100,
      "description": "City name, for example New York. Cities with population 50,000+ are supported; the largest same-name match is used."
    },
    "country": {
      "description": "Optional country name or two-letter code to narrow the match, for example US.",
      "type": "string",
      "maxLength": 60
    },
    "state": {
      "description": "Optional US state name or abbreviation, for example NY or New York.",
      "type": "string",
      "maxLength": 40
    },
    "date": {
      "type": "string",
      "maxLength": 10,
      "description": "Local calendar date, YYYY-MM-DD, from 1900 to 2100; for example 2026-06-21."
    }
  },
  "required": [
    "city",
    "date"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "sun",
        "plan",
        "compare"
      ]
    },
    "location": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        },
        "otherMatches": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "otherMatchCount": {
          "type": "number"
        }
      },
      "required": [
        "city",
        "timeZone",
        "otherMatches",
        "otherMatchCount"
      ],
      "additionalProperties": false
    },
    "definitions": {
      "type": "string"
    },
    "limitations": {
      "type": "string"
    },
    "request": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "date": {
      "type": "string"
    },
    "timeZone": {
      "type": "string"
    },
    "sunrise": {},
    "sunset": {},
    "solarNoon": {},
    "dayLengthSeconds": {
      "type": "number"
    },
    "dayLength": {
      "type": "string"
    },
    "dayStatus": {
      "type": "string"
    },
    "civil": {},
    "nautical": {},
    "astronomical": {},
    "golden": {
      "type": "array",
      "items": {}
    },
    "blue": {
      "type": "array",
      "items": {}
    },
    "sunriseAzimuth": {
      "type": [
        "number",
        "null"
      ]
    },
    "sunsetAzimuth": {
      "type": [
        "number",
        "null"
      ]
    },
    "startDate": {
      "type": "string"
    },
    "days": {
      "type": "number"
    },
    "period": {
      "type": "string"
    },
    "eventCount": {
      "type": "number"
    },
    "preview": {
      "type": "array",
      "items": {}
    },
    "downloads": {
      "type": "object",
      "properties": {
        "ics": {
          "type": "string"
        },
        "csv": {
          "type": "string"
        }
      },
      "required": [
        "ics",
        "csv"
      ],
      "additionalProperties": false
    },
    "values": {
      "type": "array",
      "items": {}
    },
    "changes": {
      "type": "array",
      "items": {}
    }
  },
  "required": [
    "mode",
    "location",
    "definitions",
    "limitations",
    "request"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢plan_golden_hour_shoot(city, country, state, start_date, days, ...)

Use this when the user wants photography golden hour shoot windows for a city and a date range, with an ICS calendar file and CSV table. Choose morning, evening or both. Limits: 1–31 days, cities with population 50,000+ (plus Tromso), years 1900–2100, flat sea-level horizon; missing polar windows are reported and calendar events are only included for existing windows. Does not access or change a calendar.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "maxLength": 100,
      "description": "City name, for example New York. Cities with population 50,000+ are supported; the largest same-name match is used."
    },
    "country": {
      "description": "Optional country name or two-letter code to narrow the match, for example US.",
      "type": "string",
      "maxLength": 60
    },
    "state": {
      "description": "Optional US state name or abbreviation, for example NY or New York.",
      "type": "string",
      "maxLength": 40
    },
    "start_date": {
      "type": "string",
      "maxLength": 10,
      "description": "First local date in YYYY-MM-DD, for example 2026-10-12."
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31,
      "description": "Number of consecutive days, 1 to 31, for example 7."
    },
    "period": {
      "type": "string",
      "enum": [
        "morning",
        "evening",
        "both"
      ],
      "description": "Light windows to include, for example evening. A continuous window includes both periods."
    }
  },
  "required": [
    "city",
    "start_date",
    "days",
    "period"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "sun",
        "plan",
        "compare"
      ]
    },
    "location": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        },
        "otherMatches": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "otherMatchCount": {
          "type": "number"
        }
      },
      "required": [
        "city",
        "timeZone",
        "otherMatches",
        "otherMatchCount"
      ],
      "additionalProperties": false
    },
    "definitions": {
      "type": "string"
    },
    "limitations": {
      "type": "string"
    },
    "request": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "date": {
      "type": "string"
    },
    "timeZone": {
      "type": "string"
    },
    "sunrise": {},
    "sunset": {},
    "solarNoon": {},
    "dayLengthSeconds": {
      "type": "number"
    },
    "dayLength": {
      "type": "string"
    },
    "dayStatus": {
      "type": "string"
    },
    "civil": {},
    "nautical": {},
    "astronomical": {},
    "golden": {
      "type": "array",
      "items": {}
    },
    "blue": {
      "type": "array",
      "items": {}
    },
    "sunriseAzimuth": {
      "type": [
        "number",
        "null"
      ]
    },
    "sunsetAzimuth": {
      "type": [
        "number",
        "null"
      ]
    },
    "startDate": {
      "type": "string"
    },
    "days": {
      "type": "number"
    },
    "period": {
      "type": "string"
    },
    "eventCount": {
      "type": "number"
    },
    "preview": {
      "type": "array",
      "items": {}
    },
    "downloads": {
      "type": "object",
      "properties": {
        "ics": {
          "type": "string"
        },
        "csv": {
          "type": "string"
        }
      },
      "required": [
        "ics",
        "csv"
      ],
      "additionalProperties": false
    },
    "values": {
      "type": "array",
      "items": {}
    },
    "changes": {
      "type": "array",
      "items": {}
    }
  },
  "required": [
    "mode",
    "location",
    "definitions",
    "limitations",
    "request"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢compare_day_length(city, country, state, date_a, date_b, ...)

Use this when the user asks for day length differences and average change per day between two local dates, or the solstices and equinoxes of a year. Returns daylight duration for each date and signed changes. Limits: cities with population 50,000+ (plus Tromso), dates/years 1900–2100, flat sea-level horizon; use either date_a and date_b or year, and not both. Does not forecast weather.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "maxLength": 100,
      "description": "City name, for example New York. Cities with population 50,000+ are supported; the largest same-name match is used."
    },
    "country": {
      "description": "Optional country name or two-letter code to narrow the match, for example US.",
      "type": "string",
      "maxLength": 60
    },
    "state": {
      "description": "Optional US state name or abbreviation, for example NY or New York.",
      "type": "string",
      "maxLength": 40
    },
    "date_a": {
      "description": "First local date for a two-date comparison, for example 2026-03-20. Required with date_b; omit with year.",
      "type": "string",
      "maxLength": 10
    },
    "date_b": {
      "description": "Second local date, for example 2026-06-21. Required with date_a; omit with year.",
      "type": "string",
      "maxLength": 10
    },
    "year": {
      "description": "Year whose equinox and solstice local dates to compare, for example 2026. Omit date_a/date_b.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    }
  },
  "required": [
    "city"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "sun",
        "plan",
        "compare"
      ]
    },
    "location": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        },
        "otherMatches": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "otherMatchCount": {
          "type": "number"
        }
      },
      "required": [
        "city",
        "timeZone",
        "otherMatches",
        "otherMatchCount"
      ],
      "additionalProperties": false
    },
    "definitions": {
      "type": "string"
    },
    "limitations": {
      "type": "string"
    },
    "request": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "date": {
      "type": "string"
    },
    "timeZone": {
      "type": "string"
    },
    "sunrise": {},
    "sunset": {},
    "solarNoon": {},
    "dayLengthSeconds": {
      "type": "number"
    },
    "dayLength": {
      "type": "string"
    },
    "dayStatus": {
      "type": "string"
    },
    "civil": {},
    "nautical": {},
    "astronomical": {},
    "golden": {
      "type": "array",
      "items": {}
    },
    "blue": {
      "type": "array",
      "items": {}
    },
    "sunriseAzimuth": {
      "type": [
        "number",
        "null"
      ]
    },
    "sunsetAzimuth": {
      "type": [
        "number",
        "null"
      ]
    },
    "startDate": {
      "type": "string"
    },
    "days": {
      "type": "number"
    },
    "period": {
      "type": "string"
    },
    "eventCount": {
      "type": "number"
    },
    "preview": {
      "type": "array",
      "items": {}
    },
    "downloads": {
      "type": "object",
      "properties": {
        "ics": {
          "type": "string"
        },
        "csv": {
          "type": "string"
        }
      },
      "required": [
        "ics",
        "csv"
      ],
      "additionalProperties": false
    },
    "values": {
      "type": "array",
      "items": {}
    },
    "changes": {
      "type": "array",
      "items": {}
    }
  },
  "required": [
    "mode",
    "location",
    "definitions",
    "limitations",
    "request"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools