protogrid

Search / io.github.ahmedEid1/lumen

Lumen

not classified

Self-hostable agentic-AI LMS: catalog, RAG tutor, FSRS reviews, AI authoring, ingest.

v2.0.0 · active · repository · website · descriptor JSON · versions

Not classified yet.The remote endpoints have not been probed successfully, or the listing has nothing to connect to.
Quality–not scored
Trust74of 100
Packages0
Tools seen0

Connect

8 clients · secrets stay placeholders

No connection block: no_connection.

Quality – / 100not scored

Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.

protocoln/a · weight 25
  • n/a
    protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygienen/a · weight 30
  • n/a
    tools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool list unknown
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

Tool list unknown · checked 2026-10-19 10:20 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 74 / 100

no-connection
provenance90
livenessn/a
freshness65
hygiene60

+repository +namespace-matches-repo +website ~liveness-unmeasured ~updated-134d-ago -no-connection

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

Nothing to connect to.

Tools (0)

No tools observed. Tools appear once a credential-free probe can list them.

Schemas: list_tools.

Similar MCP servers

More from io.github.ahmedEid1

Official server.json
{
  "name": "io.github.ahmedEid1/lumen",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "tools": [
        {
          "auth": "public",
          "name": "list_courses",
          "description": "List Lumen courses in the public catalog. Optional `filter` does free-text search over title + overview."
        },
        {
          "auth": "public",
          "name": "get_course",
          "description": "Fetch one course by slug. Returns the full syllabus tree (modules + lessons) plus the course overview."
        },
        {
          "auth": "user",
          "name": "search_lesson_content",
          "description": "Semantic search across a course's lesson chunks. Returns top-K passages with lesson titles and pgvector cosine-distance scores (lower = better)."
        },
        {
          "auth": "user",
          "name": "ask_tutor",
          "description": "Ask the Lumen course tutor a question. Returns a cited answer or refusal if the course content doesn't cover the topic. Requires enrollment."
        },
        {
          "auth": "user",
          "name": "list_my_due_reviews",
          "description": "Spaced-repetition queue for the calling user: cards whose FSRS-6 due-at has passed. Oldest-due first."
        },
        {
          "auth": "user",
          "name": "grade_review_card",
          "description": "Submit one FSRS-6 rating against a review card. `rating` is 1=again, 2=hard, 3=good, 4=easy."
        },
        {
          "auth": "user",
          "name": "create_course_draft",
          "description": "Generate a course outline from a brief and persist it as a draft course owned by the calling user. Requires the `can_author` capability (any active user)."
        },
        {
          "auth": "admin",
          "name": "ingest_url_to_draft",
          "description": "Import a YouTube / Notion / Google Docs URL into a draft course. Creates a fresh course when `course_id` is omitted, otherwise appends. Admin-only and gated by the `ingest_url_enabled` flag (off by default)."
        },
        {
          "auth": "user",
          "name": "list_my_progress",
          "description": "Per-enrolled-course completion + mastery rollup for the calling user. Newest enrollment first."
        }
      ],
      "install": {
        "notes": "Lumen is self-hosted: bring up your own backend, mint a token with `make mcp-token`, then register the server. No public artifact (PyPI / OCI) is shipped yet.",
        "claude_code": "LUMEN_MCP_AUTH_TOKEN=<client_secret> claude mcp add lumen -- python -m app.mcp --transport stdio",
        "claude_desktop": {
          "mcpServers": {
            "lumen": {
              "env": {
                "DATABASE_URL": "postgresql+asyncpg://lumen:lumen@localhost:5432/lumen",
                "LUMEN_MCP_AUTH_TOKEN": "<your-client-secret>"
              },
              "args": [
                "-m",
                "app.mcp",
                "--transport",
                "stdio"
              ],
              "command": "python"
            }
          }
        }
      },
      "license": "MIT",
      "categories": [
        "learning",
        "education",
        "agents",
        "rag",
        "spaced-repetition"
      ],
      "maintainer": {
        "url": "https://www.linkedin.com/in/ahmedhobeishy/",
        "name": "Ahmed Hobeishy"
      },
      "authentication": {
        "http": {
          "type": "oauth2",
          "grant_types": [
            "client_credentials"
          ],
          "token_endpoint": "/oauth/token",
          "metadata_endpoint": "/.well-known/oauth-authorization-server"
        },
        "stdio": {
          "type": "bearer",
          "env_var": "LUMEN_MCP_AUTH_TOKEN",
          "description": "Mint with `make mcp-token` on the Lumen instance; paste the printed client_secret into the env block."
        }
      },
      "supported_transports": [
        "stdio",
        "streamable-http"
      ]
    }
  },
  "title": "Lumen",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "version": "2.0.0",
  "repository": {
    "url": "https://github.com/ahmedEid1/lumen",
    "source": "github",
    "subfolder": "apps/backend/app/mcp"
  },
  "websiteUrl": "https://github.com/ahmedEid1/lumen/blob/main/docs/mcp.md",
  "description": "Self-hostable agentic-AI LMS: catalog, RAG tutor, FSRS reviews, AI authoring, ingest."
}