← WebMCP Directory

roque-nights.netlify.app

roque-nights.netlify.app

live Unverified (seed import) Health & Education 12 tools mixed implementation

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

answer imperative

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

PropertyTypeRequiredDescription
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

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.

live Unverified Health & Education Transact tools
98 tools A20 / Act75 / T3 Not yet scored Seen 2026-11-05
generate_medical_summary translate_clinical_text get_current_patient_data navigate_to_body_part inject_clinical_note
Inspect tools
webmcp-six-lac.vercel.app

webmcp-six-lac.vercel.app

AI Navigation Layer: Model Context Protocol (MCP) Semantic DOM integration for intelligent, safe, and observable web navigation.

live Unverified Health & Education
93 tools A4 / Act89 / T0 Not yet scored Seen 2026-11-05
ver_certificados ver_certificado_react meus_cursos abrir_curso_react abrir_curso_nextjs
Inspect tools
ghqsandbox.net

ghqsandbox.net

Interactive math and physics tools an AI agent can drive directly through WebMCP.

live Unverified Health & Education
91 tools A22 / Act69 / T0 Not yet scored Seen 2026-11-05
list_learning_tools open_tool list_expressions add_expression plot_point
Inspect tools
app.formative.com

app.formative.com

Formative classroom assessment and learning platform

live Unverified Health & Education Transact tools
86 tools A41 / Act36 / T9 Not yet scored Seen 2026-11-05
addFolder addFormative addFormativeItem addOneRoster addOrg
Inspect tools

Related on Influzer