Earth curvature, horizon, flight, Sun and daylight calculators plus tested flat-earth claims.
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.
Calculates how much of a distant target the Earth's curvature hides, from the surface distance, the observer's eye height, the target's height and an assumed refraction coefficient. Returns the hidden and visible height, the tangent-plane drop, the horizon distance and dip, the maximum mutual sight-line range and the midpoint bulge on a smooth sphere of radius 6,371.0084 km.
Surface distance between the observer and the target, along the ground: 0 to 1000 km, or 0 to 621 miles when units is imperial.
Metric uses kilometres and metres; imperial uses miles and feet. Metric without it.
Height of the observer's eye above the surface: 0 to 1000 m, or feet when units is imperial. Defaults to 2 m (6.56 ft).
Assumed refraction coefficient k from -0.3 to 0.3: 0 is straight rays and positive values bend rays toward the surface. Defaults to 0.
Height of the target's top above the same surface: 0 to 1000 m, or feet when units is imperial. Defaults to 10 m (32.8 ft).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http flatearthscience-org https://flatearthscience.org/api/mcp
Calculates how much of a distant target the Earth's curvature hides, from the surface distance, the observer's eye height, the target's height and an assumed refraction coefficient. Returns the hidden and visible height, the tangent-plane drop, the horizon distance and dip, the maximum mutual sight-line range and the midpoint bulge on a smooth sphere of radius 6,371.0084 km.
| Argument | Type | Description |
|---|---|---|
| units | string | Metric uses kilometres and metres; imperial uses miles and feet. Metric without it. |
| distance* | number | Surface distance between the observer and the target, along the ground: 0 to 1000 km, or 0 to 621 miles when units is imperial. |
| eyeHeight | number | Height of the observer's eye above the surface: 0 to 1000 m, or feet when units is imperial. Defaults to 2 m (6.56 ft). |
| refraction | number | Assumed refraction coefficient k from -0.3 to 0.3: 0 is straight rays and positive values bend rays toward the surface. Defaults to 0. |
| targetHeight | number | Height of the target's top above the same surface: 0 to 1000 m, or feet when units is imperial. Defaults to 10 m (32.8 ft). |
{
"type": "object",
"required": [
"distance"
],
"properties": {
"units": {
"enum": [
"metric",
"imperial"
],
"type": "string",
"description": "Metric uses kilometres and metres; imperial uses miles and feet. Metric without it."
},
"distance": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "Surface distance between the observer and the target, along the ground: 0 to 1000 km, or 0 to 621 miles when units is imperial."
},
"eyeHeight": {
"type": "number",
"maximum": 3281,
"minimum": 0,
"description": "Height of the observer's eye above the surface: 0 to 1000 m, or feet when units is imperial. Defaults to 2 m (6.56 ft)."
},
"refraction": {
"type": "number",
"maximum": 0.3,
"minimum": -0.3,
"description": "Assumed refraction coefficient k from -0.3 to 0.3: 0 is straight rays and positive values bend rays toward the surface. Defaults to 0."
},
"targetHeight": {
"type": "number",
"maximum": 3281,
"minimum": 0,
"description": "Height of the target's top above the same surface: 0 to 1000 m, or feet when units is imperial. Defaults to 10 m (32.8 ft)."
}
},
"additionalProperties": false
}Compares the distance between two cities on a north-polar flat-Earth map with their great-circle distance over a sphere. Returns both distances and the factor by which the map stretches or shrinks the pair.
| Argument | Type | Description |
|---|---|---|
| to* | string | Second city, one of the website's 20 cities: Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo. |
| from* | string | First city, one of the website's 20 cities: Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo. |
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Second city, one of the website's 20 cities: Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo."
},
"from": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "First city, one of the website's 20 cities: Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo."
}
},
"additionalProperties": false
}Shows how much a Mercator map distorts a country's area, from its real area and the latitude it is drawn at. Returns the real area, the area multiplier at the country's own latitude and at a chosen latitude, and the size it appears at each. Covers the nine countries and regions in the website's size table.
| Argument | Type | Description |
|---|---|---|
| country* | string | Greenland, Alaska, Russia, Canada, United Kingdom, Australia, India, Brazil or Africa. |
| latitude | number | Latitude in degrees to move the country to, north positive: -85 to 85. Defaults to the equator, 0. |
{
"type": "object",
"required": [
"country"
],
"properties": {
"country": {
"type": "string",
"maxLength": 30,
"minLength": 1,
"description": "Greenland, Alaska, Russia, Canada, United Kingdom, Australia, India, Brazil or Africa."
},
"latitude": {
"type": "number",
"maximum": 85,
"minimum": -85,
"description": "Latitude in degrees to move the country to, north positive: -85 to 85. Defaults to the equator, 0."
}
},
"additionalProperties": false
}Searches the website's tested claims and flat-earth investigations, or returns one by id. Each result gives the claim, the verdict, the key evidence and the link to its page; an empty query lists all of them.
| Argument | Type | Description |
|---|---|---|
| id | string | Exact claim id returned by an earlier search, for the full claim, verdict and evidence. |
| query | string | Words to look for in a claim's title, topic or summary, such as moon landing or horizon. Empty lists every claim. |
{
"type": "object",
"required": [],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact claim id returned by an earlier search, for the full claim, verdict and evidence."
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 0,
"description": "Words to look for in a claim's title, topic or summary, such as moon landing or horizon. Empty lists every claim."
}
},
"additionalProperties": false
}Calculates the length of daylight at a place on a date, with sunrise and sunset in UTC, for the UTC day from midnight to midnight. A place is one of the website's 20 cities or a latitude with an optional longitude.
| Argument | Type | Description |
|---|---|---|
| date | string | UTC date as YYYY-MM-DD, from 1900 to 2100. Defaults to today in UTC. |
| place | string | City, one of Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo. Not needed when a latitude is given. |
| latitude | number | Latitude in degrees, north positive: -90 to 90. |
| longitude | number | Longitude in degrees, east positive: -180 to 180. Defaults to 0 when only a latitude is given; it sets the UTC sunrise and sunset times. |
{
"type": "object",
"required": [],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"minLength": 10,
"description": "UTC date as YYYY-MM-DD, from 1900 to 2100. Defaults to today in UTC."
},
"place": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "City, one of Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo. Not needed when a latitude is given."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude in degrees, north positive: -90 to 90."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude in degrees, east positive: -180 to 180. Defaults to 0 when only a latitude is given; it sets the UTC sunrise and sunset times."
}
},
"additionalProperties": false
}Calculates the great-circle distance between two places in kilometres, miles and nautical miles, with the initial and final compass bearings. Each end is one of the website's 20 cities or a latitude and longitude.
| Argument | Type | Description |
|---|---|---|
| to | string | Arrival city, one of Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo. Not needed when toLatitude and toLongitude are given. |
| from | string | Departure city, one of Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo. Not needed when fromLatitude and fromLongitude are given. |
| toLatitude | number | Arrival latitude in degrees, north positive: -90 to 90. |
| toLongitude | number | Arrival longitude in degrees, east positive: -180 to 180. |
| fromLatitude | number | Departure latitude in degrees, north positive: -90 to 90. |
| fromLongitude | number | Departure longitude in degrees, east positive: -180 to 180. |
Gives the distance to the horizon from an eye height above a smooth sphere, and how far a taller object such as a mast stays in straight sight. Returns the observer's horizon distance, the range added by the target height and the maximum shared sightline.
| Argument | Type | Description |
|---|---|---|
| units | string | Metric uses kilometres and metres; imperial uses miles and feet. Metric without it. |
| eyeHeight* | number | Height of the observer's eye above the water or ground: 0.1 to 1000 m, or feet when units is imperial. |
| targetHeight | number | Height of the taller object's top above the same surface: 0 to 1000 m, or feet when units is imperial. Defaults to 10 m (32.8 ft). |
{
"type": "object",
"required": [
"eyeHeight"
],
"properties": {
"units": {
"enum": [
"metric",
"imperial"
],
"type": "string",
"description": "Metric uses kilometres and metres; imperial uses miles and feet. Metric without it."
},
"eyeHeight": {
"type": "number",
"maximum": 3281,
"minimum": 0.1,
"description": "Height of the observer's eye above the water or ground: 0.1 to 1000 m, or feet when units is imperial."
},
"targetHeight": {
"type": "number",
"maximum": 3281,
"minimum": 0,
"description": "Height of the taller object's top above the same surface: 0 to 1000 m, or feet when units is imperial. Defaults to 10 m (32.8 ft)."
}
},
"additionalProperties": false
}Calculates the Sun's altitude and compass bearing at a place, date and UTC time, with the shadow of a 1 m upright and the day's sunrise and sunset in UTC. A place is one of the website's 20 cities or a latitude and longitude; without a date and time the result is for the current moment.
| Argument | Type | Description |
|---|---|---|
| date | string | UTC date as YYYY-MM-DD, from 1900 to 2100. Defaults to today in UTC. |
| time | string | UTC time as HH:MM on a 24-hour clock. Defaults to the current time when no date is given, otherwise to 12:00. |
| place | string | City, one of Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo. Not needed when latitude and longitude are given. |
| latitude | number | Latitude in degrees, north positive: -90 to 90. |
| longitude | number | Longitude in degrees, east positive: -180 to 180. |
{
"type": "object",
"required": [],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"minLength": 10,
"description": "UTC date as YYYY-MM-DD, from 1900 to 2100. Defaults to today in UTC."
},
"time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"minLength": 5,
"description": "UTC time as HH:MM on a 24-hour clock. Defaults to the current time when no date is given, otherwise to 12:00."
},
"place": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "City, one of Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo. Not needed when latitude and longitude are given."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude in degrees, north positive: -90 to 90."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude in degrees, east positive: -180 to 180."
}
},
"additionalProperties": false
}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 Nov 11, 2026.
{
"type": "object",
"required": [],
"properties": {
"to": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Arrival city, one of Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo. Not needed when toLatitude and toLongitude are given."
},
"from": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Departure city, one of Anchorage, Auckland, Buenos Aires, Cape Town, Dubai, Johannesburg, Lima, London, Los Angeles, Mexico City, Moscow, Mumbai, Nairobi, New York, Perth, Santiago, São Paulo, Singapore, Sydney or Tokyo. Not needed when fromLatitude and fromLongitude are given."
},
"toLatitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Arrival latitude in degrees, north positive: -90 to 90."
},
"toLongitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Arrival longitude in degrees, east positive: -180 to 180."
},
"fromLatitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Departure latitude in degrees, north positive: -90 to 90."
},
"fromLongitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Departure longitude in degrees, east positive: -180 to 180."
}
},
"additionalProperties": false
}