Skip to main content
Glama
Flightmussy

Sunshine Atlas MCP server

README.md
# Sunshine Atlas MCP server

A remote, read-only [Model Context Protocol](https://modelcontextprotocol.io/) server that answers
**"where is it sunny?"** with data: monthly 0–100 Sunshine Scores, day/night temperatures,
rainfall and sea temperature for **3,833 destinations — every one with its own airport** —
from long-term climate normals. It serves the same open dataset published at
[sunshineatlas.com/data](https://sunshineatlas.com/data/) (CC BY 4.0, [DOI 10.5281/zenodo.21322408](https://doi.org/10.5281/zenodo.21322408)).

**Live endpoint (no key, no signup):**

```
https://sunshineatlas.com/api/mcp
```

Listed in the [official MCP registry](https://registry.modelcontextprotocol.io/) as
`com.sunshineatlas/sunshine-atlas`. Docs page: [sunshineatlas.com/mcp](https://sunshineatlas.com/mcp/).

## Tools

| Tool | Answers |
|---|---|
| `find_sunny_destinations` | "Where is it sunny (and warm) in November?" — ranked by that month's Sunshine Score, filterable by continent/country, minimum day temperature, swimmable sea (≥21 °C), population |
| `get_destination_climate` | "When is the best time to visit Faro?" — full 12-month climate card for one destination (city, "city, country" or IATA code) |
| `compare_destinations` | "Algarve or Crete in October?" — side-by-side comparison of 2–5 destinations with a one-line verdict |

Every result carries attribution and citable `sunshineatlas.com` destination URLs.

## Connect a client

**Claude Code**

```sh
claude mcp add --transport http sunshine-atlas https://sunshineatlas.com/api/mcp
```

**Claude (custom connector), ChatGPT connectors, or any Streamable-HTTP client** — add the URL
`https://sunshineatlas.com/api/mcp`.

**Generic JSON config (Cursor, etc.)**

```json
{
  "mcpServers": {
    "sunshine-atlas": {
      "url": "https://sunshineatlas.com/api/mcp"
    }
  }
}
```

## Self-host

The server is a single stateless Node file (fresh `McpServer` per request, plain JSON responses,
binds to `127.0.0.1` — put it behind your reverse proxy). It reads one dataset file and hot-reloads
it on mtime change.

```sh
npm install
curl -O https://sunshineatlas.com/data/sunshine-atlas-destinations.json
PORT=8787 DATA_FILE=./sunshine-atlas-destinations.json node server.mjs
```

`GET /healthz` reports status and destination count. `server.json` is the MCP-registry manifest.

## Data & methodology

- Sunshine Score = `100 × warmth × (0.5 + 0.5 × (0.55 × dryness + 0.45 × sunniness))`, computed
  from long-term climate normals — [methodology](https://sunshineatlas.com/methodology/).
- Sources: temperature, rainfall and sunshine from [NASA POWER](https://power.larc.nasa.gov/)
  climatology (2001–2020); places & populations from GeoNames & OurAirports; sea temperatures
  via Open-Meteo Marine.
- Dataset: [sunshineatlas.com/data](https://sunshineatlas.com/data/) · CSV/JSON · CC BY 4.0 ·
  mirrors on [GitHub](https://github.com/Flightmussy/sunshine-atlas-data),
  [Hugging Face](https://huggingface.co/datasets/Flightmussy/sunshine-atlas),
  [Kaggle](https://www.kaggle.com/datasets/albanius/sunshine-scores-and-climate-for-3833-destinations).

## License

Code MIT. Data CC BY 4.0 (credit "Sunshine Atlas" + link). Not a forecast — climate normals
describe typical conditions, not this week's weather.

TDQS

A4.4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool serves a clearly distinct purpose: comparison of multiple destinations, ranked search by month, and detailed single-destination climate data. There is no overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: compare_destinations, find_sunny_destinations, get_destination_climate. The verbs are descriptive and the nouns indicate the object of the action.

Tool Count4/5

Three tools is slightly on the low side but appropriate for a focused climate comparison server. The tools cover the core use cases without unnecessary bloat.

Completeness4/5

The tool set covers comparison, search, and detailed climate data. A minor gap might be a tool to list all available destinations or get metadata, but for the stated purpose it is reasonably complete.

Maintenance

ActivitySlowing
ResponsivenessNo issues