✓ Link copied
Live in production · Academic Zenodo DOI · Apache 2.0

6,500 years of history, structured for AI agents.

AtlasPI is the world's first MCP server for historical geography. 1,038 empires, 4,819 academic sources, real borders in GeoJSON — your agent stops hallucinating about history and starts citing sources.

1,038
historical entities
4,819
academic sources
-67%
LLM hallucinations (benchmark v7)
6,500
years covered (4500 BCE → 2024)

Drag the slider. Watch civilizations breathe.

The embed below is the same production instance running on atlaspi.cra-srl.com. Move the timeline between 4500 BCE and 2024, click on an empire to see academic sources, confidence scores, and ETHICS notes.

🌍 Open AtlasPI live →
Opens in a new tab · atlaspi.cra-srl.com

One call. Clean JSON. No API key.

AtlasPI exposes 119 REST endpoints under OpenAPI 3.1. Open CORS, rate limit 60 req/min per IP, zero registration. Your agent sends an HTTP GET and receives structured JSON — entities active in a given year, events, trade routes, GeoJSON borders.

  • 119 REST endpoints documented in live Swagger.
  • OpenAPI 3.1: typed client in 10 seconds (TypeScript, Python, Go).
  • Open CORS, no API key: zero friction for prototypes and research.
  • Rate limit 60/min per IP — sustainable, not blocking.
  • Native GeoJSON export: borders are real coordinates, not bounding boxes.
curl snapshot year 1250
$ curl https://atlaspi.cra-srl.com/v1/snapshot/year/1250

{
  "year": 1250,
  "active_entities": 247,
  "highlights": [
    {
      "name_native": "Imperium Mongolicum",
      "name_en": "Mongol Empire",
      "confidence": 0.92,
      "sources": 14
    },
    {
      "name_native": "Sacrum Imperium Romanum",
      "confidence": 0.88,
      "sources": 22
    }
  ],
  "events": [/* 18 events */],
  "trade_routes": [/* Silk Road, Trans-Saharan ... */],
  "sources_total": 4819
}
Swagger interactive docs
 https://atlaspi.cra-srl.com/docs
  # Try every endpoint from the browser, inspect the schemas

Plug-and-play with Claude Desktop, Cursor, Zed.

Anthropic's Model Context Protocol (MCP) is the emerging standard for giving an LLM access to external tools and data. atlaspi-mcp is an MCP server installable from PyPI: one line in claude_desktop_config.json and Claude Desktop can query the dataset as if it were its own memory.

  • 34 MCP tools: snapshot, compare, similar, on_this_day, routes_active...
  • PyPI atlaspi-mcp v0.9.0: just pip install.
  • Native-format JSON: schema designed for LLMs, not for SQL browsers.
  • Dataset-backed, zero hallucinations: responses come from the DB, not from prompt engineering.
bash install
$ pip install atlaspi-mcp
Successfully installed atlaspi-mcp-0.9.0
claude_desktop_config.json
{
  "mcpServers": {
    "atlaspi": {
      "command": "atlaspi-mcp"
    }
  }
}
Claude Desktop after restart
▸ 34 AtlasPI tools available
▸ "Which empires controlled the Balkans in 1400?"
  → call: snapshot_year(1400, bbox=Balkans)
  → 7 entities, 12 sources, avg confidence 0.83

No euphemisms. No victor's narrative.

Existing historical datasets for LLMs mirror the bias of English-language Wikipedia: "colonial era" instead of "genocide", European names instead of native ones, certainty where there should be uncertainty. AtlasPI codifies transparency in the data model, not in a footnote.

Native-language primary
"Mēxihcah", not "Aztec"

The name in the original language is the primary field. The English exonym is secondary. Same for Tawantinsuyu (not "Inca"), Bharat (not "India" pre-1947), Bizantion.

No euphemisms
"genocide", not "colonial violence"

12 explicit ETHICS records covering Armenia, the Atlantic Maafa, Holocaust, Rwanda, Bangladesh 1971. Categories follow academic consensus, not the ones that sell textbooks.

Uncertainty transparency
confidence: 0.4

For pre-1800 borders the confidence_score is low and visible. The AI agent receives "confidence 0.4" as a structured field and can decide whether to cite cautiously or look elsewhere.

Open dataset. Grows every week.

A unified relational model — entities, events, rulers, cities, routes, languages, archaeological sites — linked together and each anchored to academic sources. The backend is 24,609 lines of Python, the frontend 18,424, test coverage 1,206 functions.

1,038
historical entities
643
historical events
4,819
academic sources
1,249
archaeological sites
105
rulers profiled
110
historical cities
41
trade routes
55
historical periods
29
historical languages
24.6k
Python backend lines
18.4k
frontend lines
1,206
test functions

Three doors in, three types of user.

The same dataset, exposed in three different ways depending on what you're building.

🤖

Agentic developer

You're building an assistant with Claude, Cursor, AutoGen, LangChain. Install atlaspi-mcp and your agent stops inventing dates and borders. Free, no API key, open CORS.

🎓

Digital humanities researcher

You need to cite a stable dataset. AtlasPI has a Zenodo DOI (10.5281/zenodo.19581784), a public GitHub repo, and auditable methodology. Fork it, challenge it, contribute.

📚

Educational publisher / educator

You want an interactive historical map for your edtech platform, but with your branding and datasets extended for the region you care about. White-label hosted instance + custom extensions.

Production-grade, not a side-project.

Stack chosen to last: PostGIS for real geography, FastAPI for speed, Redis for cache, Docker compose for deployment. All open-source Apache 2.0.

Apache 2.0

Permissive open-source, commercial use included. Fork, extend, redistribute.

🔓

No API key

Zero friction for prototypes and research. Registration will only arrive for serious quotas.

🌍

Open CORS

Callable directly from the browser. Ideal for Jupyter notebooks and front-end prototypes.

🗺

PostGIS 3.4

Real geography, not bounding boxes. Spatial queries in SQL: ST_Intersects, ST_Area.

FastAPI

Async Python, type hints, auto-generated OpenAPI. Average latency < 60ms for simple queries.

💾

Redis cache

Hot path cached, year snapshots pre-computed. The timeline slider stays smooth at 60 fps.

🐳

Docker compose

Self-host in 5 minutes: docker compose up and you have your own instance.

📐

OpenAPI 3.1

Complete schema, client SDKs generable in any language. Live Swagger UI.

📡

Sentry-ready

Error tracking ready to enable via env var. Structured JSON logging by default.

White-label hosted instance? Custom dataset extension?

If you run an educational publisher, an edtech platform, a cultural newsroom, or you've won a digital humanities grant — let's talk. AtlasPI is open-source, but CRA SRL offers managed hosting, custom extensions (specific regions, periods, languages), and tailored MCP integration.

📧 info@cra-srl.com 🌐 Try the live instance 📐 Swagger docs