Skip to main content
Glama
MAASAI-Labs

Orbital Watch

Official
by MAASAI-Labs

Orbital Watch (MCP server)

Live MCP URL (Streamable HTTP): https://orbital-watch-mcp.vercel.app/mcp
Health check: https://orbital-watch-mcp.vercel.app/health

Orbital Watch is space-situational-awareness for Grok Bot (or any MCP client). It covers four areas:

  • Satellite and debris lookup: any tracked object, with owner, launch, status, decay, current orbit and live position.

  • Debris fields and constellations: how many objects from the 2007 Fengyun-1C ASAT test, the 2009 Iridium–Cosmos collision and others are still up, and at what altitudes.

  • Close approaches: predicted conjunctions from CelesTrak SOCRATES for the next 7 days.

  • Space weather: NOAA G/R/S scales, Kp, solar flares, alerts and the 3-day outlook, explained in plain English for GPS, HF radio, Starlink/LEO satellites and aurora.

All data is public and needs no keys. Every output cites its source URL and fetch time.

Tools

Tool

What it does

satellite_info

CelesTrak SATCAT and GP lookup by NORAD id, name or international designator. Live lat/lon/altitude via SGP4 (satellite.js)

track_group

Object count, perigee bands and regimes for a debris event (cosmos-1408, fengyun-1c, iridium-33, cosmos-2251) or any CelesTrak group (starlink, stations, gps-ops, …)

conjunctions

SOCRATES Plus close approaches by NORAD id, name pattern or overall, ordered by max probability, miss distance or time

space_weather_now

NOAA scales, current Kp, latest and strongest flares, Kp forecast, 3-day probabilities, and plain-English impacts

space_weather_alerts

Recent SWPC alerts, warnings and watches, with their stated impacts

Related MCP server: spacetrack-mcp

Example prompts

  • "Where is the ISS right now, and how high is it?"

  • "How much Fengyun-1C debris is still in orbit, and at what altitude?"

  • "Any close approaches for the ISS this week?" / "What are the riskiest Starlink conjunctions?"

  • "Is there a geomagnetic storm? Will it affect my GPS, ham radio or Starlink?"

  • "What space weather alerts has NOAA issued in the last day?"

Notes on the data

  • Impacts come from NOAA's G/R/S scale levels, following NOAA SWPC's scale descriptions:

    • G (geomagnetic storms; Kp 5→G1 … Kp 9→G5) affects GPS at high latitudes, LEO drag (the Feb 2022 Starlink loss happened during a minor storm, to satellites still in a very low orbit) and aurora.

    • R (radio blackouts from flares; M1→R1, M5→R2, X1→R3, X10→R4, X20→R5) affects dayside HF radio.

    • S (solar radiation) affects polar HF and satellites.

  • SOCRATES "max probability" is CelesTrak's worst-case figure from public GP data, not operator-grade covariance. The output explains this.

  • Caching:

    • CelesTrak SATCAT/GP: 2 h, as CelesTrak asks.

    • SOCRATES: 30 min. It updates about every 8 h.

    • SWPC: 1–5 min.

    • On upstream failure, the cached copy is served and marked STALE.

  • Space-Track.org is not used. Its API returns HTTP 401 without an account, and its terms don't allow redistribution. CelesTrak republishes the same public catalogue and GP data.

Run locally

npm install && npm test && npm run build
npm start             # http://localhost:3000/mcp
npm run start:stdio
npm run smoke         # live calls to every tool

Deploy to Vercel

Push to GitHub, import it at vercel.com/new (preset: Other), and use https://<project>.vercel.app/mcp. No environment variables are needed. Check it with node scripts/smoke.mjs <url>.

Testing instructions for marketplace reviewers

No credentials needed.

  1. List tools. You should see 5.

  2. satellite_info with {"noradId": 25544}: the ISS, with orbit (~420 km), live position and source lines.

  3. track_group with {"debrisEvent": "fengyun-1c"}: around 2,000 objects, broken down by altitude band.

  4. conjunctions with {"name": "STARLINK", "max": 5}: a table of close approaches with miss distances.

  5. space_weather_now with {}: G/R/S scales, Kp, flares, and impact lines for GPS, HF, Starlink and aurora.

  6. space_weather_alerts with {"hours": 72}.

Data sources

CelesTrak (SATCAT, GP, SOCRATES) by Dr. T.S. Kelso, and NOAA Space Weather Prediction Center. This tool is for information only and is not for operational collision avoidance.

License

MIT

Available Tools

5 tools
conjunctionsClose approaches (SOCRATES)A
Read-only

Predicted close approaches over the next 7 days from CelesTrak SOCRATES, for a NORAD id, a name pattern (e.g. STARLINK, ISS), or overall; ordered by max probability, miss distance or time.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNo
nameNo
orderNo
noradIdNo

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the upstream source (CelesTrak SOCRATES) and a 7-day lookahead window, which is genuinely useful context, but it says nothing about rate limits, freshness, or how an empty result is returned.

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?

A single front-loaded sentence that leads with the predicted-approach scope and adds only clauses that earn their place. The semicolon-joined second clause is dense, but nothing is redundant or restated from the name or title.

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 4-parameter, zero-required tool with no output schema and no per-parameter documentation anywhere, the description covers the filter and sort dimensions adequately but omits the result-limit parameter ('max', 1–50), default behavior, and any sense of the response shape.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the full burden. It decodes the cryptic ORDER enum values into human terms (max probability, miss distance, time) and clarifies that name is a pattern (e.g. STARLINK, ISS) rather than an exact match. It leaves the 'max' parameter completely unexplained, which caps it below 5.

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 and resource ('Predicted close approaches'), plus the source (CelesTrak SOCRATES) and the temporal window (next 7 days). It is unambiguous on its own, though it never names a sibling (satellite_info, track_group, space_weather_*) to distinguish itself from them.

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 description enumerates the three selectable scopes (NORAD id, name pattern, or overall), which implies how to call it, but it gives no explicit when-to-use guidance, no indication of when to prefer a sibling tool, and no statement about which filters can be combined.

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

satellite_infoSatellite / debris lookupA
Read-only

Look up any tracked object (satellite, rocket body, debris) in the CelesTrak SATCAT by NORAD id, name or international designator: owner, launch, status, decay, current orbit and live position.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
intlDesNoe.g. 1998-067A
noradIdNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=true), so the bar is lower, and the description still adds real value by enumerating the returned payload (owner, launch, status, decay, current orbit, live position). It does not mention rate limits, error behavior for unmatched names, or how 'live position' is sourced, but the return-content disclosure goes meaningfully beyond annotations.

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 with no filler: verb, object classes, source catalog, accepted identifiers, and returned fields, in that order. Every clause earns its place and nothing is repeated from the schema or annotations.

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

Completeness4/5

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

For a 3-parameter, no-output-schema lookup tool, the description covers what it queries, the keys it accepts, and the fields it returns. The one remaining gap is disambiguation policy (e.g., ambiguous name matches, precedence among the three keys), but overall an agent has enough to call it correctly.

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 33% (only intlDes is documented in the schema), so the description has to carry weight, and it does map the three accepted lookup keys to the three parameters. However, it never clarifies that the parameters are alternatives (0 required) or what happens if multiple are supplied and conflict, which is the main semantic ambiguity an agent faces here.

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

Purpose5/5

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

States a specific verb (look up) and resource (any tracked object in the CelesTrak SATCAT) and enumerates the accepted lookup keys (NORAD id, name, international designator). This is clearly distinguishable from siblings like track_group or conjunctions, which operate on collections or events rather than a single catalog object. The object classes (satellite, rocket body, debris) further sharpen scope.

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 by the lookup framing rather than stated: an agent can infer this is the per-object catalog query, but the description never says when to choose it over track_group or conjunctions, nor does it give any prerequisites or exclusions. No alternatives are named. Adequate but with a clear routing gap.

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

space_weather_alertsNOAA SWPC alertsC
Read-only

Recent NOAA SWPC alerts, warnings and watches (geomagnetic storms, flares, proton events) with their stated impacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNo
limitNo

TDQS

C2.9/5.0
Behavior3/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-dependency behavior are covered. The description adds genuine content context (the alert categories and that stated impacts are included), but says nothing about the default time window, ordering, or result volume, which matters for a feed-style tool.

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?

A single front-loaded sentence with no filler; the alert types are parenthetically grouped rather than padded. It is well sized, though it could have spent a few extra words on the time-window parameter instead of listing event types.

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?

With no output schema and zero parameter documentation, the description carries the burden for explaining the return shape and the meaning of hours/limit, and it does neither. An agent can identify the tool but cannot confidently scope a call.

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 description coverage is 0% for the two parameters (hours, limit) and the description never mentions either. 'Recent' only loosely hints at the hours window and gives no clue about the limit parameter, so the description fails to compensate for the schema gap.

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 a concrete resource (NOAA SWPC alerts, warnings and watches) and enumerates the event types it covers (geomagnetic storms, flares, proton events), so the agent knows exactly what entity is returned. It does not, however, contrast itself with the sibling space_weather_now, so differentiation is left to inference.

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 statement of when to use this tool versus space_weather_now or the other siblings, no mention of defaults, and no indication of how far back 'recent' reaches. The agent must guess whether this is a historical-feed tool or a current-conditions tool.

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

space_weather_nowSpace weather now + impactsA
Read-only

Current NOAA space weather: G/R/S scales, planetary Kp, latest and strongest solar flares, 3-day outlook, with plain-English impact on GPS, HF radio, Starlink/LEO satellites and aurora.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/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 scope are covered. The description usefully adds the data payload scope and a plain-English impact framing (GPS, HF radio, Starlink/LEO, aurora). It does not disclose update cadence, caching/freshness, or whether NOAA may be unreachable, which matter for a 'now' tool.

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?

A single front-loaded sentence that identifies the source and enumerates contents with no filler. The enumeration is dense but each item is genuinely informative about what comes back, so it earns its length.

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

Completeness4/5

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

With no parameters, no output schema, and annotations covering the safety profile, the description's main remaining job is to say what the response contains – which it does thoroughly. It is essentially complete; cadence and format are the only untold pieces.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. The schema is empty and nothing in the description could or should add parameter meaning.

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 a specific resource (current NOAA space weather) and enumerates the exact content: G/R/S scales, planetary Kp, flares, 3-day outlook. That is far more than a restatement of the title. It stops short of explicitly differentiating itself from the sibling space_weather_alerts, which is the one tool an agent could easily confuse it with.

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 word "Current" plus "3-day outlook" implies this is the snapshot/status tool rather than an alert-subscription tool, so usage is inferable. However, there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. 'for active alerts, use space_weather_alerts'), which is exactly the ambiguity a sibling named space_weather_alerts creates.

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

track_groupDebris field / constellation trackerA
Read-only

Count and characterise objects still in orbit for a debris event (cosmos-1408, fengyun-1c, iridium-33, cosmos-2251) or any CelesTrak GP group (starlink, stations, gps-ops, oneweb, last-30-days, ...): altitude bands and orbital regimes.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNo
debrisEventNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds substantive behavioral content beyond that: it states the tool aggregates counts and characterises objects, and that results are expressed as altitude bands and orbital regimes — meaningful since no output schema exists. It stops short of data-freshness or external-call behavior implied by openWorldHint.

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?

A single front-loaded sentence that leads with the verb and packs the input domains and the return characterisation into one pass. Slightly dense and colon-appended rather than cleanly structured, but no filler sentences.

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 2-parameter, no-output-schema, read-only tool the description covers purpose, input values and result shape well. The notable gap is that both parameters are optional with no stated default: an agent cannot tell what a call with no arguments returns, nor whether group and debrisEvent are mutually exclusive. Source/freshness of CelesTrak GP data is also unstated.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load and largely does: it names the debrisEvent enum members and gives multiple valid `group` values that the bare regex pattern (^[a-z0-9-]{2,40}$) cannot convey. It does not clarify that the two parameters are alternative selector modes or whether both may be supplied at once.

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?

Specific verb pair plus resource: 'Count and characterise objects still in orbit' for a named debris event or CelesTrak GP group. It clearly distinguishes the tool's scope from siblings like satellite_info (single object) or conjunctions (pairwise events), though it never explicitly names an alternative. No schema opening is needed to know what it does.

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

Usage Guidelines4/5

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

It supplies the concrete trigger conditions and enumerates usable input domains ('cosmos-1408, fengyun-1c...' or 'starlink, stations, gps-ops, oneweb, last-30-days'). What it omits is any exclusion or routing rule — e.g. when to prefer satellite_info or conjunctions, or whether the two parameter families can be combined.

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 observedconjunctions
    • First observedsatellite_info
    • First observedspace_weather_alerts
    • First observedspace_weather_now
    • First observedtrack_group

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct data source and query type: single-object lookup (satellite_info), group characterisation (track_group), conjunction screening (conjunctions), and two space-weather feeds. The only mild overlap is space_weather_now vs space_weather_alerts, but descriptions clearly separate current conditions/forecast from active alerts and warnings.

Naming Consistency3/5

The space_weather_now/space_weather_alerts pair is nicely parallel, but the set mixes patterns: noun_noun (satellite_info), verb_noun (track_group), a bare noun (conjunctions), and the prefixed space_weather_* forms. Still readable, just not a single predictable convention.

Tool Count4/5

Five tools is a tight, well-scoped surface for a read-only orbital/debris/space-weather monitor, with no redundant entries. It sits at the leaner end, but each tool earns its place.

Completeness4/5

The domain is covered well: object lookup, debris/group tracking, conjunction screening, and current + alert space weather. Minor gaps exist (e.g. no explicit TLE/ephemeris retrieval or historical decay/event browsing), but agents can work around them via satellite_info.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers