Connect

Let Claude, Grok, or Gemini add cards.

Open this site on your computer and your phone — it is the same account. Connect Claude Desktop, Grok, or Gemini CLI below if you want them to add cards and ask you questions. Studying on your phone does not need any of this. How to study · How to tutor.

Windows 16GB

Install Claude Desktop, Gemini CLI, or use Grok in the browser. Connect them here so they can add cards. Review those cards in this app.

M2 Mini 8GB

A Mac is enough. You do not need a local model. Claude, Grok, or Gemini does the talking; this app stores the cards.

iPhone

Open this site in Safari, or add it to your Home Screen. Study here. Add new cards from your computer if you want.

Protocols

Ways to connect.

Streamable HTTP is the default. HTTP+SSE is for older Claude. stdio is the local Desktop fallback. Grok can use JSON-RPC or Streamable HTTP. The phone never runs a transport — it just opens this site.

  • 2025-06-18

    Streamable HTTP

    Claude Desktop, Gemini CLI (httpUrl), Grok remote

    /mcp

  • 2024-11-05

    HTTP + SSE

    Older Claude, Cursor, Gemini CLI (url)

    /mcp/sse

  • 2025-06-18

    stdio

    Claude Desktop or Gemini CLI on this computer

    scripts/elenchus-mcp-server.mjs

  • custom

    WebSocket

    CLI and live preview

    /mcp-ws

  • elenchus

    JSON-RPC

    Grok, Gemini API scripts, this playground

    /api/mcp

Claude Desktop — Streamable HTTP

Remote MCP

Paste into claude_desktop_config.json. Newer Desktop builds speak HTTP MCP directly — no Node on the box.

{
  "mcpServers": {
    "elenchus": {
      "type": "http",
      "url": "/mcp"
    }
  }
}

Claude Desktop — HTTP + SSE

Legacy SSE

Older Claude Desktop and some IDEs still open an SSE stream first. The server replies with an endpoint event pointing at /mcp/message.

{
  "mcpServers": {
    "elenchus": {
      "type": "sse",
      "url": "/mcp/sse"
    }
  }
}

Claude Desktop — fallback

stdio bridge

If Desktop only launches local commands, point it at the Node bridge. Works on Windows and macOS. Set ELENCHUS_URL to this site.

{
  "mcpServers": {
    "elenchus": {
      "command": "node",
      "args": ["scripts/elenchus-mcp-server.mjs"],
      "env": { "ELENCHUS_URL": "https://YOUR-APP" }
    }
  }
}

Grok

JSON-RPC

Grok uses the same card list over HTTP. It can pull the next card, ask you about it, and save how you did.

POST /api/mcp
Content-Type: application/json
MCP-Protocol-Version: 2025-06-18

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "elenchus.nextReview",
  "params": {}
}

Gemini CLI — Streamable HTTP

~/.gemini/settings.json

Paste into your Gemini CLI settings. httpUrl is Streamable HTTP — the same /mcp URL Claude uses. Restart the CLI or run /mcp after you save.

{
  "mcpServers": {
    "elenchus": {
      "httpUrl": "/mcp"
    }
  }
}

Gemini CLI — SSE

Older Gemini clients

If your Gemini build wants an SSE stream, use url instead of httpUrl. Same cards, same reviews.

{
  "mcpServers": {
    "elenchus": {
      "url": "/mcp/sse"
    }
  }
}

Gemini CLI — fallback

stdio on this PC

Works on Windows and the Mac if Gemini will only launch a local command. Point ELENCHUS_URL at this site.

{
  "mcpServers": {
    "elenchus": {
      "command": "node",
      "args": ["scripts/elenchus-mcp-server.mjs"],
      "env": { "ELENCHUS_URL": "https://YOUR-APP" }
    }
  }
}
Official MCP/mcp

Playground

Tools Claude, Grok, and Gemini call

  • get_library

    {}

    Catalog of every deck. Start here.

  • get_context

    { id }

    Load a set to discuss the concepts

  • add_from_chat

    { setId, front, back, distractors[3] }

    Turn a question they asked into a card

  • set_choices

    { cardId, distractors[3] }

    Exam-style wrong answers for Learn only

  • next_review

    { corpusId? }

    Claude, Grok, or Gemini becomes the tutor

  • record_review

    { nodeId, grade 1-4 }

    Writes SM-2 for every device

  • ingest_text

    { text, title? }

    Handbook dump to nodes

  • upsert_set

    { title, cards[] }

    New set. Include distractors on every card.

Live log

  1. No events yet.