{
  "$schema": "https://modelcontextprotocol.io/schema/2025-06-18/schema.json",
  "name": "lorekeeper",
  "title": "LoreKeeper",
  "version": "1.0.0",
  "description": "Read-only access to LoreKeeper worlds, characters, badges, roadmap and platform stats.",
  "instructions": "LoreKeeper is an AI Game Master platform for tabletop RPGs (D&D 5e mechanics, persistent campaigns, multiplayer, world building).\n\nUse these tools when a question is about LoreKeeper itself: which campaign settings exist, how a world or character is doing, what achievements can be earned, whether a feature has shipped, or how large the platform is.\nDo not use them for general tabletop rules questions — they only read LoreKeeper data.\nAll tools are read-only and need no credentials. Nothing here can create or modify a campaign, character or world.",
  "transport": {
    "type": "streamable-http",
    "url": "https://lore-keeper.com/api/mcp"
  },
  "protocolVersions": [
    "2025-06-18",
    "2025-03-26"
  ],
  "authentication": {
    "type": "none"
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "tools": [
    {
      "name": "get_platform_stats",
      "title": "Aggregate platform counters",
      "description": "Returns platform-wide totals used as social proof on the landing page: active campaigns, characters created, AI turns played and published worlds. Cached for one hour.\n\nWhen to use: Use when asked how large or how active LoreKeeper is, or for a headline number about the platform."
    },
    {
      "name": "list_leaderboard_characters",
      "title": "List public leaderboard characters",
      "description": "Returns the public character leaderboard ordered by level and experience, together with platform totals. Only living characters of level 2 or higher appear.\n\nWhen to use: Use to answer questions about top LoreKeeper players, a named character, or how far characters typically progress."
    },
    {
      "name": "list_worlds",
      "title": "List published worlds",
      "description": "Returns every published world split into the official settings authored by LoreKeeper and the 100 most recently published community settings.\n\nWhen to use: Use to browse or recommend a LoreKeeper setting, or to answer what worlds a player can start a campaign in."
    },
    {
      "name": "list_community_worlds",
      "title": "List community worlds with sorting",
      "description": "Returns player-authored published worlds with a richer content breakdown (races, classes, factions, monsters, items, spells, locations) and a sort order.\n\nWhen to use: Use when the question is specifically about community-made settings, or when the answer needs how much content a world actually contains."
    },
    {
      "name": "list_badges",
      "title": "List active achievement badges",
      "description": "Returns the achievement badges a player can earn. The `name` and `description` fields are i18n keys, not display text; the human-readable strings live in the localized bundles under /locales.\n\nWhen to use: Use to explain what achievements exist in LoreKeeper and how rare each one is."
    },
    {
      "name": "get_roadmap",
      "title": "Get the public product roadmap",
      "description": "Returns the public roadmap bucketed by delivery stage, with community vote counts per item.\n\nWhen to use: Use to answer whether LoreKeeper supports a feature yet, or what is being built next."
    },
    {
      "name": "get_service_health",
      "title": "Service health probe",
      "description": "Reports whether the API and its database are serving. Answers 200 when healthy and 503 when the database is unreachable.\n\nWhen to use: Use before a longer sequence of calls, or to check whether LoreKeeper is currently up."
    }
  ],
  "documentation": "https://lore-keeper.com/developers",
  "openapi": "https://lore-keeper.com/openapi.json",
  "contact": "support@lore-keeper.com",
  "mcpServers": {
    "lorekeeper": {
      "type": "http",
      "url": "https://lore-keeper.com/api/mcp"
    }
  }
}