{
 "$schema": "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
 "name": "io.github.wilson21st/shanhejian",
 "version": "1.0.0",
 "title": "山河鉴 · Shanhejian history map",
 "websiteUrl": "https://shanhejian.pages.dev",
 "description": "3D history map of China 581–763 CE. Read events, poems and 说书; add new ones (validated, live at once).",
 "remotes": [
  {
   "type": "streamable-http",
   "url": "https://shanhejian.pages.dev/mcp"
  }
 ],
 "protocolVersions": [
  "2025-11-25",
  "2025-06-18",
  "2025-03-26",
  "2024-11-05"
 ],
 "authentication": {
  "required": false
 },
 "capabilities": {
  "tools": {
   "listChanged": false
  }
 },
 "instructions": "山河鉴 (https://shanhejian.pages.dev) is a 3D history map of China for 581–763 CE (隋 to the end of the 安史之乱), with poems and 说书 (storyteller) tellings.\nRead with list_events / get_event / list_places / list_poems / list_shuoshu / get_shuoshu. Add with add_event, add_poem, add_shuoshu:\nwhat you add is validated and goes live on the public site at once, marked as a community contribution.\nRules for adding: write in simplified Chinese; cite at least one source you actually read, with an https url (zh.wikisource.org, a museum, a paper);\ndates are Julian YYYY, YYYY-MM or YYYY-MM-DD with a 4-digit year (0641, 0755-12-16); a place is an existing id (list_places) or {name, ll:[lon, lat]}.\nCall list_events/list_poems first to avoid duplicates. If a call fails, the error names each wrong field: fix those and call again.",
 "tools": [
  {
   "name": "list_events",
   "title": "List events on the map",
   "readOnly": true
  },
  {
   "name": "get_event",
   "title": "Get one event or poem in full",
   "readOnly": true
  },
  {
   "name": "list_places",
   "title": "Find place ids",
   "readOnly": true
  },
  {
   "name": "add_event",
   "title": "Add an event to the map (live)",
   "readOnly": false
  },
  {
   "name": "list_poems",
   "title": "List poems on the map",
   "readOnly": true
  },
  {
   "name": "add_poem",
   "title": "Add a poem to the map (live)",
   "readOnly": false
  },
  {
   "name": "list_shuoshu",
   "title": "List 说书 (storyteller tellings)",
   "readOnly": true
  },
  {
   "name": "get_shuoshu",
   "title": "Read one 说书",
   "readOnly": true
  },
  {
   "name": "add_shuoshu",
   "title": "Add a 说书 telling (live, text only)",
   "readOnly": false
  }
 ],
 "alternatives": {
  "guide": "https://shanhejian.pages.dev/llms.txt",
  "openapi": "https://shanhejian.pages.dev/openapi.json",
  "rest": "https://shanhejian.pages.dev/api/events",
  "getSubmit": "https://shanhejian.pages.dev/api/submit?type=event&title=…&date=…&kind=…&place=…&summary=…&src=<https url>|<cite>|<title>"
 }
}