roque-nights.netlify.app
Roque Nights is an agent-native observing planner for the night sky. It computes darkness, Moon interference and 110 Messier objects entirely in your browser, and hands your AI agent 14 WebMCP site…
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 4 · Act 8 · Transact 0 · Score: Not yet scored
Tool inspector
find_observable_targets
Use this to learn what is actually worth observing on a night: Messier objects, planets and the Moon filtered by minimum altitude, darkness window, Moon separation and magnitude, each with its observing window (start, peak, end), peak altitude and airmass, Moon separation, the share of the window with the Moon up and a 0-100 score. Bright stars are included only when you ask for them, with types ["star"] or by naming one in ids or query. Also returns the objects that were REJECTED and why (too low, Moon too close, window too short, no darkness), so you can explain trade-offs to the person. It works on the night, site and filters currently shown in the app unless you override them, and always echoes the values it used in data.filters_used. Pass ids to check specific targets.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
date |
string | no | Local calendar date of the EVENING the night starts (YYYY-MM-DD). Omit for the night currently selected in the app. |
site |
object | no | Observing site to compute for. Omit to use the site currently shown in the app. Otherwise name a dark-sky catalog site with id (preferred) or name, OR pass BOTH latitude and longitude, plus time_zone (IANA, e.g. "Pacific/Honolulu") if you want local times; without a zone only UTC is returned. An object that does neither comes back as invalid_site with a hint. Answering for a site here does NOT move the app: to change the site the page itself shows, call the tool set_observing_site (the page also carries a declarative form named set_observing_site_form, and both go through the same validation). |
min_altitude_deg |
number | no | Lowest altitude above the horizon that still counts as observable, in degrees. OMIT this to honour the filter the person set in the app; the value actually used comes back as data.filters_used.min_altitude_deg. Pass a number only when the person asked to change the floor. |
types |
array | no | Keep only these target types. Omit to honour the type filter set in the app (every type except "star" by default). Include "star" here to add the naked eye stars to the scan. |
max_magnitude |
number | no | Faintest visual magnitude to keep (larger numbers are fainter); planets and the Moon are judged on their brightness on that night. OMIT this to honour the filter set in the app, which is no limit unless the person set one; the value used comes back as data.filters_used.max_magnitude. |
min_moon_separation_deg |
number | no | Minimum angular distance from the Moon, in degrees, enforced only while the Moon is above the horizon. OMIT this to honour the filter the person set in the app; the value used comes back as data.filters_used.min_moon_separation_deg. |
min_window_minutes |
integer | no | Shortest observing window worth listing, in minutes. |
limit |
integer | no | How many candidates to return, best first. |
query |
string | no | Free text filter over names and ids, e.g. "nebula" or "Andromeda". |
ids |
array | no | Check exactly these targets instead of the whole catalog. Names that cannot be resolved come back in rejected. |
Raw JSON schema
{
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date of the EVENING the night starts (YYYY-MM-DD). Omit for the night currently selected in the app."
},
"site": {
"type": "object",
"description": "Observing site to compute for. Omit to use the site currently shown in the app. Otherwise name a dark-sky catalog site with id (preferred) or name, OR pass BOTH latitude and longitude, plus time_zone (IANA, e.g. \"Pacific/Honolulu\") if you want local times; without a zone only UTC is returned. An object that does neither comes back as invalid_site with a hint. Answering for a site here does NOT move the app: to change the site the page itself shows, call the tool set_observing_site (the page also carries a declarative form named set_observing_site_form, and both go through the same validation).",
"properties": {
"id": {
"type": "string",
"maxLength": 40,
"description": "Dark-sky catalog id such as roque, mauna-kea, paranal; preferred over coordinates because it brings the exact elevation and IANA zone."
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Decimal degrees, north positive."
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Decimal degrees, EAST positive (Mauna Kea is -155.47)."
},
"elevation_m": {
"type": "number",
"minimum": -430,
"maximum": 9000
},
"time_zone": {
"type": "string",
"description": "IANA time zone name."
},
"name": {
"type": "string",
"maxLength": 80,
"description": "Catalog site name (\"Mauna Kea\", matched loosely) when you pass no coordinates, or the label for the coordinates when you do."
}
},
"additionalProperties": false
},
"min_altitude_deg": {
"type": "number",
"minimum": 5,
"maximum": 85,
"description": "Lowest altitude above the horizon that still counts as observable, in degrees. OMIT this to honour the filter the person set in the app; the value actually used comes back as data.filters_used.min_altitude_deg. Pass a number only when the person asked to change the floor."
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"galaxy",
"open_cluster",
"globular_cluster",
"planetary_nebula",
"diffuse_nebula",
"supernova_remnant",
"other",
"planet",
"moon",
"star"
]
},
"maxItems": 10,
"description": "Keep only these target types. Omit to honour the type filter set in the app (every type except \"star\" by default). Include \"star\" here to add the naked eye stars to the scan."
},
"max_magnitude": {
"type": "number",
"minimum": -30,
"maximum": 20,
"description": "Faintest visual magnitude to keep (larger numbers are fainter); planets and the Moon are judged on their brightness on that night. OMIT this to honour the filter set in the app, which is no limit unless the person set one; the value used comes back as data.filters_used.max_magnitude."
},
"min_moon_separation_deg": {
"type": "number",
"minimum": 0,
"maximum": 180,
"description": "Minimum angular distance from the Moon, in degrees, enforced only while the Moon is above the horizon. OMIT this to honour the filter the person set in the app; the value used comes back as data.filters_used.min_moon_separation_deg."
},
"min_window_minutes": {
"type": "integer",
"minimum": 10,
"maximum": 600,
"default": 45,
"description": "Shortest observing window worth listing, in minutes."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 40,
"default": 12,
"description": "How many candidates to return, best first."
},
"query": {
"type": "string",
"maxLength": 60,
"description": "Free text filter over names and ids, e.g. \"nebula\" or \"Andromeda\"."
},
"ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Target id or common name; matching ignores case, spaces and punctuation. Accepted: a Messier id in any spelling (\"M31\", \"M 31\", \"messier 31\"), the object common name or NGC designation (\"Ring Nebula\", \"Andromeda Galaxy\", \"Pleiades\", \"NGC 7089\"), a planet (\"Jupiter\", \"Saturn\"), \"Moon\", or a bright star (\"Vega\"). The Sun is not an observing target. A name that does not resolve comes back as unknown_target with the closest matches, so retry with one of those rather than guessing again."
},
"maxItems": 40,
"description": "Check exactly these targets instead of the whole catalog. Names that cannot be resolved come back in rejected."
}
},
"additionalProperties": false
}
Similar websites
pocketgull.app
Pocket Gull is a real-time clinical AI consult engine powered by Google Gemini. Features 10D multi-paradigm strategy, FHIR R4 export & 3D spatial anatomy.
webmcp-six-lac.vercel.app
AI Navigation Layer: Model Context Protocol (MCP) Semantic DOM integration for intelligent, safe, and observable web navigation.
ghqsandbox.net
Interactive math and physics tools an AI agent can drive directly through WebMCP.
app.formative.com
Formative classroom assessment and learning platform