Space Launch & Starlink Tracker
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Space Launch & Starlink TrackerWhen's the next SpaceX launch? Show Lagos time."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Next N launches with countdowns, provider, rocket, pad and status |
|
| Countdown and details for the next launch, optionally filtered |
|
| Next Starship flights, last 3 flight outcomes, latest news |
|
| Passes over a location: rise/max/set, direction, duration, visible or not |
|
| Visible Starlink passes grouped into trains |
|
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.0for 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 serverDeploy to Vercel
Push to GitHub and import it at vercel.com/new (Framework preset: Other). No environment variables are required.
api/mcp.tsis the function.vercel.jsonrewrites/mcpto it. The MCP URL ishttps://<project>.vercel.app/mcp.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.
List tools. You should see 5.
upcoming_launcheswith{"limit": 5, "tz": "Africa/Lagos"}: a table of launches with T- countdowns and a "Source: The Space Devs Launch Library 2 … fetched " line.starship_statuswith{}: next flights, recent flight outcomes and 5 linked headlines.satellite_passeswith{"lat": 51.5, "lon": -0.12, "hours": 120, "tz": "Europe/London"}: visible ISS passes with rise time, max elevation and direction. Add"visibleOnly": falseto see every pass, with a reason when one isn't visible.starlink_passeswith{"lat": 40.71, "lon": -74.0, "hours": 48, "minElevationDeg": 15}: Starlink trains (or a clear "none visible" explanation).Bad input, such as
satellite_passeswith{"lat": 100, "lon": 0}, returns a validation error.
Data sources and attribution
CelesTrak (Dr. T.S. Kelso)
Predictions are for information only.
License
MIT
Available Tools
5 toolsnext_launchNext launch countdownARead-only
Countdown and details for the very next launch, optionally filtered (e.g. 'Starship', 'Rocket Lab').
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | IANA timezone for display, e.g. Africa/Lagos, America/New_York. UTC always shown too. | |
| search | No |
TDQS
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.
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.
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.
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.
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.
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 passesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | IANA timezone for display, e.g. Africa/Lagos, America/New_York. UTC always shown too. | |
| lat | Yes | Observer latitude, decimal degrees | |
| lon | Yes | Observer longitude, decimal degrees (east positive) | |
| hours | No | ||
| start | No | ||
| noradId | No | ||
| altitudeM | No | ||
| satellite | No | ISS (default), Tiangong, Hubble, or a CelesTrak name | |
| visibleOnly | No | default true | |
| minElevationDeg | No |
TDQS
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.
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.
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.
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.
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.
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.
starlink_passesVisible Starlink passesARead-only
Visible Starlink passes and 'trains' over a location. Default checks satellites from the 6 most recent Starlink launches (the bright, low trains); mode 'all' checks up to 3000 Starlinks over max 6 h.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | IANA timezone for display, e.g. Africa/Lagos, America/New_York. UTC always shown too. | |
| lat | Yes | Observer latitude, decimal degrees | |
| lon | Yes | Observer longitude, decimal degrees (east positive) | |
| mode | No | ||
| hours | No | ||
| start | No | ||
| altitudeM | No | ||
| maxResults | No | ||
| minElevationDeg | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnlyHint and openWorldHint, so the description carries the rest and does disclose meaningful behavior: the default scope (6 most recent launches, the bright low trains) and hard caps (up to 3000 satellites, max 6 h). It stops short of describing result shape or empty/failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler, and the core purpose is front-loaded before the mode/default behavior. Slightly compressed but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and low schema coverage, the definition is only adequate: it omits what the start date-time does relative to hours, how minElevationDeg and maxResults shape results, and what a returned pass looks like. It is callable but an agent would guess at several knobs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (tz, lat, lon), so the description must compensate, and it does add real semantics for 'mode' (bright low trains vs the full 3000-satellite sweep) plus the effective time cap for that mode. However, start, altitudeM, maxResults, and minElevationDeg remain unexplained in both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource and outcome ('Visible Starlink passes and trains over a location'), which is clearly narrower than the generic sibling satellite_passes. It does not explicitly name or contrast with that sibling, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains default versus 'mode: all' behavior, which implicitly tells the agent when each mode is appropriate, but it offers no explicit when-to-use guidance relative to satellite_passes or other siblings, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
starship_statusStarship statusBRead-only
SpaceX Starship: next scheduled flights with countdowns, most recent flight outcomes, and latest news headlines.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | IANA timezone for display, e.g. Africa/Lagos, America/New_York. UTC always shown too. | |
| newsLimit | No |
TDQS
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.
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.
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.
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.
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.
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 launchesBRead-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').
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | IANA timezone for display, e.g. Africa/Lagos, America/New_York. UTC always shown too. | |
| limit | No | ||
| search | No | ||
| includeRecent | No |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
v1.0.0- First observed
next_launch - First observed
satellite_passes - First observed
starlink_passes - First observed
starship_status - First observed
upcoming_launches
TDQS
Scored across 5 tools
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.
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.
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.
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
Related MCP Connectors
Live space data for AI agents - rocket launches, ISS passes, launch news. Free, no auth.
Launches MCP — wraps Launch Library 2 API (ll.thespacedevs.com)
Orbital data center & space AI compute tracker MCP: projects, launches, orbits, alerts. 100 free/day
Spacenews MCP — wraps the Spaceflight News API v4 (free, no auth)
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides NASA fireball, near-Earth asteroid, and close approach data via MCP, enabling users to query space object information using natural language.31 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides 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
- AlicenseAqualityDmaintenanceLive 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.3MIT
- AlicenseNot gradedqualityFmaintenanceProvides 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 npmMIT