Live earthquakes, ISS position, weather, moon phase, and true star visibility. No key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
One-shot summary of what is happening on Earth right now: 24h earthquake totals plus current ISS position.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http earth-and-sky https://13-62-217-51.sslip.io/mcp
One-shot summary of what is happening on Earth right now: 24h earthquake totals plus current ISS position.
No arguments.
{
"type": "object",
"properties": {}
}Recent earthquakes from USGS. Filter by window (hour/day/week/month), minimum magnitude, and place text. Returns magnitude, place, depth, time.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max events returned, 1-100. Default 20. |
| place | string | Substring match on the place name, e.g. 'Japan'. Not a geographic polygon search. |
| window | string | Lookback window. Default day. |
| min_magnitude | number | Minimum magnitude, e.g. 4.5. Default 0. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "Max events returned, 1-100. Default 20."
},
"place": {
"type": "string",
"description": "Substring match on the place name, e.g. 'Japan'. Not a geographic polygon search."
},
"window": {
"enum": [
"hour",
"day",
"week",
"month"
],
"type": "string",
"description": "Lookback window. Default day."
},
"min_magnitude": {
"type": "number",
"description": "Minimum magnitude, e.g. 4.5. Default 0."
}
}
}Current latitude/longitude of the International Space Station.
No arguments.
{
"type": "object",
"properties": {}
}Current (or given date's) moon phase and illumination for a location.
| Argument | Type | Description |
|---|---|---|
| lat | number | Latitude in degrees |
| lon | number | Longitude in degrees |
| when | string | ISO date/time (optional) |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"description": "Latitude in degrees"
},
"lon": {
"type": "number",
"description": "Longitude in degrees"
},
"when": {
"type": "string",
"description": "ISO date/time (optional)"
}
}
}The real sky for a place and an instant: sunrise/sunset, moonrise/moonset, true moon phase and illumination, and the best dark window for stargazing. Pure astronomy, no API key.
| Argument | Type | Description |
|---|---|---|
| lat* | number | Latitude, decimal degrees. |
| lon* | number | Longitude, decimal degrees. |
| when | string | ISO date/datetime UTC. Defaults to now. |
| tz_offset | number | Local UTC offset in hours. Optional. |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"description": "Latitude, decimal degrees."
},
"lon": {
"type": "number",
"description": "Longitude, decimal degrees."
},
"when": {
"type": "string",
"description": "ISO date/datetime UTC. Defaults to now."
},
"tz_offset": {
"type": "number",
"description": "Local UTC offset in hours. Optional."
}
}
}Is tonight actually usable for stargazing or astrophotography? Combines real dark hours and true moon illumination (computed from first principles) with live hourly cloud cover, weighting low cloud above high cloud. Returns a 0-100 usability score per night hour, the best consecutive usable run, and a plain verdict. lat/lon required; tz_offset and when optional.
| Argument | Type | Description |
|---|---|---|
| lat* | number | Latitude, -90..90. |
| lon* | number | Longitude, -180..180. |
| when | string | Optional ISO date/time to plan for. Default now. |
| tz_offset | number | Hours offset from UTC for local clock labels. Default: estimated from longitude. |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"description": "Latitude, -90..90."
},
"lon": {
"type": "number",
"description": "Longitude, -180..180."
},
"when": {
"type": "string",
"description": "Optional ISO date/time to plan for. Default now."
},
"tz_offset": {
"type": "number",
"description": "Hours offset from UTC for local clock labels. Default: estimated from longitude."
}
}
}Real sky for a place and night: sunrise/sunset, moonrise/moonset, true moon phase and illumination, and the best dark window for stargazing. Computed from first principles (no key, no ephemeris file).
| Argument | Type | Description |
|---|---|---|
| lat* | number | Latitude in degrees (-90..90) |
| lon* | number | Longitude in degrees (-180..180) |
| when | string | ISO date/time to use instead of now (optional) |
| tz_offset | number | Hours offset from UTC (optional) |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"description": "Latitude in degrees (-90..90)"
},
"lon": {
"type": "number",
"description": "Longitude in degrees (-180..180)"
},
"when": {
"type": "string",
"description": "ISO date/time to use instead of now (optional)"
},
"tz_offset": {
"type": "number",
"description": "Hours offset from UTC (optional)"
}
}
}Stateful quake subscriptions. Unlike a local tool, the filter and its cursor are stored on the server, so poll returns ONLY events newer than your last poll - no re-scanning, no client-side dedupe. Actions: create (min_magnitude, place), poll (id), list, delete (id).
| Argument | Type | Description |
|---|---|---|
| id | string | Subscription id (for poll/delete). |
| owner | string | Optional namespace to group subscriptions. Default 'public'. |
| place | string | Substring place filter for create, e.g. 'Japan'. |
| action* | string | create a subscription, poll it, list yours, or delete one. |
| since_hours | number | On create, seed the cursor this many hours back so the very first poll can return existing events. Default 0 (only new events). |
| min_magnitude | number | Minimum magnitude for create. Default 0. |
{
"type": "object",
"required": [
"action"
],
"properties": {
"id": {
"type": "string",
"description": "Subscription id (for poll/delete)."
},
"owner": {
"type": "string",
"description": "Optional namespace to group subscriptions. Default 'public'."
},
"place": {
"type": "string",
"description": "Substring place filter for create, e.g. 'Japan'."
},
"action": {
"enum": [
"create",
"poll",
"list",
"delete"
],
"type": "string",
"description": "create a subscription, poll it, list yours, or delete one."
},
"since_hours": {
"type": "number",
"description": "On create, seed the cursor this many hours back so the very first poll can return existing events. Default 0 (only new events)."
},
"min_magnitude": {
"type": "number",
"description": "Minimum magnitude for create. Default 0."
}
}
}Current weather and the next 12 hours for a latitude/longitude, from Open-Meteo. No API key required.
| Argument | Type | Description |
|---|---|---|
| latitude* | number | -90 to 90. |
| longitude* | number | -180 to 180. |
{
"type": "object",
"required": [
"latitude",
"longitude"
],
"properties": {
"latitude": {
"type": "number",
"description": "-90 to 90."
},
"longitude": {
"type": "number",
"description": "-180 to 180."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 30, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.