Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Castlemap

FreeNot checked

Searchable atlas of 2,400 castles, fortresses and palaces worldwide, with facts from Wikidata (CC0). Tools for name search, nearby lookup by coordinates, fame r

GitHubEmbed

About

Searchable atlas of 2,400 castles, fortresses and palaces worldwide, with facts from Wikidata (CC0). Tools for name search, nearby lookup by coordinates, fame ranking, per-country listings and aggregate statistics — read-only, no API key.

README

A Model Context Protocol server for the Castlemap atlas: 2,400 castles, fortresses and palaces across 131 countries, with coordinates, founding dates, categories, fame ranking and Wikipedia summaries.

It is already running. Point a client at the hosted endpoint — there is no install, no signup and no API key:

https://thecastlemap.com/mcp

Streamable HTTP, stateless, POST-only (a GET returning 405 is correct). Protocol revisions 2025-06-18 and 2025-03-26 are accepted.

Client configuration

{
  "mcpServers": {
    "castles": {
      "type": "http",
      "url": "https://thecastlemap.com/mcp"
    }
  }
}

Registry entry: com.thecastlemap/castles.

Tools

Tool What it does
search_castles Find castles by name, country or category
get_castle Full record for one castle
castles_near Nearest castles to a coordinate (haversine); geocode first
top_castles Best-known castles, by fame rank
list_countries The 131 countries, with counts
get_statistics Live aggregates — totals, per-country, per-century
random_castle One castle at random

Data

Derived from Wikidata, with summaries from Wikipedia and images from Wikimedia Commons. The atlas is curated rather than exhaustive: it covers castles with a documented history, a real photo and exact coordinates, not every earthwork and ruin.

The factual records are released as CC0 and downloadable as GeoJSON and CSV from thecastlemap.com/data — also mirrored on GitHub, Hugging Face, Kaggle and Zenodo (DOI 10.5281/zenodo.21322360).

Running it yourself

server.mjs has zero dependencies — no SDK, no node_modules. It needs Node 18+ and a castles.geojson to read (download one from /data):

CASTLES_GEOJSON=/path/to/castles.geojson PORT=8891 node server.mjs

It binds 127.0.0.1:8891 by default; HOST, PORT and CASTLES_GEOJSON override that. The file is re-read when its mtime changes (throttled to 60s), so updating the data needs no restart.

castlemap-mcp.service is the systemd unit used in production — loopback-bound, DynamicUser, ProtectSystem=strict, with nginx terminating TLS in front. Set ExecStart to your own node path and ReadOnlyPaths/CASTLES_GEOJSON to wherever the data lives.

Provenance

Built by Alban Zaja with AI assistance: the concept, direction and review are mine; much of the implementation was written with Claude. The underlying data is not generated — it comes from Wikidata, and every record is traceable to its Wikidata item.

License

Code: MIT (see LICENSE). Data: CC0. Wikipedia summary text remains CC BY-SA and is attributed per record.

from github.com/Flightmussy/castlemap-mcp

Installing Castlemap

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/Flightmussy/castlemap-mcp

FAQ

Is Castlemap MCP free?

Yes, Castlemap MCP is free — one-click install via Unyly at no cost.

Does Castlemap need an API key?

No, Castlemap runs without API keys or environment variables.

Is Castlemap hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Castlemap in Claude Desktop, Claude Code or Cursor?

Open Castlemap on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Castlemap with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs