Skip to main content
Glama
MAASAI-Labs

Space Launch & Starlink Tracker

by MAASAI-Labs

Space Launch & Starlink Tracker (MCP server)

Live MCP URL (Streamable HTTP, no auth): https://space-launch-tracker-mcp.vercel.app/mcp
Health check: https://space-launch-tracker-mcp.vercel.app/health

An MCP server that gives Grok Bot (or any MCP client) live space data:

  • Upcoming launches worldwide with live countdowns, from The Space Devs Launch Library 2

  • Starship status: next flights, recent flight outcomes and latest headlines (Launch Library 2 + Spaceflight News API)

  • ISS / Tiangong / Hubble / any satellite pass predictions for any lat/lon, with naked-eye visibility

  • Visible Starlink trains for any location

It uses CelesTrak TLEs and SGP4 via satellite.js. All data is public and needs no API keys. Every output cites its source URL and fetch timestamp.

Tools

Tool

Purpose

Key inputs

upcoming_launches

Next N launches with countdowns, provider, rocket, pad and status

limit, search (e.g. "SpaceX", "ISRO", "Artemis"), tz

next_launch

Countdown and details for the next launch, optionally filtered

search, tz

starship_status

Next Starship flights, last 3 flight outcomes, latest news

tz, newsLimit

satellite_passes

Passes over a location: rise/max/set, direction, duration, visible or not

lat, lon, satellite (ISS default) or noradId, hours, minElevationDeg, visibleOnly

starlink_passes

Visible Starlink passes grouped into trains

lat, lon, hours, minElevationDeg, mode (recent-trains or all)

tz takes any IANA timezone (for example Africa/Lagos). UTC is always shown alongside it.

Related MCP server: celestialnode-mcp

Example prompts

  • "When's the next SpaceX launch and how long until liftoff? Show Lagos time."

  • "What's the latest on Starship? When's the next flight?"

  • "Can I see the ISS from London this week? When, and in which direction should I look?"

  • "Any Starlink trains visible from New York in the next two nights?"

  • "List the next 10 launches from anywhere in the world."

How it's calculated

  • Passes: SGP4 propagation (satellite.js) at 20 s steps (30 s for Starlink), with rise and set refined to about 1 s by bisection. Accuracy is about ±1 min with fresh TLEs.

  • Visible means the satellite is sunlit (cylindrical Earth-shadow model) and the sun is below −6° (civil twilight or darker) at the observer at maximum elevation.

  • Sun position: low-precision Astronomical Almanac formula (~0.01°).

  • Starlink "recent trains": satellites from the 6 most recent Starlink launches, by international designator. These are the low, bright trains people notice. mode: "all" checks up to 3,000 Starlinks, limited to 6 h.

Polite use of public APIs

  • In-memory caching per URL:

    • Launch Library 2: 10 min. The free tier allows 15 requests per hour per IP. Set LL2_BASE_URL=https://lldev.thespacedevs.com/2.3.0 for development.

    • CelesTrak: 2 h, which is their requested minimum re-download interval.

    • Spaceflight News: 10 min.

  • Concurrent identical requests are merged into one.

  • If upstream fails or rate-limits (HTTP 429), the last cached copy is returned and clearly marked STALE.

  • Requests send a descriptive User-Agent.

Run locally

npm install
npm test             # unit tests (vitest; mocked network)
npm run build
npm start            # Streamable HTTP at http://localhost:3000/mcp
npm run start:stdio  # stdio for desktop MCP clients
npm run smoke        # live: lists tools and calls every tool against the local HTTP server

Deploy to Vercel

  1. Push to GitHub and import it at vercel.com/new (Framework preset: Other). No environment variables are required.

  2. api/mcp.ts is the function. vercel.json rewrites /mcp to it. The MCP URL is https://<project>.vercel.app/mcp.

  3. Check it with node scripts/smoke.mjs https://<project>.vercel.app/mcp.

The server is stateless with JSON responses. On serverless, the cache only lasts per warm instance. All Vercel functions share egress IPs, so if Launch Library 2 rate-limits the deployment, use a Space Devs API key: their Patreon tiers raise the limit. starlink_passes with mode: "all" is CPU-heavy, so keep the default mode on Hobby.

Testing instructions for marketplace reviewers

No credentials needed.

  1. List tools. You should see 5.

  2. upcoming_launches with {"limit": 5, "tz": "Africa/Lagos"}: a table of launches with T- countdowns and a "Source: The Space Devs Launch Library 2 … fetched " line.

  3. starship_status with {}: next flights, recent flight outcomes and 5 linked headlines.

  4. satellite_passes with {"lat": 51.5, "lon": -0.12, "hours": 120, "tz": "Europe/London"}: visible ISS passes with rise time, max elevation and direction. Add "visibleOnly": false to see every pass, with a reason when one isn't visible.

  5. starlink_passes with {"lat": 40.71, "lon": -74.0, "hours": 48, "minElevationDeg": 15}: Starlink trains (or a clear "none visible" explanation).

  6. Bad input, such as satellite_passes with {"lat": 100, "lon": 0}, returns a validation error.

Data sources and attribution

Predictions are for information only.

License

MIT

Available Tools

5 tools
next_launchNext launch countdownA
Read-only

Countdown and details for the very next launch, optionally filtered (e.g. 'Starship', 'Rocket Lab').

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoIANA timezone for display, e.g. Africa/Lagos, America/New_York. UTC always shown too.
searchNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and openWorldHint, so safety is covered. The description adds that it targets the single very next launch and that 'UTC always shown too' appears in the schema rather than here; it doesn't describe auth, rate limits, or return shape. With annotations carrying the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that front-loads the primary function and appends the optional filter with concrete examples. Nothing wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-param read tool with no output schema, the description covers purpose and filtering but leaves sibling differentiation and the search parameter's semantics thin. Adequate but with clear gaps relative to the sibling tool set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: tz is documented in the schema, search is not (only maxLength). The description's filter examples ('Starship', 'Rocket Lab') add useful meaning for search but don't fully compensate for the undocumented parameter. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb-like resource ('next launch') and stated scope ('countdown and details'), with the filter examples grounding what the tool returns. It doesn't explicitly distinguish itself from the sibling 'upcoming_launches', so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'optionally filtered' phrasing and examples imply when to pass a filter, but there's no guidance on when to use this versus 'upcoming_launches', which is the obvious alternative. Usage context is implied, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

satellite_passesISS and satellite passesA
Read-only

Predict passes of the ISS (default), Tiangong, Hubble, or any satellite by name/NORAD id over a location, with naked-eye visibility (satellite sunlit, sky dark). Uses CelesTrak TLEs + SGP4.

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoIANA timezone for display, e.g. Africa/Lagos, America/New_York. UTC always shown too.
latYesObserver latitude, decimal degrees
lonYesObserver longitude, decimal degrees (east positive)
hoursNo
startNo
noradIdNo
altitudeMNo
satelliteNoISS (default), Tiangong, Hubble, or a CelesTrak name
visibleOnlyNodefault true
minElevationDegNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint, openWorldHint), and the description adds meaningful context beyond them: the naked-eye visibility criterion (satellite sunlit, sky dark) and the CelesTrak TLE + SGP4 data/model provenance. It still omits rate limits, TLE freshness, and failure modes, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences front-loaded with the primary capability, targets, visibility semantics, and data source. No filler; every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with 50% schema coverage and no output schema, the description adequately covers purpose and the main input concept but leaves the time-range and elevation parameters unexplained. An agent has enough to call it, but not enough to use the optional parameters confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%, and the description adds meaning mainly for the satellite/noradId fields (naming conventions and default) and implies the visibleOnly behavior. Time-window (hours, start), altitudeM, and minElevationDeg remain undocumented in both schema and description, so it only partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Predict passes') and enumerates the supported targets (ISS default, Tiangong, Hubble, or any satellite by name/NORAD id). An agent can grasp the tool's scope quickly, though it does not explicitly differentiate from the sibling starlink_passes despite overlapping function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (predict passes over a lat/lon location, ISS as default). There is no explicit when-to-use/when-not guidance, and it does not route the agent toward starlink_passes for Starlink-specific queries, leaving sibling selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

starship_statusStarship statusB
Read-only

SpaceX Starship: next scheduled flights with countdowns, most recent flight outcomes, and latest news headlines.

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoIANA timezone for display, e.g. Africa/Lagos, America/New_York. UTC always shown too.
newsLimitNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and external-data sourcing are covered. The description adds no behavioral context beyond that: no mention of caching, freshness, rate limits, or the shape of the countdown/outcome data. With annotations doing the safety work, this leaves little added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence listing exactly what is returned, with no filler. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only aggregator with two parameters, no output schema, and sibling launch tools, the description is too thin. It never resolves the overlap with upcoming_launches/next_launch and never covers the newsLimit parameter, leaving the agent to guess scope and limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: tz is fully described in the schema, but newsLimit has only type/bounds. The description does not mention either parameter, so it fails to compensate for the undocumented newsLimit parameter. Baseline 3 applies given partial schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (SpaceX Starship) and states three concrete outputs: upcoming flights with countdowns, recent outcomes, and news headlines. It is specific about scope but does not differentiate itself from siblings like upcoming_launches or next_launch, which likely overlap in launch-listing behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicit usage is clear from the content (Starship-specific status), but the description never says when to pick this over upcoming_launches or next_launch, or whether it is Starship-only vs. all launches. No exclusions or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upcoming_launchesUpcoming launchesB
Read-only

Upcoming orbital launches worldwide from Launch Library 2 with live countdowns, provider, rocket, pad and status. Optional search (e.g. 'SpaceX', 'Falcon 9', 'Artemis', 'ISRO').

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoIANA timezone for display, e.g. Africa/Lagos, America/New_York. UTC always shown too.
limitNo
searchNo
includeRecentNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a safe read-only, open-world operation, so the burden is lower. The description adds useful context — the upstream source (Launch Library 2) and the live countdown/status fields returned — but says nothing about pagination, the 25-item cap, or how includeRecent changes results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the purpose and data source, with no filler. Slightly dense, but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with no output schema, the description covers what is returned and where it comes from. It is still missing the behavior of includeRecent, the default/max for limit, and any note on result ordering or pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25% (just tz documented), so the description must compensate. It adds examples for the search parameter ('SpaceX', 'Falcon 9', 'Artemis', 'ISRO'), which is helpful, but limit and includeRecent remain completely undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Upcoming orbital launches worldwide') and enumerates the returned fields (countdowns, provider, rocket, pad, status) plus the data source (Launch Library 2). It is clearly distinct from starship_status and satellite_passes, but the plural-vs-singular distinction from the sibling next_launch is left implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance or routing advice. The 'Optional search' sentence describes how to invoke the tool, not when to choose it over next_launch, and no exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observednext_launch
    • First observedsatellite_passes
    • First observedstarlink_passes
    • First observedstarship_status
    • First observedupcoming_launches

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation4/5

Each tool maps to a distinct resource/action, but next_launch is essentially a filtered subset of upcoming_launches, and satellite_passes vs starlink_passes both compute location-based passes. The boundaries are still clear enough (specific object sets and train mode) that misselection risk is low.

Naming Consistency4/5

All names are lowercase snake_case with a noun-oriented suffix, so the set reads consistently. The convention varies slightly (adjective_noun like upcoming_launches/next_launch vs subject_action like satellite_passes/starlink_passes), but this is a minor deviation.

Tool Count4/5

Five tools sit at the low end of the well-scoped 3-15 range and each covers a meaningful capability. The set is slightly thin and next_launch partly duplicates upcoming_launches, keeping it just below ideal.

Completeness4/5

The tracker covers the core workflows: upcoming and imminent launches, Starship status, and satellite/Starlink passes. Gaps exist (no historical/archived launch lookup or generic satellite/object detail lookup), but these are minor and agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time space data including ISS and Tiangong tracking, crew in space, rocket launches, space news, Mars missions, a star catalog, near-Earth asteroids, and satellites. All 18 tools are read-only.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Live space data for AI agents: upcoming rocket launches (SpaceX, NASA, Rocket Lab…), ISS pass predictions for any city or coordinates (live SGP4), and launch news in 7 languages. Read-only, no auth, no API key. Backed by gocosmik.com — the free real-time 3D satellite tracker.
    3
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides access to global rocket launch data, including upcoming and historical launches, launch details, space agencies, astronauts, events, and expeditions, enabling natural language queries about space activities.
    1 npm
    MIT