_ registry / mcp streamable-http · checked 4h ago

cyclecalcs-astronomy

https://cyclecalcs.com

Registry code: 78d2a8a8cb83691c

api record

Astronomy calculations from CycleCalcs (cyclecalcs.com): sun and moon times, planet positions and visibility, Mercury and Venus apparition events, the oppositions, conjunctions with the Sun and quadratures of Mars to Neptune, constellation entries of every planet, eclipses, lunar phases, dark-sky observing windows, and place lookup. Pure astronomy only: no astrology, no fortune-telling, no claims that sky events affect people or Earth. Tool calls work without a key, up to 50 a day per network address. A CycleCalcs API key from RapidAPI (the Basic plan is free; keys at…

endpoint
https://www.cyclecalcs.com/mcp
door code
70f030346410179f
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
reachable
live
uptime, 30 days
99%

90 days 99%· all time 100%

latency
344ms

last good check

priced tools
0

of 11 tools

_ answered our checks, 90 days 209 checks · signed record
  • unknown → live
  • degraded → live
  • live → degraded· timeout after 20000ms
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 11 tools
1 open 10 never probed 1 of 11 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • astro_eclipses open 4h ago

    Solar and lunar eclipses: the next or previous from a date, or all in a range, with type, magnitude, obscuration, Saros series and global geometry. A solar eclipse also carries a computed hybrid flag and, when central, the duration, path width and Sun altitude at greatest eclipse. With a location it adds local circumstances, contact times, and an explicit visible-from-here answer; set visible_only to true to keep only eclipses visible there. include adds the precomputed central path or the circumstances at greatest local eclipse. NOTE: count applies per type, so count=3 with type "both" can return six events.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "tz": {
          "type": "string",
          "description": "IANA timezone like \"Europe/Lisbon\" to render event times in local time. Optional; a resolved place supplies its own timezone."
        },
        "end": {
          "type": "string",
          "description": "Last day of an explicit window. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "date": {
          "type": "string",
          "description": "Anchor date to search from. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "type": {
          "enum": [
            "solar",
            "lunar",
            "both"
          ],
          "type": "string",
          "description": "Which kind of eclipse to report. Default \"both\"."
        },
        "count": {
          "type": "integer",
          "minimum": 1,
          "description": "How many eclipses PER TYPE to return."
        },
        "place": {
          "type": "string",
          "description": "Place name instead of lat/lon, as \"City\" or \"City,CC\" with an ISO country code, e.g. \"Lisbon,PT\". Resolved server-side; the response then carries a required GeoNames CC BY 4.0 credit in its attribution field, which must be preserved when shown."
        },
        "start": {
          "type": "string",
          "description": "First day of an explicit window (use with end). ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "cursor": {
          "type": "string",
          "description": "Opaque pagination cursor from a previous result's next_cursor. Send it with the same start/end arguments as the first page."
        },
        "include": {
          "type": "array",
          "items": {
            "enum": [
              "path",
              "greatest"
            ],
            "type": "string"
          },
          "description": "Optional extras, added to the default blocks rather than replacing them. \"path\": the precomputed central path of a solar eclipse as inline GeoJSON (central line, northern and southern limits, and per-minute duration, width, phase and Sun altitude), for the central eclipses that have one; every other eclipse says why it has none. Large: about 65 to 90 KB of JSON per eclipse, returned as both text and structured content, so ask for one eclipse at a time (type \"solar\", a date just before it, count 1). \"greatest\": the circumstances at greatest eclipse from the supplied location, inside each solar eclipse's local block (requires a location).",
          "uniqueItems": true
        },
        "direction": {
          "enum": [
            "next",
            "previous"
          ],
          "type": "string",
          "description": "Search direction from the anchor date. Default \"next\"."
        },
        "visible_only": {
          "type": "boolean",
          "description": "true keeps only eclipses visible from the supplied location (requires a location)."
        }
      },
      "additionalProperties": false
    }
    arguments 80 lines
  • astro_sky_today unknown never probed

    One-call snapshot of the whole sky for a place and moment: moon phase and illumination, which planets are up and worth looking at, the next eclipse, and (with a location) sun times. Reach for this first when the question is broad, like "what is in the sky tonight". For solar-day detail use astro_sun; for choosing an observing night use astro_dark_window; for one planet's exact position use astro_positions.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "tz": {
          "type": "string",
          "description": "IANA timezone like \"Europe/Lisbon\" to render event times in local time. Optional; a resolved place supplies its own timezone."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "date": {
          "type": "string",
          "description": "ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "place": {
          "type": "string",
          "description": "Place name instead of lat/lon, as \"City\" or \"City,CC\" with an ISO country code, e.g. \"Lisbon,PT\". Resolved server-side; the response then carries a required GeoNames CC BY 4.0 credit in its attribution field, which must be preserved when shown."
        }
      },
      "additionalProperties": false
    }
    arguments 30 lines
  • astro_sun unknown never probed

    The complete solar day for one location: sunrise, sunset, solar noon, day length, civil, nautical and astronomical twilight boundaries, and explicit polar day/night status at high latitudes. Location required. For a series, send start and end (step is whole days, e.g. "1d" or "7d"). For "is it dark enough to observe" prefer astro_dark_window; for a broad snapshot prefer astro_sky_today.

    mcp-tool

    {
      "type": "object",
      "anyOf": [
        {
          "required": [
            "lat",
            "lon"
          ]
        },
        {
          "required": [
            "place"
          ]
        }
      ],
      "properties": {
        "tz": {
          "type": "string",
          "description": "IANA timezone like \"Europe/Lisbon\" to render event times in local time. Optional; a resolved place supplies its own timezone."
        },
        "end": {
          "type": "string",
          "description": "Last day of a range. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "date": {
          "type": "string",
          "description": "Single day to report, ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "step": {
          "type": "string",
          "description": "Range stride in whole days, e.g. \"1d\", \"7d\", \"30d\". Default \"1d\"."
        },
        "place": {
          "type": "string",
          "description": "Place name instead of lat/lon, as \"City\" or \"City,CC\" with an ISO country code, e.g. \"Lisbon,PT\". Resolved server-side; the response then carries a required GeoNames CC BY 4.0 credit in its attribution field, which must be preserved when shown."
        },
        "start": {
          "type": "string",
          "description": "First day of a range (use with end instead of date). ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "cursor": {
          "type": "string",
          "description": "Opaque pagination cursor from a previous result's next_cursor. Send it with the same start/end arguments as the first page."
        }
      },
      "additionalProperties": false
    }
    arguments 59 lines
  • astro_moon unknown never probed

    The Moon at an instant or as a daily series: phase name and angle, illuminated fraction, distance, apparent size, libration, bright limb, and the next quarter phases. A location adds rise/set and altitude. For a calendar of new and full moons use astro_moon_phases; for the Moon's exact coordinates use astro_positions.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "tz": {
          "type": "string",
          "description": "IANA timezone like \"Europe/Lisbon\" to render event times in local time. Optional; a resolved place supplies its own timezone."
        },
        "end": {
          "type": "string",
          "description": "Last day of a daily series. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "date": {
          "type": "string",
          "description": "ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "count": {
          "type": "integer",
          "minimum": 1,
          "description": "Number of daily rows from start (alternative to end)."
        },
        "place": {
          "type": "string",
          "description": "Place name instead of lat/lon, as \"City\" or \"City,CC\" with an ISO country code, e.g. \"Lisbon,PT\". Resolved server-side; the response then carries a required GeoNames CC BY 4.0 credit in its attribution field, which must be preserved when shown."
        },
        "start": {
          "type": "string",
          "description": "First day of a daily series. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "cursor": {
          "type": "string",
          "description": "Opaque pagination cursor from a previous result's next_cursor. Send it with the same start/end arguments as the first page."
        }
      },
      "additionalProperties": false
    }
    arguments 47 lines
  • astro_moon_phases unknown never probed

    Every new moon, quarter and full moon in a window (or the next few from a date): each with its exact instant, distance, apparent size, supermoon classification under both competing definitions, traditional full-moon name, and any eclipse falling on it. Use for "when is the next full moon" and phase calendars. For the Moon's state right now use astro_moon.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "tz": {
          "type": "string",
          "description": "IANA timezone like \"Europe/Lisbon\" to render event times in local time. Optional; a resolved place supplies its own timezone."
        },
        "end": {
          "type": "string",
          "description": "Last day of a window. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "date": {
          "type": "string",
          "description": "Anchor date; the next phases follow it. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "count": {
          "type": "integer",
          "minimum": 1,
          "description": "How many phase events to return from the anchor date."
        },
        "place": {
          "type": "string",
          "description": "Place name instead of lat/lon, as \"City\" or \"City,CC\" with an ISO country code, e.g. \"Lisbon,PT\". Resolved server-side; the response then carries a required GeoNames CC BY 4.0 credit in its attribution field, which must be preserved when shown."
        },
        "start": {
          "type": "string",
          "description": "First day of a window (use with end). ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "cursor": {
          "type": "string",
          "description": "Opaque pagination cursor from a previous result's next_cursor. Send it with the same start/end arguments as the first page."
        },
        "phases": {
          "type": "array",
          "items": {
            "enum": [
              "new_moon",
              "first_quarter",
              "full_moon",
              "last_quarter"
            ],
            "type": "string"
          },
          "minItems": 1,
          "description": "Optional filter of phase kinds. Omit for all four. Example: [\"full_moon\"] for full moons only."
        }
      },
      "additionalProperties": false
    }
    arguments 61 lines
  • astro_positions unknown never probed

    Exact positions for up to 20 bodies at an instant or over a time grid: right ascension and declination in both J2000 and of-date frames, ecliptic longitude and latitude, distance, and, with a location, altitude and azimuth with refraction stated per field. With a location the position is topocentric, but tropical_sign and constellation stay geocentric, and meta.conventions.label_origin says so. Use for "where exactly is X". Do not pass earth. For rise and set TIMES use astro_rise_set; for a visibility overview of all planets use astro_planet_board.

    mcp-tool

    {
      "type": "object",
      "required": [
        "bodies"
      ],
      "properties": {
        "tz": {
          "type": "string",
          "description": "IANA timezone like \"Europe/Lisbon\" to render event times in local time. Optional; a resolved place supplies its own timezone."
        },
        "end": {
          "type": "string",
          "description": "Grid end. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "date": {
          "type": "string",
          "description": "ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "step": {
          "type": "string",
          "description": "Grid stride, e.g. \"1h\", \"10min\", \"1d\"."
        },
        "place": {
          "type": "string",
          "description": "Place name instead of lat/lon, as \"City\" or \"City,CC\" with an ISO country code, e.g. \"Lisbon,PT\". Resolved server-side; the response then carries a required GeoNames CC BY 4.0 credit in its attribution field, which must be preserved when shown."
        },
        "start": {
          "type": "string",
          "description": "Grid start (use with end and step). ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "bodies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 20,
          "minItems": 1,
          "description": "Bodies to report. Each entry: One of sun, moon, mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto, or a fixed J2000 target as \"radec:RA,DEC\" with RA in hours (0-24) and DEC in degrees (-90..90), e.g. \"radec:5.6,-5.4\" for the Orion Nebula region."
        },
        "cursor": {
          "type": "string",
          "description": "Opaque pagination cursor from a previous result's next_cursor. Send it with the same start/end arguments as the first page."
        }
      },
      "additionalProperties": false
    }
    arguments 58 lines
  • astro_rise_set unknown never probed

    Rise, upper transit, set and lower transit for one body at one location, with an explicit status at extreme latitudes (circumpolar, never rises) instead of missing values. Accepts fixed radec targets. For the Sun specifically, astro_sun returns richer twilight structure; for positions between events use astro_positions.

    mcp-tool

    {
      "type": "object",
      "anyOf": [
        {
          "required": [
            "lat",
            "lon"
          ]
        },
        {
          "required": [
            "place"
          ]
        }
      ],
      "required": [
        "body"
      ],
      "properties": {
        "tz": {
          "type": "string",
          "description": "IANA timezone like \"Europe/Lisbon\" to render event times in local time. Optional; a resolved place supplies its own timezone."
        },
        "end": {
          "type": "string",
          "description": "Last day of a daily series. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "body": {
          "type": "string",
          "description": "One of sun, moon, mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto, or a fixed J2000 target as \"radec:RA,DEC\" with RA in hours (0-24) and DEC in degrees (-90..90), e.g. \"radec:5.6,-5.4\" for the Orion Nebula region."
        },
        "date": {
          "type": "string",
          "description": "ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "place": {
          "type": "string",
          "description": "Place name instead of lat/lon, as \"City\" or \"City,CC\" with an ISO country code, e.g. \"Lisbon,PT\". Resolved server-side; the response then carries a required GeoNames CC BY 4.0 credit in its attribution field, which must be preserved when shown."
        },
        "start": {
          "type": "string",
          "description": "First day of a daily series. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "cursor": {
          "type": "string",
          "description": "Opaque pagination cursor from a previous result's next_cursor. Send it with the same start/end arguments as the first page."
        },
        "search_horizon_days": {
          "type": "integer",
          "minimum": 1,
          "description": "How many days ahead to search when an event does not occur on the requested day (high latitudes)."
        }
      },
      "additionalProperties": false
    }
    arguments 67 lines
  • astro_planet_board unknown never probed

    All eight planets in one call for a date and optional location: constellation, magnitude, apparent size, elongation from the Sun, morning or evening sky, retrograde state with the next station, rise/set, and a worth-looking-tonight assessment. The right tool for "which planets are visible tonight". For exact coordinates of specific bodies use astro_positions.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "tz": {
          "type": "string",
          "description": "IANA timezone like \"Europe/Lisbon\" to render event times in local time. Optional; a resolved place supplies its own timezone."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "date": {
          "type": "string",
          "description": "ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "sort": {
          "enum": [
            "distance_from_sun",
            "magnitude",
            "elongation",
            "altitude"
          ],
          "type": "string",
          "description": "Optional result ordering. Default is by distance from the Sun."
        },
        "place": {
          "type": "string",
          "description": "Place name instead of lat/lon, as \"City\" or \"City,CC\" with an ISO country code, e.g. \"Lisbon,PT\". Resolved server-side; the response then carries a required GeoNames CC BY 4.0 credit in its attribution field, which must be preserved when shown."
        },
        "bodies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 8,
          "minItems": 1,
          "description": "Optional subset of planets: mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto."
        }
      },
      "additionalProperties": false
    }
    arguments 49 lines
  • astro_planet_events unknown never probed

    Dated planet events. For Mercury and Venus, the apparition cycle: inferior and superior conjunctions, greatest eastern and western elongations, peak brightness (a Venus-only event: Mercury's brightness peaks behind the Sun where it cannot be seen), and the rare transits across the Sun; with no dates it also reports where each is in its cycle right now: morning star or evening star, the conjunctions bounding the current apparition, and the live elongation, phase, magnitude and apparent size. For Mars, Jupiter, Saturn, Uranus and Neptune: conjunction with the Sun, western quadrature, opposition and eastern quadrature, the instants the planet's apparent geocentric ecliptic longitude minus the Sun's reaches 0, 270, 180 and 90 deg, each with the planet's constellation, distance, magnitude and elongation. For any of the seven, constellation_entry, returned only when listed in kinds: each crossing of an IAU constellation boundary, with the two constellations and the direction of motion. The right tool for "when does Venus become the morning star", "when is Mars at opposition", or "when does Uranus cross from Taurus into Gemini". For tonight's visibility of all eight planets use astro_planet_board. Mercury and Venus conjunction instants use the classical heliocentric convention, named on each event.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "tz": {
          "type": "string",
          "description": "IANA timezone like \"Europe/Lisbon\" to render event times in local time. Optional; a resolved place supplies its own timezone."
        },
        "end": {
          "type": "string",
          "description": "Last day of an explicit window, exclusive. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "date": {
          "type": "string",
          "description": "Anchor instant; with no start/end the response covers the next full synodic cycle from here. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "kinds": {
          "type": "array",
          "items": {
            "enum": [
              "inferior_conjunction",
              "superior_conjunction",
              "greatest_elongation_east",
              "greatest_elongation_west",
              "peak_magnitude",
              "transit_of_mercury",
              "transit_of_venus",
              "conjunction_with_sun",
              "quadrature_west",
              "opposition",
              "quadrature_east",
              "constellation_entry"
            ],
            "type": "string"
          },
          "minItems": 1,
          "description": "Optional filter of event kinds. Omit for each planet's own family: the seven apparition kinds for mercury and venus, the four Sun-relative kinds for mars to neptune. peak_magnitude only ever fires for venus; the transit kinds are body-specific and genuinely rare. constellation_entry applies to all seven and must be listed."
        },
        "place": {
          "type": "string",
          "description": "Place name instead of lat/lon, as \"City\" or \"City,CC\" with an ISO country code, e.g. \"Lisbon,PT\". Resolved server-side; the response then carries a required GeoNames CC BY 4.0 credit in its attribution field, which must be preserved when shown."
        },
        "start": {
          "type": "string",
          "description": "First day of an explicit window (use with end). ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "bodies": {
          "type": "array",
          "items": {
            "enum": [
              "mercury",
              "venus",
              "mars",
              "jupiter",
              "saturn",
              "uranus",
              "neptune"
            ],
            "type": "string"
          },
          "maxItems": 7,
          "minItems": 1,
          "description": "Which planets to report. Default mercury and venus."
        },
        "cursor": {
          "type": "string",
          "description": "Opaque pagination cursor from a previous result's next_cursor. Send it with the same start/end arguments as the first page."
        }
      },
      "additionalProperties": false
    }
    arguments 82 lines
  • astro_dark_window unknown 4h ago

    The genuinely dark, moonless observing window for a night: astronomical night intersected with the Moon being down, ranked across up to 62 nights with a trend. The right tool for "when should I stargaze / photograph the Milky Way / observe deep-sky objects". Location required. For plain twilight times use astro_sun.

    mcp-tool

    {
      "type": "object",
      "anyOf": [
        {
          "required": [
            "lat",
            "lon"
          ]
        },
        {
          "required": [
            "place"
          ]
        }
      ],
      "properties": {
        "tz": {
          "type": "string",
          "description": "IANA timezone like \"Europe/Lisbon\" to render event times in local time. Optional; a resolved place supplies its own timezone."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "date": {
          "type": "string",
          "description": "Night to start from. ISO 8601 UTC date or datetime, e.g. \"2026-08-06\" or \"2026-08-06T21:00:00Z\". Or jd: followed by a Julian Day on the UT scale, e.g. \"jd:2461000.5\". On astro_positions, date may list up to 24 datetimes separated by commas, answered in the order sent. Omit for the current moment. Years 1700 to 2200 only; outside that range the API refuses with DATE_OUT_OF_RANGE because the ephemeris is not reliable there."
        },
        "place": {
          "type": "string",
          "description": "Place name instead of lat/lon, as \"City\" or \"City,CC\" with an ISO country code, e.g. \"Lisbon,PT\". Resolved server-side; the response then carries a required GeoNames CC BY 4.0 credit in its attribution field, which must be preserved when shown."
        },
        "nights": {
          "type": "integer",
          "maximum": 62,
          "minimum": 1,
          "description": "How many nights to evaluate and rank. Default 1."
        },
        "moon_illumination_max": {
          "type": "number",
          "maximum": 1,
          "minimum": 0,
          "description": "Treat the Moon as tolerable below this illuminated fraction (0..1) even when up."
        }
      },
      "additionalProperties": false
    }
    arguments 55 lines
  • astro_find_place unknown 4h ago

    Resolve a place name to coordinates, region, country, IANA timezone and a stable place_id, or reverse-look-up the nearest places to a lat/lon. Results are GeoNames data (CC BY 4.0); the response carries the required credit in its attribution field, which must be preserved when results are shown. Note the other tools accept a place argument directly, so this is only needed to disambiguate a name, filter by country, or reverse-geocode.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "A place_id from an earlier result, to fetch that exact place."
        },
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Latitude in decimal degrees, north positive. Send lat and lon together."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Longitude in decimal degrees, east positive (Lisbon is about -9.14). Send lat and lon together."
        },
        "limit": {
          "type": "integer",
          "maximum": 20,
          "minimum": 1,
          "description": "Maximum matches to return. Default 5."
        },
        "query": {
          "type": "string",
          "description": "Place name to search for, e.g. \"Springfield\"."
        },
        "country": {
          "type": "string",
          "description": "Two-letter ISO country code filter, e.g. \"US\"."
        }
      },
      "additionalProperties": false
    }
    arguments 36 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, it shows the verified badge, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 78d2a8a8cb83691c.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/78d2a8a8cb83691c/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/78d2a8a8cb83691c/badge.svg)](https://brick.blue/agent/78d2a8a8cb83691c)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Own the domain? Prove it and the listing carries a verified badge here too: passport.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.