Loreum MCP Server
OfficialLoreum is a database for fictional worlds. Track characters, relationships, timelines, organizations, maps, lore, and story structure in a purpose-built platform with instant search across everything. No scattered files, no lost notes, no contradictions.
AI plugs into all of it. Connect Claude, Cursor, or any MCP-compatible assistant with one URL per world, approve read or read-and-write access, and it reads your entire world: entities, relationships, timeline, lore, and storyboard. With write access it can create and edit them too; a review queue for AI-proposed changes is next on the roadmap.
For novelists, screenwriters, game designers, tabletop RPG game masters, comic book writers, and anyone building a fictional universe that needs structure.
Features
Entities - Characters, locations, organizations, and custom types with configurable field schemas, backstories, and secrets
Knowledge Graph - Visual relationship editor showing how everything in your world connects (React Flow)
Timeline - Events and eras on an interactive Gantt chart with drag-to-edit and custom calendar support
Lore Wiki - Canonical world articles with entity mentions, categories, and tags
Storyboard - Plotlines, works, chapters, and scenes cross-referenced to your world data
Style Guide - Voice, tone, POV, pacing, dialogue rules, scene overrides, and per-character voice notes
AI Integration (MCP) - Remote MCP server (SDK v2) with 36 tools; connect claude.ai, Claude Code, Cursor and others with one URL per world
OAuth 2.1 + API Keys - Built-in authorization server (PKCE, rotating refresh tokens, per-world token binding, connected-apps management) plus project-scoped API keys
Public Wiki - Share your world as a read-only site while keeping secrets and drafts private
Maps - Upload map images and pin locations with coordinates
Search - Full-text search across all content
How It Works
Build your world in the Loreum web app with entities, relationships, timelines, lore, and a style guide
Add AI by bringing your own via MCP or using the built-in assistant. Build solo or invite collaborators
Write with context as AI reads your canon to generate grounded content. Proposed changes go through a review queue
Tech Stack
Layer | Technology |
Frontend | Next.js 16, React 19, shadcn/ui, Tailwind |
API | NestJS, Prisma 7, PostgreSQL 18 |
Queue | BullMQ + Redis 7 |
Auth | OAuth2 (Google) + JWT with token rotation |
Graph | React Flow (@xyflow/react) |
AI | MCP (SDK v2, Streamable HTTP, OAuth 2.1) |
Storage | Cloudflare R2 (S3-compatible) |
Infra | Cloudflare CDN + Tunnel |
Testing | Vitest, Supertest, GitHub Actions CI |
Monorepo | Turborepo + pnpm |
Quick Start
# Clone the repo
git clone https://github.com/loreum-app/loreum.git
cd loreum
# Install dependencies (pnpm 12, Node 22.12+)
pnpm install
# Copy environment files
cp .env.example .env
cp apps/api/.env.example apps/api/.env
cp apps/web/.env.example apps/web/.env
# Start Postgres + Redis
docker compose up -d
# Generate Prisma client, run migrations, and seed demo data
pnpm --filter api db:generate
pnpm --filter api db:migrate
pnpm --filter api db:seed
# Start development (all apps)
pnpm devAPI: http://localhost:3021 | Web: http://localhost:3020 | Swagger: http://localhost:3021/docs (requires ENABLE_SWAGGER=true in apps/api/.env)
MCP Server
Loreum is a remote MCP server. Every world has its own URL, shown under Settings → Connect AI:
https://api.loreum.app/v1/mcp/<project-slug>Paste it into Claude (Settings → Connectors → Add custom connector), Cursor, or Claude Code:
claude mcp add --transport http loreum https://api.loreum.app/v1/mcp/<project-slug>The client sends you to Loreum to sign in and approve read or read-and-write access. No keys to copy. Connected apps are listed in the world's settings and can be disconnected at any time. For scripts and header-only clients, project API keys still work as Authorization: Bearer lrm_….
Self-hosted instances serve the same endpoint at <PUBLIC_API_URL>/v1/mcp/<project-slug> and act as their own OAuth 2.1 authorization server. Full MCP documentation.
Project Structure
apps/
api/ NestJS API (Prisma, BullMQ, MCP endpoint)
web/ Next.js frontend (shadcn/ui, React Flow)
packages/
types/ Shared TypeScript interfaces
ui/ Shared UI components
typescript-config/
eslint-config/
docs/
PRODUCT_SPEC.md Full feature specification
SYSTEM_ARCHITECTURE.md Architecture diagrams
API_REFERENCE.md REST, WebSocket, MCP docs
USER_JOURNEYS.md User flow documentation
ERD.md Entity-relationship diagram
DEPLOYMENT.md Production deployment guide
TODO.md MVP checklist and roadmapDocumentation
Document | Description |
Complete feature specification with tiers | |
Component, data flow, and deployment diagrams | |
REST, WebSocket, and MCP tool documentation | |
User flow documentation | |
Entity-relationship diagram | |
Production deployment guide | |
MVP checklist and roadmap | |
Version history |
Community
Discord - Questions, feedback, and discussion
Contributing - Development setup, code conventions, PR process
Code of Conduct - Community standards
Security - How to report vulnerabilities