# Perigee (npm · perigee-mcp)

Positions, distances, mission facts and 3D views of objects orbiting the Earth, Moon, Mars and Sun.

- Trust score: 81/100 (high trust)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `perigee-mcp.perigeeinfo.workers.dev`: 67/100, [markdown](https://verifymcp.io/servers/dlamarre-dev-perigee/perigee-mcp.md), [page](https://verifymcp.io/servers/dlamarre-dev-perigee/perigee-mcp)
- npm · `perigee-mcp`: 81/100 (this document), [markdown](https://verifymcp.io/servers/dlamarre-dev-perigee/perigee-mcp-2.md), [page](https://verifymcp.io/servers/dlamarre-dev-perigee/perigee-mcp-2)

## Channel facts

- Registry: `npm`
- Package: `perigee-mcp`
- Version: `1.9.5`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to dlamarre-dev/Perigee).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 4 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 60/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4611 tokens (~242/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 20/100
  - Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 19 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Perigee MCP server?

Perigee runs locally as an npm package, launched with npx -y perigee-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add dlamarre-dev-perigee -- npx -y perigee-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "dlamarre-dev-perigee": {
      "command": "npx",
      "args": [
        "-y",
        "perigee-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "dlamarre-dev-perigee": {
      "command": "npx",
      "args": [
        "-y",
        "perigee-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add dlamarre-dev-perigee -- npx -y perigee-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dlamarre-dev-perigee": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "perigee-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add dlamarre-dev-perigee --command npx --arg -y --arg perigee-mcp
```

### Hermes

```yaml
mcp_servers:
  dlamarre-dev-perigee:
    command: "npx"
    args: ["-y", "perigee-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "dlamarre-dev-perigee": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "perigee-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add dlamarre-dev-perigee -t stdio -c npx -a -y perigee-mcp
```

### Other

```json
{
  "mcpServers": {
    "dlamarre-dev-perigee": {
      "command": "npx",
      "args": [
        "-y",
        "perigee-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 79, +26)

- [security improvement] Known CVEs: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Dependency health: unverified → pass

### 2026-10-31 (score 53, −9)

- [security regression] Known CVEs: pass → unverified
- [security improvement] Malware scan: unverified → pass
- [functional regression] Schema quality: 198 → 242
- [functional regression] Security disclosure: unverified → fail
- [functional regression] Dependency health: pass → unverified
- [functional improvement] Tool coverage: 80% → 100%
- [functional improvement] Stability: unverified → 0.03
- [functional] Package version: 1.9.2 → 1.9.5
- [functional] Package version: 1.9.2 → 1.9.4
- [functional] Package version: 1.9.2 → 1.9.3

### 2026-10-30 (score 62)

First indexed and scored.

## MCP tools (19)

### `perigee_find` (~120 tokens)

Find an object

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.

Input parameters:

- `limit` (integer): Maximum number of results (default 10).
- `query` (string, required): Name or identifier to look up, e.g. "ISS", "Voyager 1", "25544", "Mars", "Apollo 11".

### `perigee_object` (~186 tokens)

Object facts

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.

Input parameters:

- `id` (string, required): 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.
- `include_image` (boolean): Also return the catalogue image itself, not only its link and credit (default false).
- `lang` (string): Language of names and texts (default en).

### `perigee_state` (~251 tokens)

Position and velocity

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").

Input parameters:

- `centre` (string): Reference object id, e.g. "earth", "sun", "moon:moon", "mars".
- `date` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `id` (string, required): 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.

### `perigee_orbit` (~241 tokens)

Orbit

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).

Input parameters:

- `centre` (string): Body the orbit is around, e.g. "sun" for a planet or a probe.
- `date` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `id` (string, required): 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.

### `perigee_passes` (~348 tokens)

Satellite passes over a place

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 10 days ahead.

Input parameters:

- `days` (number): Search length in days (default 3).
- `height_m` (number): Observer height above sea level, m.
- `id` (string, required): 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` (string): Language of names and texts (default en).
- `latitude` (number, required): Observer latitude, degrees (north positive).
- `longitude` (number, required): Observer longitude, degrees (east positive).
- `min_elevation` (number): Lowest culmination kept and lowest elevation counted as visible, degrees (default 10).
- `start` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `time_zone` (string): IANA time zone for local times, e.g. "America/Toronto".

### `perigee_sky` (~222 tokens)

The sky from a place

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.

Input parameters:

- `date` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `height_m` (number): Observer height above sea level, m.
- `lang` (string): Language of names and texts (default en).
- `latitude` (number, required): Observer latitude, degrees (north positive).
- `longitude` (number, required): Observer longitude, degrees (east positive).
- `time_zone` (string): IANA time zone for local times, e.g. "Europe/Paris".

### `perigee_events` (~250 tokens)

Astronomical and mission events

Events over a period (default: the next 30 days, at most 366): 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.

Input parameters:

- `days` (number): Length of the period in days (default 30).
- `kinds` (array): Kinds of events to include (default: all).
- `lang` (string): Language of names and texts (default en).
- `latitude` (number): Observer latitude, degrees (north positive).
- `longitude` (number): Observer longitude, degrees (east positive).
- `start` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `time_zone` (string): IANA time zone for local times, e.g. "Europe/Paris".

### `perigee_tonight` (~232 tokens)

Tonight from a place

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.

Input parameters:

- `date` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `height_m` (number): Observer height above sea level, m.
- `lang` (string): Language of names and texts (default en).
- `latitude` (number, required): Observer latitude, degrees (north positive).
- `longitude` (number, required): Observer longitude, degrees (east positive).
- `time_zone` (string): IANA time zone for local times, e.g. "Europe/Paris".

### `perigee_sky_conjunctions` (~299 tokens)

Close pairings in the sky

Apparent close pairings seen from a place over a period (default 7 days, at most 31): 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.

Input parameters:

- `days` (number): Length of the period in days (default 7; 1 with a satellite).
- `height_m` (number): Observer height above sea level, m.
- `lang` (string): Language of names and texts (default en).
- `latitude` (number, required): Observer latitude, degrees (north positive).
- `longitude` (number, required): Observer longitude, degrees (east positive).
- `max_separation` (number): Widest separation kept, degrees (default 5).
- `satellite` (string): An Earth satellite (NORAD number) to check against the Moon, planets and stars.
- `start` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `time_zone` (string): IANA time zone for local times, e.g. "Europe/Paris".

### `perigee_shadow` (~274 tokens)

Sunlight and shadow

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 48 hours). Explains why a satellite crossing the night sky suddenly fades out.

Input parameters:

- `centre` (string): Body casting the shadow (default: the one the object orbits).
- `date` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `hours` (number): Length of the search in hours (default: two orbits).
- `id` (string, required): 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` (string): Language of names and texts (default en).
- `time_zone` (string): IANA time zone for local times, e.g. "Europe/Paris".

### `perigee_ground_track` (~219 tokens)

Ground track

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.

Input parameters:

- `id` (string, required): 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` (string): Language of names and texts (default en).
- `orbits` (number): Number of orbits (default 1).
- `points` (integer): Number of points (default 180 per orbit).
- `start` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).

### `perigee_close_approach` (~194 tokens)

Closest approach in space

The closest distance between two objects in space over a period (default 1 day, at most 7): 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.

Input parameters:

- `days` (number): Length of the search in days (default 1).
- `from` (string, required): First object id.
- `lang` (string): Language of names and texts (default en).
- `start` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `time_zone` (string): IANA time zone for local times, e.g. "Europe/Paris".
- `to` (string, required): Second object id.

### `perigee_stats` (~232 tokens)

Satellite statistics

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).

Input parameters:

- `group` (string): Narrow the group list to this CelesTrak group, e.g. "starlink", "gps-ops", "weather".
- `lang` (string): Language of names and texts (default en).
- `limit` (integer): Largest entries listed per category (default 25).
- `operator` (string): Narrow the operator list to this operator, e.g. "SpaceX", "OneWeb".
- `owner` (string): Narrow the owner list to this SATCAT owner code or name, e.g. "US", "PRC", "ESA".

### `perigee_distance` (~221 tokens)

Distance between two objects

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".

Input parameters:

- `date` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `from` (string, required): 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".
- `to` (string, required): 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".

### `perigee_distance_series` (~234 tokens)

Distance over a period

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.

Input parameters:

- `end` (string, required): ISO 8601 UTC end.
- `from` (string, required): 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` (string, required): ISO 8601 UTC start.
- `steps` (integer): Number of intervals (default 50, at most 1000).
- `to` (string, required): 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".

### `perigee_view` (~360 tokens)

Link or embed a 3D view

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.

Input parameters:

- `compare` (string): With star_map: another star (star:<id>) drawn with its distance to compare.
- `date` (string): ISO 8601 UTC instant, e.g. 2026-12-01T00:00:00Z (default: now).
- `follow` (boolean): Follow the object (default true).
- `id` (string, required): 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` (string): Language of names and texts (default en).
- `panel` (boolean): Keep the information panel in the embed.
- `rate` (number): Time multiplier: 1 real time, 0 paused.
- `star_map` (boolean): Stars only (star:<id>): open the star's 3D map with the Sun, alone in the embed.
- `time_bar` (boolean): Keep the time bar in the embed.

### `perigee_describe_view` (~165 tokens)

Describe a view

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.

Input parameters:

- `lang` (string): Language of names and texts (default en).
- `time_zone` (string): IANA time zone for local times, e.g. "Europe/Paris".
- `url` (string, required): A Perigee URL, e.g. https://perigee.info/?view=solar&sel=mars

### `perigee_define` (~113 tokens)

Define a term

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.

Input parameters:

- `lang` (string): Language of names and texts (default en).
- `term` (string): Term to define, e.g. "inclination", "apogee", "NORAD" (omit to list every term).

### `perigee_about` (~43 tokens)

Sources, models and accuracy

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.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/dlamarre-dev-perigee/perigee-mcp-2#diagnostics

## Score history

- 2026-11-05: 81
- 2026-11-04: 81
- 2026-11-03: 80
- 2026-11-02: 80
- 2026-11-01: 79
- 2026-10-31: 53
- 2026-10-30: 62

## Common questions

### What is the Perigee MCP server?

Perigee is an MCP server listed in the public MCP registry as io.github.dlamarre-dev/perigee. Positions, distances, mission facts and 3D views of objects orbiting the Earth, Moon, Mars and Sun. This page covers its npm package (perigee-mcp).

### Is the Perigee MCP server safe to use?

Perigee scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Perigee MCP server expose?

Perigee exposes 19 tools: perigee_find, perigee_object, perigee_state, perigee_orbit, perigee_passes, and 14 more. Their descriptions and schemas cost roughly 4,204 tokens of context every time the server is loaded.

### Is the Perigee MCP server still maintained?

Perigee is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Perigee MCP server under?

Perigee declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/perigee-mcp
- Socket report: https://socket.dev/npm/package/perigee-mcp
- Repository: https://github.com/dlamarre-dev/Perigee
- Website: https://perigee.info/
- Changelog RSS feed: https://verifymcp.io/servers/dlamarre-dev-perigee/perigee-mcp-2.xml
- Changelog JSON feed: https://verifymcp.io/servers/dlamarre-dev-perigee/perigee-mcp-2.json
- HTML version of this page: https://verifymcp.io/servers/dlamarre-dev-perigee/perigee-mcp-2
