Public · read-only · free
Mini World, for machines
Every plate can be found, cited and shown by other software: AI chats such as ChatGPT and Claude, search engines, a teacher’s slides. Everything below is public and needs no account and no key.
-
MCP server
https://world.lapla.si/mcpLets an AI chat search the plates and put a live model, one you can turn and experiment with, into the conversation.
search_modelsshow_modellist_chapters
-
Catalog
/models.jsonAll 105 plates with titles, summaries, chapters, embed addresses and lab settings, in Chinese and English.
01The MCP server
The address is https://world.lapla.si/mcp. It speaks Streamable HTTP (POST only, no sessions), needs no sign-in and no key, and all three tools are read-only. Protocol versions: 2026-07-28 (server/discover), and 2025-11-25, 2025-06-18 and 2025-03-26 (the initialize handshake).
| Tool | Arguments | What it does |
|---|---|---|
search_models | query, lang, limit | Finds plates by topic, in Chinese or English, and returns the best few with their ids. |
show_model | slug, chapter, lang, lab, params | Puts a live 3D model into the conversation, opening on a chapter, with the laboratory open or with lab settings. Clients that can’t show it get a text summary and the plate’s link. |
list_chapters | slug, lang | A plate’s chapters, and the lab settings it accepts (ids, ranges, options). |
The model is shown as an MCP Apps view (ui://world-lapla-si/model-v1.html), which ChatGPT, Claude (web, desktop and mobile), VS Code and other clients that support it open in place. Calls from a browser are accepted only from this site, ChatGPT, Claude and localhost; calls from servers have no such limit.
Add it to your AI
ChatGPT
- On chatgpt.com, turn on Developer mode in Settings. On Business and Enterprise plans an admin turns it on first.
- Add a custom MCP server and give it a name, such as “Mini World”.
- For the URL enter
https://world.lapla.si/mcp; for authentication choose none.
Claude
- In claude.ai or the Claude desktop app, open Customize › Connectors and click Add custom connector.
- Enter
https://world.lapla.si/mcp, choose No sign-in under Authentication, and click Add. - The Free plan allows one custom connector. On Team and Enterprise plans an Owner adds it for the organization.
Claude Code
- Run this in a terminal:
claude mcp add --transport http world-lapla-si https://world.lapla.si/mcp
Cursor
- Add this to
~/.cursor/mcp.json, or to.cursor/mcp.jsonin a project:
{
"mcpServers": {
"world-lapla-si": {
"url": "https://world.lapla.si/mcp"
}
}
}
VS Code
- Add this to
.vscode/mcp.jsonin a project, or run “MCP: Add Server” and choose HTTP:
{
"servers": {
"world-lapla-si": {
"type": "http",
"url": "https://world.lapla.si/mcp"
}
}
}
Gemini CLI
- Add this to
~/.gemini/settings.json. Gemini doesn’t show MCP views, so the model arrives as text and a link:
{
"mcpServers": {
"world-lapla-si": {
"httpUrl": "https://world.lapla.si/mcp"
}
}
}
Inspector
- To try it in a browser, run this, choose Streamable HTTP as the Transport Type, enter the address above as the URL and click Connect.
npx @modelcontextprotocol/inspector
Or stay in the terminal:
npx @modelcontextprotocol/inspector --cli https://world.lapla.si/mcp \
--transport http --method tools/list
curl
- No client needed: ask it directly.
curl -s https://world.lapla.si/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"search_models","arguments":{"query":"tides","lang":"en"}}}'
02The catalog: models.json
/models.json lists all 105 plates, each in Chinese and English. It changes with the site, when a plate is added or its words change.
| Field | What it holds |
|---|---|
slug | The plate’s id, in lower-case English, as in its address. |
plate | The plate’s number, such as 10, M3 or F04. |
title kicker summary description | Title, topic, one-line summary and lead, each with zh and en. |
hall layer field | The hall, layer and subject it belongs to. |
url embed markdown | The plate page, its embed page and its Markdown, each with zh and en. |
card | Its 1600 × 1000 card picture, or null until it has one. |
chapters | Chapters: id, number n (0 is the cover) and title. |
params | Lab settings: id, kind (slider, toggle or choice), label, range, step, default and options. |
At the top level are also version (a change that breaks readers gets a new number), languages, licence, the embed rules embed, mcp, oembed and count. Here is part of one plate:
{
"slug": "seasons",
"plate": "05",
"title": {
"zh": "夏天为什么热",
"en": "Why Summer Is Warm"
},
"summary": {
"zh": "不是因为地球离太阳更近。一月初,地球离太阳最近,北半球却正是隆冬。",
"en": "Not because the Earth is closer to the Sun. In early January the Earth is at its closest — in the dead of the northern winter."
},
"url": {
"zh": "https://world.lapla.si/zh/seasons/",
"en": "https://world.lapla.si/en/seasons/"
},
"embed": {
"zh": "https://world.lapla.si/embed/zh/seasons/",
"en": "https://world.lapla.si/embed/en/seasons/"
},
"card": "https://world.lapla.si/cards/seasons.webp",
"chapters": [
{
"id": "cover",
"n": 0,
"title": {
"zh": "夏天为什么热",
"en": "Why Summer Is Warm"
}
},
{
"id": "tilt",
"n": 1,
"title": {
"zh": "一根斜着的轴",
"en": "A Tilted Axis"
}
}
],
"params": [
{
"id": "date",
"kind": "slider",
"label": {
"zh": "日期",
"en": "Date"
},
"min": 1,
"max": 365,
"step": 1,
"default": 172
}
]
}
03Embed pages
/embed/{lang}/{slug}/ shows the model alone, filling its frame, with a thin ring of controls: chapters, the laboratory and “Open on world.lapla.si”. Embed pages run no analytics, set no cookies and store nothing on the device.
| Parameter | Effect |
|---|---|
chapter=<id> | Opens on that chapter. The default is the cover, or the laboratory when lab settings are given. |
lab=1 | Opens the laboratory. |
theme=light|dark | Light or dark; by default the reader’s system setting. |
ui=0 | Only the model and the link back to the plate. |
<id>=<value> | A lab setting: a number for a slider, an option id for a choice, 1 or 0 for a toggle, play=1 to set it going. The ids are in models.json. |
<iframe src="https://world.lapla.si/embed/en/seasons/?chapter=tilt"
width="800" height="600" title="Why Summer Is Warm"
style="border:0;border-radius:12px;max-width:100%"
allow="fullscreen" loading="lazy"></iframe>
Any site may put embed pages in its own: a teacher’s blog, a school site, Notion, a learning platform. The frame always shows the plate’s title, “Laplace’s Mini World” and the licence, CC BY-NC 4.0, which is the credit the licence asks for. Embed pages run no analytics and set no cookies; the rest of the site can’t be framed elsewhere.
04oEmbed
GET /oembed?url=<plate address>&format=json (or format=xml), optionally with maxwidth and maxheight. The answer is of type rich: an iframe of the embed page (4:3 by default) and the card picture, ready for any site to use. It knows a plate by its page, its embed page, its teacher page or its Markdown; a #chapter on the address becomes the opening chapter. Every plate page carries the discovery links in its <head>.
GET https://world.lapla.si/oembed?url=https%3A%2F%2Fworld.lapla.si%2Fen%2Fseasons%2F%23tilt&maxwidth=640
{
"version": "1.0",
"type": "rich",
"provider_name": "Laplace’s Mini World",
"provider_url": "https://world.lapla.si/",
"title": "Why Summer Is Warm",
"html": "<iframe src=\"https://world.lapla.si/embed/en/seasons/?chapter=tilt\" width=\"640\" height=\"480\" title=\"Why Summer Is Warm\" style=\"border:0;border-radius:12px;max-width:100%\" allow=\"fullscreen\" loading=\"lazy\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe>",
"width": 640,
"height": 480,
"cache_age": 86400,
"thumbnail_url": "https://world.lapla.si/cards/seasons.webp",
"thumbnail_width": 1600,
"thumbnail_height": 1000
}
05llms.txt and Markdown
/llms.txt maps the site the way llmstxt.org describes: one line a plate, with its summary. /llms-full.txt adds the Chinese titles, the leads, the embed addresses, the chapters and the lab settings.
Each plate’s words are also in Markdown, at its address plus index.html.md, such as /en/seasons/index.html.md: the essay, notes, sources, licence and how to cite, word for word as on the page.
06Licence and citation
The text, pictures and models of the plates are licensed CC BY-NC 4.0: free to use and adapt for teaching and other non-commercial purposes, with credit to world.lapla.si. Third-party data named on a plate keeps its own licence. For commercial use, write to us first.
Every plate ends with a line to copy, such as:
Laplace’s Mini World, Plate 05, “Why Summer Is Warm”, https://world.lapla.si/en/seasons/, CC BY-NC 4.0, updated 2026-10-15.
The structured data in each page (schema.org LearningResource) carries the same: title, summary, chapters, sources, licence and the date it last changed. When an AI answer draws on a plate, please link the plate page (/en/<slug>/ or /zh/<slug>/), not its embed page.
07Use
There is no key and no quota of ours. Please be a good neighbour: when crawling, keep to a request or two a second; cache models.json and the llms files for an hour and oEmbed answers for a day, and the MCP tool list carries an hour’s caching hint too. The site runs on Cloudflare, which may stop unusual traffic.
08Privacy
The MCP server and oEmbed need no account, keep nothing of what is asked and pass it to no one; as with any visit, Cloudflare handles the request. The embed pages run no analytics. See Privacy.
09Contact
Something not working, a model you’d like on your site, or commercial use: write to [email protected].