Koskamo

Perigee MCP

An MCP server providing real-time positions, distances, mission facts, and 3D views of objects orbiting Earth, the Moon, Mars, and the Sun. It supports educational queries about satellite passes, celestial events, and object definitions using public data sources like CelesTrak and JPL Horizons.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Perigee MCP logo, by PerigeeCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Perigee
MCP endpoint (Streamable HTTP)
https://perigee-mcp.perigeeinfo.workers.dev/mcp
Vendor documentation

What you can do with it

  • Retrieve real-time positions of satellites orbiting Earth, the Moon, or Mars
  • Calculate distances between celestial objects or spacecraft
  • Get mission facts and definitions for educational purposes
  • Generate embeddable 3D views of orbital mechanics

Source and maintenance

Community listingRegistry 1.9.5
Maintenance checked

Protocol and capabilities

Server
perigee 1.9.5
MCP protocol
2025-06-18
Tools
19 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Perigee (https://perigee.info/) shows in 3D, in real time, the artificial objects orbiting the Earth, the Moon and Mars and the spacecraft crossing the solar system, for education. Use perigee_find to get an object's id (NORAD number, mission id, planet, "moon:<id>", "site:<id>", "launch:<id>", "star:<id>", "comet:<id>", "asteroid:<id>"; dwarf planets and candidates by name: "eris", "quaoar", "2026-ed138"), then perigee_object for facts (goals, status, sources, an image with its credit), perigee_state (with the ground point below) / perigee_orbit / perigee_distance / perigee_distance_series for computed values, perigee_passes for when a satellite can be seen from a place, perigee_sky for what is in the sky from a place, perigee_tonight for a ready summary of the night ahead from a place, perigee_sky_conjunctions for close pairings of the Moon, planets, bright stars (and a satellite) in the sky, perigee_events for Moon phases, eclipses, oppositions and mission milestones, perigee_shadow for when a satellite enters or leaves the Earth's shadow, perigee_ground_track for the path below a satellite, perigee_close_approach for the closest distance between two objects in space (education only), perigee_stats for counts of active satellites, perigee_view for a link or an embeddable live 3D view (perigee_describe_view puts one into words, e.g. for alternative text), perigee_define for student-level definitions. Always tell the student how reliable a number is: quote the provenance (model, data state, data age, typical accuracy) and the sources. Positions are for education, not navigation.

Tools

19 advertised

perigee_find — Find an object
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Looks up objects by name or identifier (English or French, accents optional): planets, moons, missions beyond Earth orbit, featured science satellites, any active Earth satellite (by name, NORAD or COSPAR id), landing and launch sites, named stars. Returns ids for the other tools.

perigee_find input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of results (default 10)."
    },
    "query": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Name or identifier to look up, e.g. \"ISS\", \"Voyager 1\", \"25544\", \"Mars\", \"Apollo 11\"."
    }
  }
}
perigee_find annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_object — Object facts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Facts about an object: name, agency, country, launch date, status, mission goals and notes, identifiers (NORAD, COSPAR, Horizons), official website, sources and verification date, a catalogue image with credit and licence, and links to its view in Perigee. include_image also returns the image itself.

perigee_object input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"25544\" for the ISS."
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "include_image": {
      "type": "boolean",
      "description": "Also return the catalogue image itself, not only its link and credit (default false)."
    }
  }
}
perigee_object annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_state — Position and velocity
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Position (km, ICRF/J2000 equatorial axes) and velocity (km/s) of an object at a date, relative to a centre (default: the body it orbits or stands on), with distance, altitude above the centre, speed, light time, whether it is in sunlight, and provenance. Around the Earth, the Moon or Mars it also gives the ground point below it (latitude, longitude; on the Earth the country or sea, e.g. "over Brazil", "over the Indian Ocean").

perigee_state input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"25544\" for the ISS."
    },
    "date": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "centre": {
      "type": "string",
      "description": "Reference object id, e.g. \"earth\", \"sun\", \"moon:moon\", \"mars\"."
    }
  }
}
perigee_state annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_orbit — Orbit
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Orbit of an object: perigee and apogee altitudes (periapsis/apoapsis), period, inclination, eccentricity, semi-major axis. Earth satellites: the mean elements of their published element set, with the orbit regime (LEO, MEO, GEO, HEO); other objects: instantaneous two-body elements around their centre at a date (default: the body they orbit; inclination on its equator, on the ecliptic around the Sun).

perigee_orbit input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"25544\" for the ISS."
    },
    "date": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "centre": {
      "type": "string",
      "description": "Body the orbit is around, e.g. \"sun\" for a planet or a probe."
    }
  }
}
perigee_orbit annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_passes — Satellite passes over a place
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

When an Earth satellite (ISS = 25544, Tiangong = 48274, Hubble = 20580, or any NORAD number) passes over a place: rise, highest point and set times with direction (azimuth, compass point) and elevation, and whether it can be seen with the naked eye (sunlit satellite, dark sky) and when. Give the place's latitude and longitude (degrees, east positive) and, for local times, its IANA time zone. Up to 3 days ahead.

perigee_passes input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "latitude",
    "longitude"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"25544\" for the ISS."
    },
    "days": {
      "type": "number",
      "maximum": 3,
      "minimum": 0.05,
      "description": "Search length in days (default 3)."
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "start": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "height_m": {
      "type": "number",
      "maximum": 9000,
      "minimum": -500,
      "description": "Observer height above sea level, m."
    },
    "latitude": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Observer latitude, degrees (north positive)."
    },
    "longitude": {
      "type": "number",
      "maximum": 360,
      "minimum": -180,
      "description": "Observer longitude, degrees (east positive)."
    },
    "time_zone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone for local times, e.g. \"America/Toronto\"."
    },
    "min_elevation": {
      "type": "number",
      "maximum": 80,
      "minimum": 0,
      "description": "Lowest culmination kept and lowest elevation counted as visible, degrees (default 10)."
    }
  }
}
perigee_passes annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_sky — The sky from a place
Advertised by the server during the last successful anonymous check.
Advertised read-only

What is in the sky from a place at a date (default: now): day, twilight or night; the Sun with its next rise, set and twilights; the Moon with its phase, illuminated share, rise and set; each planet with its altitude, direction, brightness (magnitude), constellation and whether it can be seen with the naked eye; and the bright named stars above the horizon. For "what can I see tonight", give the evening time.

perigee_sky input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "latitude",
    "longitude"
  ],
  "properties": {
    "date": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "height_m": {
      "type": "number",
      "maximum": 9000,
      "minimum": -500,
      "description": "Observer height above sea level, m."
    },
    "latitude": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Observer latitude, degrees (north positive)."
    },
    "longitude": {
      "type": "number",
      "maximum": 360,
      "minimum": -180,
      "description": "Observer longitude, degrees (east positive)."
    },
    "time_zone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone for local times, e.g. \"Europe/Paris\"."
    }
  }
}
perigee_sky annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
perigee_events — Astronomical and mission events
Advertised by the server during the last successful anonymous check.
Advertised read-only

Events over a period (default: the next 30 days, at most 31): Moon phases (super and micro full Moons), lunar perigee and apogee, lunar and solar eclipses (with a place: how they look from there), equinoxes and solstices, the Earth's perihelion and aphelion, planet oppositions, conjunctions and greatest elongations, and the next key events of the missions (flybys, arrivals, launches) from Perigee's catalogue.

perigee_events input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "days": {
      "type": "number",
      "maximum": 31,
      "minimum": 1,
      "description": "Length of the period in days (default 30)."
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "kinds": {
      "type": "array",
      "items": {
        "enum": [
          "moon",
          "eclipse",
          "season",
          "planet",
          "mission"
        ],
        "type": "string"
      },
      "description": "Kinds of events to include (default: all)."
    },
    "start": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "latitude": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Observer latitude, degrees (north positive)."
    },
    "longitude": {
      "type": "number",
      "maximum": 360,
      "minimum": -180,
      "description": "Observer longitude, degrees (east positive)."
    },
    "time_zone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone for local times, e.g. \"Europe/Paris\"."
    }
  }
}
perigee_events annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
perigee_tonight — Tonight from a place
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

What there is to see tonight from a place (the coming night, or the current one): the night's start and end, the Moon (phase, illuminated share, rise and set), the planets visible to the naked eye, the visible passes of the ISS, Tiangong and Hubble, the close pairings of the Moon and planets, and the sky's events of the night, with short highlights ready to read. Give the place's latitude and longitude and, for local times, its IANA time zone.

perigee_tonight input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "latitude",
    "longitude"
  ],
  "properties": {
    "date": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "height_m": {
      "type": "number",
      "maximum": 9000,
      "minimum": -500,
      "description": "Observer height above sea level, m."
    },
    "latitude": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Observer latitude, degrees (north positive)."
    },
    "longitude": {
      "type": "number",
      "maximum": 360,
      "minimum": -180,
      "description": "Observer longitude, degrees (east positive)."
    },
    "time_zone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone for local times, e.g. \"Europe/Paris\"."
    }
  }
}
perigee_tonight annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_sky_conjunctions — Close pairings in the sky
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Apparent close pairings seen from a place over a period (default 7 days, at most 7): the Moon and the planets with each other and with the bright stars near the ecliptic (Regulus, Spica, Antares, Aldebaran, Pollux…), at their closest, with where to look and whether the pair is visible (above the horizon, dark sky). With `satellite` (a NORAD number), that satellite passing near them during its passes over one day.

perigee_sky_conjunctions input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "latitude",
    "longitude"
  ],
  "properties": {
    "days": {
      "type": "number",
      "maximum": 7,
      "minimum": 0.05,
      "description": "Length of the period in days (default 7; 1 with a satellite)."
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "start": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "height_m": {
      "type": "number",
      "maximum": 9000,
      "minimum": -500,
      "description": "Observer height above sea level, m."
    },
    "latitude": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Observer latitude, degrees (north positive)."
    },
    "longitude": {
      "type": "number",
      "maximum": 360,
      "minimum": -180,
      "description": "Observer longitude, degrees (east positive)."
    },
    "satellite": {
      "type": "string",
      "maxLength": 20,
      "description": "An Earth satellite (NORAD number) to check against the Moon, planets and stars."
    },
    "time_zone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone for local times, e.g. \"Europe/Paris\"."
    },
    "max_separation": {
      "type": "number",
      "maximum": 10,
      "minimum": 0.1,
      "description": "Widest separation kept, degrees (default 5)."
    }
  }
}
perigee_sky_conjunctions annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_shadow — Sunlight and shadow
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Whether an object is in sunlight, in the penumbra or in the umbra of the body it orbits (Earth satellites: the Earth's shadow; lunar and Martian orbiters: the Moon's or Mars'), and when it next enters and leaves the shadow (default: over two orbits, at most 12 hours). Explains why a satellite crossing the night sky suddenly fades out.

perigee_shadow input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"25544\" for the ISS."
    },
    "date": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "hours": {
      "type": "number",
      "maximum": 12,
      "minimum": 0.1,
      "description": "Length of the search in hours (default: two orbits)."
    },
    "centre": {
      "type": "string",
      "description": "Body casting the shadow (default: the one the object orbits)."
    },
    "time_zone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone for local times, e.g. \"Europe/Paris\"."
    }
  }
}
perigee_shadow annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_ground_track — Ground track
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

The path on the ground below an Earth satellite over one or two orbits: a list of points (time, latitude, longitude, height) and a GeoJSON MultiLineString split at the antimeridian, ready for a map. Up to 360 points.

perigee_ground_track input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"25544\" for the ISS."
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "start": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "orbits": {
      "type": "number",
      "maximum": 2,
      "minimum": 0.1,
      "description": "Number of orbits (default 1)."
    },
    "points": {
      "type": "integer",
      "maximum": 360,
      "minimum": 10,
      "description": "Number of points (default 180 per orbit)."
    }
  }
}
perigee_ground_track annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_close_approach — Closest approach in space
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

The closest distance between two objects in space over a period (default 1 day, at most 1): when, how close (timed to a fraction of a second) and, for two Earth satellites, how fast they pass each other. For education only: public orbits are not precise enough for collision avoidance, and the answer says so.

perigee_close_approach input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Second object id."
    },
    "days": {
      "type": "number",
      "maximum": 1,
      "minimum": 0.01,
      "description": "Length of the search in days (default 1)."
    },
    "from": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "First object id."
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "start": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "time_zone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone for local times, e.g. \"Europe/Paris\"."
    }
  }
}
perigee_close_approach annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_stats — Satellite statistics
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Counts of the active satellites: total, by owner (country or organisation, e.g. US, PRC, CIS, ESA), by operator (SpaceX, OneWeb, Amazon Kuiper…), by CelesTrak group (constellations, navigation, weather…), by orbit regime (LEO, MEO, GEO, HEO), object type, launch year, recent launches and low-orbit altitude bands. owner, operator or group narrow a list to matching entries (code or name).

perigee_stats input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "group": {
      "type": "string",
      "maxLength": 60,
      "description": "Narrow the group list to this CelesTrak group, e.g. \"starlink\", \"gps-ops\", \"weather\"."
    },
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Largest entries listed per category (default 25)."
    },
    "owner": {
      "type": "string",
      "maxLength": 60,
      "description": "Narrow the owner list to this SATCAT owner code or name, e.g. \"US\", \"PRC\", \"ESA\"."
    },
    "operator": {
      "type": "string",
      "maxLength": 60,
      "description": "Narrow the operator list to this operator, e.g. \"SpaceX\", \"OneWeb\"."
    }
  }
}
perigee_stats annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_distance — Distance between two objects
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Centre-to-centre distance between two objects at a date (km and astronomical units) and the light travel time, with the provenance of both positions. Example: from "earth" to "mars".

perigee_distance input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Second object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"mars\"."
    },
    "date": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "from": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "First object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"earth\"."
    }
  }
}
perigee_distance annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_distance_series — Distance over a period
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Distances between two objects sampled evenly over a period (for a table or a chart), with the closest and farthest samples. The step limits their precision: use more steps for a precise closest approach.

perigee_distance_series input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "from",
    "to",
    "start",
    "end"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Second object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"mars\"."
    },
    "end": {
      "type": "string",
      "description": "ISO 8601 UTC end."
    },
    "from": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "First object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"earth\"."
    },
    "start": {
      "type": "string",
      "description": "ISO 8601 UTC start."
    },
    "steps": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Number of intervals (default 50, at most 100)."
    }
  }
}
perigee_distance_series annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_view — Link or embed a 3D view
Advertised by the server during the last successful anonymous check.
Advertised read-only

Link to Perigee showing an object (optionally at a date, paused or accelerated, followed), and an iframe snippet for a lesson page: the live 3D view without bars or panels. The embedding page can then drive the view and take PNG snapshots with postMessage (protocol perigee:v1, documented in `embedApi`). For a star, star_map opens its 3D map with the Sun instead (every named star at its real distance, the Sun–star distance drawn; compare adds a second star), alone in the iframe.

perigee_view input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Object id from perigee_find (NORAD number, mission id, planet, \"moon:<id>\", \"site:<id>\", \"launch:<id>\", \"star:<id>\", \"comet:<id>\", \"asteroid:<id>\" or a dwarf planet name), e.g. \"25544\" for the ISS."
    },
    "date": {
      "type": "string",
      "description": "ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now)."
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "rate": {
      "type": "number",
      "maximum": 100000,
      "minimum": -100000,
      "description": "Time multiplier: 1 real time, 0 paused."
    },
    "panel": {
      "type": "boolean",
      "description": "Keep the information panel in the embed."
    },
    "follow": {
      "type": "boolean",
      "description": "Follow the object (default true)."
    },
    "compare": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "With star_map: another star (star:<id>) drawn with its distance to compare."
    },
    "star_map": {
      "type": "boolean",
      "description": "Stars only (star:<id>): open the star's 3D map with the Sun, alone in the embed."
    },
    "time_bar": {
      "type": "boolean",
      "description": "Keep the time bar in the embed."
    }
  }
}
perigee_view annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
perigee_describe_view — Describe a view
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Turns a Perigee link or embed URL (from perigee_view or a shared link) into words: a one-sentence alternative text for the image or iframe, and a description for lesson notes (which view, the selected object, where it is and how reliable its position is, the date and speed of time, the frame, the filters and what is hidden). The camera framing is not in the link.

perigee_describe_view input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 1,
      "description": "A Perigee URL, e.g. https://perigee.info/?view=solar&sel=mars"
    },
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "time_zone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone for local times, e.g. \"Europe/Paris\"."
    }
  }
}
perigee_describe_view annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
perigee_define — Define a term
Advertised by the server during the last successful anonymous check.
Advertised read-only

Student-level definitions (secondary school) of the terms shown in Perigee: NORAD number, COSPAR id, apogee and perigee, inclination, orbital period, element epoch, ephemeris window, phase… Without a term, lists them all.

perigee_define input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "lang": {
      "enum": [
        "en",
        "fr"
      ],
      "type": "string",
      "description": "Language of names and texts (default en)."
    },
    "term": {
      "type": "string",
      "maxLength": 60,
      "description": "Term to define, e.g. \"inclination\", \"apogee\", \"NORAD\" (omit to list every term)."
    }
  }
}
perigee_define annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
perigee_about — Sources, models and accuracy
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

What every answer rests on: data sources and when they were fetched, the models and their typical accuracy, catalogue sizes, frame, attribution and the educational-use disclaimer.

perigee_about input schema
{
  "type": "object",
  "properties": {}
}
perigee_about annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
314 ms
95th percentile latency
314 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 314 ms · metadata changed · 19 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http perigee-mcp-workers https://perigee-mcp.perigeeinfo.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add perigee-mcp-workers --url https://perigee-mcp.perigeeinfo.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable perigee-mcp-workers in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "perigee-mcp-workers": {
      "url": "https://perigee-mcp.perigeeinfo.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "perigee-mcp-workers": {
      "type": "streamableHttp",
      "url": "https://perigee-mcp.perigeeinfo.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start perigee-mcp-workers and inspect its tools.
VS Code configuration
{
  "servers": {
    "perigee-mcp-workers": {
      "type": "http",
      "url": "https://perigee-mcp.perigeeinfo.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http perigee-mcp-workers https://perigee-mcp.perigeeinfo.workers.dev/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "perigee-mcp-workers": {
      "url": "https://perigee-mcp.perigeeinfo.workers.dev/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "perigee-mcp-workers": {
      "serverUrl": "https://perigee-mcp.perigeeinfo.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Perigee MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.