Self-hostable agentic-AI LMS: catalog, RAG tutor, FSRS reviews, AI authoring, ingest.
Self-hostable agentic-AI LMS: catalog, RAG tutor, FSRS reviews, AI authoring, ingest. The lumen mcp server wraps that behind the Model Context Protocol, so an assistant can use it through 14 defined tools rather than through you.
Custom multi-agent system, no LangChain · public evals with the weak scores kept in · live in production
Everything the assistant can do here goes through one of these:
Step — What happensDefine — A guided AI intake (capped at six turns) turns a fuzzy goal into a structured learning brief — the source goal is field-encrypted at restBuild — The authoring orchestrator builds a private course from the brief — honest status, no half-finished partials, re-runnable, cancellableLearn — A course-scoped RAG tutor answers with lesson citations and a visible tool-call traceShare — Publishing stays private; public listing is an explicit share + admin moderation state machine with an immutable audit trailClone — Any listed course can be remixed into your own draft, with server-written "Based on …" provenance and a sanitized export (no enrollments, traces, orBYOK — Bring your own model key (OpenAI / Anthropic / Groq / Mistral) — allowlisted providers, server-owned base URLs, envelope-encrypted write-only keysSuite — JudgedAuthoring — 10 / 10Tutor — 10 / 30Ingest — 4 / 10Role — EmailYou will need 3 environment variables: LUMEN_MCP_AUTH_TOKEN, DATABASE_URL, OPENAI_API_KEY. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Setup follows the usual MCP pattern — install or clone the server, register it in your client's configuration file, restart the client. The configuration blocks on this page cover the common clients.
Plenty of AI and media services servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Lumen's toolset — Step, Define, Build and 11 more — is a fair guide to whether it matches your workflow. It is maintained by ahmedEid1; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| Step | What happens |
| Define | A guided AI intake (capped at six turns) turns a fuzzy goal into a structured **learning brief** — the source goal is field-encrypted at rest |
| Build | The authoring orchestrator builds a **private course** from the brief — honest status, no half-finished partials, re-runnable, cancellable ([build.py](apps/backend/app/services/build.py), the durability/idempotency/quota |
| Learn | A **course-scoped RAG tutor** answers with lesson citations and a visible tool-call trace |
| Share | Publishing stays private; public listing is an explicit share + admin moderation state machine with an immutable audit trail |
| Clone | Any listed course can be remixed into your own draft, with server-written "Based on …" provenance and a sanitized export (no enrollments, traces, or soft-deleted content) |
| BYOK | Bring your own model key (OpenAI / Anthropic / Groq / Mistral) — allowlisted providers, server-owned base URLs, envelope-encrypted write-only keys |
| Suite | Judged |
| Authoring | 10 / 10 |
| Tutor | 10 / 30 |
| Ingest | 4 / 10 |
| Role | |
| admin | admin@lumen.test |
| user | teacher@lumen.test |
// claude_desktop_config.json
{
"mcpServers": {
"lumen": {
"command": "python",
"args": ["-m", "app.mcp", "--transport", "stdio"],
"env": {
"LUMEN_MCP_AUTH_TOKEN": "<client-secret from `make mcp-token`>",
"DATABASE_URL": "postgresql+asyncpg://lumen:lumen@localhost:5432/lumen"
}
}
}
}Configuration as documented by the project. Restart the client after saving.
| Variable | Description | Required |
|---|---|---|
| LUMEN_MCP_AUTH_TOKEN | Credential the server authenticates with. | Yes |
| DATABASE_URL | Endpoint or connection string the server talks to. | Yes |
| OPENAI_API_KEY | Credential the server authenticates with. | Yes |
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Search built for AI, not humans — semantic web search that returns model-ready content, plus code context.
Answers, not links — delegate questions to Perplexity's search-grounded models and get cited responses back.
Give your assistant a voice — text-to-speech, voice cloning and audio tools from the ElevenLabs API.
Give your assistant a real code sandbox — isolated cloud VMs for actually running the code it writes.
The ML hub in your context window — search models, datasets, papers and run Spaces from the official server.