Skip to main content
Glama

Memora MCP

License: MIT MCP Apps TypeScript React

Claude Desktop에서 바로 모든 대화를 인터랙티브 학습 세션으로 바꿔보세요. Claude에게 덱을 만들어 달라고 하면 카드를 생성하고, 이를 인라인 리뷰로 렌더링하여 클릭하며 학습할 수 있습니다: 플래시카드 뒤집기, 객관식 퀴즈 풀기, 빈칸 채우기(cloze) 완성하기. 모든 답변은 간격 반복(spaced-repetition) 일정에 반영되며, 학습 결과는 Claude에게 다시 전달되어 틀린 내용을 집중적으로 복습할 수 있습니다.

Keywords: Model Context Protocol, MCP server, MCP Apps, Claude Desktop, flashcards, quizzes, spaced repetition, SRS, FSRS, Anki alternative.

MCP Apps 확장(SEP-1865) 기반으로 구축되었습니다: 핵심 MCP 사양 2025-11-25 + Apps 확장 2026-01-01.

Claude에서 인라인으로 렌더링된 세 가지 학습 방식

기능

세 가지 학습 방식, 모두 인라인으로 렌더링되며 동일한 방식으로 채점됩니다:

  • 플래시카드: 클릭하여 뒤집은 후 알았어요 / 몰랐어요로 평가합니다.

  • 객관식 퀴즈: 보기 중 하나를 선택하면 정답/오답이 즉시 표시됩니다.

  • 빈칸 채우기(Cloze): 카드 앞면에 [...]로 빈칸을 작성하면 해당 용어가 숨겨지고, 클릭 시 정답이 드러납니다.

간격 반복: 모든 평가는 카드별 FSRS 일정(ts-fsrs)을 업데이트하므로, 약한 카드는 더 자주 다시 나타나고 복습 대상 카드가 우선 표시됩니다. *"오늘 복습할 카드는 뭐야?"*라고 물어보면 전체 덱의 복습 요약을 확인할 수 있습니다.

카테고리로 정리: 덱 이름에 ::를 사용하여 중첩 구조를 만들 수 있습니다(예: LLM::Attention). 카테고리 트리를 탐색하거나, 동일한 트리를 마인드 맵으로 시각화하고, 전체 하위 분기를 하나의 세션으로 묶어 학습할 수 있습니다. 퀴즈 덱은 배지로 표시됩니다.

덱 관리: 채팅을 떠나지 않고도 덱과 카드를 생성, 추가, 편집, 이름 변경, 삭제할 수 있습니다. 덱 생성 시 reverse 옵션을 전달하면 각 카드의 역방향(뒤집힌) 카드도 함께 만들어져 어휘 학습에 유용합니다.

JSON 기반: 덱은 data/decks.json에 저장되며, 모든 호출 시 실시간으로 읽힙니다. 직접 편집하거나 Claude에게 맡길 수 있습니다. 데이터베이스나 외부 서비스가 필요 없습니다.

카테고리 트리 또는 마인드 맵으로 덱 탐색

Related MCP server: EduChain MCP Server

도구

review_deckstudy만 인라인 플립카드 UI를 열며, 나머지 도구는 모두 텍스트 요약을 반환하므로 채팅에서 편집하거나 생성해도 더 이상 위젯이 튀어나오지 않습니다.

도구

기능

review_deck

덱 하나를 복습합니다(세션당 복습 대상 카드 수 제한).

study

카테고리 전체 하위 트리를 하나의 세션으로 묶어 복습합니다(세션당 카드 수 제한).

create_deck

플래시카드 또는 빈칸 채우기(cloze) 카드를 생성합니다. reverse 옵션은 역방향 카드도 추가합니다.

create_quiz

객관식 문제를 생성합니다.

grade_card

복습 결과를 기록하고 카드의 FSRS 일정을 업데이트합니다(UI에서 호출).

due_today

전체 덱의 복습 대상 카드 요약을 제공하고, 반복적으로 틀린 카드(3회 이상)를 표시합니다.

edit_card

카드의 앞면 및/또는 뒷면을 수정합니다.

refine_card

카드를 더 작은 단위로 분할하거나, 이해도를 테스트하는 방식으로 다시 작성하는 것을 제안합니다.

apply_refinement

사용자가 제안을 승인한 후 개선된 카드를 저장합니다.

capture

방금 겪은 문제(버그, 틀린 문제)를 초안 카드로 변환합니다.

apply_capture

사용자가 초안을 승인한 후 캡처된 카드를 저장합니다.

rename_deck

덱 이름을 변경합니다(카테고리 트리에서도 이동).

delete_card

카드 하나를 삭제합니다.

delete_deck

덱 전체를 삭제합니다.

카드 생성은 Memora의 품질 규칙(원자적 단일 개념 카드, 1~5단어 답변, 능동 회상, 모호함 없음, 답안 누출 없음, 정의 암기보다 적용 우선)을 따르며, 이는 Wozniak의 지식 형성의 20가지 규칙에 기반합니다. 새 카드는 작성 시 검토되어 플래그가 표시되지만(차단되지는 않음) Claude가 수정할 수 있습니다.

작동 방식 (MCP Apps)

도구는 ui:// 리소스를 선언합니다. Claude가 도구를 호출하면 호스트(Claude Desktop)가 해당 리소스를 가져와 샌드박스 iframe에서 HTML을 렌더링하고, 도구 결과를 UI에 전달하며, UI는 JSON-RPC를 통해 호스트와 통신합니다(카드 채점 및 진행 상황을 모델에 보고).

MCP Apps 왕복 통신 구조

빠른 시작

사전 요구 사항

  • Node.js 20.11+

Claude Desktop에 연결

Settings > Developer > Edit Config를 열고 mcpServers에 Memora를 추가하세요:

{
  "mcpServers": {
    "memora": {
      "command": "npx",
      "args": ["-y", "@servation/memora-mcp", "--stdio"]
    }
  }
}

그런 다음 Claude Desktop을 완전히 종료(시스템 트레이에서)하고 다시 실행하세요. memora가 Settings > Developer 아래에 나타나며, 몇 가지 샘플 덱이 미리 로드되어 있습니다.

덱은 ~/.memora/decks.json에 저장됩니다(MEMORA_DECKS 환경 변수로 경로 변경 가능). 파일을 직접 편집하거나 Claude에게 관리하게 할 수 있습니다.

git clone https://github.com/Servation/memora-mcp.git
cd memora-mcp
npm install
npm run build

빌드된 엔트리 파일의 절대 경로를 config에 지정하세요(덱은 리포지토리의 data/decks.json에 저장됩니다):

{
  "mcpServers": {
    "memora": {
      "command": "node",
      "args": ["C:\\path\\to\\memora-mcp\\dist\\main.js", "--stdio"]
    }
  }
}

Claude Desktop에서 사용해 보기

  • review my World Capitals deck — 내 World Capitals 덱 복습하기

  • make me a deck of 10 Spanish travel phrases — 스페인어 여행 표현 10개로 덱 만들기

  • make a reversible deck of 10 Spanish words — 스페인어 단어 10개로 양방향(역방향 포함) 덱 만들기

  • make a fill-in-the-blank deck about the water cycle — 물의 순환에 관한 빈칸 채우기 덱 만들기

  • quiz me with 10 multiple-choice questions on the solar system — 태양계에 관한 객관식 문제 10개로 퀴즈 내기

  • turn what we just discussed into a deck called "Photosynthesis" — 방금 논의한 내용을 "Photosynthesis"라는 덱으로 만들기

  • study my LLM category — 내 LLM 카테고리 학습하기

  • what's due today? — 오늘 복습할 카드 요약 보기

기술 스택

  • 서버: TypeScript, @modelcontextprotocol/sdk@modelcontextprotocol/ext-apps, stdio 전송(Streamable HTTP도 지원).

  • UI: React + Vite, vite-plugin-singlefile로 단일 인라인 HTML 파일로 번들.

  • 스케줄링: ts-fsrs(FSRS).

  • 런타임: 빌드 후 일반 node만 있으면 됩니다(bun이나 tsx 불필요).

덱 형식

{
  "Deck Name": [
    { "front": "Capital of France?", "back": "Paris" }
  ]
}
  • 설치 시 ~/.memora/decks.json에 저장됩니다(소스에서 실행 시 data/decks.json). MEMORA_DECKS로 경로를 재정의할 수 있습니다.

  • 매 호출 시 실시간으로 읽힙니다(mtime 캐시). create_deck, create_quiz, grade_card는 원자적으로 파일에 기록합니다.

  • 퀴즈 카드는 "options": ["...", "..."]를 추가하며, back이 정답입니다.

  • 빈칸 채우기(cloze) 카드는 앞면에 [...]로 빈칸을 표기하고, 숨겨진 용어를 back에 기록합니다.

  • 복습을 진행하면 카드에 due 날짜와 FSRS srs 블록이 추가됩니다. 이 필드가 없는 카드는 새 카드로 간주됩니다.

  • 유효한 JSON이어야 합니다. 그렇지 않으면 서버가 내장 기본 덱으로 대체합니다.

프로젝트 구조

memora-mcp/
├── server.ts            # MCP tools + the ui:// resource
├── decks.ts             # data model, decks.json storage, result builder
├── scheduling.ts        # FSRS scheduling + review ordering
├── main.ts              # entry: stdio (Claude Desktop) or Streamable HTTP
├── mcp-app.html         # UI entry HTML (bundled by Vite)
├── src/
│   ├── mcp-app.tsx      # review orchestrator (flip / quiz / cloze, grade -> model)
│   ├── deck-lib.tsx     # tree, mind map, card list, quiz/cloze views, helpers
│   ├── mcp-app.module.css
│   └── global.css       # host theme variable fallbacks (light/dark)
├── data/decks.json      # editable decks, read live
├── media/               # README images
├── vite.config.ts       # single-file bundle config
└── tsconfig*.json

개발

npm run dev        # vite watch (UI) plus tsx server on http://localhost:3001/mcp
npm run typecheck  # tsc --noEmit

빠른 로컬 반복을 위해 ext-apps 리포지토리의 MCP Apps 참조 호스트(basic-host)에서 앱을 실행할 수도 있습니다.

로드맵

백로그는 TODO.md를 참조하세요: npm + MCP Registry 배포, 크로스 클라이언트 호스팅(Streamable HTTP), 파싱 및 스케줄링 테스트, 실제 화면 캡처 데모 GIF.

라이선스

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Servation/memora-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server